From nobody Tue Jun 16 12:41:36 2026 Received: from mail-dy1-f177.google.com (mail-dy1-f177.google.com [74.125.82.177]) (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 51AF02EA749 for ; Sun, 19 Apr 2026 20:31:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630692; cv=none; b=I6SygNWXoxDYPH4uRs3EyuvqdRxTOACkS39EeZq/YvQoCaSAuFjoySnTPSd30Njtu3KC0Yk0/CO7rOlxoKoA6Po4/wSLQmajsCbfU9Au8/SfZyj9QnaNdBGrhBoDh3Z97o7KLtQs6FN0YoXIW3Z7P5xvmIlSSAwcufx+utVojtw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630692; c=relaxed/simple; bh=P4weKcVi00t8c3FrT0ZGr8asxcuixapoIDKdFDWxtqM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S3y5Kp80N/kaUITi/+ktVoPi/p5fKy00g+CWzinUhC5ZaiAmuiMr7lWKxUX2Jzs2eaQIOR6l0NAXTBnGLOekI814vL7b5Ybq5N02elrTfoFxZxDbyonCnQryiwy7BZYk27Ac63izGwLYMkbkdxPsDIQfq50oihniq4xE/Pt9eyw= 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=lXtdTN1+; arc=none smtp.client-ip=74.125.82.177 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="lXtdTN1+" Received: by mail-dy1-f177.google.com with SMTP id 5a478bee46e88-2e221a71e19so2010747eec.0 for ; Sun, 19 Apr 2026 13:31:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776630688; x=1777235488; 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=Tn6tLwXqEiX4RdZMDh5f+mmnzYxq73K+CVdhjiXHL3g=; b=lXtdTN1+U6sPwgKpniepdJKnq3ie9lc9YmzTr2ZCp8SafW48ivUax1fs0wcnppZIcX gp7zKKx9E+AF2+ciH/CElYFd/M2SsACm9Vxr0DMxHc3AOTipgDnSvfnZslCMW/85rxp+ MtFdtq3+s13dCJZF0xz+RxyDgbvLSBy6WdMjO4yg0awL9RbozsmbBOQGk9Uu0Qe3HYJp 9C1c/MyxYvV4DgeEhSnocOaBuj64Efsnd3sj03MbpPOmCQW0dpjC4Ws64Z5NCcKyWmJ/ G9mID/OQiHnl+vcKoMxhmMDF581ZYE5nIEFHAg9OiRQWff03L2e4Q5ES/E5EWkTfv7/K SJng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776630688; x=1777235488; 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=Tn6tLwXqEiX4RdZMDh5f+mmnzYxq73K+CVdhjiXHL3g=; b=DmgnZHGMwjW9QZP0Si1HZ4G0/VmONexYuCZtwvtHirPzpjupBrtYo3D8B2MJiSAtoZ rJjLyYZQc89/EIisQ7MlPJoybGFhOKZP3P0qNvuY9Ih9uuzifyDKl+JjOQ5OSNMiNVrT uSsDNNEymlw39UP1ATS8UKCF+jwRP7Udb0Rw3w2vW7WGLg9POpqk8n4IiKYnDsMo0Vd2 nbR/+bkrtTO+9Mu3ww40JLCk6edVDpDuzHrODesZx9xvrow53atSWvF3svMdHZaak8ke fNFBdMws6xU6ByxHgC0VxICxq4hclihm4wLiPdQTwGhEB6rNQLtYDqh+tnc3MvlYEqRL J9Ug== X-Forwarded-Encrypted: i=1; AFNElJ+TvzkrmDG2SujiluNE2KI4BzFY/LwcSeYeGs0dZN4ifcy2kYJK7ByNsnxpmJQPpihpxbIkt24h0+ZOYw4=@vger.kernel.org X-Gm-Message-State: AOJu0YwL5TsxQH9n86Tj2Udl3qDl8grUSpUv782Hm7IIw2qHlPja6KYc fMK4ThhqOY+WsEfBP/p5S+Es3F1lXeAoKTkSwe/BiUkw/SyZAuufHnDn X-Gm-Gg: AeBDietXtdh/UZaW8UrVFE5kuPi3QeP2m683p85HAp0cNX9su+Jihgkdf2goSGJmQqF pzg1lFad84rqrH7JDEG3ObqyLZF0+41RrJ0TYyiRzXxT/dTTWb0kP6F8syEtZi0C5uCyLwZlXen f9VnRL90x/D9gBQ/y8BUJJlzYr9PYgrH7F9nFpPq0f5X3WZ8+/qUccF+n8XVX4E831+So5uKK8J lZtUsDVd08KOV4NOx6gH8auQIbaS4aM7xiEadiEBqiq0KKXf0Xp4voQPNpZh/EnF0kTp3XB/C+2 RJJRPe9qWZHvRiNPr0szEzl+ntk62x/ITFUOfRnZ1cSK3FSgnbcQv0WzpHBkRjMc4jCGOW7YW/A vPSJ2cm9lbYYZFfDXu/e2eRDKSa+syEZVgL7fLIpf0TaXGLdYKt7BT5MsEMKWoKr0DaSz7/QtuJ WIUrHs+KQqk/u3a9AUGAoH1nfmTvuOd6G7HfmeM6rCPu6nO2Ue36G0ScnDYbGdCeGSsBlCHP48L mLqbiTS8yUtHCeMNX+dw7Hzzg== X-Received: by 2002:a05:7300:6c28:b0:2da:9a3c:8062 with SMTP id 5a478bee46e88-2e479c042cbmr6224720eec.17.1776630688482; Sun, 19 Apr 2026 13:31:28 -0700 (PDT) Received: from [192.168.1.18] (177-4-160-195.user3p.v-tal.net.br. [177.4.160.195]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e53ac84c38sm11419096eec.13.2026.04.19.13.31.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2026 13:31:28 -0700 (PDT) From: =?utf-8?q?C=C3=A1ssio_Gabriel?= Date: Sun, 19 Apr 2026 17:30:29 -0300 Subject: [PATCH 1/4] ALSA: usb-audio: Propagate write errors in generic mixer put callbacks 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: quoted-printable Message-Id: <20260419-usb-write-error-propagation-v1-1-5a3bd4a673ae@gmail.com> References: <20260419-usb-write-error-propagation-v1-0-5a3bd4a673ae@gmail.com> In-Reply-To: <20260419-usb-write-error-propagation-v1-0-5a3bd4a673ae@gmail.com> To: Takashi Iwai , Chris J Arges , Detlef Urban , Jaroslav Kysela Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?C=C3=A1ssio_Gabriel?= X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2274; i=cassiogabrielcontato@gmail.com; h=from:subject:message-id; bh=P4weKcVi00t8c3FrT0ZGr8asxcuixapoIDKdFDWxtqM=; b=owGbwMvMwCV2IdZeKur/u2bG02pJDJlPrWeG8hmaTprjvs79ExOPkV22kmSyVLVulcl2e5+Pn 23yvX06SlkYxLgYZMUUWVYnLbLc0/Xgan3cCg+YOaxMIEMYuDgFYCJ3FzP801kdx9aWJ6fHXFb+ eWVHsa3Jw6TfKtea+Bje/rP56/D7HcN/52MsG61UzkyLWudx8HDY9BYvn+e/1+qZCy8WmO/RLv2 MCwA= X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp; fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83 mixer_ctl_feature_put(), mixer_ctl_procunit_put(), and mixer_ctl_selector_put() ignore failures from their SET_CUR helper routines and report the control as changed whenever the requested value differs from the current one. If the device rejects the write, userspace still sees success although the hardware state did not change. Propagate write failures instead, using filter_error() so ignore_ctl_error keeps the same semantics as the existing get paths. Signed-off-by: C=C3=A1ssio Gabriel --- sound/usb/mixer.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 85653112e7f3..9d9ed68166c8 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -1526,7 +1526,10 @@ static int mixer_ctl_feature_put(struct snd_kcontrol= *kcontrol, return -EINVAL; val =3D get_abs_value(cval, val); if (oval !=3D val) { - snd_usb_set_cur_mix_value(cval, c + 1, cnt, val); + err =3D snd_usb_set_cur_mix_value(cval, c + 1, + cnt, val); + if (err < 0) + return filter_error(cval, err); changed =3D 1; } cnt++; @@ -1541,7 +1544,9 @@ static int mixer_ctl_feature_put(struct snd_kcontrol = *kcontrol, return -EINVAL; val =3D get_abs_value(cval, val); if (val !=3D oval) { - snd_usb_set_cur_mix_value(cval, 0, 0, val); + err =3D snd_usb_set_cur_mix_value(cval, 0, 0, val); + if (err < 0) + return filter_error(cval, err); changed =3D 1; } } @@ -2466,7 +2471,9 @@ static int mixer_ctl_procunit_put(struct snd_kcontrol= *kcontrol, return -EINVAL; val =3D get_abs_value(cval, val); if (val !=3D oval) { - set_cur_ctl_value(cval, cval->control << 8, val); + err =3D set_cur_ctl_value(cval, cval->control << 8, val); + if (err < 0) + return filter_error(cval, err); return 1; } return 0; @@ -2832,7 +2839,9 @@ static int mixer_ctl_selector_put(struct snd_kcontrol= *kcontrol, return -EINVAL; val =3D get_abs_value(cval, val); if (val !=3D oval) { - set_cur_ctl_value(cval, cval->control << 8, val); + err =3D set_cur_ctl_value(cval, cval->control << 8, val); + if (err < 0) + return filter_error(cval, err); return 1; } return 0; --=20 2.53.0 From nobody Tue Jun 16 12:41:36 2026 Received: from mail-dy1-f176.google.com (mail-dy1-f176.google.com [74.125.82.176]) (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 B81CF2DCF61 for ; Sun, 19 Apr 2026 20:31:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630695; cv=none; b=TaJE9EHdT7DJAH+IxjUpp+MgPhWJkTxip7dW5Y3eiZeB4TyI5GSgujZH50HdSInpsW3p4KUtEehzRtjDIiJETh+y81ZzB7OkhYwxzU1Z8XGVkagsD5DhrBUcY4iq7ZvafF58myxdnwATZLASv/+cU/C925F9BA3uaB8+OfR3mtI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630695; c=relaxed/simple; bh=FWL9iHDXSYoluckJLB911JktohnLlx+Aco9CRYvp9OA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BCDQh7+CBwZNxz+vMxq7xLuudDvShtEAEBKQ+5/+2VrmY0q6bNexrEadybtwRfYPzsgbsL6mJpF3Ifz5h9n3lov6AmLowWTA0+vF4EcacNDs3yetXCHzoLSHar2uQ9IsgJt3RAGcD47pCnI3dEAjiw9j15DFAEP3th8jC8xE18w= 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=NeYA0Uzv; arc=none smtp.client-ip=74.125.82.176 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="NeYA0Uzv" Received: by mail-dy1-f176.google.com with SMTP id 5a478bee46e88-2bdcf5970cdso1977069eec.0 for ; Sun, 19 Apr 2026 13:31:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776630692; x=1777235492; 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=adKZuyxQZ1V1TuZoH3DUI0I4OUtCX6ISr2mcieCFENA=; b=NeYA0UzvCEP/CZ/zLr1rpcWe/E+FTlnyr0wmDkQAyEAlTOxqsngZKziEtZ0YMcGg3p a0R1gRs8kSokBOeABiUFIaCJtjuUfncgdIy4J1I7kKP1HAd3ZevGKnVu3gwNP+9nUa6i E/oCcsJR4BpFvG4odaZQLrWb+paEeGBdXn1k+hla5kr4UeOx9W88xytWfkY/Zeaqpt6L 6BxIMie81iqyMxI0Ri85J51yC9CnporLktnIkmwGam02XgkvPsxotKhxOVwOlXSbTCxi yVwtPPWuqIztaooWlippGGTyOa7qh0CP/anhpJSdf4qMERYVUeW9KtOLF8Hv9JrcKjcX ESQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776630692; x=1777235492; 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=adKZuyxQZ1V1TuZoH3DUI0I4OUtCX6ISr2mcieCFENA=; b=OEfrAJ4l8WNVn7KCvaVBiPB66UV18yJzsWZp5SZyJxsu2tovje0I9Oo7HzDUXxTalf V85KumC1OFv286ajiglaIHsGQH+kCGbIP0lh7+2bofbn6f9ASe8yNZUf29atHXjj7FB1 LsW32bbwCyUOl8lrIIOzHhujXqi41W9NfgBftb+0wTK6iBPXUaXT9/7YZobryEhSS5jM 9vQYU9erki6tPbeeLuBEkX2PNOcPzPQOWPA8FwOQ9NmaZ3gcWmwmaV/vMO10KnNy9ijT m1PEDCnzkJWk4JSfPIea7MkFkv/q6gn5MI/P/OS36o200W+DP3uSbL4psaGRhMf7qXAr DSmg== X-Forwarded-Encrypted: i=1; AFNElJ/AkZOmXT7bhEYc/aOoRcHKbIK6jBeuFbqWt4dzMXvbIXO+g+rHF6mP2z+8KgZw+/CDBGP7gf4LwExtae0=@vger.kernel.org X-Gm-Message-State: AOJu0YwEk111D6sdEBDbtdy0z09ufzYi7g61Z7Jn36Ee8SE2msGHS3LM z6PXPWkO0l15qNAsmdawK1uzVr8Ap8OPTXgRNJeqnqqGPMLvYmMR80i+ X-Gm-Gg: AeBDieu4PMqz/Q+wR6Cs5k7TOCGpoYxWWjphyqqbLPWpT/frGh2U/9SuCw6/tHkiNOb tBnGpL0oolggGdtzc5Vll3RFGwX4KjoM59+uuwa2qgY3xTKj7OrvXv+xG3Q2jqrHY59paCy4A5m 0SbI1poVhkrUbLO7cO2fycl8nUE7YjPAI920ghT5bF7nZLEF4G2rkZm5JVjaPKGUhsCGy8RZBhc YOl+mcJbBhoG4pLiv6GxK1BmtbMeF5LyhiMLI0x4YQ/ejsWsvMjCq1mqqqSpbKkCNbNDWnPobi9 h4qTHElk1xV6yqgL9TbwT1FPH8fh5EVuqEjcFdvwg1Mo/k3i49JGdY0OK/9wyrFJGbm1djgpNLd G3Z6OD6f6aOlH534eeoOTe0bpbmJxmxvV/JlQrPBIuQIVw+WjU8uEUIuqMGimnzEnMXlvg3p7Cg 8iumN6mrd2uAT6fhfm1VdEOp6VnFBdZyT/Xt3xcwfg1CQPP43tDd7EjlrEX7SnXTw+NgyQxtTtU yhsHCxvKeoq0lI= X-Received: by 2002:a05:7301:1909:b0:2dc:e6fa:317 with SMTP id 5a478bee46e88-2e42dbffd65mr3036275eec.11.1776630691763; Sun, 19 Apr 2026 13:31:31 -0700 (PDT) Received: from [192.168.1.18] (177-4-160-195.user3p.v-tal.net.br. [177.4.160.195]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e53ac84c38sm11419096eec.13.2026.04.19.13.31.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2026 13:31:31 -0700 (PDT) From: =?utf-8?q?C=C3=A1ssio_Gabriel?= Date: Sun, 19 Apr 2026 17:30:30 -0300 Subject: [PATCH 2/4] ALSA: usb-audio: Propagate errors in scarlett_ctl_enum_put() 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: quoted-printable Message-Id: <20260419-usb-write-error-propagation-v1-2-5a3bd4a673ae@gmail.com> References: <20260419-usb-write-error-propagation-v1-0-5a3bd4a673ae@gmail.com> In-Reply-To: <20260419-usb-write-error-propagation-v1-0-5a3bd4a673ae@gmail.com> To: Takashi Iwai , Chris J Arges , Detlef Urban , Jaroslav Kysela Cc: 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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1134; i=cassiogabrielcontato@gmail.com; h=from:subject:message-id; bh=FWL9iHDXSYoluckJLB911JktohnLlx+Aco9CRYvp9OA=; b=owGbwMvMwCV2IdZeKur/u2bG02pJDJlPrWd2H2+4PG8yo8H0aN5O7S9WC6UTizm+r5Lj4W34+ EFj2ZGwjhIWBjEuBlkxRZbVSYss93Q9uFoft8IDZg4rE8gQBi5OAZiIXxsjw9UVi8Pv6xom/DCe k6HXo7TXRsYlQbxykXTHoUohjRmWGxm+KRh8sHjdPmcvO9uzXVp9u179EQ+q8Di/6LlM9ibbsDP cAA== X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp; fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83 scarlett_ctl_enum_put() ignores the return value from snd_usb_set_cur_mix_value() and reports success whenever the requested enum value differs from the current one. If the SET_CUR request fails, the callback still returns success even though neither the hardware state nor the cached mixer value changed. Fixes: 76b188c4b370 ("ALSA: usb-audio: Scarlett mixer interface for 6i6, 18= i6, 18i8 and 18i20") Cc: stable@vger.kernel.org Signed-off-by: C=C3=A1ssio Gabriel --- sound/usb/mixer_scarlett.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sound/usb/mixer_scarlett.c b/sound/usb/mixer_scarlett.c index 1bb01e827654..673eb8d8724d 100644 --- a/sound/usb/mixer_scarlett.c +++ b/sound/usb/mixer_scarlett.c @@ -680,7 +680,9 @@ static int scarlett_ctl_enum_put(struct snd_kcontrol *k= ctl, val =3D ucontrol->value.integer.value[0]; val =3D val + opt->start; if (val !=3D oval) { - snd_usb_set_cur_mix_value(elem, 0, 0, val); + err =3D snd_usb_set_cur_mix_value(elem, 0, 0, val); + if (err < 0) + return err; return 1; } return 0; --=20 2.53.0 From nobody Tue Jun 16 12:41:36 2026 Received: from mail-dy1-f174.google.com (mail-dy1-f174.google.com [74.125.82.174]) (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 3E0321D86DC for ; Sun, 19 Apr 2026 20:31:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630697; cv=none; b=oodqeMHPr9dSMBF3ZJq0yY75WzisTft+mp7WUXTJVsbjdIKyrzhWS2tVKcbDFMP7vdlI6tkM6cYBNjVnUAmUG1fzypZ9Ve/gLjsk5ubIn956mGuEgy8kqgp+bj+HzwwYg3WgrQvSJ03/ZccK2vIJsoNYqLK2pBPfbJPIf2hV8pY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630697; c=relaxed/simple; bh=Sd3lBuRPc4TVt8+YNxlMtKK90gkr9B3jK01uoIEBfEc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RmeTCDBBkv1G0TOUZliuJODcHn2RA+0GcjM30HctbG4hVAXzUTXuQHqNh1uczPQJlBTqc7+xYK6R4a2IcoHHjZga8v1sUOAmd9b6bQN4vRBP+3wtEW1A9LQ134stoaD9CLplHBiPJKWyh8TUdKjSaPsC9lfRKh6JVL8ETB7kVtI= 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=MRyj7fpF; arc=none smtp.client-ip=74.125.82.174 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="MRyj7fpF" Received: by mail-dy1-f174.google.com with SMTP id 5a478bee46e88-2ba895adfeaso2508017eec.0 for ; Sun, 19 Apr 2026 13:31:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776630695; x=1777235495; 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=JwHh11ZJDmP6iTnoktuVwH7YOEWIPLJREiHNq2gv16w=; b=MRyj7fpFe2GtubX72KWC23vnyiG1FfwbHlGd3NFYthnnftpM/yFyo2ymb6M9N4a9/a PEiVYfbMHBSp0BHi9EufOMtef2AIyikXr4S2kDnjVGOogPNyB1VHZ5cTrwr8RHZFW7hb rl2VSg9cNs6SgII2klI6mWazOE8h+RPCEdSUIvB1cqardsV5INv1NKoTUQcTai0xA4xN fWFspxcdskGNG9xybJBMq7omWMqLx0sKJaC146vblJUabHX2XI/lJIF82u6NEcX++lDK NAlkDXOo4RtOQf7XmLv08o0hspzQ+GZlzqPSQBOv8PNoN28uURtbvcyYyw6IzZzLRG2M mVdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776630695; x=1777235495; 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=JwHh11ZJDmP6iTnoktuVwH7YOEWIPLJREiHNq2gv16w=; b=mEgEDXEwvnK2lVWyRs1Bx5+vYIiXJ3Wp5BKQFS62sxWBnLoFoUhzqOOHo3ItGyyXBp S4pLSTmxbZAgmwAWN4JMK4CsjwNN/NtfLu+vcSnIXtcaTu68OBLlsKdUFpaq6sgk9DkP W0VCpP0OKV3bagdEG1g6U3Wl5Vs8Gy+FRc9NBPfG4ucPo8wLc0aw6p8vglCRaNOKHX+Z fzNclD98AjsTgNZFK+652U3dt5QgVdGKQ/7Oj27rVRh2iRwnUv0HNEWjuDyedFumdY+p RA+1nbPA9Ds5J6PsjJwlGGWjvVyYQLXs0dgK4le97oX6PmkxBdxQyxsW8jPekd0lhI0Z PEFg== X-Forwarded-Encrypted: i=1; AFNElJ9Kwz3gKqoBkkEj5nTBoUyIMesBLw0C49guFzfmxG0HOZh2Y0dp225GB9u2RvH9ZBFopHXUGnWrUyZFhzs=@vger.kernel.org X-Gm-Message-State: AOJu0YyTGEdvWBGw5n+syjBS6Gij7deV3dMlcJa0qNQEplGeSeziA2Ui qSMzEIq7Ho8uEtXqGbmacAmq56o8gPETeQ2+3zKC0vWehbrcLJsPxTss X-Gm-Gg: AeBDietHgB9wQ85TIYUFt2j3DBcvFihoL5mB0pWroBv5quqm2ai+zpBhiTQcIaiKPCl +gxbVq7yEAbihCLop3easHyL12nd+gMe1ZupC7JHWgvKdAiWJRxq4E6GemG/ETCDR1eGh1YZcmU NSWdlH8JguYi/7sLhb0r4zeXfpgRsGNrZwzy+tPWJYy8UBeKmAs8AgMQMbb7nKib35nD3yH0I5H bS1OjGVMD3i7Ub6l2AodLVURLGlAngfzMSyCoLTe0G2wuauHGMYyuIsSWb4N7WQqObgqPkDxdlv LjuRRn4HqOPjaAAd3oEgqmVws8iSTTKMiBUBGWi01nC1bIQDjJ3dINPPIhxoMrQeaIJjUxgtCvE C/x8asuW1Ln/9nOMrU0EkB8GlgB60FwrBWUEVfk8K51rWLOw9lec83ZnpFZQ4UqF+vpY4CLDh2s rdurn8Br3viKAAcSpFtO0bU6EaotGxoveJ/iLBwfOVrpSSgNSdq1Ns0SCu/7SHfMyHl11q8P46C rhr5xhqeZKvlJc= X-Received: by 2002:a05:7300:e684:b0:2e2:5bc5:f8eb with SMTP id 5a478bee46e88-2e46538c8b5mr4826430eec.9.1776630695261; Sun, 19 Apr 2026 13:31:35 -0700 (PDT) Received: from [192.168.1.18] (177-4-160-195.user3p.v-tal.net.br. [177.4.160.195]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e53ac84c38sm11419096eec.13.2026.04.19.13.31.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2026 13:31:34 -0700 (PDT) From: =?utf-8?q?C=C3=A1ssio_Gabriel?= Date: Sun, 19 Apr 2026 17:30:31 -0300 Subject: [PATCH 3/4] ALSA: usb-audio: Propagate US-16x08 write errors in route/mix EQ-switch put callbacks 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: quoted-printable Message-Id: <20260419-usb-write-error-propagation-v1-3-5a3bd4a673ae@gmail.com> References: <20260419-usb-write-error-propagation-v1-0-5a3bd4a673ae@gmail.com> In-Reply-To: <20260419-usb-write-error-propagation-v1-0-5a3bd4a673ae@gmail.com> To: Takashi Iwai , Chris J Arges , Detlef Urban , Jaroslav Kysela Cc: 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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3397; i=cassiogabrielcontato@gmail.com; h=from:subject:message-id; bh=Sd3lBuRPc4TVt8+YNxlMtKK90gkr9B3jK01uoIEBfEc=; b=owGbwMvMwCV2IdZeKur/u2bG02pJDJlPrWddWlIdqfDPU5r7iW932Ckmj33VXIwpwdeEm1O1+ vYtCvvUUcrCIMbFICumyLI6aZHlnq4HV+vjVnjAzGFlAhnCwMUpABOZfZCRYWGqqb21JJ/s6r9L boaFFNz0VAnmFm1ymuJoydckdvtmKsM/Zav/7QVpvbHrFGew/pywm1lJjGnttQU7MzzfB+73N+x jBQA= X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp; fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83 Several US-16x08 mixer put callbacks log failed control URBs but still return success to userspace. That hides device write failures even though the requested value was not applied. Return the negative write error instead in the route, master, bus, channel, and EQ switch put callbacks. Fixes: d2bb390a2081 ("ALSA: usb-audio: Tascam US-16x08 DSP mixer quirk") Cc: stable@vger.kernel.org Signed-off-by: C=C3=A1ssio Gabriel --- sound/usb/mixer_us16x08.c | 49 +++++++++++++++++++++++--------------------= ---- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/sound/usb/mixer_us16x08.c b/sound/usb/mixer_us16x08.c index 8a02964e5d7b..fcf7dfa4aa84 100644 --- a/sound/usb/mixer_us16x08.c +++ b/sound/usb/mixer_us16x08.c @@ -224,14 +224,14 @@ static int snd_us16x08_route_put(struct snd_kcontrol = *kcontrol, =20 err =3D snd_us16x08_send_urb(chip, buf, sizeof(route_msg)); =20 - if (err > 0) { - elem->cached |=3D 1 << index; - elem->cache_val[index] =3D val; - } else { + if (err < 0) { usb_audio_dbg(chip, "Failed to set routing, err:%d\n", err); + return err; } =20 - return err > 0 ? 1 : 0; + elem->cached |=3D 1 << index; + elem->cache_val[index] =3D val; + return 1; } =20 static int snd_us16x08_master_info(struct snd_kcontrol *kcontrol, @@ -283,14 +283,14 @@ static int snd_us16x08_master_put(struct snd_kcontrol= *kcontrol, buf[5] =3D index + 1; err =3D snd_us16x08_send_urb(chip, buf, sizeof(mix_msg_out)); =20 - if (err > 0) { - elem->cached |=3D 1 << index; - elem->cache_val[index] =3D val; - } else { + if (err < 0) { usb_audio_dbg(chip, "Failed to set master, err:%d\n", err); + return err; } =20 - return err > 0 ? 1 : 0; + elem->cached |=3D 1 << index; + elem->cache_val[index] =3D val; + return 1; } =20 static int snd_us16x08_bus_put(struct snd_kcontrol *kcontrol, @@ -324,14 +324,14 @@ static int snd_us16x08_bus_put(struct snd_kcontrol *k= control, break; } =20 - if (err > 0) { - elem->cached |=3D 1; - elem->cache_val[0] =3D val; - } else { + if (err < 0) { usb_audio_dbg(chip, "Failed to set bus parameter, err:%d\n", err); + return err; } =20 - return err > 0 ? 1 : 0; + elem->cached |=3D 1; + elem->cache_val[0] =3D val; + return 1; } =20 static int snd_us16x08_bus_get(struct snd_kcontrol *kcontrol, @@ -392,14 +392,14 @@ static int snd_us16x08_channel_put(struct snd_kcontro= l *kcontrol, =20 err =3D snd_us16x08_send_urb(chip, buf, sizeof(mix_msg_in)); =20 - if (err > 0) { - elem->cached |=3D 1 << index; - elem->cache_val[index] =3D val; - } else { + if (err < 0) { usb_audio_dbg(chip, "Failed to set channel, err:%d\n", err); + return err; } =20 - return err > 0 ? 1 : 0; + elem->cached |=3D 1 << index; + elem->cache_val[index] =3D val; + return 1; } =20 static int snd_us16x08_mix_info(struct snd_kcontrol *kcontrol, @@ -529,13 +529,13 @@ static int snd_us16x08_eqswitch_put(struct snd_kcontr= ol *kcontrol, msleep(15); } =20 - if (err > 0) { - elem->cached |=3D 1 << index; - elem->cache_val[index] =3D val; - } else { + if (err < 0) { usb_audio_dbg(chip, "Failed to set eq switch, err:%d\n", err); + return err; } =20 + elem->cached |=3D 1 << index; + elem->cache_val[index] =3D val; return 1; } =20 @@ -1418,4 +1418,3 @@ int snd_us16x08_controls_create(struct usb_mixer_inte= rface *mixer) =20 return 0; } - --=20 2.53.0 From nobody Tue Jun 16 12:41:37 2026 Received: from mail-dy1-f172.google.com (mail-dy1-f172.google.com [74.125.82.172]) (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 85F5A2309AA for ; Sun, 19 Apr 2026 20:31:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630702; cv=none; b=j5wUeDP7+IXVr27EEGxjS3yY/nC2Ud2HVeUQsGwbL74rIMJbjQQe4ZasaOlf6WcgHHRCE2XqUfsOHpucodUJPvwwJnn/tzgFZAHD5uA8AS6GKuoRAHW++gmUCp/wwXliVSWFnn/SReJsuMkfQSwyiASSsBI8KPZxSbbhFiOh+HM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630702; c=relaxed/simple; bh=WebseC0n1uvq36U8Uba9vWPPZlTekN/7JlLiJTYMcdM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EWygxEZaKoCTZovHqJHJAUc0F0oHqwGheayEAPPku+NqXNjgHj2r7rhC9Z3ukF2p5lQJKQBl1763MgGD3ypwALgthL/ZwWR4jP4AF1DxXsrfJlc/6bI5xVheU89+aQaKZOQ+x6BFQPYChfHjO1x26sdyuQ+4Z3RgSz20v7qZVSE= 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=UXRoY6pa; arc=none smtp.client-ip=74.125.82.172 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="UXRoY6pa" Received: by mail-dy1-f172.google.com with SMTP id 5a478bee46e88-2ba895adfeaso2508041eec.0 for ; Sun, 19 Apr 2026 13:31:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776630699; x=1777235499; 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=pMVw5KmBgRtdu9bTOKibgYALvECPF7cHuMU/74qaZtI=; b=UXRoY6pafrvCjE8Oq0jjoChbwJxoII9jVJDkF/m4qfwq5pyHPSAwsWezLXchJloSlH LAAHFPV1sRhL6XIeyZN9312Pgb+ySg1wzQlKMDqWjQS8USum6bDaNYCGdJ8DcqWCVv/J DJtng5v42t+lWEtbE39TYiMpjzGmmXtGHCcK0jLCvcMRw/3SAshEBeNQt0lWpBGmYxhG 95YMsGSZtsXTx8ff+z7WXR0stX3duHWT4xU8gFwirRuWBmEIt//XNDIQomvFxDz7nrlm tqKpA3yiYYLK/3woMGgysiUgN76dPlBQAqmjBX/akSc4Acyd6eJj3oJEuW5cbGF1XuaF mrpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776630699; x=1777235499; 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=pMVw5KmBgRtdu9bTOKibgYALvECPF7cHuMU/74qaZtI=; b=Xfjhyf+r1z7KLwK7xt4DxUTWQY4cXS0mRqW4Nhn3A89Sy5GPdjop01iH6PjaFuAJDW 5LzIXXmX84sKGBpPc868DQsOlQuUBdJqtwSG54OqM431lJE7eO7FxM9fFbbBlbHXjyhV aDnXYO5+RZrmS9ErCKJSksZA7Pjt6JrtVnotGR/pGoTaSqV3UmEPdd9buglQX1FcZES8 XMhannMppwqhQQJjHBNJpgtfTNbywS9ef+Ij/aKqkZVVa+Ey11UUr08xX43V/WjvYpHW HSOPVs5sZxHQ9aHN4gxVC84ilZhGQdd+KoAX/ftAFPfmqnzaA4wC+YZCGp9xaZ33hBpq Lplg== X-Forwarded-Encrypted: i=1; AFNElJ8zhmGnrV8anih3jp1EXIUiiIFofQPxM+cKa9/BwiJmY1F72j4QybABbP7du8cb0wqxzir5vMR/W+0usFw=@vger.kernel.org X-Gm-Message-State: AOJu0Ywz8E7/p//yApki2kg5xuV3lR2ixVk2tFE0Cr8sv6sVrnjHuB1e v+w7vR2YdzUIAHX2KjJSybga7F/mGCMG9o77SG5rVxi7TJIadfqDgJRt X-Gm-Gg: AeBDievHAXnf2YPhhx/gbqlhn4d8xB++HGAToqfzN/1NV7p+sHUsfkO2+eB3JVcx27i qsDUISGNPRbo94YRSDEQrTI4Idt6gBHp4zfpU8D7pvhbeySfFKjr0LVKGY16hTh+08aQVQCX8Vy xwgn54alVI0C9LDZ7BPkPY/vQQSr8EpldmRRKlArAoba/KayGBN3STiMrXujP3/27Db35AXmB6s by29Gx35xAqQ/2Ol37hCcv/dCshPo8W3V9VpdKv/C+MUVe7jB4JOXUvbbEg2ScGBQe/vw/485tZ 7RziwSarUJwYYwZPkpzYo87wL0Dp6Z1oUl0r+jxrTV5fIN2vY6LS9PN5zj9NBH2fQhLpuhCdjwZ x/zmbk+SirwRH4SjIV6+9jMHDhD9A1tzpjnJNOT+Y7Yubej18vo7+0EMxJtl4Ri6WiG0/CDVOtM 1c++TrZENZKP0mkin7Sw9kw6Xq63pRKbv1uoikfJ+KBXnZycSjd0xr547DrnkxIcE2ZewtwwpEw kcn+r8fnBg3aTR+Z1CUHy0isg== X-Received: by 2002:a05:7301:2b07:b0:2cf:3de7:22ad with SMTP id 5a478bee46e88-2e47901764fmr5596867eec.27.1776630698635; Sun, 19 Apr 2026 13:31:38 -0700 (PDT) Received: from [192.168.1.18] (177-4-160-195.user3p.v-tal.net.br. [177.4.160.195]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e53ac84c38sm11419096eec.13.2026.04.19.13.31.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2026 13:31:38 -0700 (PDT) From: =?utf-8?q?C=C3=A1ssio_Gabriel?= Date: Sun, 19 Apr 2026 17:30:32 -0300 Subject: [PATCH 4/4] ALSA: usb-audio: Update US-16x08 EQ/comp shadow state 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: quoted-printable Message-Id: <20260419-usb-write-error-propagation-v1-4-5a3bd4a673ae@gmail.com> References: <20260419-usb-write-error-propagation-v1-0-5a3bd4a673ae@gmail.com> In-Reply-To: <20260419-usb-write-error-propagation-v1-0-5a3bd4a673ae@gmail.com> To: Takashi Iwai , Chris J Arges , Detlef Urban , Jaroslav Kysela Cc: 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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=5067; i=cassiogabrielcontato@gmail.com; h=from:subject:message-id; bh=WebseC0n1uvq36U8Uba9vWPPZlTekN/7JlLiJTYMcdM=; b=owGbwMvMwCV2IdZeKur/u2bG02pJDJlPrWeJ/N2z4eH3vr+6/Y93lR9f4L+Ja9pB8yrZNQKex 4MUlzLs6yhlYRDjYpAVU2RZnbTIck/Xg6v1cSs8YOawMoEMYeDiFICJxD9lZPh85nk2sySHo86e gp9ODstOnTpcsi3J2uzvAq28wF2z7VwYGZ6vmL/6QOei35vn7mRv+y1tvJE1NP8SX/bWDPs1Lf4 S/xgA X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp; fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83 snd_us16x08_comp_put() and snd_us16x08_eq_put() update their software stores before sending the USB write. If the transfer fails, later get callbacks report a value the hardware never accepted. Build the outgoing message from the current store plus the pending value, then commit the store only after a successful write. Fixes: d2bb390a2081 ("ALSA: usb-audio: Tascam US-16x08 DSP mixer quirk") Cc: stable@vger.kernel.org Signed-off-by: C=C3=A1ssio Gabriel --- sound/usb/mixer_us16x08.c | 78 +++++++++++++++++++++++++++++++------------= ---- 1 file changed, 52 insertions(+), 26 deletions(-) diff --git a/sound/usb/mixer_us16x08.c b/sound/usb/mixer_us16x08.c index fcf7dfa4aa84..ebff185cbd2c 100644 --- a/sound/usb/mixer_us16x08.c +++ b/sound/usb/mixer_us16x08.c @@ -435,6 +435,7 @@ static int snd_us16x08_comp_put(struct snd_kcontrol *kc= ontrol, int index =3D ucontrol->id.index; char buf[sizeof(comp_msg)]; int val_idx, val; + int threshold, ratio, attack, release, gain, switch_on; int err; =20 val =3D ucontrol->value.integer.value[0]; @@ -447,36 +448,61 @@ static int snd_us16x08_comp_put(struct snd_kcontrol *= kcontrol, /* new control value incl. bias*/ val_idx =3D elem->head.id - SND_US16X08_ID_COMP_BASE; =20 - store->val[val_idx][index] =3D ucontrol->value.integer.value[0]; + threshold =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_THRESHOLD)] + [index]; + ratio =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_RATIO)][index]; + attack =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_ATTACK)][index]; + release =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_RELEASE)] + [index]; + gain =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_GAIN)][index]; + switch_on =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_SWITCH)] + [index]; + + switch (val_idx) { + case COMP_STORE_IDX(SND_US16X08_ID_COMP_THRESHOLD): + threshold =3D val; + break; + case COMP_STORE_IDX(SND_US16X08_ID_COMP_RATIO): + ratio =3D val; + break; + case COMP_STORE_IDX(SND_US16X08_ID_COMP_ATTACK): + attack =3D val; + break; + case COMP_STORE_IDX(SND_US16X08_ID_COMP_RELEASE): + release =3D val; + break; + case COMP_STORE_IDX(SND_US16X08_ID_COMP_GAIN): + gain =3D val; + break; + case COMP_STORE_IDX(SND_US16X08_ID_COMP_SWITCH): + switch_on =3D val; + break; + } =20 /* prepare compressor URB message from template */ memcpy(buf, comp_msg, sizeof(comp_msg)); =20 /* place comp values in message buffer watch bias! */ - buf[8] =3D store->val[ - COMP_STORE_IDX(SND_US16X08_ID_COMP_THRESHOLD)][index] - - SND_US16X08_COMP_THRESHOLD_BIAS; - buf[11] =3D ratio_map[store->val[ - COMP_STORE_IDX(SND_US16X08_ID_COMP_RATIO)][index]]; - buf[14] =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_ATTACK)][index] - + SND_US16X08_COMP_ATTACK_BIAS; - buf[17] =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_RELEASE)][index] - + SND_US16X08_COMP_RELEASE_BIAS; - buf[20] =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_GAIN)][index]; - buf[26] =3D store->val[COMP_STORE_IDX(SND_US16X08_ID_COMP_SWITCH)][index]; + buf[8] =3D threshold - SND_US16X08_COMP_THRESHOLD_BIAS; + buf[11] =3D ratio_map[ratio]; + buf[14] =3D attack + SND_US16X08_COMP_ATTACK_BIAS; + buf[17] =3D release + SND_US16X08_COMP_RELEASE_BIAS; + buf[20] =3D gain; + buf[26] =3D switch_on; =20 /* place channel selector in message buffer */ buf[5] =3D index + 1; =20 err =3D snd_us16x08_send_urb(chip, buf, sizeof(comp_msg)); =20 - if (err > 0) { - elem->cached |=3D 1 << index; - elem->cache_val[index] =3D val; - } else { + if (err < 0) { usb_audio_dbg(chip, "Failed to set compressor, err:%d\n", err); + return err; } =20 + store->val[val_idx][index] =3D val; + elem->cached |=3D 1 << index; + elem->cache_val[index] =3D val; return 1; } =20 @@ -578,11 +604,10 @@ static int snd_us16x08_eq_put(struct snd_kcontrol *kc= ontrol, /* copy URB buffer from EQ template */ memcpy(buf, eqs_msq, sizeof(eqs_msq)); =20 - store->val[b_idx][p_idx][index] =3D val; - buf[20] =3D store->val[b_idx][3][index]; - buf[17] =3D store->val[b_idx][2][index]; - buf[14] =3D store->val[b_idx][1][index]; - buf[11] =3D store->val[b_idx][0][index]; + buf[20] =3D p_idx =3D=3D 3 ? val : store->val[b_idx][3][index]; + buf[17] =3D p_idx =3D=3D 2 ? val : store->val[b_idx][2][index]; + buf[14] =3D p_idx =3D=3D 1 ? val : store->val[b_idx][1][index]; + buf[11] =3D p_idx =3D=3D 0 ? val : store->val[b_idx][0][index]; =20 /* place channel index in URB buffer */ buf[5] =3D index + 1; @@ -592,14 +617,15 @@ static int snd_us16x08_eq_put(struct snd_kcontrol *kc= ontrol, =20 err =3D snd_us16x08_send_urb(chip, buf, sizeof(eqs_msq)); =20 - if (err > 0) { - /* store new value in EQ band cache */ - elem->cached |=3D 1 << index; - elem->cache_val[index] =3D val; - } else { + if (err < 0) { usb_audio_dbg(chip, "Failed to set eq param, err:%d\n", err); + return err; } =20 + store->val[b_idx][p_idx][index] =3D val; + /* store new value in EQ band cache */ + elem->cached |=3D 1 << index; + elem->cache_val[index] =3D val; return 1; } =20 --=20 2.53.0