]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ALSA: usb-audio: Fix Audio Advantage Micro II SPDIF switch
authorCássio Gabriel <cassiogabrielcontato@gmail.com>
Wed, 22 Apr 2026 01:07:41 +0000 (22:07 -0300)
committerTakashi Iwai <tiwai@suse.de>
Wed, 22 Apr 2026 15:52:08 +0000 (17:52 +0200)
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 <cassiogabrielcontato@gmail.com>
Link: https://patch.msgid.link/20260421-microii-spdif-switch-fix-v1-1-5c50dc28b88f@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer_quirks.c

index 5194a2ac1ea8bb4c67301f4073b25de7eddcb52e..1bdaa46d4fe182381418cc23741357e11e63bffb 100644 (file)
@@ -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;