WSL2-Linux-Kernel/drivers/usb/core
Łukasz Bartosik 3af06a8502 USB: quirks: add quirk for Focusrite Scarlett
commit 9dc162e223 upstream.

The Focusrite Scarlett audio device does not behave correctly during
resumes. Below is what happens during every resume (captured with
Beagle 5000):

<Suspend>
<Resume>
<Reset>/<Chirp J>/<Tiny J>
<Reset/Target disconnected>
<High Speed>

The Scarlett disconnects and is enumerated again.

However from time to time it drops completely off the USB bus during
resume. Below is captured occurrence of such an event:

<Suspend>
<Resume>
<Reset>/<Chirp J>/<Tiny J>
<Reset>/<Chirp K>/<Tiny K>
<High Speed>
<Corrupted packet>
<Reset/Target disconnected>

To fix the condition a user has to unplug and plug the device again.

With USB_QUIRK_RESET_RESUME applied ("usbcore.quirks=1235:8211:b")
for the Scarlett audio device the issue still reproduces.

Applying USB_QUIRK_DISCONNECT_SUSPEND ("usbcore.quirks=1235:8211:m")
fixed the issue and the Scarlett audio device didn't drop off the USB
bus for ~5000 suspend/resume cycles where originally issue reproduced in
~100 or less suspend/resume cycles.

Signed-off-by: Łukasz Bartosik <lb@semihalf.com>
Cc: stable <stable@kernel.org>
Link: https://lore.kernel.org/r/20230724112911.1802577-1-lb@semihalf.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-08-03 10:22:42 +02:00
..
Kconfig
Makefile
buffer.c usb: usbfs: Enforce page requirements for mmap 2023-06-14 11:13:07 +02:00
config.c
devices.c
devio.c usb: hide unused usbfs_notify_suspend/resume functions 2023-07-23 13:47:23 +02:00
driver.c
endpoint.c
file.c
generic.c
hcd-pci.c
hcd.c
hub.c USB: core: Don't hold device lock while reading the "descriptors" sysfs file 2023-03-03 11:45:54 +01:00
hub.h
ledtrig-usbport.c
message.c
notify.c
of.c
otg_productlist.h
phy.c
phy.h
port.c
quirks.c USB: quirks: add quirk for Focusrite Scarlett 2023-08-03 10:22:42 +02:00
sysfs.c USB: core: Don't hold device lock while reading the "descriptors" sysfs file 2023-03-03 11:45:54 +01:00
urb.c
usb-acpi.c
usb.c USB: core: Add routines for endpoint checks in old drivers 2023-05-30 13:55:31 +01:00
usb.h