Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 317d6d0e authored by Ryan Chen's avatar Ryan Chen Committed by Greg Kroah-Hartman
Browse files

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



commit 4e0dcf62ab4cf917d0cbe751b8bf229a065248d4 upstream.

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 93782abb
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 */