linux/drivers/usb
Mathias Nyman edc649a823 xhci: Tune interrupt blocking for isochronous transfers
controllers with XHCI_AVOID_BEI quirk cause too frequent interrupts
and affect power management.

To avoid interrupting on every isochronous interval the BEI (Block
Event Interrupt) flag is set for all except the last Isoch TRB in a URB.
This lead to event ring filling up in case several isoc URB were
queued and cancelled rapidly, which some controllers didn't
handle well, and thus the XHCI_AVOID_BEI quirk was introduced.
see commit 227a4fd801 ("usb: xhci: apply XHCI_AVOID_BEI quirk to all
Intel xHCI controllers")

With the XHCI_AVOID_BEI quirk each Isoch TRB will trigger an interrupt.
This can cause up to 8000 interrupts per second for isochronous transfers
with HD USB3 cameras, affecting power saving.

The event ring fits 256 events, instead of interrupting on every
isochronous TRB if XHCI_AVOID_BEI is set we make sure at least every
8th Isochronous TRB asserts an interrupt, clearing the event ring.

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20200918131752.16488-9-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-09-20 16:18:00 +02:00
..
atm usb: atm: don't use snprintf() for sysfs attrs 2020-08-25 19:11:18 +02:00
c67x00 Linux 5.9-rc3 2020-08-31 07:11:45 +02:00
cdns3 usb: cdns3: convert to devm_platform_ioremap_resource_byname 2020-07-29 16:49:37 +02:00
chipidea ENDIAN issue fix and one query controller role API is introduced. 2020-07-29 13:57:09 +02:00
class USB: cdc-acm: cleanup of data structures 2020-09-17 18:52:44 +02:00
common usb: common: usb-conn-gpio: Print error on failure to get VBUS 2020-08-18 12:13:44 +02:00
core USB: core: hub.c: use usb_control_msg_send() in a few places 2020-09-16 11:02:39 +02:00
dwc2 usb: dwc2: Always disable regulators on driver teardown 2020-09-16 13:06:56 +02:00
dwc3 Revert "usb: dwc3: meson-g12a: fix shared reset control use" 2020-09-04 16:41:22 +02:00
early usb: early: xhci-dbc: File headers are not good candidates for kerneldoc 2020-07-09 17:19:59 +02:00
gadget Linux 5.9-rc3 2020-08-31 07:11:45 +02:00
host xhci: Tune interrupt blocking for isochronous transfers 2020-09-20 16:18:00 +02:00
image USB: microtek: use set_host_byte() 2020-09-16 12:42:10 +02:00
isp1760 usb: Use fallthrough pseudo-keyword 2020-07-10 08:55:17 +02:00
misc USB: adutux: fix debugging 2020-09-17 18:52:40 +02:00
mon USB: mon: Use scnprintf() for avoiding potential buffer overflow 2020-03-12 09:49:28 +01:00
mtu3 usb: mtu3: Remove unsused inline function is_first_entry 2020-08-18 12:11:55 +02:00
musb treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
phy usb: phy: phy-ab8500-usb: fix spello of "function" 2020-09-14 16:50:48 +02:00
renesas_usbhs usb: Use fallthrough pseudo-keyword 2020-07-10 08:55:17 +02:00
roles usb: roles: Switch on role-switch uevent reporting 2020-05-13 14:20:49 +02:00
serial Merge 5.9-rc5 into usb-next 2020-09-14 10:10:55 +02:00
storage USB: UAS: use macro for reporting results 2020-09-16 12:43:35 +02:00
typec usb: typec: tcpci: update ROLE_CONTROL for DRP 2020-09-16 13:03:50 +02:00
usbip usbip: simplify the return expression of usbip_core_init() 2020-09-16 10:54:49 +02:00
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile
usb-skeleton.c