linux/drivers/usb/musb
Bin Liu c48400baa0 usb: musb: dsps: implement clear_ep_rxintr() callback
During dma teardown for dequque urb, if musb load is high, musb might
generate bogus rx ep interrupt even when the rx fifo is flushed. In such
case any of the follow log messages could happen.

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

    musb_host_rx 1936: RX3 dma busy, csr 2020

As mentioned in the current inline comment, clearing ep interrupt in the
teardown path avoids the bogus interrupt, so implement clear_ep_rxintr()
callback.

This bug seems to be existing since the initial driver for musb support,
but I only validated the fix back to v4.1, so only cc stable for v4.1+.

cc: stable@vger.kernel.org # 4.1+
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-01-05 19:18:05 +01:00
..
am35x.c usb: musb: am35x: fix error return code in am35x_probe() 2016-09-13 17:20:02 +02:00
blackfin.c usb: musb: Set up function pointers for DMA 2015-05-07 13:35:51 -05:00
blackfin.h
cppi_dma.c usb: musb: cleanup cppi_dma header 2016-07-17 08:23:57 +09:00
cppi_dma.h usb: musb: cppi41: move struct cppi41_dma_channel to header 2016-07-17 08:23:57 +09:00
da8xx.c usb: musb: da8xx: Set phy in OTG mode by default 2016-11-21 17:35:37 +01:00
davinci.c usb: musb: Set up function pointers for DMA 2015-05-07 13:35:51 -05:00
davinci.h
jz4740.c usb: musb: jz4740: fix error check of usb_get_phy() 2016-04-26 14:50:02 -07:00
Kconfig Merge 4.8-rc7 into usb-next 2016-09-19 09:12:41 +02:00
Makefile usb: musb: add tracepoints support for debugging 2016-07-17 08:23:57 +09:00
musb_am335x.c
musb_core.c Merge 4.9-rc7 into usb-next 2016-11-28 08:34:10 +01:00
musb_core.h usb: musb: core: add clear_ep_rxintr() to musb_platform_ops 2017-01-05 19:18:05 +01:00
musb_cppi41.c ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
musb_debug.h usb: musb: add tracepoints support for debugging 2016-07-17 08:23:57 +09:00
musb_debugfs.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
musb_dma.h usb: musb: Set up function pointers for DMA 2015-05-07 13:35:51 -05:00
musb_dsps.c usb: musb: dsps: implement clear_ep_rxintr() callback 2017-01-05 19:18:05 +01:00
musb_gadget_ep0.c usb: musb: switch dev_dbg to tracepoints 2016-07-17 08:23:57 +09:00
musb_gadget.c Merge 4.9-rc7 into usb-next 2016-11-28 08:34:10 +01:00
musb_gadget.h
musb_host.c usb: musb: core: add clear_ep_rxintr() to musb_platform_ops 2017-01-05 19:18:05 +01:00
musb_host.h
musb_io.h usb: musb: Make busctl_offset an io-op rather then a define 2015-05-26 10:46:54 -05:00
musb_regs.h usb: musb: Make busctl_offset an io-op rather then a define 2015-05-26 10:46:54 -05:00
musb_trace.c usb: musb: add tracepoints support for debugging 2016-07-17 08:23:57 +09:00
musb_trace.h usb: musb: cppi41: add dma channel tracepoints 2016-07-17 08:23:57 +09:00
musb_virthub.c USB: musb: remove obsolete resume-signalling comments 2016-11-21 17:35:36 +01:00
musbhsdma.c usb: musb: switch dev_dbg to tracepoints 2016-07-17 08:23:57 +09:00
musbhsdma.h
omap2430.c Merge 4.9-rc7 into usb-next 2016-11-28 08:34:10 +01:00
omap2430.h
sunxi.c musb: sunxi: Force session end on babble errors in host-mode 2016-11-21 17:35:36 +01:00
tusb6010_omap.c usb: musb: use %pad format string from dma_addr_t 2016-03-04 15:14:30 +02:00
tusb6010.c usb: musb: Fix PM for hub disconnect 2016-11-17 16:25:39 +01:00
tusb6010.h usb: musb: Fix up DMA related macros 2015-05-07 13:35:46 -05:00
ux500_dma.c usb: musb/ux500: remove duplicate check for dma_is_compatible 2016-03-04 15:14:30 +02:00
ux500.c usb: musb: ux500: Fix NULL pointer dereference at system PM 2016-02-03 20:03:40 +02:00