Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWu Zhangjin <wuzj@lemote.com>2010-01-04 11:33:02 +0800
committerWu Zhangjin <wuzhangjin@gmail.com>2010-03-11 19:54:40 +0800
commita54476e9eae1335542ac01492934398025b3999c (patch)
treeaf45d76bcdc9244aabb7d2e3c1a3d968d64d6f2c
parent876c52cc046e00eaa2ffc5124dc187106ef57594 (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>
-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 24eb74781919..ddbc27218955 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -832,9 +832,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)) {