Messages in this thread | | | From | Andrew Goodbody <> | Subject | RE: [PATCH 1/2] usb: musb: Ensure rx reinit occurs for shared_fifo endpoints | Date | Fri, 20 May 2016 17:01:14 +0000 |
| |
> From: Sergei Shtylyov [mailto:sergei.shtylyov@cogentembedded.com] > > Hello. > > On 05/20/2016 05:51 PM, Andrew Goodbody wrote: > > > shared_fifo endpoints would only get a previous tx state cleared out, > > the rx state was only cleared for non shared_fifo endpoints Change > > this so that the rx state is cleared for all endpoints. > > This addresses an issue that resulted in rx packets being dropped > > silently. > > > > Signed-off-by: Andrew Goodbody <andrew.goodbody@cambrionix.com> > > Cc: stable@vger.kernel.org > > --- > > drivers/usb/musb/musb_host.c | 15 ++++++++------- > > 1 file changed, 8 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/usb/musb/musb_host.c > > b/drivers/usb/musb/musb_host.c index 2f8ad7f..30e0d65 100644 > > --- a/drivers/usb/musb/musb_host.c > > +++ b/drivers/usb/musb/musb_host.c > > @@ -594,14 +594,15 @@ musb_rx_reinit(struct musb *musb, struct > musb_qh *qh, u8 epnum) > > musb_writew(ep->regs, MUSB_TXCSR, 0); > > > > /* scrub all previous state, clearing toggle */ > > - } else { > > - csr = musb_readw(ep->regs, MUSB_RXCSR); > > - if (csr & MUSB_RXCSR_RXPKTRDY) > > - WARNING("rx%d, packet/%d ready?\n", ep- > >epnum, > > - musb_readw(ep->regs, MUSB_RXCOUNT)); > > - > > - musb_h_flush_rxfifo(ep, MUSB_RXCSR_CLRDATATOG); > > } > > + csr = musb_readw(ep->regs, MUSB_RXCSR); > > + if (csr & MUSB_RXCSR_RXPKTRDY) { > > + WARNING("rx%d, packet/%d ready?\n", ep->epnum, > > + musb_readw(ep->regs, MUSB_RXCOUNT)); > > + urb_qh_dump(musb); > > I'm not seeing this function anywhere... debugging leftover?
Sorry, yes, my bad. I'll remove it for v2.
Andrew
> > + } > > + > > + musb_h_flush_rxfifo(ep, MUSB_RXCSR_CLRDATATOG); > > > > /* target addr and (for multipoint) hub addr/port */ > > if (musb->is_multipoint) { > > MBR, Sergei
| |