FS#70636 - USB DAC no longer works with New Kernel 5.11.x

Attached to Project: Arch Linux
Opened by Yuan Lin (lsyoyom) - Thursday, 29 April 2021, 06:22 GMT
Last edited by Toolybird (Toolybird) - Sunday, 04 June 2023, 03:49 GMT
Task Type Bug Report
Category Kernel
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

My USB DAC stopped working starting 5.11. I have tested on a few minor updates of different kernels:

- "linux-zen", 5.11.1, 5.11.10, 5.11.16
- "linux", 5.11.1, 5.11.10, 5.11.16

Revert back to 5.10 works, tested on 5.10.16.

I have also tried different ports on my laptop and dock as well.

One thing I noticed is, when the DAC connected to laptop on 5.11.x in a power cycle, directly rebooting laptop with a 5.10.x kernel is not enough to bring the DAC back alive, I have a separately power cycle itself before it starts working again.

And my dmesg of broken kernel is filled with:

[ 256.696027] usb 3-1.1.1: new high-speed USB device number 7 using xhci_hcd
[ 256.807013] usb 3-1.1.1: New USB device found, idVendor=2522, idProduct=0009, bcdDevice= 1.50
[ 256.807028] usb 3-1.1.1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[ 256.807034] usb 3-1.1.1: Product: Geek Pulse X 1V5
[ 256.807037] usb 3-1.1.1: Manufacturer: LH Labs
[ 261.613710] usb 3-1.1.1: 1:2 : unsupported format bits 0x100000000
[ 267.677756] usb 3-1.1.1: 1:1: usb_set_interface failed (-110)
[ 267.678017] usb 3-1.1.1: 1:0: usb_set_interface failed (-71)
[ 267.678573] usb 3-1.1.1: 1:0: usb_set_interface failed (-71)
[ 267.679716] usb 3-1.1.1: 1:0: usb_set_interface failed (-71)
[ 267.680072] usb 3-1.1.1: 1:0: usb_set_interface failed (-71)
[ 267.681250] usb 3-1.1.1: 1:0: usb_set_interface failed (-71)
[ 267.681649] usb 3-1.1.1: 1:0: usb_set_interface failed (-71)

....

Lots of usb_set_interface failure, it changes port if I change the DAC port.

My USB devices:

Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 004 Device 002: ID 0424:5537 Microchip Technology, Inc. (formerly SMSC) USB5537B
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 0bda:4014 Realtek Semiconductor Corp. USB Audio
Bus 003 Device 006: ID 0951:16d2 Kingston Technology HX-KB4BL1-US [HYPERX Alloy FPS Pro]
Bus 003 Device 007: ID 2522:0009 LH Labs Geek Pulse X 1V5
Bus 003 Device 004: ID 0424:2514 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub
Bus 003 Device 002: ID 0424:2137 Microchip Technology, Inc. (formerly SMSC) USB2137B
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 8087:0a2b Intel Corp. Bluetooth wireless interface
Bus 001 Device 003: ID 046d:c537 Logitech, Inc. Cordless Mouse Receiver
Bus 001 Device 008: ID 1bcf:28b8 Sunplus Innovation Technology Inc. Integrated_Webcam_HD
Bus 001 Device 007: ID 0a5c:5800 Broadcom Corp. BCM5880 Secure Applications Processor
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

And:

/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/7p, 5000M
|__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/7p, 480M
|__ Port 1: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 7, If 1, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 1: Dev 7, If 2, Class=Application Specific Interface, Driver=, 480M
|__ Port 1: Dev 7, If 0, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 6, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 6, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 5: Dev 3, If 0, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 5: Dev 3, If 1, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 5: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 5: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
|__ Port 4: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 4: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 6: Dev 5, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 6: Dev 5, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 10: Dev 7, If 0, Class=Application Specific Interface, Driver=, 480M
|__ Port 10: Dev 7, If 1, Class=Chip/SmartCard, Driver=, 480M
|__ Port 11: Dev 8, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 11: Dev 8, If 1, Class=Video, Driver=uvcvideo, 480M
This task depends upon

Closed by  Toolybird (Toolybird)
Sunday, 04 June 2023, 03:49 GMT
Reason for closing:  Upstream
Additional comments about closing:  Clearly an upstream issue. If still happening, please report upstream to the kernel folks.
Comment by Yuan Lin (lsyoyom) - Sunday, 16 May 2021, 02:26 GMT
I also tested on 5.12.4 also broken.
Comment by Yuan Lin (lsyoyom) - Sunday, 16 May 2021, 02:31 GMT
Dmesg log in 5.12.4 changed a bit:

