linux/drivers/usb/host
Rafael J. Wysocki 3494252d56 USB/PCI: Fix resume breakage of controllers behind cardbus bridges
If a USB PCI controller is behind a cardbus bridge, we are trying to
restore its configuration registers too early, before the cardbus
bridge is operational.  To fix this, call pci_restore_state() from
usb_hcd_pci_resume() and remove usb_hcd_pci_resume_early() which is
no longer necessary (the configuration spaces of USB controllers that
are not behind cardbus bridges will be restored by the PCI PM core
with interrupts disabled anyway).

This patch fixes the regression from 2.6.28 tracked as
http://bugzilla.kernel.org/show_bug.cgi?id=12659

[ Side note: the proper long-term fix is probably to just force the
  unplug event at suspend time instead of doing a plug/unplug at resume
  time, but this patch is fine regardless  - Linus ]

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Reported-by: Miles Lane <miles.lane@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-02-17 16:56:31 -08:00
..
whci wusb: whci-hcd: always lock whc->lock with interrupts disabled 2009-02-16 14:37:12 +00:00
ehci-au1xxx.c USB: Au1xxx-usb: suspend/resume support. 2008-07-21 15:16:44 -07:00
ehci-dbg.c USB: clean up redundant tests on unsigned 2009-01-07 09:59:49 -08:00
ehci-fsl.c USB: EHCI: Reconciling USB register differences on MPC85xx vs MPC83xx 2008-07-21 15:16:45 -07:00
ehci-fsl.h ehci-fsl: fix cache coherency problem on system with large memory 2007-05-23 20:14:15 -07:00
ehci-hcd.c USB: EHCI: fix handling of dead controllers 2008-11-13 14:45:05 -08:00
ehci-hub.c USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] 2009-01-07 09:59:52 -08:00
ehci-ixp4xx.c ALSA: Correct Vladimir Barinov's e-mail address 2008-10-10 13:41:45 +02:00
ehci-mem.c Revert "USB: EHCI cpufreq fix" 2007-08-20 23:38:44 -07:00
ehci-orion.c [ARM] Orion: add the option to support different ehci phy initialization 2008-12-04 01:28:14 -05:00
ehci-pci.c USB/PCI: Fix resume breakage of controllers behind cardbus bridges 2009-02-17 16:56:31 -08:00
ehci-ppc-of.c USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] 2009-01-07 09:59:52 -08:00
ehci-ps3.c USB: Fix PS3 USB shutdown problems 2008-11-13 14:45:02 -08:00
ehci-q.c list.h: Add list_splice_tail() and list_splice_tail_init() 2008-08-07 09:49:42 -04:00
ehci-sched.c USB: EHCI: fix divide-by-zero bug 2008-11-13 14:45:06 -08:00
ehci.h USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] 2009-01-07 09:59:52 -08:00
fhci-dbg.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-hcd.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-hub.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-mem.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-q.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-sched.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-tds.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci.h USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
hwa-hc.c uwb: use dev_dbg() for debug messages 2008-12-22 18:22:50 +00:00
isp116x-hcd.c USB: Let some USB host controllers get IRQ flags from resource 2008-10-17 14:40:52 -07:00
isp116x.h Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
isp1760-hcd.c USB: isp1760: don't auto disable Port1 on ISP1761 2009-01-07 10:00:09 -08:00
isp1760-hcd.h USB: isp1760: don't auto disable Port1 on ISP1761 2009-01-07 10:00:09 -08:00
isp1760-if.c USB: isp1760: don't auto disable Port1 on ISP1761 2009-01-07 10:00:09 -08:00
Kconfig USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
Makefile USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
ohci-at91.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-au1xxx.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-dbg.c USB: EHCI, OHCI, UHCI: remove version numbers 2008-10-17 14:41:02 -07:00
ohci-ep93xx.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-hcd.c USB: don't enable wakeup by default for PCI host controllers 2009-01-27 16:15:32 -08:00
ohci-hub.c USB: OHCI: fix endless polling behavior 2008-10-17 14:41:04 -07:00
ohci-lh7a404.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-mem.c USB: OHCI handles more ZFMicro quirks 2007-10-12 14:54:59 -07:00
ohci-omap.c [ARM] omap: ensure OMAP drivers pass a struct device to clk_get() 2009-01-24 11:41:16 +00:00
ohci-pci.c USB/PCI: Fix resume breakage of controllers behind cardbus bridges 2009-02-17 16:56:31 -08:00
ohci-pnx4008.c USB: Convert ohci-pnx4008 to a new-style i2c driver 2009-01-07 09:59:53 -08:00
ohci-pnx8550.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-ppc-of.c USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] 2009-01-07 09:59:52 -08:00
ohci-ppc-soc.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-ps3.c USB: Fix PS3 USB shutdown problems 2008-11-13 14:45:02 -08:00
ohci-pxa27x.c [ARM] pxa: don't pass a consumer clock name for devices with unique clocks 2008-11-27 12:38:23 +00:00
ohci-q.c USB: quirk PLL power down mode 2008-08-13 17:32:58 -07:00
ohci-s3c2410.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-sa1111.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-sh.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-sm501.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-ssb.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-tmio.c usb: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-07 09:59:52 -08:00
ohci.h usb: remove code associated with !CONFIG_PPC_MERGE 2008-10-17 14:40:57 -07:00
oxu210hp-hcd.c oxu210hp-hcd.c: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-07 09:59:52 -08:00
oxu210hp.h usb host: Oxford OXU210HP HCD driver. 2009-01-07 09:59:50 -08:00
pci-quirks.c USB: EHCI pci-quirks.c: don't wait so long for BIOS handoff 2009-01-07 09:59:50 -08:00
pci-quirks.h
r8a66597-hcd.c USB: m66592 and r8a66597 resource changes 2009-01-07 09:59:53 -08:00
r8a66597.h sh: sh_mobile usb clock framework support 2008-12-22 18:42:51 +09:00
sl811_cs.c pcmcia: encapsulate ioaddr_t 2008-08-29 09:43:14 +02:00
sl811-hcd.c USB: Let some USB host controllers get IRQ flags from resource 2008-10-17 14:40:52 -07:00
sl811.h Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
u132-hcd.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
uhci-debug.c USB: add urb->unlinked field 2007-10-12 14:55:19 -07:00
uhci-hcd.c USB/PCI: Fix resume breakage of controllers behind cardbus bridges 2009-02-17 16:56:31 -08:00
uhci-hcd.h USB: UHCI: disable remote wakeup when it's not needed 2008-05-02 10:25:57 -07:00
uhci-hub.c USB: uhci: mark root_hub_hub_des[] as const 2008-07-21 15:16:30 -07:00
uhci-q.c USB: UHCI: improve scheduling of interrupt URBs 2008-10-17 14:41:01 -07:00