linux-stable/drivers/usb/core
Łukasz Bartosik 9dc162e223 USB: quirks: add quirk for Focusrite Scarlett
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-07-25 17:41:22 +02:00
..
Kconfig USB: hub: Add Kconfig option to reduce number of port initialization retries 2020-10-02 11:29:02 +02:00
Makefile usb: misc: Add onboard_usb_hub driver 2022-07-08 14:53:50 +02:00
buffer.c - Yosry Ahmed brought back some cgroup v1 stats in OOM logs. 2023-06-28 10:28:11 -07:00
config.c USB: core: Change configuration warnings to notices 2022-11-03 23:46:00 +09:00
devices.c usb: core: devices: drop redundant buffer overflow checks 2022-04-26 13:57:38 +02:00
devio.c usb: update the ctime as well when updating mtime after an ioctl 2023-06-13 11:58:50 +02:00
driver.c USB: mark all struct bus_type as const 2023-03-23 13:22:00 +01:00
endpoint.c usb: common: add function to get interval expressed in us unit 2021-03-10 09:37:17 +01:00
file.c driver core: class: remove module * from class_create() 2023-03-17 15:16:33 +01:00
generic.c usb: core: Fix file path that does not exist 2021-12-05 14:24:19 +01:00
hcd-pci.c USB: Extend pci resume function to handle PM events 2023-05-13 17:33:18 +09:00
hcd.c usb: core: hcd: Fix return value check in usb_hcd_setup_local_mem() 2022-11-29 08:56:09 +01:00
hub.c usb: core: add sysfs entry for usb device state 2023-06-13 11:58:26 +02:00
hub.h usb: core: add sysfs entry for usb device state 2023-06-13 11:58:26 +02:00
ledtrig-usbport.c
message.c USB: core: Fix docs warning caused by wireless_status feature 2023-04-06 17:14:14 +02:00
notify.c
of.c
otg_productlist.h
phy.c
phy.h
port.c usb: core: add sysfs entry for usb device state 2023-06-13 11:58:26 +02:00
quirks.c USB: quirks: add quirk for Focusrite Scarlett 2023-07-25 17:41:22 +02:00
sysfs.c USB: core: Add wireless_status sysfs attribute 2023-04-03 13:30:08 +02:00
urb.c kmsan: handle memory sent to/from USB 2022-10-03 14:03:22 -07:00
usb-acpi.c usb: acpi: Switch to use acpi_evaluate_dsm_typed() 2023-03-16 12:15:10 +01:00
usb.c USB: core: Add routines for endpoint checks in old drivers 2023-04-20 11:43:22 +02:00
usb.h Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00