linux/drivers/usb/chipidea
Peter Chen 2836267312 usb: chipidea: add ttctrl.ttha control interface
The register of ttctrl.ttha describes like below:
- Internal TT Hub Address Representation
- RW
- Default = 0000000b
This field is used to match against the Hub Address field in QH & siTD
to determine if the packet is routed to the internal TT for directly
attached FS/LS devices. If the Hub Address in the QH or siTD does not
match this address then the packet will be broadcast on the High Speed
ports destined for a downstream High Speed hub with the address in the QH/siTD.

In silicon RTL, this entry only affects QH and siTD, and the hub.addr at
both QH and siTD are 0 in ehci core for chipidea (with hcd->has_tt = 1).

So, for QH, if the "usage_tt" flag at RTL is 0, set CI_HDRC_SET_NON_ZERO_TTHA
will not affect QH (with non-hs device); for siTD, set this flag
will change remaining space requirement for the last transaction from 1023
bytes to 188 bytes, it can increase the number of transactions within one
frame, ehci periodic schedule code will not queue the packet if the frame space
is full, so it is safe to set this flag for siTD.

With this flag, it can fix the problem Alan Stern reported below:
http://www.spinics.net/lists/linux-usb/msg123125.html
And may fix Michael Tessier's problem too.
http://www.spinics.net/lists/linux-usb/msg118679.html

CC: stern@rowland.harvard.edu
CC: michael.tessier@axiontech.ca
Signed-off-by: Peter Chen <peter.chen@freescale.com>
2015-08-14 09:13:10 +08:00
..
bits.h usb: chipidea: add ttctrl.ttha control interface 2015-08-14 09:13:10 +08:00
ci_hdrc_imx.c usb: chipidea: add a flag for turn on vbus early for host 2015-03-18 16:19:12 +01:00
ci_hdrc_imx.h usb: chipidea: usbmisc_imx: add .set_wakeup interface 2015-03-18 16:19:09 +01:00
ci_hdrc_msm.c usb: chipidea: remove flag CI_HDRC_REQUIRE_TRANSCEIVER 2014-11-26 09:28:12 -08:00
ci_hdrc_pci.c chipidea: pci: register nop PHY 2015-03-18 16:19:11 +01:00
ci_hdrc_usb2.c usb: chipidea: allow multiple instances to use default ci_default_pdata 2015-06-09 12:20:30 -07:00
ci_hdrc_zevio.c Chipidea: TI-NSPIRE USB OTG hardware does not support high speed and must connect at full speed 2015-03-18 16:19:11 +01:00
ci.h usb: chipidea: add ttctrl.ttha control interface 2015-08-14 09:13:10 +08:00
core.c usb: chipidea: add ttctrl.ttha control interface 2015-08-14 09:13:10 +08:00
debug.c usb: chipidea: debug: avoid out of bound read 2015-05-06 14:28:18 +08:00
debug.h usb: chipidea: drop "13xxx" infix 2013-06-24 16:16:55 -07:00
host.c usb: chipidea: add ttctrl.ttha control interface 2015-08-14 09:13:10 +08:00
host.h usb: chipidea: ehci_init_driver is intended to call one time 2015-07-22 08:03:41 +08:00
Kconfig chipidea: pci: make it depends on NOP_USB_XCEIV 2015-03-26 10:54:39 +01:00
Makefile chipidea: introduce specific Kconfig options for glue drivers 2015-03-26 10:54:39 +01:00
otg_fsm.c usb: chipidea: otg: remove mutex unlock and lock while stop and start role 2015-04-28 12:51:30 +02:00
otg_fsm.h usb: chipidea: use hrtimer for otg fsm timers 2015-03-26 10:54:39 +01:00
otg.c usb: chipidea: add runtime power management support 2015-03-18 16:19:08 +01:00
otg.h usb: chipidea: using one inline function to cover queue work operations 2014-05-23 11:35:02 +09:00
udc.c usb: chipidea: udc: bypass pullup DP when gadget connect in OTG fsm mode 2015-04-08 14:13:02 +08:00
udc.h usb: chipidea: add role init and destroy APIs 2013-08-14 12:37:19 -07:00
usbmisc_imx.c usb: chipidea: usbmisc_imx: Remove unneeded semicolon 2015-06-08 10:39:38 +08:00