Commit 4e0dcf62 authored by Ryan Chen's avatar Ryan Chen Committed by Greg Kroah-Hartman
Browse files

usb: gadget: aspeed: fix stop dma register setting.



The vhub engine has two dma mode, one is descriptor list, another
is single stage DMA. Each mode has different stop register setting.
Descriptor list operation (bit2) : 0 disable reset, 1: enable reset
Single mode operation (bit0) : 0 : disable, 1: enable

Fixes: 7ecca2a4 ("usb/gadget: Add driver for Aspeed SoC virtual hub")
Cc: stable <stable@vger.kernel.org>
Acked-by: default avatarFelipe Balbi <balbi@kernel.org>
Acked-by: default avatarJoel Stanley <joel@jms.id.au>
Signed-off-by: default avatarRyan Chen <ryan_chen@aspeedtech.com>
Link: https://lore.kernel.org/r/20210108081238.10199-2-ryan_chen@aspeedtech.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 643a4df7
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -420,6 +420,9 @@ static void ast_vhub_stop_active_req(struct ast_vhub_ep *ep,
	u32 state, reg, loops;

	/* Stop DMA activity */
	if (ep->epn.desc_mode)
		writel(VHUB_EP_DMA_CTRL_RESET, ep->epn.regs + AST_VHUB_EP_DMA_CTLSTAT);
	else
		writel(0, ep->epn.regs + AST_VHUB_EP_DMA_CTLSTAT);

	/* Wait for it to complete */