linux/drivers/usb/host
Andiry Xu ad93562bde USB host: Move AMD PLL quirk to pci-quirks.c
This patch moves the AMD PLL quirk code in OHCI/EHCI driver to pci-quirks.c,
and exports the functions to be used by xHCI driver later.

AMD PLL quirk disable the optional PM feature inside specific
SB700/SB800/Hudson-2/3 platforms under the following conditions:

1. If an isochronous device is connected to OHCI/EHCI/xHCI port and is active;
2. Optional PM feature that powers down the internal Bus PLL when the link is
   in low power state is enabled.

Without AMD PLL quirk, USB isochronous stream may stutter or have breaks
occasionally, which greatly impair the performance of audio/video streams.

Currently AMD PLL quirk is implemented in OHCI and EHCI driver, and will be
added to xHCI driver too. They are doing similar things actually, so move
the quirk code to pci-quirks.c, which has several advantages:

1. Remove duplicate defines and functions in OHCI/EHCI (and xHCI) driver and
   make them cleaner;
2. AMD chipset information will be probed only once and then stored.
   Currently they're probed during every OHCI/EHCI initialization, move
   the detect code to pci-quirks.c saves the repeat detect cost;
3. Build up synchronization among OHCI/EHCI/xHCI driver. In current
   code, every host controller enable/disable PLL only according to
   its own status, and may enable PLL while there is still isoc transfer on
   other HCs. Move the quirk to pci-quirks.c prevents this issue.

Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Alex He <alex.he@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-03-01 16:01:45 -05:00
..
whci USB: whci-hcd: fix compiler warning 2010-12-10 14:18:35 -08:00
ehci-atmel.c usb: Add in missing EHCI helpers. 2010-11-30 16:51:21 -08:00
ehci-au1xxx.c USB: EHCI: fix scheduling while atomic during suspend 2011-02-03 16:57:43 -08:00
ehci-cns3xxx.c USB: cns3xxx: Add EHCI and OHCI bus glue for cns3xxx SOCs 2010-11-29 18:32:47 +03:00
ehci-dbg.c USB: EHCI: Cleanup and rewrite ehci_vdgb(). 2011-02-04 11:43:58 -08:00
ehci-fsl.c USB: ehci-fsl: Fix 'have_sysif_regs' detection 2011-01-22 18:38:58 -08:00
ehci-fsl.h USB: ehci-fsl: Fix 'have_sysif_regs' detection 2011-01-22 18:38:58 -08:00
ehci-hcd.c USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
ehci-hub.c ehci: Check individual port status registers on resume 2011-02-25 11:32:13 -08:00
ehci-ixp4xx.c
ehci-lpm.c USB: Mark EHCI LPM functions as __maybe_unused 2011-02-17 10:47:55 -08:00
ehci-mem.c USB: EHCI: AMD periodic frame list table quirk 2010-11-16 13:36:40 -08:00
ehci-msm.c USB: EHCI: Fix compiler warnings with MSM driver 2011-02-25 11:34:35 -08:00
ehci-mxc.c USB: ehci-mxc: add work-around for efika mx/sb bug 2011-01-22 18:48:10 -08:00
ehci-octeon.c USB: Add EHCI and OHCH glue for OCTEON II SOCs. 2010-10-29 19:08:44 +01:00
ehci-omap.c usb: host: omap: ehci and ohci simplification 2011-03-01 17:02:49 +02:00
ehci-orion.c USB: don't run ehci_reset in ehci_run for tdi device 2011-02-17 10:57:13 -08:00
ehci-pci.c USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
ehci-pmcmsp.c USB: EHCI bus glue for on-chip PMC MSP USB controller 2011-02-25 11:37:31 -08:00
ehci-ppc-of.c USB: ehci-ppc-of: problems in unwind 2010-09-03 17:33:40 -07:00
ehci-ps3.c
ehci-q.c USB: EHCI: Rearrange EHCI_URB_TRACE code to avoid GCC-4.6 warnings. 2011-02-04 11:43:59 -08:00
ehci-sched.c USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
ehci-sh.c usb: ehci-sh: Add missing ehci helpers. 2010-11-26 16:48:31 +09:00
ehci-spear.c USB host: Adding USB ehci & ohci support for spear platform 2010-11-16 13:53:29 -08:00
ehci-vt8500.c usb: Add support for VIA VT8500 and compatibles in EHCI HCD 2010-11-11 06:24:54 -08:00
ehci-w90x900.c usb: Add in missing EHCI helpers. 2010-11-30 16:51:21 -08:00
ehci-xilinx-of.c usb: Add in missing EHCI helpers. 2010-11-30 16:51:21 -08:00
ehci.h USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
fhci-dbg.c
fhci-hcd.c drivers: fix comment typo diable -> disable. 2011-01-03 16:08:59 +01:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c
fhci-tds.c drivers: fix comment typo diable -> disable. 2011-01-03 16:08:59 +01:00
fhci.h USB: FHCI: cq_get() should check kfifo_out()'s return value 2010-05-20 13:21:46 -07:00
fsl-mph-dr-of.c USB: ehci-fsl: Fix 'have_sysif_regs' detection 2011-01-22 18:38:58 -08:00
hwa-hc.c
imx21-dbg.c
imx21-hcd.c USB: HCD: Add usb_hcd prefix to exported functions 2011-02-04 11:48:18 -08:00
imx21-hcd.h USB: imx21-hcd accept arbitary transfer buffer alignement. 2010-10-22 10:22:03 -07:00
isp116x-hcd.c USB: isp116x-hcd - use resource_size instead of defining its own resource_len macro 2010-10-22 10:22:14 -07:00
isp116x.h
isp1362-hcd.c usb: isp1362-hcd: use bitmap_clear() and bitmap_set() 2011-02-17 11:00:24 -08:00
isp1362.h
isp1760-hcd.c usb/isp1760: Handle toggle bit in queue heads only 2011-02-28 19:23:39 -08:00
isp1760-hcd.h usb/isp1760: Consolidate printouts and remove unused code 2011-02-28 19:23:38 -08:00
isp1760-if.c
Kconfig USB: EHCI bus glue for on-chip PMC MSP USB controller 2011-02-25 11:37:31 -08:00
Makefile USB: Add EHCI and OHCH glue for OCTEON II SOCs. 2010-10-29 19:08:44 +01:00
octeon2-common.c USB: Add EHCI and OHCH glue for OCTEON II SOCs. 2010-10-29 19:08:44 +01:00
ohci-at91.c
ohci-au1xxx.c
ohci-cns3xxx.c USB: cns3xxx: Add EHCI and OHCI bus glue for cns3xxx SOCs 2010-11-29 18:32:47 +03:00
ohci-da8xx.c
ohci-dbg.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
ohci-ep93xx.c
ohci-hcd.c USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
ohci-hub.c
ohci-jz4740.c USB: ohci-jz4740: Fix spelling in MODULE_ALIAS 2010-11-11 07:14:07 -08:00
ohci-lh7a404.c
ohci-mem.c
ohci-octeon.c USB: Add EHCI and OHCH glue for OCTEON II SOCs. 2010-10-29 19:08:44 +01:00
ohci-omap.c
ohci-omap3.c usb: host: omap: ehci and ohci simplification 2011-03-01 17:02:49 +02:00
ohci-pci.c USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
ohci-pnx4008.c i2c: Add support for custom probe function 2010-08-11 18:20:56 +02:00
ohci-pnx8550.c
ohci-ppc-of.c
ohci-ppc-soc.c
ohci-ps3.c
ohci-pxa27x.c ARM: ohci-pxa27x: enable OHCI over U2DC for pxa3xx 2010-10-08 16:21:17 +08:00
ohci-q.c USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
ohci-s3c2410.c
ohci-sa1111.c
ohci-sh.c usb: ohci-sh: Set IRQ as shared. 2010-11-01 17:01:27 -04:00
ohci-sm501.c USB: ohci-sm501: add iounmap on error path 2010-10-22 10:21:35 -07:00
ohci-spear.c USB host: Adding USB ehci & ohci support for spear platform 2010-11-16 13:53:29 -08:00
ohci-ssb.c
ohci-tmio.c
ohci.h USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
oxu210hp-hcd.c tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
oxu210hp.h
pci-quirks.c USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
pci-quirks.h USB host: Move AMD PLL quirk to pci-quirks.c 2011-03-01 16:01:45 -05:00
r8a66597-hcd.c usb: Fix up r8a66597-hcd section mismatches. 2010-09-16 17:16:31 +09:00
r8a66597.h usb: r8a66597-hcd: Change mistake of the outsw function 2010-10-22 10:22:11 -07:00
sl811-hcd.c USB SL811HS HCD: Fix memory leak in sl811h_urb_enqueue() 2011-02-03 16:42:17 -08:00
sl811.h Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
sl811_cs.c pcmcia: move driver name to struct pcmcia_driver 2010-09-29 17:20:24 +02:00
u132-hcd.c
uhci-debug.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
uhci-hcd.c usb: host: uhci-hcd.c Remove one to many n's in a word. 2011-02-28 19:19:56 -08:00
uhci-hcd.h
uhci-hub.c
uhci-q.c USB: host: uhci-q: Fixed minor coding style issues 2010-12-10 14:18:36 -08:00
xhci-dbg.c
xhci-ext-caps.h
xhci-hub.c xhci: Don't let the USB core disable SuperSpeed ports. 2010-11-19 16:23:31 -08:00
xhci-mem.c xhci: Fix issue with port array setup and buggy hosts. 2010-12-09 11:59:42 -08:00
xhci-pci.c USB: xHCI: PCI power management implementation 2010-10-22 10:22:13 -07:00
xhci-ring.c xhci: Remove more doorbell-related reads 2011-01-14 15:52:00 -08:00
xhci.c xhci: Use GFP_NOIO during device reset. 2011-01-14 15:51:51 -08:00
xhci.h xhci: Remove more doorbell-related reads 2011-01-14 15:52:00 -08:00