Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[pandora-kernel.git] / drivers / usb / host / ohci-hcd.c
index d557235..f9cf3f0 100644 (file)
@@ -1,5 +1,7 @@
 /*
- * OHCI HCD (Host Controller Driver) for USB.
+ * Open Host Controller Interface (OHCI) driver for USB.
+ *
+ * Maintainer: Alan Stern <stern@rowland.harvard.edu>
  *
  * (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>
  * (C) Copyright 2000-2004 David Brownell <dbrownell@users.sourceforge.net>
@@ -764,6 +766,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd)
        if (ints == ~(u32)0) {
                disable (ohci);
                ohci_dbg (ohci, "device removed!\n");
+               usb_hc_died(hcd);
                return IRQ_HANDLED;
        }
 
@@ -771,7 +774,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd)
        ints &= ohci_readl(ohci, &regs->intrenable);
 
        /* interrupt for some other device? */
-       if (ints == 0)
+       if (ints == 0 || unlikely(hcd->state == HC_STATE_HALT))
                return IRQ_NOTMINE;
 
        if (ints & OHCI_INTR_UE) {
@@ -788,6 +791,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd)
                } else {
                        disable (ohci);
                        ohci_err (ohci, "OHCI Unrecoverable Error, disabled\n");
+                       usb_hc_died(hcd);
                }
 
                ohci_dump (ohci, 1);
@@ -1105,6 +1109,11 @@ MODULE_LICENSE ("GPL");
 #define PLATFORM_DRIVER                ohci_hcd_cns3xxx_driver
 #endif
 
+#ifdef CONFIG_USB_OHCI_ATH79
+#include "ohci-ath79.c"
+#define PLATFORM_DRIVER                ohci_hcd_ath79_driver
+#endif
+
 #if    !defined(PCI_DRIVER) &&         \
        !defined(PLATFORM_DRIVER) &&    \
        !defined(OMAP1_PLATFORM_DRIVER) &&      \