linux/drivers/usb/chipidea
Peter Chen aa7381876c usb: chipidea: add system interface for ttctrl.ttha
In chipidea IP RTL, there is a very limited design for siTD, the detail
like below:
There is no Max Packet Size at siTD, so it uses one constant for both
Max Packet Size for packet and the packet size for the last transaction
when considering schedule.
If the ttctrl.ttha does not match against Hub Address field in siTD,
this constant is 188 bytes, else this constant is 1023 bytes.

If the ttctrl.ttha is non-zero value, RTL will use 188 as this constant,
so it will lose the data if the packet size is larger than 188 bytes, eg,
if we playback a wav which format is 48khz, 16 bits, 2 channels, the
packet size will be 192bytes, but the controller will only send 188 bytes
for this packet, the noise will be heared using USB audio card.
The use case is single transaction, but higher frame rate.

If the ttctr.ttha is zero value, we can send 1023 bytes within one
transaction, but the controller will not accept the coming tranaction
if it considers the schedule time is less than 1023 bytes. So the
limitation is we can't schedule as many as transactions within frame.
If the total bytes is already 256 bytes for previous transactions within
frame, it can't accept another transaction. The use case is multiple
transactions, but less frame rate.

Signed-off-by: Peter Chen <peter.chen@nxp.com>
2016-02-29 13:37:51 +08:00
..
bits.h usb: chipidea: add tx/rx burst size configuration interface 2015-08-14 10:03:58 +08:00
ci.h usb: chipidea: support debugfs without CONFIG_USB_CHIPIDEA_DEBUG 2015-12-24 14:15:26 +08:00
ci_hdrc_imx.c usb: chipidea: add CI_HDRC_TURN_VBUS_EARLY_ON for imx23 2016-02-29 13:37:50 +08: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: msm: Use posted data writes on AHB 2015-12-01 14:57:12 -08:00
ci_hdrc_pci.c chipidea: ci_hdrc_pci: use PCI_VDEVICE() instead of PCI_DEVICE() 2015-10-22 09:36:22 +08:00
ci_hdrc_usb2.c usb: chipidea: add xilinx zynq platform data 2015-09-15 16:08:49 +08: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
core.c usb: chipidea: add system interface for ttctrl.ttha 2016-02-29 13:37:51 +08:00
debug.c chipidea: error on overflow for port_test_write 2016-02-20 20:15:57 -08:00
host.c usb: chipidea: host: set host to be null after hcd is freed 2015-12-24 14:17:58 +08:00
host.h usb: chipidea: ehci_init_driver is intended to call one time 2015-07-22 08:03:41 +08:00
Kconfig usb: chipidea: delete static debug support 2015-12-24 14:15:26 +08:00
Makefile usb: chipidea: delete static debug support 2015-12-24 14:15:26 +08:00
otg.c usb: chipidea: otg: don't wait vbus drops below BSV when starts host 2015-10-22 09:36:23 +08:00
otg.h usb: chipidea: using one inline function to cover queue work operations 2014-05-23 11:35:02 +09:00
otg_fsm.c usb: chipidea: otg: use usb autosuspend to suspend bus for HNP 2015-12-24 14:18:07 +08:00
otg_fsm.h kbuild: Allow to specify composite modules with modname-m 2015-11-25 11:23:25 +01:00
udc.c usb: chipidea: udc: remove unused value assignment 2016-02-29 13:37:50 +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: fix a possible NULL dereference 2015-11-18 15:27:12 +08:00