[PATCH v2 0/2] usb: musb: fix bogus rx endpoint interrupt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

This fixes a long standing musb bogus rx interrupt problem. I am not sure on
other platforms, but on AM335x with CPPI DMA enabled, occasionally any of the
following kernel messages shows up from musb driver. (The endpoint number is
random, of cause.)

    musb_host_rx 1853: BOGUS RX2 ready, csr 0000, count 0

    musb_host_rx 1936: RX3 dma busy, csr 2020

In one of the test cases with FT4232H I observed the issue when sometimes
closing the uart port. It turns out the issue is that during handling urb
dequeue, the controller is still receiving data while the CPPI channel is
already aborted, then musb core generates endpoint rx interrupt, instead of
rx dma interrupt as in normal rx transfer.

I am not sure if this fix should be back ported to all stable trees, but I
only tested up to v4.1, so cc'd stable v4.1+.

Regards,
-Bin.
---
In this v2, the commit messages are revised in the two patches.

Bin Liu (2):
  usb: musb: core: add clear_ep_rxintr() to musb_platform_ops
  usb: musb: dsps: implement clear_ep_rxintr() callback

 drivers/usb/musb/musb_core.h |  7 +++++++
 drivers/usb/musb/musb_dsps.c | 12 ++++++++++++
 drivers/usb/musb/musb_host.c | 10 ++++------
 3 files changed, 23 insertions(+), 6 deletions(-)

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux