summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorWu Zhangjin <wuzj@lemote.com>2010-01-04 11:33:02 +0800
committerClark Williams <williams@redhat.com>2012-04-13 11:01:28 -0500
commitc52a3a7c2bc1c7a07c57d54d63b4e27986dc77c1 (patch)
tree1e828796832f49f5c74f7ed09886fa69a3f9a523 /drivers
parent8dfb1887d2ea8dfdc2960a3d2efd2e26560d215f (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 235171f29460..0157357f5533 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -829,9 +829,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)) {