]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
usb: musb: core: add clear_ep_rxintr() to musb_platform_ops
authorBin Liu <b-liu@ti.com>
Wed, 4 Jan 2017 00:13:46 +0000 (18:13 -0600)
committerLuis Henriques <luis.henriques@canonical.com>
Fri, 20 Jan 2017 11:26:18 +0000 (11:26 +0000)
commit3630a1cee7abd2c0379d57dad233321ef894a2a4
treeaf333a76874bfe9fd9f2711be25ebb5fc2aec3b5
parentd61624b102338c764b13e4ea5f81c0a5686c5e89
usb: musb: core: add clear_ep_rxintr() to musb_platform_ops

BugLink: http://bugs.launchpad.net/bugs/1655969
commit 6def85a396ce7796bd9f4561c6ae8138833f7a52 upstream.

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.

Clearing ep interrupt is platform dependent, so this patch adds a
platform callback to allow glue driver to clear the ep interrupt.

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+.

Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
drivers/usb/musb/musb_core.h
drivers/usb/musb/musb_host.c