[PATCH] ALSA: usb-audio: Fix Audio Advantage Micro II SPDIF switch

From: Cássio Gabriel

Date: Tue Apr 21 2026 - 21:08:08 EST


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@xxxxxxxxxxxxxxx
Signed-off-by: Cássio Gabriel <cassiogabrielcontato@xxxxxxxxx>
---
sound/usb/mixer_quirks.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
index a01510a855c2..6cd50cfc563b 100644
--- a/sound/usb/mixer_quirks.c
+++ b/sound/usb/mixer_quirks.c
@@ -2025,7 +2025,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;

---
base-commit: 46b0e9075ce97e82726d45ce9b048840d0b4eec7
change-id: 20260417-microii-spdif-switch-fix-9d8b62193585

Best regards,
--
Cássio Gabriel <cassiogabrielcontato@xxxxxxxxx>