kernel-fxtec-pro1x/drivers/usb/host
Andiry Xu 04e51901dd USB: xHCI: Isochronous transfer implementation
This patch implements isochronous urb enqueue and interrupt handler part.

When an isochronous urb is passed to xHCI driver, first check the transfer
ring to guarantee there is enough room for the whole urb. Then update the
start_frame and interval field of the urb. Always assume URB_ISO_ASAP
is set, and never use urb->start_frame as input.

The number of isoc TDs is equal to urb->number_of_packets. One isoc TD is
consumed every Interval. Each isoc TD consists of an Isoch TRB chained to
zero or more Normal TRBs.

Call prepare_transfer for each TD to do initialization; then calculate the
number of TRBs needed for each TD. If the data required by an isoc TD is
physically contiguous (not crosses a page boundary), then only one isoc TRB
is needed; otherwise one or more additional normal TRB shall be chained to
the isoc TRB by the host.

Set TRB_IOC to the last TRB of each isoc TD. Do not ring endpoint doorbell
to start xHC procession until all the TDs are inserted to the endpoint
transer ring.

In irq handler, update urb status and actual_length, increase
urb_priv->td_cnt. When all the TDs are completed(td_cnt is equal to
urb_priv->length), giveback the urb to usbcore.

Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-08-10 14:35:41 -07:00
..
whci USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -07:00
ehci-atmel.c USB: ehci-atmel.c: use resource_size() 2010-03-02 14:53:18 -08:00
ehci-au1xxx.c USB: add do_wakeup parameter for PCI HCD suspend 2010-08-10 14:35:37 -07:00
ehci-dbg.c USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -07:00
ehci-fsl.c USB: add do_wakeup parameter for PCI HCD suspend 2010-08-10 14:35:37 -07:00
ehci-fsl.h
ehci-hcd.c USB: EHCI: add missing frame -> microframe conversion 2010-08-10 14:35:40 -07:00
ehci-hub.c USB: controller resume should check the root hub 2010-08-10 14:35:37 -07:00
ehci-ixp4xx.c
ehci-lpm.c USB: EHCI: EHCI 1.1 addendum: Basic LPM feature support 2010-08-10 14:35:35 -07:00
ehci-mem.c USB: EHCI: defer reclamation of siTDs 2010-04-22 15:18:28 -07:00
ehci-mxc.c Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 into devel-stable 2010-07-29 15:48:37 +01:00
ehci-omap.c USB: ehci_omap: fix device detect issue with modules 2010-08-10 14:35:39 -07:00
ehci-orion.c USB: ehci-orion.c: use resource_size() 2010-03-02 14:53:17 -08:00
ehci-pci.c USB: EHCI: remove PCI assumption 2010-08-10 14:35:40 -07:00
ehci-ppc-of.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
ehci-ps3.c
ehci-q.c USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -07:00
ehci-sched.c USB: EHCI: remove dead code in the periodic scheduler 2010-08-10 14:35:40 -07:00
ehci-w90x900.c USB: Add nuvoton Ehci driver for w90p910 platform 2009-09-23 06:46:20 -07:00
ehci-xilinx-of.c of/usb: fix build error due to of_node pointer move 2010-06-02 13:35:02 -06:00
ehci.h USB: EHCI: remove dead code in the periodic scheduler 2010-08-10 14:35:40 -07:00
fhci-dbg.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci-hcd.c Merge remote branch 'origin' into secretlab/next-devicetree 2010-05-22 00:36:56 -06:00
fhci-hub.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci-mem.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci-q.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci-sched.c fix comment/printk typos concerning "already" 2010-07-11 21:45:40 +02:00
fhci-tds.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci.h USB: FHCI: cq_get() should check kfifo_out()'s return value 2010-05-20 13:21:46 -07:00
hwa-hc.c USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -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: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07: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 USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
isp116x.h
isp1362-hcd.c USB: isp1362-hcd, fix double lock 2010-06-30 08:16:06 -07:00
isp1362.h USB: host: Remove dead CONFIG_ARCH_KARO 2010-08-10 14:35:40 -07:00
isp1760-hcd.c USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -07:00
isp1760-hcd.h USB: isp1760: allow platform devices to customize devflags 2009-09-23 06:46:29 -07:00
isp1760-if.c Merge remote branch 'origin' into secretlab/next-devicetree 2010-05-22 00:36:56 -06:00
Kconfig USB: EHCI: make CONFIG_USB_EHCI_TT_NEWSCHED default to Y 2010-08-10 14:35:34 -07:00
Makefile USB: xhci: rename driver to xhci_hcd 2010-03-19 07:24:08 -07:00
ohci-at91.c USB: ohci-at91: fix power management hanging 2010-04-30 09:25:12 -07:00
ohci-au1xxx.c const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
ohci-da8xx.c USB: OHCI: DA8xx/OMAP-L1x: fix up macro rename 2010-04-22 15:18:24 -07:00
ohci-dbg.c USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -07:00
ohci-ep93xx.c USB: ohci-ep93xx.c: remove unused variable 2009-09-23 06:46:34 -07:00
ohci-hcd.c USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -07:00
ohci-hub.c USB: controller resume should check the root hub 2010-08-10 14:35:37 -07:00
ohci-jz4740.c USB: Add JZ4740 OHCI support 2010-08-05 13:26:19 +01:00
ohci-lh7a404.c USB: Convert concatenated __FILE__ to %s, __FILE__ 2010-03-02 14:54:59 -08:00
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-omap3.c USB: ohci: introduce omap3 ohci-hcd driver 2010-05-20 13:21:44 -07:00
ohci-pci.c USB: add do_wakeup parameter for PCI HCD suspend 2010-08-10 14:35:37 -07:00
ohci-pnx4008.c USB: fix I2C API usage in ohci-pnx4008. 2010-03-02 14:55:15 -08:00
ohci-pnx8550.c
ohci-ppc-of.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
ohci-ppc-soc.c USB: Convert concatenated __FILE__ to %s, __FILE__ 2010-03-02 14:54:59 -08:00
ohci-ps3.c
ohci-pxa27x.c [ARM] pxa: fix incorrect CONFIG_CPU_PXA27x to CONFIG_PXA27x 2010-07-15 17:20:23 +08:00
ohci-q.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ohci-s3c2410.c
ohci-sa1111.c USB: Convert concatenated __FILE__ to %s, __FILE__ 2010-03-02 14:54:59 -08:00
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: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -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: Fix failure in change of status 2010-06-30 08:16:05 -07:00
r8a66597.h usb: r8a66597-hcd pio to mmio accessor conversion. 2010-06-02 16:31:15 +09:00
sl811-hcd.c USB: straighten out port feature vs. port status usage 2010-05-20 13:21:31 -07:00
sl811.h
sl811_cs.c pcmcia: do not use io_req_t when calling pcmcia_request_io() 2010-08-03 09:04:11 +02:00
u132-hcd.c USB: fix u132-hcd code/data warning 2010-05-20 13:21:43 -07:00
uhci-debug.c USB-BKL: Remove BKL use in uhci-debug 2010-08-10 14:35:36 -07:00
uhci-hcd.c USB: UHCI: add support for Intel's wakeup flags 2010-08-10 14:35:38 -07:00
uhci-hcd.h USB: UHCI: add support for Intel's wakeup flags 2010-08-10 14:35:38 -07:00
uhci-hub.c USB: controller resume should check the root hub 2010-08-10 14:35:37 -07:00
uhci-q.c USB: UHCI: acquire spinlock before calling start_rh() 2010-08-10 14:35:33 -07:00
xhci-dbg.c USB: xhci: Correct assumptions about number of rings per endpoint. 2010-05-20 13:21:38 -07:00
xhci-ext-caps.h USB: xhci: Fix finding extended capabilities registers 2010-03-02 14:55:02 -08:00
xhci-hub.c USB: xhci: Remove the arbitrary limit of 15 xHCI ports 2010-05-20 13:21:45 -07:00
xhci-mem.c USB: xHCI: Introduce urb_priv structure 2010-08-10 14:35:41 -07:00
xhci-pci.c USB: xhci: Print NEC firmware version. 2010-06-04 13:16:19 -07:00
xhci-ring.c USB: xHCI: Isochronous transfer implementation 2010-08-10 14:35:41 -07:00
xhci.c USB: xHCI: Introduce urb_priv structure 2010-08-10 14:35:41 -07:00
xhci.h USB: xHCI: Isochronous transfer implementation 2010-08-10 14:35:41 -07:00