diff options
Diffstat (limited to 'drivers/usb/host/ohci-hub.c')
-rw-r--r-- | drivers/usb/host/ohci-hub.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c index b56739221d11..d54183f1d701 100644 --- a/drivers/usb/host/ohci-hub.c +++ b/drivers/usb/host/ohci-hub.c | |||
@@ -483,6 +483,13 @@ ohci_hub_status_data (struct usb_hcd *hcd, char *buf) | |||
483 | length++; | 483 | length++; |
484 | } | 484 | } |
485 | 485 | ||
486 | /* Some broken controllers never turn off RHCS in the interrupt | ||
487 | * status register. For their sake we won't re-enable RHSC | ||
488 | * interrupts if the flag is already set. | ||
489 | */ | ||
490 | if (ohci_readl(ohci, &ohci->regs->intrstatus) & OHCI_INTR_RHSC) | ||
491 | changed = 1; | ||
492 | |||
486 | /* look at each port */ | 493 | /* look at each port */ |
487 | for (i = 0; i < ohci->num_ports; i++) { | 494 | for (i = 0; i < ohci->num_ports; i++) { |
488 | u32 status = roothub_portstatus (ohci, i); | 495 | u32 status = roothub_portstatus (ohci, i); |