Re: [PATCH 0/4] ALSA: usb-audio: Demote the severity of sticky GET_CUR

From: Takashi Iwai

Date: Sun Aug 23 2026 - 05:05:16 EST


On Sat, 22 Aug 2026 20:52:27 +0200,
Rong Zhang wrote:
>
> Currently, a mixer is disabled when its GET_CUR is sticky, causing
> userspace to fall back to soft mixers, unless
> QUIRK_FLAG_MIXER_GET_CUR_BROKEN is set. This leads to issues on some
> wireless headphones with broken GET_CUR but effective SET_CUR, which use
> poorly-performed lossy codecs and are prone to audible distortion at low
> volume. They have to set the quirk flag to reeanble the mixer.
>
> Considering that users can always opt into soft mixers if they need it,
> i.e., when SET_CUR is stubbed, demote the severity of sticky GET_CUR by
> marking GET_CUR as broken and only provide mixer values from the cache.
> The mixer itself is still registered.
>
> The default behavior of sticky check now becomes what
> QUIRK_FLAG_MIXER_GET_CUR_BROKEN originally does, so the quirk flag is no
> longer needed.
>
> On some devices, whether their GET_CUR being sticky depends on whether
> hotpluggable components are present. When the hotpluggable components
> are missing on probe, their GET_CUR behavior is classified as broken.
> Therefore, reverse QUIRK_FLAG_MIXER_GET_CUR_BROKEN as
> QUIRK_FLAG_MIXER_GET_CUR_OK, so that it can be set to prevent the
> heuristics from gating GET_CUR.
>
> Note that even if the quirk flag is set, init_cur_mix_raw() should still
> initialize the mixer value to cval->min, otherwise restoring the bogus
> saved value on the first channel could lead to unbalanced channels.
>
> The first user of QUIRK_FLAG_MIXER_GET_CUR_OK is Logitech PRO X
> Wireless, whose Playback mixer's GET_CUR somehow becomes broken when the
> microphone is detached, so set QUIRK_FLAG_MIXER_GET_CUR_OK to prevent
> the mixer behavior from depending on whether the microphone is attached.
> The device also needs QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE as the minimum
> mixer value doesn't work properly.
>
> Reported-by: Alexander Niemeyer <adventureFAN@xxxxxx>
> Closes: https://msgid.link/6262cbbd-d1f2-4c9d-a1c7-9c5d12636f4b@xxxxxx
> Closes: https://msgid.link/7984832b-86f6-4934-bfc0-1ed70218973a@xxxxxx
> Signed-off-by: Rong Zhang <i@xxxxxxxx>

Applied all four patches now. Thanks.


Takashi