linux/drivers/usb/dwc2
Douglas Anderson 8add17cf8e usb: dwc2: host: Giveback URB in tasklet context
In commit 94dfd7edfd ("USB: HCD: support giveback of URB in tasklet
context") support was added to give back the URB in tasklet context.
Let's take advantage of this in dwc2.

This speeds up the dwc2 interrupt handler considerably.

Note that this requires the change ("usb: dwc2: host: Add a delay before
releasing periodic bandwidth") to come first.

Note that, as per Alan Stern in
<https://patchwork.kernel.org/patch/7555771/>, we also need to make sure
that the extra delay before the device drivers submit more data doesn't
break the scheduler.  At the moment the scheduler is pretty broken (see
future patches) so it's hard to be 100% certain, but I have yet to see
any new breakage introduced by this delay.  ...and speeding up interrupt
processing for dwc2 is a huge deal because it means we've got a better
chance of not missing SOF interrupts.  That means we've got an overall
win here.

Note that when playing USB audio and using a USB webcam and having
several USB keyboards plugged in, the crackling on the USB audio device
is noticably reduced with this patch.

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>
2016-03-04 15:14:41 +02:00
..
core_intr.c usb: dwc2: host: Clear interrupts before handling them 2015-12-15 09:12:41 -06:00
core.c usb: dwc2: host: fix split transfer schedule sequence 2016-03-04 15:14:40 +02:00
core.h usb: dwc2: host: Add scheduler tracing 2016-03-04 15:14:41 +02:00
debug.h usb: dwc2: move debugfs code to a separate file 2015-04-29 15:18:25 -05:00
debugfs.c usb: dwc2: Use platform endianness when accessing registers 2015-09-27 10:54:31 -05:00
gadget.c usb: dwc2: gadget: Repair DSTS register decoding 2015-12-22 12:03:05 -06:00
hcd_ddma.c usb: dwc2: host: Always add to the tail of queues 2016-03-04 15:14:40 +02:00
hcd_intr.c usb: dwc2: host: Add scheduler tracing 2016-03-04 15:14:41 +02:00
hcd_queue.c usb: dwc2: host: Add a delay before releasing periodic bandwidth 2016-03-04 15:14:41 +02:00
hcd.c usb: dwc2: host: Giveback URB in tasklet context 2016-03-04 15:14:41 +02:00
hcd.h usb: dwc2: host: Add a delay before releasing periodic bandwidth 2016-03-04 15:14:41 +02:00
hw.h usb: dwc2: host: fix descriptor list address masking 2015-12-15 09:12:41 -06:00
Kconfig usb: dwc2: USB_DWC2 should depend on HAS_DMA 2016-02-20 20:23:02 -08:00
Makefile usb: dwc2: remove dwc2_platform.ko 2015-04-29 15:20:11 -05:00
pci.c usb: dwc2: pci: Add device mode to the dwc2-pci driver 2015-03-11 15:08:17 -05:00
platform.c usb: dwc2: host: Set host_rx_fifo_size to 525 for rk3066 2016-03-04 15:14:39 +02:00