diff options
Diffstat (limited to 'drivers/usb/host/ohci-hcd.c')
-rw-r--r-- | drivers/usb/host/ohci-hcd.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index c3b4ccc7337b..3b5785032a10 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c | |||
@@ -398,7 +398,14 @@ ohci_shutdown (struct usb_hcd *hcd) | |||
398 | 398 | ||
399 | ohci = hcd_to_ohci (hcd); | 399 | ohci = hcd_to_ohci (hcd); |
400 | ohci_writel (ohci, OHCI_INTR_MIE, &ohci->regs->intrdisable); | 400 | ohci_writel (ohci, OHCI_INTR_MIE, &ohci->regs->intrdisable); |
401 | ohci_usb_reset (ohci); | 401 | ohci->hc_control = ohci_readl(ohci, &ohci->regs->control); |
402 | |||
403 | /* If the SHUTDOWN quirk is set, don't put the controller in RESET */ | ||
404 | ohci->hc_control &= (ohci->flags & OHCI_QUIRK_SHUTDOWN ? | ||
405 | OHCI_CTRL_RWC | OHCI_CTRL_HCFS : | ||
406 | OHCI_CTRL_RWC); | ||
407 | ohci_writel(ohci, ohci->hc_control, &ohci->regs->control); | ||
408 | |||
402 | /* flush the writes */ | 409 | /* flush the writes */ |
403 | (void) ohci_readl (ohci, &ohci->regs->control); | 410 | (void) ohci_readl (ohci, &ohci->regs->control); |
404 | } | 411 | } |
@@ -1270,6 +1277,9 @@ static void __exit ohci_hcd_mod_exit(void) | |||
1270 | #ifdef PLATFORM_DRIVER | 1277 | #ifdef PLATFORM_DRIVER |
1271 | platform_driver_unregister(&PLATFORM_DRIVER); | 1278 | platform_driver_unregister(&PLATFORM_DRIVER); |
1272 | #endif | 1279 | #endif |
1280 | #ifdef OMAP3_PLATFORM_DRIVER | ||
1281 | platform_driver_unregister(&OMAP3_PLATFORM_DRIVER); | ||
1282 | #endif | ||
1273 | #ifdef PS3_SYSTEM_BUS_DRIVER | 1283 | #ifdef PS3_SYSTEM_BUS_DRIVER |
1274 | ps3_ohci_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); | 1284 | ps3_ohci_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); |
1275 | #endif | 1285 | #endif |