sound/usb/mixer_quirks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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>
---
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@gmail.com>
On Wed, 22 Apr 2026 03:07:41 +0200,
Cássio Gabriel wrote:
>
> 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>
Thanks, applied now.
Takashi
© 2016 - 2026 Red Hat, Inc.