diff options
Diffstat (limited to 'drivers/usb/host/ohci-hcd.c')
-rw-r--r-- | drivers/usb/host/ohci-hcd.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index d55723514860..9aa10bdf3918 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c | |||
@@ -764,6 +764,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd) | |||
764 | if (ints == ~(u32)0) { | 764 | if (ints == ~(u32)0) { |
765 | disable (ohci); | 765 | disable (ohci); |
766 | ohci_dbg (ohci, "device removed!\n"); | 766 | ohci_dbg (ohci, "device removed!\n"); |
767 | usb_hc_died(hcd); | ||
767 | return IRQ_HANDLED; | 768 | return IRQ_HANDLED; |
768 | } | 769 | } |
769 | 770 | ||
@@ -771,7 +772,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd) | |||
771 | ints &= ohci_readl(ohci, ®s->intrenable); | 772 | ints &= ohci_readl(ohci, ®s->intrenable); |
772 | 773 | ||
773 | /* interrupt for some other device? */ | 774 | /* interrupt for some other device? */ |
774 | if (ints == 0) | 775 | if (ints == 0 || unlikely(hcd->state == HC_STATE_HALT)) |
775 | return IRQ_NOTMINE; | 776 | return IRQ_NOTMINE; |
776 | 777 | ||
777 | if (ints & OHCI_INTR_UE) { | 778 | if (ints & OHCI_INTR_UE) { |
@@ -788,6 +789,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd) | |||
788 | } else { | 789 | } else { |
789 | disable (ohci); | 790 | disable (ohci); |
790 | ohci_err (ohci, "OHCI Unrecoverable Error, disabled\n"); | 791 | ohci_err (ohci, "OHCI Unrecoverable Error, disabled\n"); |
792 | usb_hc_died(hcd); | ||
791 | } | 793 | } |
792 | 794 | ||
793 | ohci_dump (ohci, 1); | 795 | ohci_dump (ohci, 1); |
@@ -1105,6 +1107,11 @@ MODULE_LICENSE ("GPL"); | |||
1105 | #define PLATFORM_DRIVER ohci_hcd_cns3xxx_driver | 1107 | #define PLATFORM_DRIVER ohci_hcd_cns3xxx_driver |
1106 | #endif | 1108 | #endif |
1107 | 1109 | ||
1110 | #ifdef CONFIG_USB_OHCI_ATH79 | ||
1111 | #include "ohci-ath79.c" | ||
1112 | #define PLATFORM_DRIVER ohci_hcd_ath79_driver | ||
1113 | #endif | ||
1114 | |||
1108 | #if !defined(PCI_DRIVER) && \ | 1115 | #if !defined(PCI_DRIVER) && \ |
1109 | !defined(PLATFORM_DRIVER) && \ | 1116 | !defined(PLATFORM_DRIVER) && \ |
1110 | !defined(OMAP1_PLATFORM_DRIVER) && \ | 1117 | !defined(OMAP1_PLATFORM_DRIVER) && \ |