linux/drivers/usb/host
Roger Quadros 69307ccb9a usb: xhci: bInterval quirk for TI TUSB73x0
As per [1] issue #4,
"The periodic EP scheduler always tries to schedule the EPs
that have large intervals (interval equal to or greater than
128 microframes) into different microframes. So it maintains
an internal counter and increments for each large interval
EP added. When the counter is greater than 128, the scheduler
rejects the new EP. So when the hub re-enumerated 128 times,
it triggers this condition."

This results in Bandwidth error when devices with periodic
endpoints (ISO/INT) having bInterval > 7 are plugged and
unplugged several times on a TUSB73x0 XHCI host.

Workaround this issue by limiting the bInterval to 7
(i.e. interval to 6) for High-speed or faster periodic endpoints.

[1] - http://www.ti.com/lit/er/sllz076/sllz076.pdf

Cc: stable <stable@vger.kernel.org>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-08 12:17:42 +02:00
..
whci whci: Remove deprecated create_singlethread_workqueue 2016-08-15 16:25:58 +02:00
bcma-hcd.c USB: bcma: drop Northstar PHY 2.0 initialization code 2016-09-27 12:20:17 +02:00
ehci-atmel.c usb: ehci-atmel: use __maybe_unused to hide pm functions 2016-03-03 20:37:41 -08:00
ehci-dbg.c usb: add CONFIG_USB_PCI for system have both PCI HW and non-PCI based USB HW 2017-03-17 13:16:56 +09:00
ehci-exynos.c usb: host: ehci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths 2017-01-10 17:00:42 +01:00
ehci-fsl.c usb: ehci: fsl: use bus->sysdev for DMA configuration 2017-03-23 08:20:21 +01:00
ehci-fsl.h
ehci-grlib.c
ehci-hcd.c usb: host: Remove remaining pci_pool in comments 2017-03-16 18:03:31 +09:00
ehci-hub.c fsl/usb: Workarourd for USB erratum-A005697 2016-12-05 15:13:58 +01:00
ehci-mem.c usb: ehci: use bus->sysdev for DMA configuration 2017-03-23 08:20:21 +01:00
ehci-msm.c usb: host: ehci-msm: Conditionally call ehci suspend/resume 2016-06-07 22:15:25 -07:00
ehci-mv.c
ehci-mxc.c
ehci-omap.c usb/host/: const data must use __initconst not __initdata 2016-04-28 12:35:36 -07:00
ehci-orion.c usb: orion-ehci: Add support for the Armada 3700 2017-03-17 13:32:59 +09:00
ehci-pci.c USB: EHCI: merge all cases that disable the IO watchdog 2016-10-24 14:36:25 +02:00
ehci-platform.c usb: host: ehci-platform: set hcd->phy to avoid phy_get() in usb_add_hcd() 2017-03-17 13:35:25 +09:00
ehci-pmcmsp.c
ehci-ppc-of.c
ehci-ps3.c
ehci-q.c usb: host: ehci: remove unnecessary max_packet() macro 2016-11-03 10:38:24 +02:00
ehci-sched.c usb: host: ehci: remove unnecessary max_packet() macro 2016-11-03 10:38:24 +02:00
ehci-sh.c
ehci-spear.c usb/host/: const data must use __initconst not __initdata 2016-04-28 12:35:36 -07:00
ehci-st.c usb: host: ehci-st: Inform the reset framework that our reset line may be shared 2016-06-30 07:44:21 +01:00
ehci-sysfs.c
ehci-tegra.c usb: host: ehci-tegra: Avoid getting the same reset twice 2016-06-07 22:15:25 -07:00
ehci-tilegx.c
ehci-timer.c ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
ehci-w90x900.c USB: EHCI: ehci-w90x900: remove unuseful functions 2016-11-29 17:36:43 +01:00
ehci-xilinx-of.c
ehci.h fsl/usb: Workarourd for USB erratum-A005697 2016-12-05 15:13:58 +01:00
fhci-dbg.c
fhci-hcd.c usb: host: fhci-hcd: don't print on ENOMEM 2016-08-30 19:17:37 +02:00
fhci-hub.c QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
fhci-mem.c
fhci-q.c
fhci-sched.c USB: FHCI: avoid redundant condition 2016-05-09 13:08:46 +02:00
fhci-tds.c usb: whci: fhci: remove comparison to bool 2015-12-04 08:25:58 -08:00
fhci.h QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
fotg210-hcd.c usb: host: Remove remaining pci_pool in comments 2017-03-16 18:03:31 +09:00
fotg210.h usb/host/fotg210: Fix coding style issues 2015-10-16 23:46:22 -07:00
fsl-mph-dr-of.c fsl/usb: Workarourd for USB erratum-A005697 2016-12-05 15:13:58 +01:00
hwa-hc.c
imx21-dbg.c
imx21-hcd.c
imx21-hcd.h
isp116x-hcd.c
isp116x.h
isp1362-hcd.c usb: Convert pr_warning to pr_warn 2016-11-03 10:38:36 +02:00
isp1362.h
Kconfig usb: host: Allow to build ehci orion with mvebu SoCs 2017-03-17 13:32:59 +09:00
Makefile usb: add CONFIG_USB_PCI for system have both PCI HW and non-PCI based USB HW 2017-03-17 13:16:56 +09:00
max3421-hcd.c usb: host: max3421-hcd: don't print on ENOMEM 2016-08-30 19:17:37 +02:00
ohci-at91.c usb: ohci-at91: Do not drop unhandled USB suspend control requests 2017-03-09 10:22:08 +01:00
ohci-da8xx.c USB: ohci: da8xx: Resume the entire host controller 2016-11-29 17:31:36 +01:00
ohci-dbg.c
ohci-exynos.c usb: host: ohci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths 2017-01-10 17:00:42 +01:00
ohci-hcd.c ohci-pci: add qemu quirk 2017-03-23 08:13:21 +01:00
ohci-hub.c ohci-hub: fix typo in dbg_port macro 2017-02-10 12:20:57 +01:00
ohci-mem.c USB: OHCI: use dma_pool_zalloc 2016-11-21 17:33:40 +01:00
ohci-nxp.c USB: OHCI: nxp: fix code warnings 2016-12-08 17:50:09 +01:00
ohci-omap3.c
ohci-omap.c USB: ohci-omap: defer probe if PHY is missing 2017-01-10 17:00:41 +01:00
ohci-pci.c ohci-pci: add qemu quirk 2017-03-23 08:13:21 +01:00
ohci-platform.c usb: host: ohci-platform: set hcd->phy to avoid phy_get() in usb_add_hcd() 2017-03-17 13:35:25 +09:00
ohci-ppc-of.c
ohci-ps3.c
ohci-pxa27x.c USB: OHCI: ohci-pxa27x: remove useless functions 2016-12-05 16:32:51 +01:00
ohci-q.c USB: OHCI: Don't mark EDs as ED_OPER if scheduling fails 2016-06-07 22:15:25 -07:00
ohci-s3c2410.c USB: OHCI: ohci-s3c2410: remove useless functions 2016-12-05 16:32:51 +01:00
ohci-sa1111.c usb: ohci-sa1111: remove mach/hardware.h include 2016-08-30 19:24:59 +02:00
ohci-sm501.c
ohci-spear.c usb: host: ohci-spear: Fix module autoload for OF platform driver 2015-10-04 10:51:58 +01:00
ohci-st.c usb: host: ohci-st: Inform the reset framework that our reset line may be shared 2016-06-30 07:44:20 +01:00
ohci-tilegx.c
ohci-tmio.c
ohci.h ohci-pci: add qemu quirk 2017-03-23 08:13:21 +01:00
oxu210hp-hcd.c usb: host: Remove remaining pci_pool in comments 2017-03-16 18:03:31 +09:00
oxu210hp.h
pci-quirks.c drivers/usb: Skip auto handoff for TI and RENESAS usb controllers 2016-11-07 10:12:22 +01:00
pci-quirks.h usb: add CONFIG_USB_PCI for system have both PCI HW and non-PCI based USB HW 2017-03-17 13:16:56 +09:00
r8a66597-hcd.c usb: r8a66597: add locking to r8a66597_check_detect_child 2016-02-06 21:55:57 -08:00
r8a66597.h
sl811_cs.c
sl811-hcd.c
sl811.h
ssb-hcd.c
u132-hcd.c usb: host: u132-hcd: use list_for_each_entry 2016-01-24 20:55:33 -08:00
uhci-debug.c new helpers: no_seek_end_llseek{,_size}() 2015-12-23 10:41:31 -05:00
uhci-grlib.c
uhci-hcd.c usb: add CONFIG_USB_PCI for system have both PCI HW and non-PCI based USB HW 2017-03-17 13:16:56 +09:00
uhci-hcd.h usb: add CONFIG_USB_PCI for system have both PCI HW and non-PCI based USB HW 2017-03-17 13:16:56 +09:00
uhci-hub.c
uhci-pci.c USB: UHCI: report non-PME wakeup signalling for Intel hardware 2016-11-11 16:32:35 -06:00
uhci-platform.c usb: host: uhci-platform: Fix module autoload for OF platform driver 2015-10-04 10:51:58 +01:00
uhci-q.c usb : replace dma_pool_alloc and memset with dma_pool_zalloc 2015-12-01 14:26:33 -08:00
xhci-dbg.c usb: xhci: remove xhci_dbg_ctx() 2017-04-08 12:17:42 +02:00
xhci-ext-caps.h usb: host: xhci: remove unneded semicolon 2017-01-25 10:59:06 +01:00
xhci-hub.c usb: xhci: remove error messages for failed memory allocation 2017-04-08 12:17:41 +02:00
xhci-mem.c usb: xhci: bInterval quirk for TI TUSB73x0 2017-04-08 12:17:42 +02:00
xhci-mtk-sch.c usb: host: xhci: purge GET_MAX_PACKET() 2016-11-03 10:38:22 +02:00
xhci-mtk.c usb: xhci: remove dummy extra_priv_size for size of xhci_hcd struct 2017-03-09 18:00:39 +01:00
xhci-mtk.h usb: xhci-mtk: add reference clock 2017-01-19 10:37:16 +01:00
xhci-mvebu.c usb: host: xhci: plat: change type of mvebu init_quirk() 2016-04-26 16:08:02 -07:00
xhci-mvebu.h usb: host: xhci: plat: change type of mvebu init_quirk() 2016-04-26 16:08:02 -07:00
xhci-pci.c usb: xhci: bInterval quirk for TI TUSB73x0 2017-04-08 12:17:42 +02:00
xhci-plat.c usb: xhci: plat: Enable async suspend/resume 2017-04-08 12:04:42 +02:00
xhci-plat.h usb: host: xhci: plat: finally get rid of xhci_plat_type_is() 2016-04-26 16:08:02 -07:00
xhci-rcar.c usb: host: xhci: plat: add support for Renesas r8a7796 SoC 2016-11-14 10:18:22 +01:00
xhci-rcar.h usb: host: xhci: rcar: add a new firmware version for r8a7796 2016-11-14 10:18:22 +01:00
xhci-ring.c usb: xhci: remove xhci_debug_trb() 2017-04-08 12:17:42 +02:00
xhci-tegra.c usb: xhci: remove dummy extra_priv_size for size of xhci_hcd struct 2017-03-09 18:00:39 +01:00
xhci-trace.c
xhci-trace.h usb: xhci: add xhci_log_ring trace events 2017-04-08 12:17:41 +02:00
xhci.c usb: xhci: remove xhci_dbg_ctx() 2017-04-08 12:17:42 +02:00
xhci.h usb: xhci: bInterval quirk for TI TUSB73x0 2017-04-08 12:17:42 +02:00