From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f178.google.com (mail-dy1-f178.google.com [74.125.82.178]) (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 7FA57632 for ; Sun, 19 Apr 2026 20:31:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630688; cv=none; b=Pe6wMyrT8XlA/upAG/epRZU38PFcFMBG7HkbiUUk5WC8n2phCh7/Ec68F5KjjM4gPkssVPxGI6poBCB16HgdfiHxrZ+iM/bBsNkhhNQRbgAjQBeIE3Vnmqrdf/i1SQfjBHMixJno1RaSCWAvndk9Ie7oElPojzPfuH+ALLXb8O8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776630688; c=relaxed/simple; bh=fOysJetftFuDAfilt4YkPpmsqDf72fBKOBho/z6x7Ns=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=sYNnjpS+TBgW4+Y66HrBVcRN76vqzeltV49dKugp6xNXYngo6aycdjWl7v8nw3L3kXXfU8HfgdBU0yPutGCebpEEyafudJoIkQghMZ47bk+g5LeOBU/PbKR2MODej7pG+ZYUcoKxD5RTPkBPcw49zPwAydGG1lLjOp7n8VaCDRY= 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=gpy3apJh; arc=none smtp.client-ip=74.125.82.178 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="gpy3apJh" Received: by mail-dy1-f178.google.com with SMTP id 5a478bee46e88-2bd9a485bd6so731860eec.1 for ; Sun, 19 Apr 2026 13:31:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776630686; x=1777235486; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=KM4l3haLMhwkG2gE+Q3bWokNzUlY9nmC6/W5mIqwYTY=; b=gpy3apJhW2NlLLJgqIPGUA0QQfKFcwgciVBsLQGtlH1xErD3HcJ/qU9xTuxmTr3Y55 95rPB4Atc37uQp82y02zVUzIwtcEfsdhCnY1wTgwxoyVMudK8QFjp/QucN6TNN0fSJJb La6jTjvVzwpu795H1cWQIvunmoXz4X4U95xFZ9KhM1lmZ+HNnvu1DQKIYvF+2xVhp84p 7QeYLUB24Ity1GCyPMxi34GxEr7f+2n0KuPVldDotTB/14iEPUvg2BWS+O7qTQIXtEww mZcerKv2Kd4ccRT6cFQo9PYBStm9c2ceME/nHRrQ3aeEZRhyEjksueEE3AbSY3MhhHGn liCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776630686; x=1777235486; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KM4l3haLMhwkG2gE+Q3bWokNzUlY9nmC6/W5mIqwYTY=; b=pjiHbckTKmlCjZJxGflKH4o0pbM9CZ0cCMY/+mX+anuL/V453J6ixEcXhMh1EsC4W4 sxhZ2EtvYSOEdid5QSPI5kHj7lZUmGbAB3CpA9cbpP2DgEVNoCtArPdVtvgQgf/RloqT qugGZESnWN2ANBdUXB0X/O0wpOeB6N3ApnExe0VJkUzuy3khPofQ8Uj1tDeJRUSpdhSA PLxj+Wj3YesbrujYxinc1eV4IugIB+GF1bU3XIoUngblbW1+69dGUdjKSjIWoU7+/gdV zlMeAR7Te27VXe0VzM3hsh9pNAgZ5kxAty3QGW5RARilIKJp9qn71cP2NQ+w4yvB4jiy SxEQ== X-Forwarded-Encrypted: i=1; AFNElJ8sPla1tmyRMYuMMLrYHI8c7ZkqFp7i+8sMiCFLKbGpEAVeLb/wY3F8iBiYe0HGW7BeZbPtPduRTFtsGF4=@vger.kernel.org X-Gm-Message-State: AOJu0YwEZ2fqrV1Th/O5W+7N07Bdgfz8pOUSJtivUAXf9mewpeEBEJ21 tgeNthEbcW8HFXb8GrScRM217P7vS3oI20bWrb/IErl0zOEJZaDfV5WU X-Gm-Gg: AeBDieuFwKdReACYQ8PfwX/IzZKdlAMUbC7uCeCl5z5tJl8wATU82EMxEGNwEVfjDoX M40imZjTlJlXWQVHNmsMmkhdEHBq1K3zAa05F25nN0RoGgrJW2qGE+jN4CXVDaIXLCKMlO5XY7k MEbCghyLe52AYexaxLswxyh7VQ09geM/CGmDo2mzgeL/weDf6vMYwOG1sN/u1174rEBSPK0qqeS ZNAyNmKC8/XxQrLniQBm0fg05+FyoSwNwoIGCIhid/ZROfSyAH6dgsjO3fxwMQ7yt6e921hoPcZ Kfi3+nSta5kEWTCzUAZHSMcdGthBKREOkwrerlKayg3Q+tcjTXovqqP5WaFQ/lOKVnYEBMtLPal ZyVSf7aRDd0VE9Zt5tJwBL/DZ6qlYNfNeRmBIFC4CFQGMYp55nBhy/aEvoJuhaFK5fzq3bKppfU xXiL2DBEAo9qtxfp6vycH8lMShophbN1DMHM1wg0mpE757jNZ1b66zfIFIFvu9cohvUM3cqpU96 T0YOIrSvoUV4CM= X-Received: by 2002:a05:7300:f193:b0:2da:1874:f39c with SMTP id 5a478bee46e88-2e4657728eamr5493770eec.12.1776630685523; Sun, 19 Apr 2026 13:31:25 -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.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2026 13:31:25 -0700 (PDT) From: =?utf-8?q?C=C3=A1ssio_Gabriel?= Subject: [PATCH 0/4] usb-audio: fix mixer write failure handling Date: Sun, 19 Apr 2026 17:30:28 -0300 Message-Id: <20260419-usb-write-error-propagation-v1-0-5a3bd4a673ae@gmail.com> 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 X-B4-Tracking: v=1; b=H4sIAAAAAAAC/yXMMQ7CMAxA0atUnmspjSBSuQrqkBjTmqGJ7BSQq t6dAOMb/t/BWIUNLt0Oyk8xyWvD0HdAS1xnRrk1g3c+uNMQcLOEL5XKyKpZsWgucY61degdhZE 9nSkmaIeifJf3736d/rYtPZjqdwnH8QF5hrAafwAAAA== X-Change-ID: 20260416-usb-write-error-propagation-20c69e2c5cab 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=1775; i=cassiogabrielcontato@gmail.com; h=from:subject:message-id; bh=fOysJetftFuDAfilt4YkPpmsqDf72fBKOBho/z6x7Ns=; b=owGbwMvMwCV2IdZeKur/u2bG02pJDJlPraeYuLdNjrNad5+jhvPkxoMx1w55LnbQt7u1Nf6LR zDn9cT7HaUsDGJcDLJiiiyrkxZZ7ul6cLU+boUHzBxWJpAhDFycAnCTuRn+55i3LcyacVLB6yPr ln+nSuL45Bms3WutmndncvaUOm8LZ/hf+27/t4XWtVtYuT5edn6atTP+xkLZKUZ3JwV7fks42PG fDQA= X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp; fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83 This series fixes usb-audio mixer put() paths that currently report success even when the underlying device write fails. The issue exists in the generic mixer core callbacks, the Scarlett Gen1 enum path, and several Tascam US-16x08 put() callbacks. The US-16x08 EQ and compressor callbacks have an additional bug: they update their software shadow state before sending the USB write, so a failed transfer can leave later get() results out of sync with the hardware state. The series is split into four patches: - propagate write failures in the generic mixer core callbacks - fix the Scarlett Gen1 enum callback - propagate write failures in the simple US-16x08 put() callbacks - commit the US-16x08 EQ and compressor shadow state only after a successful write Successful writes are unchanged. Failed writes are now reported correctly, and the US-16x08 shadow state remains coherent with the hardware after write errors. Signed-off-by: Cássio Gabriel --- Cássio Gabriel (4): ALSA: usb-audio: Propagate write errors in generic mixer put callbacks ALSA: usb-audio: Propagate errors in scarlett_ctl_enum_put() ALSA: usb-audio: Propagate US-16x08 write errors in route/mix EQ-switch put callbacks ALSA: usb-audio: Update US-16x08 EQ/comp shadow state after successful writes sound/usb/mixer.c | 17 ++++-- sound/usb/mixer_scarlett.c | 4 +- sound/usb/mixer_us16x08.c | 127 +++++++++++++++++++++++++++------------------ 3 files changed, 92 insertions(+), 56 deletions(-) --- base-commit: 99c71f13f9841f8c67fa7595bf0834d3045f5d24 change-id: 20260416-usb-write-error-propagation-20c69e2c5cab Best regards, -- Cássio Gabriel