From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f44.google.com (mail-dl1-f44.google.com [74.125.82.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D84A23FCB27 for ; Wed, 29 Apr 2026 13:20:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777468825; cv=none; b=OjhlQfmf/oEfxKA4C1WjVFQGIYL8BvKvJuJ37VkPKb10BsqY5MLHepuywGQf++eFURG1RYFLbcHvS1TOvIjVcgqN4u/AFkz5OiM0raYU8lshXJTpLMwryYHwhYdBsymiay+wk5XaZn0YvbXNG9hUo/k7oN6Gu0zxSv9VqV1zCCk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777468825; c=relaxed/simple; bh=feuCS+Wde8W7EpfVCWxGj5z6QZqJHZ4hcRmQpIJg2Y8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OUGmOHzHIQ1fYkdXnJMrNNMcxp5JuNhTEO8bqU7Md+YL8ioQ+p+o761yLm4GyqiRqC2/RQKggxJqxwVdrkQOovObU5Af9M4xN5ZosCKGRuSZ3FrNHh0Uni6avZv3XCzFlUrgbcOdxCeM4Un2s05yu7APkqWkIIhbfJo1NWB5PZQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=k2gXbMUj; arc=none smtp.client-ip=74.125.82.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="k2gXbMUj" Received: by mail-dl1-f44.google.com with SMTP id a92af1059eb24-12db2e415a7so5124015c88.1 for ; Wed, 29 Apr 2026 06:20:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777468823; x=1778073623; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=syI6vCyidI7u0qaJd4ZC0RGGlbIolm5pPKH0di9GsB0=; b=k2gXbMUjAHIP9ks38qtvQQyWs2hSgZTiskIWCXpVnMz3H1jJiOJQo8xQRRu1mjeANA GoiytNp6pASpSH50tNwIOpS8nBto25mpeTgIOhL+gu8Z+9m8GO2kixc3ojTBvuEEIa89 U5iVAK+2/FTHI3t+TVMlbF+7NlCHm4eGu455n0fe5j0Q9g6VWiKoCyXYK/tVaktWaTdf 9JJbQSOT5vNsz5YWedSDrBev2J34aItEUL7bVrR9lLScHLUR6QIE1bUcGwR7jwG0OLhN 5CutsLThTzdwQVRa4VGE2NYB8mkWwna4BmdPiWRhsc5nisc7tvbZ8EUj+Hth3ew9Dd98 Or9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777468823; x=1778073623; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=syI6vCyidI7u0qaJd4ZC0RGGlbIolm5pPKH0di9GsB0=; b=IwHuuI3fW/SSxxGYl4nVjZVgwN43XN93aMVAPLg8yL5E29m3d6V2YEzsh8to6Qq71b 7WfASzKJLXTB2Eufpgvs8otsm382pIZ4cdXciLLgFujSNX/6CBX6b3Fk376SM7xpYwqV dr/MhaNPTvGgwSDK6jBs3uSkogZZ3dh2wM3ISX7RASrR2UaSJVD1RKrCq3PH2pYJ4hUP maBfJmnV48te9nmaj0kyu1QT74buIS7L3dh6lf7TH1FbO7t6tUByPLSB+d+ZdEMQ8qGM QCd65704qj013EFDGHW8rXYSq5qFy1BeJvKWSb8hynH8u3tw1b/jfQDe7yTYlqH5H+QD AUcg== X-Forwarded-Encrypted: i=1; AFNElJ8EUvbl9ZuMD9pZRxOL94WS2/QYJ6sdnr2gHjV2AecfEfdQgHyvg+CbuF3tfIvNzheaov8zLP3SuZUg3rg=@vger.kernel.org X-Gm-Message-State: AOJu0Yw4S5fCjnwRc+VmzCNKI5ImSAu9YqxGH/vk5JK/rLYZrT67UPfx 1j+pVn4tQluKgT4fGZSH3945FyL/nxqdPZdzWEB/ZYx900+QquYM0qB3 X-Gm-Gg: AeBDies6VXw/lVDc7io6IumgSjRfEKWJ/4yFHYW9v9LqDwwhUht0QSeFNUvUUf097Ax cSoOSwsBfD5ozreLK7DdPn1uDkElL2iL3KlVqwx1zYJXNgAXsHYoFaF43JskLz3it86isw8+hCj Ay/+XS8gSTOR8r19m1yzRcoATyHhkRAKxGyhaNCeaRCluXiwL9sz3rBZHG8i+M/Hkiz/a6ZANs3 PdTRVF6cxihL9NU8kiXOxdXNB4XmPPtTytmCq53URW/EljOJ+GKcYHxVQsiyvk9bq78Wc+CHnOo WszsXMa1TKI9GkwyrZVMjn+htauFcczlRAlcLCuDk0C7/yldQb5wrz+8mLvB5aVQu91T2YYQ1PX eU9G1b/bVBA5foAHM4ty9YwdX3gV95M2Xlq3GaEcEB4aVBfy3IwZn8BNUqSBJQiJggxQZQxgMBc BBkQsAwwpsGDrFRfkpTqGo2BhJs65DHCgT+iNevx+79hs7fVNIiLX4vDaUUXnSOek8zqLUUjx2e tc3ksImz/Yv X-Received: by 2002:a05:7022:e98d:b0:127:366f:8bb7 with SMTP id a92af1059eb24-12de2a4b858mr1514450c88.25.1777468822679; Wed, 29 Apr 2026 06:20:22 -0700 (PDT) Received: from [192.168.1.18] (177-4-161-87.user3p.v-tal.net.br. [177.4.161.87]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12de321df36sm3336852c88.7.2026.04.29.06.20.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 06:20:22 -0700 (PDT) From: =?utf-8?q?C=C3=A1ssio_Gabriel?= Date: Wed, 29 Apr 2026 10:20:02 -0300 Subject: [PATCH 2/2] ALSA: usb-audio: Update Babyface Pro control caches only after successful writes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20260429-alsa-usb-quirks-cache-rollback-v1-2-01b35c688b80@gmail.com> References: <20260429-alsa-usb-quirks-cache-rollback-v1-0-01b35c688b80@gmail.com> In-Reply-To: <20260429-alsa-usb-quirks-cache-rollback-v1-0-01b35c688b80@gmail.com> To: Takashi Iwai Cc: Thomas Ebeling , Ian Douglas Scott , Jaroslav Kysela , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?C=C3=A1ssio_Gabriel?= , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1885; i=cassiogabrielcontato@gmail.com; h=from:subject:message-id; bh=feuCS+Wde8W7EpfVCWxGj5z6QZqJHZ4hcRmQpIJg2Y8=; b=owGbwMvMwCV2IdZeKur/u2bG02pJDJmfWLtajwc095kkiQt6yG67uunhz0dcbCv2ZizvXpO19 ZT3g+UpHaUsDGJcDLJiiiyrkxZZ7ul6cLU+boUHzBxWJpAhDFycAjAR2ceMDC/O8VfwN3XZpQQv m6kTe0jx7U7lwL3c7yqd/X2fOal3rmZkWLNdozE37vv6Tb0bz216FvG7dNOFcpHFTvM2TJFztZj EwQkA X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp; fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83 snd_bbfpro_ctl_put() and snd_bbfpro_vol_put() cache the requested packed control state in kcontrol->private_value before issuing the USB write. Their get and resume paths use that cached value directly, so a failed write can leave the driver reporting and later replaying a setting the hardware never accepted. Update the cached state only after a successful USB write. Fixes: 3e8f3bd04716 ("ALSA: usb-audio: RME Babyface Pro mixer patch") Cc: stable@vger.kernel.org Signed-off-by: Cássio Gabriel --- sound/usb/mixer_quirks.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 229be55e9158..99975c3240a5 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -3027,12 +3027,14 @@ static int snd_bbfpro_ctl_put(struct snd_kcontrol *kcontrol, if (val == old_value) return 0; + err = snd_bbfpro_ctl_update(mixer, reg, idx, val); + if (err < 0) + return err; + kcontrol->private_value = reg | ((idx & SND_BBFPRO_CTL_IDX_MASK) << SND_BBFPRO_CTL_IDX_SHIFT) | ((val & SND_BBFPRO_CTL_VAL_MASK) << SND_BBFPRO_CTL_VAL_SHIFT); - - err = snd_bbfpro_ctl_update(mixer, reg, idx, val); - return err < 0 ? err : 1; + return 1; } static int snd_bbfpro_ctl_resume(struct usb_mixer_elem_list *list) @@ -3217,11 +3219,13 @@ static int snd_bbfpro_vol_put(struct snd_kcontrol *kcontrol, new_val = uvalue & SND_BBFPRO_MIXER_VAL_MASK; + err = snd_bbfpro_vol_update(mixer, idx, new_val); + if (err < 0) + return err; + kcontrol->private_value = idx | (new_val << SND_BBFPRO_MIXER_VAL_SHIFT); - - err = snd_bbfpro_vol_update(mixer, idx, new_val); - return err < 0 ? err : 1; + return 1; } static int snd_bbfpro_vol_resume(struct usb_mixer_elem_list *list) -- 2.54.0