]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ALSA: usb-audio: Roll back quirk control caches on write errors
authorCássio Gabriel <cassiogabrielcontato@gmail.com>
Wed, 29 Apr 2026 13:20:01 +0000 (10:20 -0300)
committerTakashi Iwai <tiwai@suse.de>
Wed, 29 Apr 2026 15:16:04 +0000 (17:16 +0200)
commit6380957fa24251856a532e48a46a4dc3d1ae26b6
treee663c4718a72f072f6299d44b7aaf60fa7b2c5dc
parent6e934725ec3abb63247a0cb4cd455fff3c009ef5
ALSA: usb-audio: Roll back quirk control caches on write errors

Several mixer quirk callbacks cache the requested
control value in kcontrol->private_value before
issuing a single vendor or class write.

Their paired get and resume paths consume that cache
directly, so a failed write currently leaves software
state changed even though the update did not succeed.
That can make later reads report a value the device
never accepted and can replay the stale cache on resume.

Restore the previous cached value on failure in
the Audigy2NX LED, Emu0204 channel switch,
Xonar U1 output switch, Native Instruments controls,
FTU effect program switch, and Sound Blaster E1 input source switch.

Fixes: 9cf3689bfe07 ("ALSA: usb-audio: Add audigy2nx resume support")
Fixes: 5f503ee9e270 ("ALSA: usb-audio: Add Emu0204 channel switch resume support")
Fixes: 2bfb14c3b8fb ("ALSA: usb-audio: Add Xonar U1 resume support")
Fixes: da6d276957ea ("ALSA: usb-audio: Add resume support for Native Instruments controls")
Fixes: 0b4e9cfcef05 ("ALSA: usb-audio: Add resume support for FTU controls")
Fixes: 388fdb8f882a ("ALSA: usb-audio: Support changing input on Sound Blaster E1")
Cc: stable@vger.kernel.org
Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
Link: https://patch.msgid.link/20260429-alsa-usb-quirks-cache-rollback-v1-1-01b35c688b80@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer_quirks.c