linux/drivers/usb/host
Sarah Sharp 2a8f82c4ce USB: xhci: Notify the xHC when a device is reset.
When a USB device is reset, the xHCI hardware must know, in order to match
the device state and disable all endpoints except control endpoint 0.
Issue a Reset Device command after a USB device is successfully reset.
Wait on the command to finish, and then cache or free the disabled
endpoint rings.

There are four different USB device states that the xHCI hardware tracks:
 - disabled/enabled - device connection has just been detected,
 - default - the device has been reset and has an address of 0,
 - addressed - the device has a non-zero address but no configuration has
   been set,
 - configured - a set configuration succeeded.

The USB core may issue a port reset when a device is in any state, but the
Reset Device command will fail for a 0.96 xHC if the device is not in the
addressed or configured state.  Don't consider this failure as an error,
but don't free any endpoint rings if this command fails.

A storage driver may request that the USB device be reset during error
handling, so use GPF_NOIO instead of GPF_KERNEL while allocating memory
for the Reset Device command.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-02 14:53:12 -08:00
..
whci USB: whci-hcd: correctly handle sg lists longer than QTD_MAX_XFER_SIZE. 2009-12-11 11:55:26 -08:00
ehci-atmel.c USB: at91: Add USB EHCI driver for at91sam9g45 series 2009-09-23 06:46:30 -07:00
ehci-au1xxx.c const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
ehci-dbg.c USB: EHCI: split ehci_qh into hw and sw parts 2009-09-23 06:46:29 -07:00
ehci-fsl.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-fsl.h
ehci-hcd.c USB: add missing delay during remote wakeup 2010-01-20 15:24:34 -08:00
ehci-hub.c USB: ehci: phy low power mode bug fixing 2010-02-16 15:11:04 -08:00
ehci-ixp4xx.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-mem.c USB: EHCI: split ehci_qh into hw and sw parts 2009-09-23 06:46:29 -07:00
ehci-mxc.c USB: fix occasional ULPI timeouts with ehci-mxc 2010-03-02 14:53:05 -08:00
ehci-omap.c USB ehci: replace mach header with plat 2009-12-16 12:44:04 -08:00
ehci-orion.c USB: ehci-orion: Call ehci_reset before ehci_halt 2009-07-28 14:31:10 -07:00
ehci-pci.c USB: work around for EHCI with quirky periodic schedules 2009-11-30 16:43:16 -08:00
ehci-ppc-of.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-ps3.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-q.c USB: EHCI: fix handling of unusual interrupt intervals 2010-01-20 15:24:34 -08:00
ehci-sched.c USB: ehci: Respect IST when scheduling new split iTDs. 2009-12-11 11:55:18 -08:00
ehci-w90x900.c USB: Add nuvoton Ehci driver for w90p910 platform 2009-09-23 06:46:20 -07:00
ehci-xilinx-of.c USB: Add support for Xilinx USB host controller 2009-12-11 11:55:13 -08:00
ehci.h USB: work around for EHCI with quirky periodic schedules 2009-11-30 16:43:16 -08:00
fhci-dbg.c USB: FHCI: use the new usb debugfs directory 2009-06-15 21:44:43 -07:00
fhci-hcd.c USB: FHCI: avoid NULL pointer dereference 2010-01-20 15:24:35 -08:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c kfifo: move struct kfifo in place 2009-12-22 14:17:55 -08:00
fhci-tds.c USB: FHCI: Fix build after kfifo rework 2010-02-16 15:11:07 -08:00
fhci.h kfifo: rename kfifo_put... into kfifo_in... and kfifo_get... into kfifo_out... 2009-12-22 14:17:56 -08:00
hwa-hc.c wusb: hwa-hc: Drop unused pci_suspend/resume hooks. 2009-06-15 21:44:44 -07:00
imx21-dbg.c USB: MXC: Add i.MX21 specific USB host controller driver. 2010-03-02 14:52:55 -08:00
imx21-hcd.c USB: MXC: Add i.MX21 specific USB host controller driver. 2010-03-02 14:52:55 -08:00
imx21-hcd.h USB: MXC: Add i.MX21 specific USB host controller driver. 2010-03-02 14:52:55 -08:00
isp116x-hcd.c
isp116x.h
isp1362-hcd.c USB: isp1362: fix build failure on ARM systems via irq_flags cleanup 2010-01-20 15:24:36 -08:00
isp1362.h USB: FIX bitfield istl_flip:1, make it unsigned. 2009-12-11 11:55:20 -08:00
isp1760-hcd.c USB: Fix level of isp1760 Reloading ptd error message 2010-01-20 15:24:35 -08:00
isp1760-hcd.h USB: isp1760: allow platform devices to customize devflags 2009-09-23 06:46:29 -07:00
isp1760-if.c USB: isp1760: allow platform devices to customize devflags 2009-09-23 06:46:29 -07:00
Kconfig USB: MXC: Add i.MX21 specific USB host controller driver. 2010-03-02 14:52:55 -08:00
Makefile USB: MXC: Add i.MX21 specific USB host controller driver. 2010-03-02 14:52:55 -08:00
ohci-at91.c USB: modifications for at91sam9g10 2009-12-11 11:55:15 -08:00
ohci-au1xxx.c const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
ohci-dbg.c USB: OHCI: use the ohci structure directly in debugfs files. 2009-06-15 21:44:43 -07:00
ohci-ep93xx.c USB: ohci-ep93xx.c: remove unused variable 2009-09-23 06:46:34 -07:00
ohci-hcd.c USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
ohci-hub.c
ohci-lh7a404.c
ohci-mem.c
ohci-omap.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
ohci-pci.c USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
ohci-pnx4008.c USB: Add missing static markers to ohci-pnx4008 2009-12-11 11:55:14 -08:00
ohci-pnx8550.c
ohci-ppc-of.c
ohci-ppc-soc.c
ohci-ps3.c usb/ps3: Add missing annotations 2009-06-16 14:17:32 +10:00
ohci-pxa27x.c const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
ohci-q.c USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
ohci-s3c2410.c
ohci-sa1111.c
ohci-sh.c
ohci-sm501.c
ohci-ssb.c
ohci-tmio.c
ohci.h USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
oxu210hp-hcd.c USB: EHCI: OHCI: Remove unnecessary includes of reboot.h 2009-09-23 06:46:32 -07:00
oxu210hp.h
pci-quirks.c Revert "USB: Work around BIOS bugs by quiescing USB controllers earlier" 2009-10-11 15:57:57 -07:00
pci-quirks.h
r8a66597-hcd.c usb: r8a66597-hcd: Fix up spinlock recursion in root hub polling. 2010-02-05 11:53:28 +09:00
r8a66597.h usb: move r8a66597 register defines 2009-07-23 13:04:10 +09:00
sl811-hcd.c USB: sl811-hcd: Fix device disconnect: 2009-09-23 06:46:16 -07:00
sl811.h
sl811_cs.c pcmcia: rework the irq_req_t typedef 2009-11-28 18:03:14 +01:00
u132-hcd.c
uhci-debug.c
uhci-hcd.c USB: EHCI & UHCI: fix race between root-hub suspend and port resume 2010-01-20 15:24:34 -08:00
uhci-hcd.h
uhci-hub.c USB: add missing delay during remote wakeup 2010-01-20 15:24:34 -08:00
uhci-q.c USB: uhci: rm repeatedly evaluation for urbp->qh 2009-09-23 06:46:30 -07:00
xhci-dbg.c USB: xhci: Notify the xHC when a device is reset. 2010-03-02 14:53:12 -08:00
xhci-ext-caps.h USB: xhci: Support xHCI host controllers and USB 3.0 devices. 2009-06-15 21:44:48 -07:00
xhci-hcd.c USB: xhci: Notify the xHC when a device is reset. 2010-03-02 14:53:12 -08:00
xhci-hub.c USB: xhci: Allow roothub ports to be disabled. 2010-03-02 14:53:12 -08:00
xhci-mem.c USB: xhci: Allow allocation of commands without input contexts. 2010-03-02 14:53:09 -08:00
xhci-pci.c USB: make urb scatter-gather support more generic 2009-12-11 11:55:14 -08:00
xhci-ring.c USB: xhci: Notify the xHC when a device is reset. 2010-03-02 14:53:12 -08:00
xhci.h USB: xhci: Notify the xHC when a device is reset. 2010-03-02 14:53:12 -08:00