aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorWu Zhangjin <wuzj@lemote.com>2010-01-04 11:33:02 +0800
committerSteven Rostedt <rostedt@rostedt.homelinux.com>2013-02-14 12:33:26 -0500
commitbaf2428d74e2e84f99bd44b3f32086c0ecb3279c (patch)
tree1efb16bad61469ebb78723508b233ef19272f808 /drivers
parentd581f84b42ca16a4271072f55839247e969300ad (diff)
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>
Diffstat (limited to 'drivers')
-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 23107e230530..43ae966987cc 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -830,9 +830,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)) {