~ λ dmesg
[ 1767.931355] usb 1-2.1: USB disconnect, device number 11
[ 1771.205549] usb 1-2.1: new high-speed USB device number 12 using xhci_hcd
[ 1771.302512] usb 1-2.1: New USB device found, idVendor=2522, idProduct=0009, bcdDevice= 1.50
[ 1771.302521] usb 1-2.1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[ 1771.302525] usb 1-2.1: Product: Geek Pulse X 1V5
[ 1771.302528] usb 1-2.1: Manufacturer: LH Labs
[ 1776.356995] usb 1-2.1: 1:2 : unsupported format bits 0x100000000
[ 1788.090407] logitech-djreceiver 0003:046D:C537.0002: Unexpected input report number 128
[ 1788.177530] logitech-djreceiver 0003:046D:C537.0002: Unexpected input report number 128
[ 1789.484288] logitech-djreceiver 0003:046D:C537.0002: Unexpected input report number 128
[ 1789.587292] logitech-djreceiver 0003:046D:C537.0002: Unexpected input report number 128
[ 1793.820219] usb 1-2.1: 1:1: usb_set_interface failed (-110)
[ 1793.820372] usb 1-2.1: 1:0: usb_set_interface failed (-71)
[ 1800.899521] logitech-djreceiver 0003:046D:C537.0002: Unexpected input report number 128
[ 1801.002298] logitech-djreceiver 0003:046D:C537.0002: Unexpected input report number 128
[ 1801.166552] usb 1-2.1: 1:0: usb_set_interface failed (-71)
[ 1801.166668] usb 1-2.1: uac_clock_source_is_valid(): cannot get clock validity for id 41
[ 1801.166670] usb 1-2.1: clock source 41 is not valid, cannot use
[ 1801.166906] usb 1-2.1: 1:0: usb_set_interface failed (-71)
[ 1801.167933] usb 1-2.1: 1:0: usb_set_interface failed (-71)
[ 1801.168051] usb 1-2.1: uac_clock_source_is_valid(): cannot get clock validity for id 41
[ 1801.168053] usb 1-2.1: clock source 41 is not valid, cannot use
[ 1801.168288] usb 1-2.1: 1:0: usb_set_interface failed (-71)
[ 1801.168984] usb 1-2.1: 1:0: usb_set_interface failed (-71)
[ 1801.169102] usb 1-2.1: uac_clock_source_is_valid(): cannot get clock validity for id 41
[ 1801.169103] usb 1-2.1: clock source 41 is not valid, cannot use
[ 1801.169342] usb 1-2.1: 1:0: usb_set_interface failed (-71)
[ 1801.170034] usb 1-2.1: 1:0: usb_set_interface failed (-71)

And the last 4 lines would flood the message log
Comment by Yuan Lin (lsyoyom) - Sunday, 16 May 2021, 02:35 GMT
Related USB Mixer information:

```
USB Mixer: usb_id=0x25220009, ctrlif=0, ctlerr=0
Card: LH Labs Geek Pulse X 1V5 at usb-0000:00:14.0-2.1, high speed
Unit: 10
Control: name="Geek Pulse X 1V5 Output Playback Volume", index=1
Info: id=10, control=2, cmask=0x0, channels=1, type="S16"
Volume: min=-32512, max=0, dBmin=-12700, dBmax=0
Unit: 10
Control: name="Geek Pulse X 1V5 Output Playback Volume", index=0
Info: id=10, control=2, cmask=0x3, channels=2, type="S16"
Volume: min=-32512, max=0, dBmin=-12700, dBmax=0
Unit: 10
Control: name="Geek Pulse X 1V5 Output Playback Switch", index=1
Info: id=10, control=1, cmask=0x0, channels=1, type="INV_BOOLEAN"
Volume: min=0, max=1, dBmin=0, dBmax=0
Unit: 10
Control: name="Geek Pulse X 1V5 Output Playback Switch", index=0
Info: id=10, control=1, cmask=0x3, channels=2, type="INV_BOOLEAN"
Volume: min=0, max=1, dBmin=0, dBmax=0
Unit: 41
Control: name="LH Labs 3X Clocks Validity", index=0
Info: id=41, control=2, cmask=0x0, channels=1, type="BOOLEAN"
Volume: min=0, max=1, dBmin=0, dBmax=0
```
Comment by Luke Z (lucidae) - Monday, 08 November 2021, 11:34 GMT
Hi, just wanted to add that I'm experiencing similar problems with my USB DAC on the latest kernel.
Like the OP I tested LTS 5.10 for comparison, and can confirm it works there.
My journalctl has these error messages mentioned above, "clock source 41 is not valid, cannot use".

I also came across a blog post which may be helpful; https://guillaumeplayground.net/teac-ud-503-ud-501-snd-usb-audio-patch/
Comment by Yuan Lin (lsyoyom) - Friday, 03 December 2021, 04:40 GMT
Still broken for me on 5.15.6. @Luke, are you able to use the patches mentioned by the URL to make it work?
Comment by Luke Z (lucidae) - Sunday, 26 December 2021, 09:35 GMT
@Yuan, I haven't tested the patch myself, compiling a custom kernel is a bit beyond my skill level.

Looking over Github's kernel commit history, I may have identified some changes relevant to this bug report;
https://github.com/archlinux/linux/commits/master?after=2f47a9a4dfa3674fad19a49b40c5103a9a8e1589+34&branch=master&path%5B%5D=sound&path%5B%5D=usb&path%5B%5D=quirks.c

History for linux/sound/usb/quirks.c
Commits on Nov 23, 2020
v5.11-arch1

ALSA: usb-audio: Drop unneeded snd_usb_substream fields
ALSA: usb-audio: Constify audioformat pointer references
ALSA: usb-audio: Always set up the parameters after resume
ALSA: usb-audio: Simplify snd_usb_init_pitch() arguments
ALSA: usb-audio: Simplify snd_usb_init_sample_rate() arguments
ALSA: usb-audio: Pass snd_usb_audio object to quirk functions

Loading...