u-boot-brain/drivers
Marek Vasut 02b0e1a36c usb: ehci-hcd: Keep async schedule running
Profiling the EHCI driver shows a significant performance problem in
ehci_submit_async(). Specifically, this function keeps enabling and
disabling async schedule back and forth for every single transaction.
However, enabling/disabling the async schedule does not take effect
immediatelly, but instead may take up to 1 mS (8 uFrames) to complete.

This impacts USB storage significantly, esp. since the recent reduction
of maximum transfer size to support more USB storage devices. This in
turn results in sharp increase in the number of ehci_submit_async()
calls. Since one USB storage BBB transfer does three such calls and
the maximum transfer size is 120 kiB, the overhead is 6 mS per 120 kiB,
which is unacceptable.

However, this overhead can be removed simply by keeping the async
schedule running. Specifically, the first transfer starts the async
schedule and then each and every subsequent transfer only adds a new
QH into that schedule, waits until the QH is completed and does NOT
disable the async schedule. The async schedule is stopped only by
shutting down the controller, which must happen before moving out
of U-Boot, otherwise the controller will corrupt memory.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
2019-10-31 12:13:40 +01:00
..
adc adc: stm32: Fix warnings when compiling with W=1 2019-07-12 11:50:55 +02:00
ata ata: ahci: Don't forget to clear upper address regs. 2019-10-11 10:10:19 -04:00
axi drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
bios_emulator bios_emulator: remove stray break 2019-08-09 22:24:02 +08:00
block dm: core: Add device_foreach_child() 2019-10-08 13:57:39 +08:00
board board: gazerbeam: Fix SC detection 2019-05-21 08:03:38 +02:00
bootcount env: Drop environment.h header file where not needed 2019-08-11 16:43:41 -04:00
cache dm: cache: add v5l2 cache controller driver 2019-09-03 09:31:03 +08:00
clk Merge tag 'u-boot-clk-23Oct2019' of https://gitlab.denx.de/u-boot/custodians/u-boot-clk 2019-10-30 13:13:46 -04:00
core drivers: clk: Fix using assigned-clocks in the node of the clock it sets up 2019-10-22 16:14:05 +02:00
cpu imx8: move i.MX8 cpu desc code to drivers/cpu/imx8_cpu.c 2019-10-08 16:35:59 +02:00
crypto drivers: crypto: rsa_mod_exp: Add manual relocation for ops->mod_exp() 2019-10-24 13:37:02 +02:00
ddr ddr: imx8m: Fix the ddr init hang on imx8mq 2019-10-08 16:36:37 +02:00
demo SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu dfu: add callback for flush and initiated operation 2019-10-31 12:12:31 +01:00
dma CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
fastboot env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00
firmware firmware: zynqmp: Clean up zynqmp_power_probe 2019-10-24 13:37:01 +02:00
fpga arm64: zynqmp: Convert invoke_smc() to xilinx_pm_request() 2019-10-24 13:37:01 +02:00
gpio gpio: zynq: Add gpio driver support for PMC gpio 2019-10-24 13:37:01 +02:00
hwspinlock hwspinlock: add stm32 hardware spinlock support 2018-12-06 23:26:33 -05:00
i2c i2c: imx_lpi2c: add ipg clk 2019-10-14 09:31:41 +02:00
input env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00
led led: bcm6858: allow to use this driver on ARCH_963158 2019-04-23 17:57:22 -04:00
mailbox mailbox: zynqmp: ipi mailbox driver 2019-10-08 09:55:11 +02:00
memory SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
misc misc: microchip_flexcom: introduce microchip_flexcom driver 2019-10-24 13:01:57 +03:00
mmc mmc: fsl_esdhc: drop i.MX DDR support code 2019-10-29 10:09:22 +08:00
mtd Merge tag 'u-boot-clk-23Oct2019' of https://gitlab.denx.de/u-boot/custodians/u-boot-clk 2019-10-30 13:13:46 -04:00
net net: mt7628-eth: add support to isolate LAN/WAN ports 2019-10-25 17:20:44 +02:00
nvme nvme: add accessor to namespace id and eui64 2019-10-06 16:02:37 +02:00
pch x86: Allow the PCH and LPC uclasses to work with of-platdata 2019-10-08 13:57:48 +08:00
pci Merge https://gitlab.denx.de/u-boot/custodians/u-boot-x86 2019-10-12 10:52:48 -04:00
pci_endpoint pci_ep: Fix Coverity warning 2019-08-07 15:31:04 -04:00
phy - bmips: add BCRM NAND support for BCM6368, BCM6328, BCM6362 and BCM63268 SoCs 2019-10-25 20:07:24 -04:00
pinctrl pinctrl: add support for MediaTek MT7628 2019-10-25 17:20:44 +02:00
power power: domain: add Amlogic Everything-Else power domain driver 2019-10-18 14:33:21 +02:00
pwm pwm: imx: add DM_PWM support 2019-07-19 20:14:50 +02:00
qe env: Drop environment.h header file where not needed 2019-08-11 16:43:41 -04:00
ram ram: k3-j721e: Add support for J721E DDR controller 2019-10-25 17:33:21 -04:00
remoteproc remoteproc: k3_arm64: Enable DM_FLAG_DEFAULT_PD_CTRL_OFF 2019-10-15 08:40:03 -06:00
reset reset: add reset controller driver for MediaTek MIPS platform 2019-10-25 17:20:44 +02:00
rtc rtc: ds3231/ds3232: fix coding style 2019-09-19 12:18:53 -04:00
scsi scsi: Add dma direction member to command structure 2019-10-23 20:47:12 -04:00
serial serial: serial_mtk: add non-DM version for SPL 2019-10-25 17:20:43 +02:00
smem drivers: smem: sandbox 2018-07-19 16:31:38 -04:00
soc soc: ti: k3-navss-ringacc: fix k3_nav_ringacc_ring_reset_dma 2019-09-13 11:56:08 -04:00
sound sound: tegra: Add a sound driver 2019-05-24 10:14:10 -07:00
spi Merge https://gitlab.denx.de/u-boot/custodians/u-boot-sunxi 2019-10-30 09:04:52 -04:00
spmi SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sysreset x86: Move acpi_s3.h to a common location 2019-10-08 13:57:46 +08:00
tee env: Drop the ACTION typedef 2019-08-11 16:43:41 -04:00
thermal thermal: add i.MX8 thermal driver 2019-07-19 15:17:05 +02:00
timer dm: timer: Skip device that does not have a valid ofnode in pre_probe() 2019-07-24 12:54:08 -07:00
tpm tpm2: Don't assume active low reset value 2019-10-15 08:40:02 -06:00
ufs ufs: Add glue layer driver for TI J721E devices 2019-10-23 20:47:12 -04:00
usb usb: ehci-hcd: Keep async schedule running 2019-10-31 12:13:40 +01:00
video video: meson: add compatible for Amlogic G12A 2019-10-18 11:45:36 +02:00
virtio virtio: Add a Sandbox transport driver 2018-11-14 09:16:28 -08:00
w1 w1: Add driver for i.MX bus master controller 2019-01-01 14:12:18 +01:00
w1-eeprom w1-eeprom: Add support for Maxim DS2502 add only memory 2018-11-16 16:51:55 -05:00
watchdog watchdog: move WATCHDOG_TIMEOUT_MSECS to Kconfig 2019-10-08 07:46:38 +02:00
Kconfig ufs: Add Initial Support for UFS subsystem 2019-10-23 20:47:12 -04:00
Makefile ufs: Add Initial Support for UFS subsystem 2019-10-23 20:47:12 -04:00