mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-13 07:56:47 +07:00
usb: gadget: net2280: unconditionally reset dma in usb_reset
If ep->dma is set, abort_dma() takes care of dma clean-up. If ep->dma is not set, unconditionally reset dma channel. Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
e6ac4bb059
commit
3fc0a7c3d3
@ -1979,9 +1979,15 @@ static void usb_reset_338x(struct net2280 *dev)
|
||||
/* clear old dma and irq state */
|
||||
for (tmp = 0; tmp < 4; tmp++) {
|
||||
struct net2280_ep *ep = &dev->ep[tmp + 1];
|
||||
struct net2280_dma_regs __iomem *dma;
|
||||
|
||||
if (ep->dma)
|
||||
if (ep->dma) {
|
||||
abort_dma(ep);
|
||||
} else {
|
||||
dma = &dev->dma[tmp];
|
||||
writel(BIT(DMA_ABORT), &dma->dmastat);
|
||||
writel(0, &dma->dmactl);
|
||||
}
|
||||
}
|
||||
|
||||
writel(~0, &dev->regs->irqstat0), writel(~0, &dev->regs->irqstat1);
|
||||
|
Loading…
Reference in New Issue
Block a user