linux-stable/drivers/usb/core
Łukasz Bartosik 0893750551 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-11 11:45:34 +02:00
..
buffer.c
config.c
devices.c
devio.c
driver.c
endpoint.c
file.c
generic.c
hcd-pci.c
hcd.c USB: HCD: Fix URB giveback issue in tasklet function 2022-08-25 11:14:57 +02:00
hub.c USB: core: Don't hold device lock while reading the "descriptors" sysfs file 2023-03-03 11:40:08 +01:00
hub.h
Kconfig
ledtrig-usbport.c
Makefile
message.c
notify.c
of.c
otg_whitelist.h
phy.c
phy.h
port.c
quirks.c USB: quirks: add quirk for Focusrite Scarlett 2023-08-11 11:45:34 +02:00
sysfs.c USB: core: Don't hold device lock while reading the "descriptors" sysfs file 2023-03-03 11:40:08 +01:00
urb.c
usb-acpi.c
usb.c USB: core: Add routines for endpoint checks in old drivers 2023-05-30 12:42:14 +01:00
usb.h