summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWu Zhangjin <wuzj@lemote.com>2010-01-04 03:33:02 (GMT)
committerScott Wood <scottwood@freescale.com>2015-02-13 22:20:23 (GMT)
commit9fadca25fc9cc1a49d095fa8b96c020a4cb4ba58 (patch)
tree947e152d1350aa85277384c1154a17864b27bef8
parentdb704b2ebb29e19338681c7341bc9defc4405026 (diff)
downloadlinux-fsl-qoriq-9fadca25fc9cc1a49d095fa8b96c020a4cb4ba58.tar.xz
USB: Fix the mouse problem when copying large amounts of data
When copying large amounts of data between the USB storage devices and the hard disk, the USB mouse will not work, this patch fixes it. [NOTE: This problem have been found in the Loongson family machines, not sure whether it is producible on other platforms] Signed-off-by: Hu Hongbing <huhb@lemote.com> Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
-rw-r--r--drivers/usb/host/ohci-hcd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 3770fcb..61acf4c 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -874,9 +874,13 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd)
}
if (ints & OHCI_INTR_WDH) {
- spin_lock (&ohci->lock);
- dl_done_list (ohci);
- spin_unlock (&ohci->lock);
+ if (ohci->hcca->done_head == 0) {
+ ints &= ~OHCI_INTR_WDH;
+ } else {
+ spin_lock (&ohci->lock);
+ dl_done_list (ohci);
+ spin_unlock (&ohci->lock);
+ }
}
if (quirk_zfmicro(ohci) && (ints & OHCI_INTR_SF)) {