From: Cássio Gabriel Date: Wed, 22 Apr 2026 01:07:41 +0000 (-0300) Subject: ALSA: usb-audio: Fix Audio Advantage Micro II SPDIF switch X-Git-Tag: v7.1-rc1~22^2~2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=a9224f26b754b5034719248891ff3c2ea0d11144;p=thirdparty%2Fkernel%2Flinux.git ALSA: usb-audio: Fix Audio Advantage Micro II SPDIF switch snd_microii_spdif_switch_put() returns 0 when the requested vendor register value differs from the cached one. This comparison was inverted by the resume-support conversion, so real SPDIF switch toggles are ignored while no-op writes still issue SET_CUR and report success. Return early only when the requested value matches the cached one. Fixes: 288673beae6c ("ALSA: usb-audio: Add resume support for MicroII SPDIF ctls") Cc: stable@vger.kernel.org Signed-off-by: Cássio Gabriel Link: https://patch.msgid.link/20260421-microii-spdif-switch-fix-v1-1-5c50dc28b88f@gmail.com Signed-off-by: Takashi Iwai --- diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 5194a2ac1ea8..1bdaa46d4fe1 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -2027,7 +2027,7 @@ static int snd_microii_spdif_switch_put(struct snd_kcontrol *kcontrol, int err; reg = ucontrol->value.integer.value[0] ? 0x28 : 0x2a; - if (reg != list->kctl->private_value) + if (reg == list->kctl->private_value) return 0; kcontrol->private_value = reg;