android_kernel_motorola_sm6225/drivers/usb/host
Sarah Sharp bba18e33f2 xhci: Extend Fresco Logic MSI quirk.
Ali reports that plugging a device into the Fresco Logic xHCI host with
PCI device ID 1400 produces an IRQ error:

 do_IRQ: 3.176 No irq handler for vector (irq -1)

Other early Fresco Logic host revisions don't support MSI, even though
their PCI config space claims they do.  Extend the quirk to disabling
MSI to this chipset revision.  Also enable the short transfer quirk,
since it's likely this revision also has that quirk, and it should be
harmless to enable.

04:00.0 0c03: 1b73:1400 (rev 01) (prog-if 30 [XHCI])
        Subsystem: 1d5c:1000
        Physical Slot: 3
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 51
        Region 0: Memory at d4600000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: [50] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
                Address: 00000000feeff00c  Data: 41b1
        Capabilities: [80] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <2us, L1 <32us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        Kernel driver in use: xhci_hcd

This patch should be backported to stable kernels as old as 2.6.36, that
contain the commit f5182b4155 "xhci:
Disable MSI for some Fresco Logic hosts."

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Reported-by: A Sh <smr.ash1991@gmail.com>
Tested-by: A Sh <smr.ash1991@gmail.com>
Cc: stable@vger.kernel.org
2012-11-12 11:45:31 -08:00
..
whci USB: whci-hcd: fix NULL dereference on allocation failure 2012-08-15 15:17:39 -07:00
bcma-hcd.c usb/bcma: Add missing #include <linux/slab.h> 2012-04-23 13:22:00 -07:00
ehci-atmel.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-dbg.c USB: EHCI: remove unused Link Power Management code 2012-10-31 12:48:07 -07:00
ehci-fsl.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-fsl.h powerpc/usb: fix bug of CPU hang when missing USB PHY clock 2012-09-05 16:52:08 -07:00
ehci-grlib.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-hcd.c USB: EHCI: miscellaneous cleanups for the library conversion 2012-11-11 18:06:48 -08:00
ehci-hub.c USB: EHCI: prepare to make ehci-hcd a library module 2012-11-01 08:51:12 -07:00
ehci-mem.c USB: EHCI: use hrtimer for (s)iTD deallocation 2012-07-16 16:54:25 -07:00
ehci-msm.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-mv.c drivers/usb/host/ehci-mv.c: use devm_ functions 2012-08-10 12:01:34 -07:00
ehci-mxc.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-octeon.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-omap.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-orion.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-pci.c USB: EHCI: miscellaneous cleanups for the library conversion 2012-11-11 18:06:48 -08:00
ehci-platform.c USB: EHCI: miscellaneous cleanups for the library conversion 2012-11-11 18:06:48 -08:00
ehci-pmcmsp.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-ppc-of.c drivers/usb/host/ehci-ppc-of.c: use devm_ functions 2012-08-10 12:04:09 -07:00
ehci-ps3.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-q.c USB: EHCI: bugfix: urb->hcpriv should not be NULL 2012-11-11 18:10:45 -08:00
ehci-s5p.c usb: ehci-s5p: use clk_prepare_enable and clk_disable_unprepare 2012-10-24 14:39:06 -07:00
ehci-sched.c USB: EHCI: bugfix: urb->hcpriv should not be NULL 2012-11-11 18:10:45 -08:00
ehci-sead3.c Merge v3.6-rc3 into usb-next 2012-08-27 07:15:30 -07:00
ehci-sh.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-spear.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-sysfs.c
ehci-tegra.c USB: EHCI: remove ehci_port_power() routine 2012-10-31 12:48:07 -07:00
ehci-tilegx.c usb: add host support for the tilegx architecture 2012-07-18 16:40:29 -04:00
ehci-timer.c USB: EHCI: convert warning messages to debug-level 2012-09-21 09:37:53 -07:00
ehci-vt8500.c USB: EHCI: remove unused Link Power Management code 2012-10-31 12:48:07 -07:00
ehci-w90x900.c usb: "ehci-w90x900" Fix a typo and add some whitespace. 2012-10-24 14:51:22 -07:00
ehci-xilinx-of.c drivers/usb/host/ehci-xilinx-of.c: use devm_ functions 2012-08-10 12:04:10 -07:00
ehci.h USB: EHCI: miscellaneous cleanups for the library conversion 2012-11-11 18:06:48 -08: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: use list_move_tail instead of list_del/list_add_tail 2012-09-05 16:55:18 -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 support for USB controller version 2.4 2012-09-21 09:43:55 -07:00
hwa-hc.c
imx21-dbg.c
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 ARM: imx: move platform_data definitions 2012-09-14 11:17:21 +02:00
isp116x-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
isp116x.h
isp1362-hcd.c USB: isp1362-hcd.c: usb message always saved in case of underrun 2012-08-10 11:49:13 -07: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
isp1760-if.c USB: isp1760-if: Change to use irq_of_parse_and_map 2012-10-25 11:51:52 -07:00
Kconfig USB: EHCI: make ehci-platform a separate driver 2012-11-01 08:51:13 -07:00
Makefile USB: EHCI: make ehci-platform a separate driver 2012-11-01 08:51:13 -07:00
octeon2-common.c
ohci-at91.c USB: ohci: merge ohci_finish_controller_resume with ohci_resume 2012-10-22 11:23:59 -07:00
ohci-da8xx.c ARM: davinci: move platform_data definitions 2012-09-14 11:16:54 +02:00
ohci-dbg.c USB: ohci-dbg.c: remove dbg() usage 2012-05-01 21:33:37 -07:00
ohci-ep93xx.c USB: ohci: merge ohci_finish_controller_resume with ohci_resume 2012-10-22 11:23:59 -07:00
ohci-exynos.c USB: ohci-exynos: initialize registers pointer earlier 2012-11-02 09:25:20 -07:00
ohci-hcd.c USB: OHCI: remove Alchemy OHCI platform driver. 2012-10-22 11:29:12 -07:00
ohci-hub.c USB: ohci: merge ohci_finish_controller_resume with ohci_resume 2012-10-22 11:23:59 -07:00
ohci-jz4740.c
ohci-mem.c
ohci-nxp.c ARM: soc: general cleanups 2012-10-01 18:19:05 -07:00
ohci-octeon.c
ohci-omap.c USB: ohci: merge ohci_finish_controller_resume with ohci_resume 2012-10-22 11:23:59 -07:00
ohci-omap3.c
ohci-pci.c USB: ohci: move ohci_pci_{suspend,resume} to ohci-hcd.c 2012-10-22 11:23:59 -07:00
ohci-platform.c USB: OHCI: make ohci-platform use devm_request_and_ioremap helper 2012-10-22 11:30:26 -07:00
ohci-ppc-of.c USB: ohci-ppc-of.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: ohci: merge ohci_finish_controller_resume with ohci_resume 2012-10-22 11:23:59 -07:00
ohci-q.c OHCI: implement new semantics for URB_ISO_ASAP 2012-10-22 11:10:24 -07:00
ohci-s3c2410.c USB: ohci-s3c2410: use devm_ functions 2012-10-24 14:40:50 -07:00
ohci-sa1111.c USB: ohci-sa1111.c: remove dbg() usage 2012-05-01 21:33:39 -07:00
ohci-sm501.c USB: OHCI: sm501: fix build failure after ohci_finish_controller_resume removal 2012-10-23 10:18:53 -07:00
ohci-spear.c USB: ohci: merge ohci_finish_controller_resume with ohci_resume 2012-10-22 11:23:59 -07:00
ohci-tilegx.c usb: add host support for the tilegx architecture 2012-07-18 16:40:29 -04:00
ohci-tmio.c USB: ohci: merge ohci_finish_controller_resume with ohci_resume 2012-10-22 11:23:59 -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 ehci: Add yet-another Lucid nohandoff pci quirk 2012-10-25 11:43:44 -07:00
pci-quirks.h usb: host: xhci: fix compilation error for non-PCI based stacks 2012-09-05 12:26:11 -07:00
r8a66597-hcd.c USB: hub_for_each_child should skip unconnected ports 2012-10-24 14:51:21 -07:00
r8a66597.h usb/host/r8a66597: remove conditional compilation of clk code 2012-07-30 17:25:12 -07:00
sl811-hcd.c drivers/usb/host/sl811-hcd.c: removes unnecessary semicolon 2012-09-13 21:48:48 -07:00
sl811.h
sl811_cs.c
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
uhci-grlib.c
uhci-hcd.c ARM: vt8500: Add support for UHCI companion controller 2012-08-16 14:00:37 -07:00
uhci-hcd.h
uhci-hub.c UHCI: hub_status_data should indicate if ports are resuming 2012-04-09 15:43:21 -07:00
uhci-pci.c
uhci-platform.c usb: Missing dma_mask in uhci-platform.c when probed from device-tree 2012-10-17 13:42:29 -07:00
uhci-q.c UHCI: implement new semantics for URB_ISO_ASAP 2012-10-22 11:10:24 -07:00
xhci-dbg.c xhci: trivial: Remove assigned but unused slot_ctx. 2012-10-25 13:13:48 -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/xhci: Remove (__force__ __u16) before assigning DeviceRemovable and assign directly. 2012-10-22 13:26:48 -07:00
xhci-mem.c xhci: fix null-pointer dereference when destroying half-built segment rings 2012-11-12 11:45:29 -08:00
xhci-pci.c xhci: Extend Fresco Logic MSI quirk. 2012-11-12 11:45:31 -08:00
xhci-plat.c usb: host: xhci-plat: use ioremap_nocache 2012-09-05 12:07:19 -07:00
xhci-ring.c xHCI: Fix TD Size calculation on 1.0 hosts. 2012-11-12 11:45:28 -08:00
xhci.c xhci: Fix conditional check in bandwidth calculation. 2012-11-12 11:45:26 -08:00
xhci.h xhci: Avoid global symbol pollution with handshake. 2012-11-12 11:44:25 -08:00