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

Takashi Iwai <[email protected]>
Newsgroups org.kernel.vger.linux-sound,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
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 <[email protected]>
> Closes: https://msgid.link/[email protected]
> Closes: https://msgid.link/[email protected]
> Signed-off-by: Rong Zhang <[email protected]>

Applied all four patches now.  Thanks.


Takashi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.