usb: gadget: r8a66597-udc: fix flush fifo handling
The "BCLR" in CFIFOCTR/DnFIFOCTR can flush the fifo of "CPU side" only. To flush the fifo of "SIE side", we have to use the "ACLRM" in PIPEnCTR. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
b8cbbf803d
commit
05bb701303
|
@ -1718,6 +1718,8 @@ static void r8a66597_fifo_flush(struct usb_ep *_ep)
|
||||||
if (list_empty(&ep->queue) && !ep->busy) {
|
if (list_empty(&ep->queue) && !ep->busy) {
|
||||||
pipe_stop(ep->r8a66597, ep->pipenum);
|
pipe_stop(ep->r8a66597, ep->pipenum);
|
||||||
r8a66597_bclr(ep->r8a66597, BCLR, ep->fifoctr);
|
r8a66597_bclr(ep->r8a66597, BCLR, ep->fifoctr);
|
||||||
|
r8a66597_write(ep->r8a66597, ACLRM, ep->pipectr);
|
||||||
|
r8a66597_write(ep->r8a66597, 0, ep->pipectr);
|
||||||
}
|
}
|
||||||
spin_unlock_irqrestore(&ep->r8a66597->lock, flags);
|
spin_unlock_irqrestore(&ep->r8a66597->lock, flags);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue