summaryrefslogtreecommitdiff
path: root/drivers/usb/host/ehci-hcd.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-05-02 19:07:03 +0400
committerArnd Bergmann <arnd@arndb.de>2012-05-02 19:07:03 +0400
commitced62c33fc434b9d44118c9f35803af8088cc3fe (patch)
tree34d1145899e0e5853c4d5b45162f86bbe46941ea /drivers/usb/host/ehci-hcd.c
parent3ff80abce7d0d3c1eacda53e73c94a57ade2e0a5 (diff)
parent6838e601e6dc63440fd4315c1c2f3a2ef4ccdd6e (diff)
downloadlinux-ced62c33fc434b9d44118c9f35803af8088cc3fe.tar.xz
Merge tag 'imx-cleanup' of git://git.pengutronix.de/git/imx/linux-2.6 into next/cleanup
From: Sascha Hauer <s.hauer@pengutronix.de> ARM: i.MX cleanups for 3.5 * tag 'imx-cleanup' of git://git.pengutronix.de/git/imx/linux-2.6: (5 commits) ARM: mx53: fix pad definitions for MX53_PAD_EIM_D28__I2C1_SDA and MX53_PAD_GPIO_8__CAN1_RXCAN ARM: imx/eukrea_mbimx27-baseboard: fix typo in error message ARM: i.MX51 iomux: add missed definitions for SION-bit and mode for some pads arm: imx: add missing select IMX_HAVE_PLATFORM for MACH_MX35_3DS in Kconfig arm: imx: make various struct sys_timer static Includes an update to 3.4-rc4 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'drivers/usb/host/ehci-hcd.c')
-rw-r--r--drivers/usb/host/ehci-hcd.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 806cc95317aa..4a3bc5b7a06f 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -858,8 +858,13 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd)
goto dead;
}
+ /*
+ * We don't use STS_FLR, but some controllers don't like it to
+ * remain on, so mask it out along with the other status bits.
+ */
+ masked_status = status & (INTR_MASK | STS_FLR);
+
/* Shared IRQ? */
- masked_status = status & INTR_MASK;
if (!masked_status || unlikely(ehci->rh_state == EHCI_RH_HALTED)) {
spin_unlock(&ehci->lock);
return IRQ_NONE;
@@ -910,7 +915,7 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd)
pcd_status = status;
/* resume root hub? */
- if (!(cmd & CMD_RUN))
+ if (ehci->rh_state == EHCI_RH_SUSPENDED)
usb_hcd_resume_root_hub(hcd);
/* get per-port change detect bits */