]> git.baikalelectronics.ru Git - kernel.git/commit
usb: dwc2: host: Totally redo the microframe scheduler
authorDouglas Anderson <dianders@chromium.org>
Fri, 29 Jan 2016 02:20:12 +0000 (18:20 -0800)
committerFelipe Balbi <balbi@kernel.org>
Fri, 4 Mar 2016 13:14:45 +0000 (15:14 +0200)
commit31e7eefd575a3bdcf97c9605215c8bda888b4bc6
tree934d7d7ccbcf1e53d7fbc3a01418eb62fbfcb4ca
parent643ac07a6199ae7a1622b487b888df46fb911965
usb: dwc2: host: Totally redo the microframe scheduler

This totally reimplements the microframe scheduler in dwc2 to attempt to
handle periodic splits properly.  The old code didn't even try, so this
was a significant effort since periodic splits are one of the most
complicated things in USB.

I've attempted to keep the old "don't use the microframe" schduler
around for now, but not sure it's needed.  It has also only been lightly
tested.

I think it's pretty certain that this scheduler isn't perfect and might
have some bugs, but it seems much better than what was there before.
With this change my stressful USB test (USB webcam + USB audio + some
keyboards) crackles less.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/dwc2/core.h
drivers/usb/dwc2/hcd.c
drivers/usb/dwc2/hcd.h
drivers/usb/dwc2/hcd_queue.c