From: Takashi Iwai <tiwai@suse.de>
To: Sasha Levin <sashal@kernel.org>
Cc: "Faaris Ansari" <faarisansari@googlemail.com>,
stable@vger.kernel.org, regressions@lists.linux.dev,
linux-sound@vger.kernel.org,
"Cássio Gabriel" <cassiogabrielcontato@gmail.com>,
"Takashi Iwai" <tiwai@suse.com>,
"Jaroslav Kysela" <perex@perex.cz>,
"Faaris Ansari" <faaris.ansari@gmail.com>
Subject: Re: [REGRESSION] Audient EVO4 hardware volume control now requires quirk
Date: Tue, 29 Sep 2026 07:58:03 +0200 [thread overview]
Message-ID: <87tsn838gk.wl-tiwai@suse.de> (raw)
In-Reply-To: <2026-09-28-2-daily-reply-0001-re-audient-evo4-channel-3-set-cur@kernel.org>
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 */
next prev parent reply other threads:[~2026-09-29 5:58 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tsn838gk.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=cassiogabrielcontato@gmail.com \
--cc=faaris.ansari@gmail.com \
--cc=faarisansari@googlemail.com \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=regressions@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.