* [REGRESSION] Audient EVO4 hardware volume control now requires quirk @ 2026-09-26 13:03 Faaris Ansari 2026-09-27 14:26 ` Sasha Levin 0 siblings, 1 reply; 16+ messages in thread From: Faaris Ansari @ 2026-09-26 13:03 UTC (permalink / raw) To: stable; +Cc: regressions, linux-sound #regzbot introduced: v7.1.13..v7.2.5 Hello, A new regression has been introduced between an update on my system from kernel 7.1.13 to 7.2.5. When attempting to control the volume of my audio interface (Audient EVO4) through pipewire / wireplumber, it attempts to modify the hardware volume, then falls back to modifying the software volume instead. This causes the system volume to be dramatically lower when modifying it through software. However, moving the hardware knob very slightly to change the volume brings the software volume back up to 1.0. I confirmed this is a kernel regression by reverting only the kernel on my system back to the working 7.1.13 (now EOL) version, where the issue did not occur. I also tested both the 6.12 and 6.18 LTS branches, and the issue also occurred there. I also worked through troubleshooting this with a WirePlumber developer to confirm it isn't an issue with the PipeWire stack: https://gitlab.freedesktop.org/pipewire/wireplumber/-/work_items/1022 I was able to work around the issue by adding extra modprobe config to my system, specifically the below: options snd_usb_audio quirk_flags=2708:0006:ignore_ctl_error Does this quirk need to be added to the snd_usb_audio module or is there an underlying fix somewhere else? While troubleshooting I also attempted to patch my kernel with this patch set hoping it would help with the problem: https://lore.kernel.org/lkml/20260919151840.24371-1-arc@gmx.li/ The patch set worked fine but this specific problem was still occurring. Using both the patch set and the quirk above makes the EVO4 work perfectly however. Would appreciate further guidance on helping to debug. Thanks, Faaris ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-26 13:03 [REGRESSION] Audient EVO4 hardware volume control now requires quirk Faaris Ansari @ 2026-09-27 14:26 ` Sasha Levin 2026-09-27 22:50 ` Faaris Ansari 0 siblings, 1 reply; 16+ messages in thread From: Sasha Levin @ 2026-09-27 14:26 UTC (permalink / raw) To: stable Cc: Sasha Levin, regressions, linux-sound, Faaris Ansari, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela > I was able to work around the issue by adding extra modprobe config to > my system, specifically the below: > > options snd_usb_audio quirk_flags=2708:0006:ignore_ctl_error > > Does this quirk need to be added to the snd_usb_audio module or is > there an underlying fix somewhere else? The likely cause is 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in generic mixer put callbacks"). It is in 7.2 and was backported to 6.18.53 and 6.12.111. Before it, a failed SET_CUR in the mixer put callbacks was ignored and userspace saw success. Now the error is returned unless ignore_ctl_error is set, which is exactly what your workaround does. It is the only functional change to sound/usb/mixer.c between 7.1.13 and 7.2.5. Could you confirm by reverting just that commit on 7.2.y or 6.18.y and testing without the quirk_flags option? -- Thanks, Sasha ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-27 14:26 ` Sasha Levin @ 2026-09-27 22:50 ` Faaris Ansari 2026-09-28 16:46 ` Sasha Levin 0 siblings, 1 reply; 16+ messages in thread From: Faaris Ansari @ 2026-09-27 22:50 UTC (permalink / raw) To: Sasha Levin Cc: stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela Hi Sasha, It seems you're right. Reverting that change has fixed the volume control with my interface - I made sure to remove the quirk flags whilst testing. What are the next steps here? Is there a problem with that patch, or do we need to add a quirk for the EVO4 in the kernel? Faaris On Sun, 27 Sept 2026 at 15:27, Sasha Levin <sashal@kernel.org> wrote: > > > I was able to work around the issue by adding extra modprobe config to > > my system, specifically the below: > > > > options snd_usb_audio quirk_flags=2708:0006:ignore_ctl_error > > > > Does this quirk need to be added to the snd_usb_audio module or is > > there an underlying fix somewhere else? > > The likely cause is 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors > in generic mixer put callbacks"). It is in 7.2 and was backported to 6.18.53 > and 6.12.111. Before it, a failed SET_CUR in the mixer put callbacks was > ignored and userspace saw success. Now the error is returned unless > ignore_ctl_error is set, which is exactly what your workaround does. It is > the only functional change to sound/usb/mixer.c between 7.1.13 and 7.2.5. > > Could you confirm by reverting just that commit on 7.2.y or 6.18.y and > testing without the quirk_flags option? > > -- > Thanks, > Sasha ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-27 22:50 ` Faaris Ansari @ 2026-09-28 16:46 ` Sasha Levin 2026-09-28 16:53 ` Faaris Ansari 0 siblings, 1 reply; 16+ messages in thread From: Sasha Levin @ 2026-09-28 16:46 UTC (permalink / raw) To: Faaris Ansari Cc: Sasha Levin, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela > It seems you're right. Reverting that change has fixed the volume > control with my interface - I made sure to remove the quirk flags > whilst testing. > > What are the next steps here? Is there a problem with that patch, or > do we need to add a quirk for the EVO4 in the kernel? Thanks for testing. Takashi, Cássio: before 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in generic mixer put callbacks"), a failed SET_CUR in the mixer put callbacks was ignored. Now it is returned to userspace, and on the EVO4 (2708:0006) that breaks hardware volume control. Would you prefer a QUIRK_FLAG_IGNORE_CTL_ERROR entry for 2708:0006, or a revert or rework of that commit? Any other device that rejects SET_CUR on a single control or channel will regress the same way. Faaris, to help with that decision, could you send: 1. dmesg with snd_usb_audio debug output enabled while you change the volume without the quirk, using echo 'module snd_usb_audio +p' > /sys/kernel/debug/dynamic_debug/control (the "cannot set ctl value" lines are the useful ones) 2. lsusb -v -d 2708:0006 3. amixer -c <card> contents -- Thanks, Sasha ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-28 16:46 ` Sasha Levin @ 2026-09-28 16:53 ` Faaris Ansari 2026-09-28 22:39 ` Sasha Levin 0 siblings, 1 reply; 16+ messages in thread From: Faaris Ansari @ 2026-09-28 16:53 UTC (permalink / raw) To: Sasha Levin, Faaris Ansari Cc: stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela Hi, yeah of course I can provide you with this info - I installed the latest 7.3-rc5 for testing. Below are the dmesg logs that you requested: [ 80.940668] usb 3-1: cannot set ctl value: req = 0x1, wValue = 0x203, wIndex = 0xa00, type = 4, data = 0x0/0x81 [ 80.944292] usb 3-1: cannot set ctl value: req = 0x1, wValue = 0x203, wIndex = 0xa00, type = 4, data = 0x0/0x81 [ 80.947542] usb 3-1: cannot set ctl value: req = 0x1, wValue = 0x203, wIndex = 0xa00, type = 4, data = 0x0/0xdc [ 80.950794] usb 3-1: cannot set ctl value: req = 0x1, wValue = 0x203, wIndex = 0xa00, type = 4, data = 0x0/0x81 Below is the output of lsusb -v -d 2708:0006: Bus 003 Device 002: ID 2708:0006 Audient EVO4 Negotiated speed: High Speed (480Mbps) Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 [unknown] bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x2708 Audient idProduct 0x0006 EVO4 bcdDevice 1.4c iManufacturer 1 Audient iProduct 3 EVO4 iSerial 0 bNumConfigurations 2 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x01d6 bNumInterfaces 4 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 3 bFunctionClass 1 Audio bFunctionSubClass 0 [unknown] bFunctionProtocol 32 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 32 iInterface 3 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 2.00 bCategory 8 wTotalLength 0x0100 bmControls 0x01 Latency control Control (read-only) AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 41 bmAttributes 3 Internal programmable clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 9 AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 40 bNrInPins 1 baCSourceID(0) 41 bmControls 0x03 Clock Selector Control (read/write) iClockSelector 8 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bCSourceID 40 bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 11 bmControls 0x0000 iTerminal 6 AudioControl Interface Descriptor: bLength 26 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 10 bSourceID 2 bmaControls(0) 0x00000000 bmaControls(1) 0x0000000c Volume Control (read/write) bmaControls(2) 0x0000000c Volume Control (read/write) bmaControls(3) 0x0000000c Volume Control (read/write) bmaControls(4) 0x0000000c Volume Control (read/write) iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 20 wTerminalType 0x0301 Speaker bAssocTerminal 0 bSourceID 59 bCSourceID 40 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 59 wExtensionCode 0x0000 bNrInPins 1 baSourceID(0) 56 bNrChannels 2 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x3f Enable Control (read/write) Cluster Control (read/write) Underflow Control (read/write) iExtension 0 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0201 Microphone bAssocTerminal 0 bCSourceID 40 bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 15 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 58 wExtensionCode 0x0000 bNrInPins 1 baSourceID(0) 1 bNrChannels 2 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0xff Enable Control (read/write) Cluster Control (read/write) Underflow Control (read/write) Overflow Control (read/write) iExtension 0 AudioControl Interface Descriptor: bLength 26 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 11 bSourceID 1 bmaControls(0) 0x00000000 bmaControls(1) 0x0000000c Volume Control (read/write) bmaControls(2) 0x0000000c Volume Control (read/write) bmaControls(3) 0x0000000c Volume Control (read/write) bmaControls(4) 0x0000000c Volume Control (read/write) iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 22 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 60 bCSourceID 40 bmControls 0x0000 iTerminal 7 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 50 wExtensionCode 0x0000 bNrInPins 2 baSourceID(0) 11 baSourceID(1) 10 bNrChannels 6 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x03 Enable Control (read/write) iExtension 0 AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 4 (MIXER_UNIT) bUnitID 60 bNrInPins 1 baSourceID(0) 50 bNrChannels 2 bmChannelConfig 0x00000000 iChannelNames 19 bmMixerControls(0) 0xff bmControls 0xff Cluster Control (read/write) Underflow Control (read/write) Overflow Control (read/write) iMixer 0 Warning: Junk at end of descriptor (1 bytes): 00 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 56 wExtensionCode 0x0000 bNrInPins 2 baSourceID(0) 11 baSourceID(1) 10 bNrChannels 2 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x00 iExtension 0 AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 57 wExtensionCode 0x0000 bNrInPins 1 baSourceID(0) 2 bNrChannels 0 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x00 iExtension 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0006 1x 6 bytes bInterval 8 INTERFACE CLASS: 10 24 09 3e 00 00 01 01 01 00 00 00 00 00 00 00 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 11 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00d0 1x 208 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 17 Transfer Type Isochronous Synch Type None Usage Type Feedback wMaxPacketSize 0x0004 1x 4 bytes bInterval 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 2 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 11 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 2 bBitResolution 16 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0068 1x 104 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 17 Transfer Type Isochronous Synch Type None Usage Type Feedback wMaxPacketSize 0x0004 1x 4 bytes bInterval 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 22 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 15 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00d0 1x 208 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 254 Application Specific Interface bInterfaceSubClass 1 Device Firmware Update bInterfaceProtocol 1 iInterface 10 Device Firmware Upgrade Interface Descriptor: bLength 9 bDescriptorType 33 bmAttributes 7 Will Not Detach Manifestation Tolerant Upload Supported Download Supported wDetachTimeout 250 milliseconds wTransferSize 64 bytes bcdDFUVersion 1.10 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x01d6 bNumInterfaces 4 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 3 bFunctionClass 1 Audio bFunctionSubClass 0 [unknown] bFunctionProtocol 32 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 32 iInterface 3 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 2.00 bCategory 8 wTotalLength 0x0100 bmControls 0x01 Latency control Control (read-only) AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 41 bmAttributes 3 Internal programmable clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 9 AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 40 bNrInPins 1 baCSourceID(0) 41 bmControls 0x03 Clock Selector Control (read/write) iClockSelector 8 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bCSourceID 40 bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 11 bmControls 0x0000 iTerminal 6 AudioControl Interface Descriptor: bLength 26 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 10 bSourceID 2 bmaControls(0) 0x00000000 bmaControls(1) 0x0000000c Volume Control (read/write) bmaControls(2) 0x0000000c Volume Control (read/write) bmaControls(3) 0x0000000c Volume Control (read/write) bmaControls(4) 0x0000000c Volume Control (read/write) iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 20 wTerminalType 0x0301 Speaker bAssocTerminal 0 bSourceID 59 bCSourceID 40 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 59 wExtensionCode 0x0000 bNrInPins 1 baSourceID(0) 56 bNrChannels 2 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x3f Enable Control (read/write) Cluster Control (read/write) Underflow Control (read/write) iExtension 0 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0201 Microphone bAssocTerminal 0 bCSourceID 40 bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 15 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 58 wExtensionCode 0x0000 bNrInPins 1 baSourceID(0) 1 bNrChannels 2 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0xff Enable Control (read/write) Cluster Control (read/write) Underflow Control (read/write) Overflow Control (read/write) iExtension 0 AudioControl Interface Descriptor: bLength 26 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 11 bSourceID 1 bmaControls(0) 0x00000000 bmaControls(1) 0x0000000c Volume Control (read/write) bmaControls(2) 0x0000000c Volume Control (read/write) bmaControls(3) 0x0000000c Volume Control (read/write) bmaControls(4) 0x0000000c Volume Control (read/write) iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 22 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 60 bCSourceID 40 bmControls 0x0000 iTerminal 7 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 50 wExtensionCode 0x0000 bNrInPins 2 baSourceID(0) 11 baSourceID(1) 10 bNrChannels 6 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x03 Enable Control (read/write) iExtension 0 AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 4 (MIXER_UNIT) bUnitID 60 bNrInPins 1 baSourceID(0) 50 bNrChannels 2 bmChannelConfig 0x00000000 iChannelNames 19 bmMixerControls(0) 0xff bmControls 0xff Cluster Control (read/write) Underflow Control (read/write) Overflow Control (read/write) iMixer 0 Warning: Junk at end of descriptor (1 bytes): 00 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 56 wExtensionCode 0x0000 bNrInPins 2 baSourceID(0) 11 baSourceID(1) 10 bNrChannels 2 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x00 iExtension 0 AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 57 wExtensionCode 0x0000 bNrInPins 1 baSourceID(0) 2 bNrChannels 0 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x00 iExtension 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0006 1x 6 bytes bInterval 8 INTERFACE CLASS: 10 24 09 3e 00 00 01 01 01 00 00 00 00 00 00 00 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 11 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00d0 1x 208 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 17 Transfer Type Isochronous Synch Type None Usage Type Feedback wMaxPacketSize 0x0004 1x 4 bytes bInterval 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 2 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 11 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 2 bBitResolution 16 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0068 1x 104 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 17 Transfer Type Isochronous Synch Type None Usage Type Feedback wMaxPacketSize 0x0004 1x 4 bytes bInterval 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 22 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 4 bmChannelConfig 0x00000000 iChannelNames 15 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00d0 1x 208 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 254 Application Specific Interface bInterfaceSubClass 1 Device Firmware Update bInterfaceProtocol 1 iInterface 10 Device Firmware Upgrade Interface Descriptor: bLength 9 bDescriptorType 33 bmAttributes 7 Will Not Detach Manifestation Tolerant Upload Supported Download Supported wDetachTimeout 250 milliseconds wTransferSize 64 bytes bcdDFUVersion 1.10 And here is the output of amixer -c EVO4 contents numid=6,iface=CARD,name='Audient Internal Clock Validity' ; type=BOOLEAN,access=r-------,values=1 : values=on numid=3,iface=MIXER,name='Mic Playback Volume' ; type=INTEGER,access=rw---R--,values=4,min=0,max=116,step=0 : values=96,0,0,0 | dBminmax-min=-8.00dB,max=50.00dB numid=4,iface=MIXER,name='EVO4 Playback Volume' ; type=INTEGER,access=rw---R--,values=4,min=0,max=254,step=0 : values=182,182,0,0 | dBminmax-min=-127.00dB,max=0.00dB numid=5,iface=MIXER,name='Extension Unit Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=2,iface=PCM,name='Capture Channel Map' ; type=INTEGER,access=r--v-R--,values=4,min=0,max=36,step=0 : values=0,0,0,0 | container | chmap-fixed=FL,FR,FC,LFE numid=1,iface=PCM,name='Playback Channel Map' ; type=INTEGER,access=r--v-R--,values=4,min=0,max=36,step=0 : values=0,0,0,0 | container | chmap-fixed=FL,FR,FC,LFE Thank you for your help debugging this issue, Faaris On 28/09/2026 17:46, Sasha Levin wrote: >> It seems you're right. Reverting that change has fixed the volume >> control with my interface - I made sure to remove the quirk flags >> whilst testing. >> >> What are the next steps here? Is there a problem with that patch, or >> do we need to add a quirk for the EVO4 in the kernel? > Thanks for testing. > > Takashi, Cássio: before 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write > errors in generic mixer put callbacks"), a failed SET_CUR in the mixer > put callbacks was ignored. Now it is returned to userspace, and on the > EVO4 (2708:0006) that breaks hardware volume control. Would you prefer a > QUIRK_FLAG_IGNORE_CTL_ERROR entry for 2708:0006, or a revert or rework > of that commit? Any other device that rejects SET_CUR on a single > control or channel will regress the same way. > > Faaris, to help with that decision, could you send: > > 1. dmesg with snd_usb_audio debug output enabled while you change the > volume without the quirk, using > echo 'module snd_usb_audio +p' > /sys/kernel/debug/dynamic_debug/control > (the "cannot set ctl value" lines are the useful ones) > 2. lsusb -v -d 2708:0006 > 3. amixer -c <card> contents > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-28 16:53 ` Faaris Ansari @ 2026-09-28 22:39 ` Sasha Levin 2026-09-29 5:58 ` Takashi Iwai 0 siblings, 1 reply; 16+ messages in thread From: Sasha Levin @ 2026-09-28 22:39 UTC (permalink / raw) To: Faaris Ansari Cc: Sasha Levin, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela, Faaris Ansari > [ 80.940668] usb 3-1: cannot set ctl value: req = 0x1, wValue = 0x203, > wIndex = 0xa00, type = 4, data = 0x0/0x81 [...] > numid=4,iface=MIXER,name='EVO4 Playback Volume' > ; type=INTEGER,access=rw---R--,values=4,min=0,max=254,step=0 > : values=182,182,0,0 Thanks, that narrows it down. Every failure is SET_CUR of the Volume control on feature unit 10, channel 3 (wValue 0x0203, wIndex 0x0a00). That unit is 'EVO4 Playback Volume' and advertises read/write volume on all four channels. mixer_ctl_feature_put() writes channels 1 and 2, then returns the channel 3 error, so the hardware volume changes while userspace is told the write failed and adds software attenuation on top. Faaris sees the same on 7.3-rc5, so this is a mainline regression from 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in generic mixer put callbacks"). -- Thanks, Sasha ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-28 22:39 ` Sasha Levin @ 2026-09-29 5:58 ` Takashi Iwai 2026-09-29 12:38 ` Takashi Iwai 0 siblings, 1 reply; 16+ messages in thread From: Takashi Iwai @ 2026-09-29 5:58 UTC (permalink / raw) To: Sasha Levin Cc: Faaris Ansari, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela, Faaris Ansari On Tue, 29 Sep 2026 00:39:05 +0200, Sasha Levin wrote: > > > [ 80.940668] usb 3-1: cannot set ctl value: req = 0x1, wValue = 0x203, > > wIndex = 0xa00, type = 4, data = 0x0/0x81 > [...] > > numid=4,iface=MIXER,name='EVO4 Playback Volume' > > ; type=INTEGER,access=rw---R--,values=4,min=0,max=254,step=0 > > : values=182,182,0,0 > > Thanks, that narrows it down. > > Every failure is SET_CUR of the Volume control on feature unit 10, channel 3 > (wValue 0x0203, wIndex 0x0a00). That unit is 'EVO4 Playback Volume' and > advertises read/write volume on all four channels. mixer_ctl_feature_put() > writes channels 1 and 2, then returns the channel 3 error, so the hardware > volume changes while userspace is told the write failed and adds software > attenuation on top. Faaris sees the same on 7.3-rc5, so this is a mainline > regression from 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in > generic mixer put callbacks"). Right. So a simple fix would be to just to set the IGNORE_CTL_ERROR quirk flag like below. One of iD14 models has already this flag, so it might be safer to set to all Audient devices. thanks, Takashi --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -2690,6 +2690,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = { QUIRK_FLAG_DSD_RAW), DEVICE_FLG(0x2708, 0x0002, /* Audient iD14 */ QUIRK_FLAG_IGNORE_CTL_ERROR), + DEVICE_FLG(0x2708, 0x0006, /* Audient EV04 */ + QUIRK_FLAG_IGNORE_CTL_ERROR), DEVICE_FLG(0x2772, 0x0502, /* Musical Fidelity M6s DAC */ 0), /* for avoiding QUIRK_FLAG_DSD_RAW with vendor match */ DEVICE_FLG(0x2912, 0x30c8, /* Audioengine D1 */ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-29 5:58 ` Takashi Iwai @ 2026-09-29 12:38 ` Takashi Iwai 2026-09-29 13:14 ` Takashi Iwai 0 siblings, 1 reply; 16+ messages in thread From: Takashi Iwai @ 2026-09-29 12:38 UTC (permalink / raw) To: Faaris Ansari Cc: Sasha Levin, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela, Faaris Ansari On Tue, 29 Sep 2026 07:58:03 +0200, Takashi Iwai wrote: > > On Tue, 29 Sep 2026 00:39:05 +0200, > Sasha Levin wrote: > > > > > [ 80.940668] usb 3-1: cannot set ctl value: req = 0x1, wValue = 0x203, > > > wIndex = 0xa00, type = 4, data = 0x0/0x81 > > [...] > > > numid=4,iface=MIXER,name='EVO4 Playback Volume' > > > ; type=INTEGER,access=rw---R--,values=4,min=0,max=254,step=0 > > > : values=182,182,0,0 > > > > Thanks, that narrows it down. > > > > Every failure is SET_CUR of the Volume control on feature unit 10, channel 3 > > (wValue 0x0203, wIndex 0x0a00). That unit is 'EVO4 Playback Volume' and > > advertises read/write volume on all four channels. mixer_ctl_feature_put() > > writes channels 1 and 2, then returns the channel 3 error, so the hardware > > volume changes while userspace is told the write failed and adds software > > attenuation on top. Faaris sees the same on 7.3-rc5, so this is a mainline > > regression from 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in > > generic mixer put callbacks"). > > Right. So a simple fix would be to just to set the IGNORE_CTL_ERROR > quirk flag like below. One of iD14 models has already this flag, so > it might be safer to set to all Audient devices. ... and below is such a version to cover all Audient devices: Faaris, please let us know if this (or previous) one actually works for you. Once after confirmation, I'll submit the proper patch for upstream. thanks, Takashi -- 8< -- --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -2688,8 +2688,6 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = { QUIRK_FLAG_FORCE_IFACE_RESET | QUIRK_FLAG_IFACE_DELAY), DEVICE_FLG(0x262a, 0x9302, /* ddHiFi TC44C */ QUIRK_FLAG_DSD_RAW), - DEVICE_FLG(0x2708, 0x0002, /* Audient iD14 */ - QUIRK_FLAG_IGNORE_CTL_ERROR), DEVICE_FLG(0x2772, 0x0502, /* Musical Fidelity M6s DAC */ 0), /* for avoiding QUIRK_FLAG_DSD_RAW with vendor match */ DEVICE_FLG(0x2912, 0x30c8, /* Audioengine D1 */ @@ -2788,6 +2786,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = { QUIRK_FLAG_DSD_RAW), VENDOR_FLG(0x2622, /* IAG Limited devices */ QUIRK_FLAG_DSD_RAW), + VENDOR_FLG(0x2708, /* Audient devices */ + QUIRK_FLAG_IGNORE_CTL_ERROR), VENDOR_FLG(0x2772, /* Musical Fidelity devices */ QUIRK_FLAG_DSD_RAW), VENDOR_FLG(0x278b, /* Rotel? */ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-29 12:38 ` Takashi Iwai @ 2026-09-29 13:14 ` Takashi Iwai 2026-09-29 14:24 ` Faaris Ansari 0 siblings, 1 reply; 16+ messages in thread From: Takashi Iwai @ 2026-09-29 13:14 UTC (permalink / raw) To: Faaris Ansari Cc: Sasha Levin, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela, Faaris Ansari On Tue, 29 Sep 2026 14:38:03 +0200, Takashi Iwai wrote: > > On Tue, 29 Sep 2026 07:58:03 +0200, > Takashi Iwai wrote: > > > > On Tue, 29 Sep 2026 00:39:05 +0200, > > Sasha Levin wrote: > > > > > > > [ 80.940668] usb 3-1: cannot set ctl value: req = 0x1, wValue = 0x203, > > > > wIndex = 0xa00, type = 4, data = 0x0/0x81 > > > [...] > > > > numid=4,iface=MIXER,name='EVO4 Playback Volume' > > > > ; type=INTEGER,access=rw---R--,values=4,min=0,max=254,step=0 > > > > : values=182,182,0,0 > > > > > > Thanks, that narrows it down. > > > > > > Every failure is SET_CUR of the Volume control on feature unit 10, channel 3 > > > (wValue 0x0203, wIndex 0x0a00). That unit is 'EVO4 Playback Volume' and > > > advertises read/write volume on all four channels. mixer_ctl_feature_put() > > > writes channels 1 and 2, then returns the channel 3 error, so the hardware > > > volume changes while userspace is told the write failed and adds software > > > attenuation on top. Faaris sees the same on 7.3-rc5, so this is a mainline > > > regression from 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in > > > generic mixer put callbacks"). > > > > Right. So a simple fix would be to just to set the IGNORE_CTL_ERROR > > quirk flag like below. One of iD14 models has already this flag, so > > it might be safer to set to all Audient devices. > > ... and below is such a version to cover all Audient devices: > > Faaris, please let us know if this (or previous) one actually works > for you. Once after confirmation, I'll submit the proper patch for > upstream. ... or if you have a chance to test Christian's patch set and verify whether the problem is fixed there, we can avoid other changes: https://lore.kernel.org/20260919151840.24371-1-arc@gmx.li Takashi ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-29 13:14 ` Takashi Iwai @ 2026-09-29 14:24 ` Faaris Ansari 2026-09-29 14:28 ` Takashi Iwai 0 siblings, 1 reply; 16+ messages in thread From: Faaris Ansari @ 2026-09-29 14:24 UTC (permalink / raw) To: Takashi Iwai, Faaris Ansari Cc: Sasha Levin, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela Thanks Takashi and Sasha, > Faaris, please let us know if this (or previous) one actually works > for you. Once after confirmation, I'll submit the proper patch for > upstream. I tested your latest patch where you removed the quirk for the iD14 alone, and instead set it for all Audient devices. I can confirm that this has indeed fixed the problem, and I can now correctly control my hardware volume without problems, thank you! > ... or if you have a chance to test Christian's patch set and verify > whether the problem is fixed there, we can avoid other changes: > https://lore.kernel.org/20260919151840.24371-1-arc@gmx.li I tested Christian's patch alone, without any other changes. The problem still occurred with those patches. This was also noted by Christian: > As a matter of fact, I made a similar > observation to yours when testing the patch set on the 'sound' kernel tree > and the (very sporadic) issue did not disappear after applying the > patches. And further discussion below: https://lore.kernel.org/all/CANBVYRAr8iFGFDgdTcDXuQyXt5M4TddZetsG9o1wbFao03R0yw@mail.gmail.com/ However, using both patches together (as well as a small patch for alsa-ucm-conf) has made my interface work very well - I'm very happy with these changes :) Thank you for your work, Sasha, Takashi, and Christian, Faaris On 29/09/2026 14:14, Takashi Iwai wrote: > On Tue, 29 Sep 2026 14:38:03 +0200, > Takashi Iwai wrote: >> On Tue, 29 Sep 2026 07:58:03 +0200, >> Takashi Iwai wrote: >>> On Tue, 29 Sep 2026 00:39:05 +0200, >>> Sasha Levin wrote: >>>>> [ 80.940668] usb 3-1: cannot set ctl value: req = 0x1, wValue = 0x203, >>>>> wIndex = 0xa00, type = 4, data = 0x0/0x81 >>>> [...] >>>>> numid=4,iface=MIXER,name='EVO4 Playback Volume' >>>>> ; type=INTEGER,access=rw---R--,values=4,min=0,max=254,step=0 >>>>> : values=182,182,0,0 >>>> Thanks, that narrows it down. >>>> >>>> Every failure is SET_CUR of the Volume control on feature unit 10, channel 3 >>>> (wValue 0x0203, wIndex 0x0a00). That unit is 'EVO4 Playback Volume' and >>>> advertises read/write volume on all four channels. mixer_ctl_feature_put() >>>> writes channels 1 and 2, then returns the channel 3 error, so the hardware >>>> volume changes while userspace is told the write failed and adds software >>>> attenuation on top. Faaris sees the same on 7.3-rc5, so this is a mainline >>>> regression from 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in >>>> generic mixer put callbacks"). >>> Right. So a simple fix would be to just to set the IGNORE_CTL_ERROR >>> quirk flag like below. One of iD14 models has already this flag, so >>> it might be safer to set to all Audient devices. >> ... and below is such a version to cover all Audient devices: >> >> Faaris, please let us know if this (or previous) one actually works >> for you. Once after confirmation, I'll submit the proper patch for >> upstream. > ... or if you have a chance to test Christian's patch set and verify > whether the problem is fixed there, we can avoid other changes: > https://lore.kernel.org/20260919151840.24371-1-arc@gmx.li > > > Takashi ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-29 14:24 ` Faaris Ansari @ 2026-09-29 14:28 ` Takashi Iwai 2026-09-29 19:46 ` Christian Ruppert 2026-10-02 14:19 ` Sasha Levin 0 siblings, 2 replies; 16+ messages in thread From: Takashi Iwai @ 2026-09-29 14:28 UTC (permalink / raw) To: Faaris Ansari Cc: Takashi Iwai, Faaris Ansari, Sasha Levin, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela On Tue, 29 Sep 2026 16:24:24 +0200, Faaris Ansari wrote: > > Thanks Takashi and Sasha, > > > > Faaris, please let us know if this (or previous) one actually works > > for you. Once after confirmation, I'll submit the proper patch for > > upstream. > > I tested your latest patch where you removed the quirk for the iD14 > alone, and instead set it for all Audient devices. > > I can confirm that this has indeed fixed the problem, and I can now > correctly control my hardware volume without problems, thank you! > > > > ... or if you have a chance to test Christian's patch set and verify > > whether the problem is fixed there, we can avoid other changes: > > https://lore.kernel.org/20260919151840.24371-1-arc@gmx.li > I tested Christian's patch alone, without any other changes. The > problem still occurred with those patches. > > This was also noted by Christian: > > > As a matter of fact, I made a similar > > observation to yours when testing the patch set on the 'sound' kernel tree > > and the (very sporadic) issue did not disappear after applying the > > patches. > And further discussion below: > > https://lore.kernel.org/all/CANBVYRAr8iFGFDgdTcDXuQyXt5M4TddZetsG9o1wbFao03R0yw@mail.gmail.com/ > > > However, using both patches together (as well as a small patch for > alsa-ucm-conf) has made my interface work very well - I'm very happy > with these changes :) > > > Thank you for your work, Sasha, Takashi, and Christian, > > Faaris Thanks for clarification. Then we need a fix like mine in anyway. I'm going to submit the proper patch. Takashi ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-29 14:28 ` Takashi Iwai @ 2026-09-29 19:46 ` Christian Ruppert 2026-10-02 14:19 ` Sasha Levin 1 sibling, 0 replies; 16+ messages in thread From: Christian Ruppert @ 2026-09-29 19:46 UTC (permalink / raw) To: Takashi Iwai Cc: Faaris Ansari, Faaris Ansari, Sasha Levin, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela On Tue, Sep 29, 2026 at 04:28:59PM +0200, Takashi Iwai wrote: > On Tue, 29 Sep 2026 16:24:24 +0200, > Faaris Ansari wrote: > > > > Thanks Takashi and Sasha, > > > > > > > Faaris, please let us know if this (or previous) one actually works > > > for you. Once after confirmation, I'll submit the proper patch for > > > upstream. > > > > I tested your latest patch where you removed the quirk for the iD14 > > alone, and instead set it for all Audient devices. > > > > I can confirm that this has indeed fixed the problem, and I can now > > correctly control my hardware volume without problems, thank you! On the surface, this does seem to fix the issue but after looking into it a bit more in detail, the EVO4 is a bit quirky but its behaviour actually coherent and expected. I wonder if this should be fixed by simply disabling error propagation or if it's rather an issue with UCMs. The situation is as follows: - The EVO4 presents two PCM devices, each with four channels ("EVO4 " for playback and "Mic" for capture). - In both devices, only the volume of the first two channels can be adjusted (Stereo master playback volume for "EVO4 " and two microphone gains in "Mic"). - The other two channels of each device are mapped to digital loopback (playback) and the digital mixer matrix output (capture) which don't have volume controls. Trying to adjust these two is thus invalid and the device rightly returns an error. It is true that the "logical" thing would have been to split everything into four dual-channel PCM devices, two with adjustable volumes and two without. For some reason, Audient didn't make that design choice and as things are the situation is perfectly manageable with UCM and correctly described in https://github.com/alsa-project/alsa-ucm-conf/blob/master/ucm2/USB-Audio/Audient/Audient-EVO4-HiFi-0006.conf). The question is now why the UCM tries to adjust mixer channels which are clearly not declared as part of the respective "split channel" in that file. I would argue this is rather a bug in UCM (or possibly an overly eager "put" function in the generic mixer driver) than in the EVO firmware or the error propagation. In practice, the error disappears either way but I suspect that at least part of the motivation behind UCM was to address exactly this type of issues. This is rather philosophical and my background on UCM is basically nil so I would be interested in more educated opinions. > > > ... or if you have a chance to test Christian's patch set and verify > > > whether the problem is fixed there, we can avoid other changes: > > > https://lore.kernel.org/20260919151840.24371-1-arc@gmx.li > > I tested Christian's patch alone, without any other changes. The > > problem still occurred with those patches. > > > > This was also noted by Christian: > > > > > As a matter of fact, I made a similar > > > observation to yours when testing the patch set on the 'sound' kernel tree > > > and the (very sporadic) issue did not disappear after applying the > > > patches. > > And further discussion below: > > > > https://lore.kernel.org/all/CANBVYRAr8iFGFDgdTcDXuQyXt5M4TddZetsG9o1wbFao03R0yw@mail.gmail.com/ > > > > > > However, using both patches together (as well as a small patch for > > alsa-ucm-conf) has made my interface work very well - I'm very happy > > with these changes :) > > > > > > Thank you for your work, Sasha, Takashi, and Christian, > > > > Faaris > > Thanks for clarification. Then we need a fix like mine in anyway. > I'm going to submit the proper patch. > > > Takashi -- Christian Ruppert <arc@gmx.li> This message is digitally signed with GnuPG. GPG/PGP Key fingerprint = 4492 2196 75F0 EAA0 981E B661 1476 F17A 975F 587B ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-09-29 14:28 ` Takashi Iwai 2026-09-29 19:46 ` Christian Ruppert @ 2026-10-02 14:19 ` Sasha Levin 2026-10-02 14:37 ` Takashi Iwai 1 sibling, 1 reply; 16+ messages in thread From: Sasha Levin @ 2026-10-02 14:19 UTC (permalink / raw) To: Faaris Ansari Cc: Sasha Levin, Takashi Iwai, Faaris Ansari, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela > Thanks for clarification. Then we need a fix like mine in anyway. > I'm going to submit the proper patch. Thanks Takashi. a154f7b9f197 ("ALSA: usb-audio: Apply IGNORE_CTL_ERROR quirk to all Audient devices") is in your for-linus branch, but it isn't in Linus' tree yet. 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in generic mixer put callbacks") is already in 7.2, 6.18 and 6.12, and it is in the current 6.6, 6.1, 5.15 and 5.10 -rc1 releases. I'll queue the quirk change for the stable trees as soon as it lands upstream. -- Thanks, Sasha ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-10-02 14:19 ` Sasha Levin @ 2026-10-02 14:37 ` Takashi Iwai 2026-10-02 21:10 ` Sasha Levin 0 siblings, 1 reply; 16+ messages in thread From: Takashi Iwai @ 2026-10-02 14:37 UTC (permalink / raw) To: Sasha Levin Cc: Faaris Ansari, Takashi Iwai, Faaris Ansari, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela On Fri, 02 Oct 2026 16:19:45 +0200, Sasha Levin wrote: > > > Thanks for clarification. Then we need a fix like mine in anyway. > > I'm going to submit the proper patch. > > Thanks Takashi. a154f7b9f197 ("ALSA: usb-audio: Apply IGNORE_CTL_ERROR > quirk to all Audient devices") is in your for-linus branch, but it > isn't in Linus' tree yet. Yes, and I sent a PR right now to Linus, so hopefully included in 7.3-rc6. > 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in generic mixer > put callbacks") is already in 7.2, 6.18 and 6.12, and it is in the > current 6.6, 6.1, 5.15 and 5.10 -rc1 releases. I'll queue the quirk > change for the stable trees as soon as it lands upstream. Thanks! Takashi ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-10-02 14:37 ` Takashi Iwai @ 2026-10-02 21:10 ` Sasha Levin 2026-10-03 1:30 ` Sasha Levin 0 siblings, 1 reply; 16+ messages in thread From: Sasha Levin @ 2026-10-02 21:10 UTC (permalink / raw) To: Takashi Iwai Cc: Sasha Levin, Faaris Ansari, Faaris Ansari, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela > Yes, and I sent a PR right now to Linus, so hopefully included in > 7.3-rc6. Linus merged it, so I've queued it for 7.2, 6.18, 6.12, 6.6, 6.1 and 5.15, thanks. 5.10 doesn't have the quirk flags table, so this fix doesn't apply there. -- Thanks, Sasha ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk 2026-10-02 21:10 ` Sasha Levin @ 2026-10-03 1:30 ` Sasha Levin 0 siblings, 0 replies; 16+ messages in thread From: Sasha Levin @ 2026-10-03 1:30 UTC (permalink / raw) To: Takashi Iwai Cc: Sasha Levin, Faaris Ansari, Faaris Ansari, stable, regressions, linux-sound, Cássio Gabriel, Takashi Iwai, Jaroslav Kysela > Linus merged it, so I've queued it for 7.2, 6.18, 6.12, 6.6, 6.1 and > 5.15, thanks. 5.10 doesn't have the quirk flags table, so this fix > doesn't apply there. A follow-up on the older trees: since a154f7b9f197 ("ALSA: usb-audio: Apply IGNORE_CTL_ERROR quirk to all Audient devices") can't go into 5.10, I've dropped 87a6f2fa6e6c ("ALSA: usb-audio: Propagate write errors in generic mixer put callbacks") from the 5.10 queue instead, so 5.10 doesn't pick up the regression at all. On 6.6, 6.1 and 5.15, 87a6f2fa6e6c is in the releases now under review, and a154f7b9f197 (now in mainline) follows in the next release. -- Thanks, Sasha ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2026-10-03 1:30 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-09-26 13:03 [REGRESSION] Audient EVO4 hardware volume control now requires quirk Faaris Ansari 2026-09-27 14:26 ` Sasha Levin 2026-09-27 22:50 ` Faaris Ansari 2026-09-28 16:46 ` Sasha Levin 2026-09-28 16:53 ` Faaris Ansari 2026-09-28 22:39 ` Sasha Levin 2026-09-29 5:58 ` Takashi Iwai 2026-09-29 12:38 ` Takashi Iwai 2026-09-29 13:14 ` Takashi Iwai 2026-09-29 14:24 ` Faaris Ansari 2026-09-29 14:28 ` Takashi Iwai 2026-09-29 19:46 ` Christian Ruppert 2026-10-02 14:19 ` Sasha Levin 2026-10-02 14:37 ` Takashi Iwai 2026-10-02 21:10 ` Sasha Levin 2026-10-03 1:30 ` Sasha Levin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox