summaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget
diff options
context:
space:
mode:
authorDouglas Anderson <dianders@chromium.org>2015-11-11 10:33:52 -0800
committerFelipe Balbi <balbi@ti.com>2015-12-15 09:12:41 -0600
commit69b76cdff592058ea445cd40e18c75dffaba4cb9 (patch)
tree2f6b280c1c4ee89f93376f0ccd666f51adcd6786 /drivers/usb/gadget
parent6a6595318ac2dd169d2931a1d9431a64f4ada75c (diff)
downloadblackbird-op-linux-69b76cdff592058ea445cd40e18c75dffaba4cb9.tar.gz
blackbird-op-linux-69b76cdff592058ea445cd40e18c75dffaba4cb9.zip
usb: dwc2: host: Support immediate retries for split transactions
In some cases, like when you've got a "Microsoft Wireless Keyboard 2000" connected to dwc2 with a hub, expected that we'll get some transfer errors sometimes. The controller is expected to try at least 3 times before giving up. See figure "Figure A-67. Normal HS CSPLIT 3 Strikes Smash" in the USB spec. The dwc2 controller has a way to support this by using the "EC_MC" field. The Raspberry Pi driver has logic for setting this right. See fiq_fsm_queue_split_transaction() in their "dwc_otg_hcd.c". Let's use the same logic. After making this change, we no longer get dropped characters from the above mentioned keyboard. Other devices on the same bus as the keyboard also behave more properly. Thanks for Julius Werner for the expert analysis and suggestions. Acked-by: John Youn <johnyoun@synopsys.com> Signed-off-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/gadget')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud