linux/drivers/usb/host
Alan Stern 314466101c USB: EHCI: use hrtimer for async schedule
This patch (as1576) adds hrtimer support for managing ehci-hcd's
async schedule.  Just as with the earlier change to the periodic
schedule management, two new hrtimer events take care of everything.

One event polls at 1-ms intervals to see when the Asynchronous
Schedule Status (ASS) flag matches the Asynchronous Schedule Enable
(ASE) value; the schedule's state must not be changed until it does.
The other event delays for 15 ms after the async schedule becomes
empty before turning it off.

The new events replace a busy-wait poll and a kernel timer usage.
They also replace the rather illogical method currently used for
indicating the async schedule should be turned off: attempting to
unlink the dedicated QH at the head of the async list.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-16 16:54:25 -07:00
..
whci Merge branch 'for-next/dwc3' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next 2011-12-12 15:19:53 -08:00
alchemy-common.c MIPS: Alchemy: Au1300 SoC support 2011-12-07 22:02:05 +00:00
bcma-hcd.c usb/bcma: Add missing #include <linux/slab.h> 2012-04-23 13:22:00 -07:00
ehci-atmel.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-au1xxx.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-cns3xxx.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-dbg.c USB: EHCI: add new root-hub state: STOPPING 2012-07-16 16:50:14 -07:00
ehci-fsl.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-fsl.h fsl/usb: Add controller version based ULPI and UTMI phy support 2012-04-18 13:46:42 -07:00
ehci-grlib.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-hcd.c USB: EHCI: use hrtimer for async schedule 2012-07-16 16:54:25 -07:00
ehci-hub.c USB: EHCI: introduce high-res timer 2012-07-16 16:53:16 -07:00
ehci-ixp4xx.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-lpm.c
ehci-ls1x.c USB: Add EHCI bus glue for Loongson1x SoCs (UPDATED) 2012-01-24 15:28:02 -08:00
ehci-mem.c USB: EHCI: don't refcount QHs 2012-07-16 16:50:13 -07:00
ehci-msm.c EHCI: centralize controller suspend/resume 2012-07-09 08:54:18 -07:00
ehci-mv.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-mxc.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-octeon.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-omap.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-orion.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-pci.c USB: EHCI: use hrtimer for the periodic schedule 2012-07-16 16:53:16 -07:00
ehci-platform.c EHCI: centralize controller suspend/resume 2012-07-09 08:54:18 -07:00
ehci-pmcmsp.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-ppc-of.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-ps3.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-q.c USB: EHCI: use hrtimer for async schedule 2012-07-16 16:54:25 -07:00
ehci-s5p.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-sched.c USB: EHCI: return void instead of 0 2012-07-16 16:54:24 -07:00
ehci-sead3.c EHCI: centralize controller suspend/resume 2012-07-09 08:54:18 -07:00
ehci-sh.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-spear.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-sysfs.c USB: EHCI: Allow users to override 80% max periodic bandwidth 2011-07-08 14:51:33 -07:00
ehci-tegra.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-timer.c USB: EHCI: use hrtimer for async schedule 2012-07-16 16:54:25 -07:00
ehci-vt8500.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-w90x900.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-xilinx-of.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-xls.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci.h USB: EHCI: use hrtimer for async schedule 2012-07-16 16:54:25 -07:00
fhci-dbg.c USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h 2012-06-26 19:42:11 -07:00
fhci-hcd.c USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h 2012-06-26 19:42:11 -07:00
fhci-hub.c USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h 2012-06-26 19:42:11 -07:00
fhci-mem.c
fhci-q.c
fhci-sched.c USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h 2012-06-26 19:42:11 -07:00
fhci-tds.c USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h 2012-06-26 19:42:11 -07:00
fhci.h USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h 2012-06-26 19:42:11 -07:00
fsl-mph-dr-of.c fsl/usb: Add controller version based ULPI and UTMI phy support 2012-04-18 13:46:42 -07:00
hwa-hc.c Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2012-01-09 12:09:47 -08:00
imx21-dbg.c usb: Fix typo in imx21-dbg.c 2012-02-13 14:32:34 -08:00
imx21-hcd.c usb: imx21-hcd.c: Use clk_prepare_enable/clk_disable_unprepare 2012-06-12 13:31:03 +03:00
imx21-hcd.h
isp116x-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
isp116x.h
isp1362-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
isp1362.h
isp1760-hcd.c isp1760-hcd: fix possible memory leak if urb could not be enqueued 2012-04-18 13:51:19 -07:00
isp1760-hcd.h usb/isp1760: Allow to optionally trigger low-level chip reset via GPIOLIB. 2011-10-19 13:29:06 -07:00
isp1760-if.c isp1760-if: make module unloads correctly 2012-04-18 13:50:44 -07:00
Kconfig usb: correct trivial typo in drivers/usb/host/Kconfig 2012-06-15 15:05:34 -07:00
Makefile USB: Add driver for the ssb bus 2012-04-18 13:43:30 -07:00
octeon2-common.c
ohci-at91.c USB: ohci-at91: add a reset function to fix race condition 2012-05-09 15:22:27 -07:00
ohci-au1xxx.c usb: [MIPS] fix unresolved err() reference in host/ohci-au1xxx.c 2012-05-01 18:36:09 -04:00
ohci-cns3xxx.c USB: ohci-cns3xxx.c: remove err() usage 2012-04-27 11:24:40 -07:00
ohci-da8xx.c ohci-da8xx: set MODULE_ALIAS to allow autoloading 2012-05-08 09:26:10 -07:00
ohci-dbg.c USB: ohci-dbg.c: remove dbg() usage 2012-05-01 21:33:37 -07:00
ohci-ep93xx.c USB: ohci-ep93xx.c: remove dbg() usage 2012-05-01 21:33:38 -07:00
ohci-exynos.c USB: ohci-exynos: use devm_ functions 2012-07-06 10:42:21 -07:00
ohci-hcd.c USB: OHCI: remove old SSB OHCI driver 2012-04-18 13:43:30 -07:00
ohci-hub.c USB: ohci-hub: Mark ohci_finish_controller_resume() as __maybe_unused 2012-06-13 17:26:11 -07:00
ohci-jz4740.c
ohci-mem.c
ohci-nxp.c USB: ohci-nxp: add usbd and otg clock initialization 2012-06-20 16:20:24 -07:00
ohci-octeon.c USB: irq: Remove IRQF_DISABLED 2011-09-18 01:39:36 -07:00
ohci-omap3.c ARM: OMAP: USBHOST: Replace usbhs core driver APIs by Runtime pm APIs 2011-12-16 04:29:57 -07:00
ohci-omap.c usb: phy: patches for v3.6 merge window 2012-07-05 15:35:41 -07:00
ohci-pci.c usb: add support for STA2X11 host driver 2012-01-24 14:15:37 -08:00
ohci-platform.c usb: Fix various typo within usb 2012-04-18 13:57:26 -07:00
ohci-pnx8550.c usb: [MIPS] fix unresolved err() reference in host/ohci-pnx8550.c 2012-05-01 18:36:09 -04:00
ohci-ppc-of.c USB: ohci-ppc-of.c: remove err() usage 2012-04-27 11:24:42 -07:00
ohci-ppc-soc.c USB: ohci-ppc-soc.c: remove err() usage 2012-04-27 11:24:42 -07:00
ohci-ps3.c USB: ohci-ps3.c: remove err() usage 2012-04-27 11:24:43 -07:00
ohci-pxa27x.c usb: [ARM] fix unresolved err() reference in host/ohci-pxa27x.c 2012-05-01 18:36:09 -04:00
ohci-q.c OHCI: remove uses of hcd->state 2011-11-18 10:51:00 -08:00
ohci-s3c2410.c USB: ohci-s3c2410.c: remove err() usage 2012-04-27 11:24:43 -07:00
ohci-sa1111.c USB: ohci-sa1111.c: remove dbg() usage 2012-05-01 21:33:39 -07:00
ohci-sh.c USB: ohci-sh.c: remove err() usage 2012-04-27 11:24:44 -07:00
ohci-sm501.c OHCI: remove uses of hcd->state 2011-11-18 10:51:00 -08:00
ohci-spear.c USB: ehci: ohci: Add clk_{un}prepare() support 2012-04-18 14:33:43 -07:00
ohci-tmio.c USB: ohci-tmio.c: remove err() usage 2012-04-27 11:24:44 -07:00
ohci-xls.c USB: ohci-xls.c: remove err() usage 2012-04-27 11:24:45 -07:00
ohci.h USB: move transceiver from ehci_hcd and ohci_hcd to hcd and rename it as phy 2012-06-13 12:38:36 -07:00
oxu210hp-hcd.c USB: oxu210hp-hcd.c: remove dbg() usage 2012-05-01 21:33:43 -07:00
oxu210hp.h
pci-quirks.c xhci: Add Lynx Point to list of Intel switchable hosts. 2012-05-03 13:18:40 -07:00
pci-quirks.h Intel xhci: Support EHCI/xHCI port switching. 2011-05-27 12:07:36 -07:00
r8a66597-hcd.c Revert "usb: move struct usb_device->children to struct usb_hub_port->child" 2012-05-14 09:20:37 -07:00
r8a66597.h usb: r8a66597-hcd: add function for external controller 2011-07-08 14:57:11 -07:00
sl811_cs.c pcmcia: Convert pcmcia_device_id declarations to const 2011-05-06 07:46:22 +02:00
sl811-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
sl811.h
ssb-hcd.c usb/ssb: Add missing #include <linux/slab.h> 2012-04-23 13:22:00 -07:00
u132-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
uhci-debug.c USB: UHCI: Add support for big endian descriptors 2011-05-19 16:43:20 -07:00
uhci-grlib.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
uhci-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
uhci-hcd.h USB: UHCI: Add support for big endian descriptors 2011-05-19 16:43:20 -07:00
uhci-hub.c UHCI: hub_status_data should indicate if ports are resuming 2012-04-09 15:43:21 -07:00
uhci-pci.c USB: UHCI: Move PCI specific functions to uhci-pci.c 2011-05-06 18:24:00 -07:00
uhci-q.c usb: fix number of mapped SG DMA entries 2011-12-09 16:18:19 -08:00
xhci-dbg.c xHCI: correct to print the true HSEE of USBCMD 2012-04-10 15:21:52 -07:00
xhci-ext-caps.h xHCI: Correct the #define XHCI_LEGACY_DISABLE_SMI 2012-04-11 08:31:06 -07:00
xhci-hub.c usb: Add support for root hub port status CAS 2012-07-02 12:51:24 -07:00
xhci-mem.c xhci: Don't free endpoints in xhci_mem_cleanup() 2012-06-13 16:37:30 -07:00
xhci-pci.c xhci: Add Intel U1/U2 timeout policy. 2012-05-18 15:42:04 -07:00
xhci-plat.c usb: host: xhci: add platform driver support 2012-03-13 10:30:59 -07:00
xhci-ring.c xhci: Fix hang on back-to-back Set TR Deq Ptr commands. 2012-07-02 12:51:25 -07:00
xhci.c usbdevfs: Add a USBDEVFS_GET_CAPABILITIES ioctl 2012-07-06 10:53:19 -07:00
xhci.h usb: Add support for root hub port status CAS 2012-07-02 12:51:24 -07:00