rv1126-uboot/drivers
Marek Vasut db0e15c2c3 UPSTREAM: 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.

Change-Id: I33a5eccac2579be09c5f1c9385ae245e680bc125
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
(cherry picked from commit 02b0e1a36c5bc20174299312556ec4e266872bd6)
2020-01-07 17:25:02 +08:00
..
adc
ata
bios_emulator
block dm: blk: fix spi flash uclass different error when use mtd block 2019-10-09 09:13:21 +08:00
bootcount
clk UPSTREAM: clk: add sandbox test for bulk API 2020-01-07 17:24:50 +08:00
core dm: cmd: add "dm aliases" support 2019-12-16 21:01:05 +08:00
cpu
crypto crypto: rockchip: v1: add address print for aligned failed message 2019-12-17 15:05:18 +08:00
ddr
demo
dfu
dma
firmware
fpga
gpio
i2c dm: i2c: add alias seq print 2019-09-20 15:54:43 +08:00
input driver: core/input: treat 'u-boot,dm-spl' as 'u-boot,dm-pre-reloc' 2019-10-24 10:52:45 +08:00
irq irq: virq: add parent irq enable/disable management 2019-10-23 11:12:30 +08:00
led
mailbox
memory
misc misc: rockchip-otp: support read & write secure otp 2019-08-23 09:16:14 +08:00
mmc dm: mmc: support get MMC order through aliases in spl process 2019-07-29 15:35:17 +08:00
mtd mtd: spinand: support GD5F2GQ4UExxG 2019-11-15 09:09:30 +08:00
net UPSTREAM: armv8: ls1043a/ls2080a: check SoC by device ID 2020-01-07 17:24:46 +08:00
nvme
pch
pci
pcmcia
phy
pinctrl pinctrl: rockchip: use flat device tree to find the node in spl 2019-11-11 09:46:07 +08:00
power power: io-domain: Don't printf sudev->name when get regulator failed 2019-11-27 11:30:07 +08:00
pwm
qe
ram driver: ram: rockchip: fix some soc can not use sdram_common api 2019-11-29 18:28:14 +08:00
remoteproc
reset UPSTREAM: reset: add sandbox test for bulk API 2020-01-07 17:24:50 +08:00
rkflash rkflash: support SPI Nor gpt update 2019-12-20 10:06:59 +08:00
rknand drivers: rknand: add support Micron B05A and B16A 2019-09-26 14:13:14 +08:00
rtc
scsi
serial dm: serial: add "serial_dev_" API for normal serial device 2019-12-20 20:54:18 +08:00
soc
sound
spi rockchip: drivers: spi: add compatible info for rk3328 and rk3066 2019-12-06 14:28:32 +08:00
spmi
sysreset dm: sysreset: support mode args for reboot/reset command 2019-11-12 19:34:04 +08:00
thermal
timer
tpm
usb UPSTREAM: usb: ehci-hcd: Keep async schedule running 2020-01-07 17:25:02 +08:00
video video/drm: analogix_dp: Workaround async issue between pclk clock and 24m clock 2020-01-02 17:14:31 +08:00
watchdog
Kconfig
Makefile UPSTREAM: spl: Kconfig: Drop the _SUPPORT postfix from SPL_DFU 2020-01-07 17:24:56 +08:00