]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
usb: chipidea: introduce ITC tuning interface
authorPeter Chen <peter.chen@freescale.com>
Mon, 22 Sep 2014 08:45:39 +0000 (16:45 +0800)
committerPeter Chen <peter.chen@freescale.com>
Fri, 14 Aug 2015 01:13:11 +0000 (09:13 +0800)
commitdf96ed8dced21426c54c7f69cf7513e75280957a
tree863774459f0a85a6487545fe8bc8c9e0a899c525
parent1bd57127d4aaff518cf93f4809ec2f11b2baf865
usb: chipidea: introduce ITC tuning interface

ITC (Interrupt Threshold Control) is used to set the maximum rate at which
the host/device controller will issue interrupts. The default value is 8 (1ms)
for it. EHCI core will modify it to 1, but device mode keeps it as default
value.

In some use cases like Android ADB, it only has one usb request for each
direction, and maximum payload data is only 4KB, so the speed is 4MB/s
at most, it needs controller to trigger interrupt as fast as possible
to increase the speed. The USB performance will be better if the interrupt
can be triggered faster.

Reduce ITC value is benefit for USB performance, but the interrupt number
is increased at the same time, it may increase cpu utilization too.
Most of use case cares about performance, but some may care about
cpu utilization, so, we leave a platform interface for user.
We set ITC as 1 (1 micro-frame) as default value which is aligned
with ehci core default value.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
drivers/usb/chipidea/core.c
include/linux/usb/chipidea.h