From nobody Fri Aug 14 15:49:50 2026 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) (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 9D05C43934B for ; Fri, 14 Aug 2026 13:41:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786714893; cv=none; b=F5mCB37KlMejmjlB0WRtn6ryLkENv+pHkTCdzjBTl8PeEyPgja3FLjNFhYvKQmYtd08bBbYEXf32awbOWAXZyQz9/8xwn0OI4XnAWeHwDfngBL5DhIO5YkHgl6qlsVojzTwhCNNtRjsvP8cBSpvo2sh1FhmHNTlGoYINPuDaZFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786714893; c=relaxed/simple; bh=/6y2rOBs8rDmm+ZmIrGOnJSPzixX/5shuOMVECiTTGE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=LUhpJ8KcbgxEPuJOPPXRmYkM9r4Q3ha1rlPtIOF7Gw0+09y3hDVyt4WkJEdtQr+NRLi6Z9mDqBmi8NuDHOMCZFH5fESdkqGJmRThgVOoOZQMWRludy5EXiA8gKc1uUxo7icg5Pb9FOlXX7X0zSzzLOrEQaP/G6MxCUYJ5PioH4I= 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=CSQ9AAB+; arc=none smtp.client-ip=209.85.216.45 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="CSQ9AAB+" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-38125cebfdaso1456132a91.1 for ; Fri, 14 Aug 2026 06:41:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786714892; x=1787319692; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=Sc7kpq7dxQn0HvFszffVq6DRG7iIwj8Pl4wCJ18jRfQ=; b=CSQ9AAB+CSGv4qEeHMGaEutKwnn1FhydiYTfkttNhPrJ/O74AS0T5Uc57JtWyXCqtm /BCZRFzMGMaiRdF9ph8i1WK196iQIYlp/noQpEs9z8PCrSa2mNLHunTbClO6AeFvPpZr GAyScLBtth0sqOlsF/rKIhJMZ8S6aFZyeAEykVoBZD+Rd0n/JTGqw2HG7XCevt9cZ8nD MbAdJCtd5mfvvldPU3H1Qf4oHUxW5LI0yFOtG/jMslRX2CyOTA6U0jTli0DaeYEK/4rR 1pMVUtVUzAp6BxdF5Q68YRq84vK7Fq4Gu/CXpJoFoU3MT6XtZLFt/bZ4uqNPtPHz8IZE LA8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786714892; x=1787319692; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Sc7kpq7dxQn0HvFszffVq6DRG7iIwj8Pl4wCJ18jRfQ=; b=aM4aupRmavy68T0PjJJW/a3blxzNLAfiXedXJp8X6S+QkrgzcUAG7+xlYobkLGmOt1 3Gg1Vt5Bwu42IrlrqonMXNEPmfrPSvYj1FO34tbhPeWnN/AzxBs4cWGDW0fT1p0xBm/2 RYnPLL0lAzpKurjkyY3bTn4/8JqaXOCf1G5pSm1BekWq/7XH5kwJp3tlUUB7IA81QgsT FDeWZRHISUedRFkfnFRCK3kZi4MYMMT6QxmxDy7aJxOXKj4J8dxnz68htM77zVCAmvlO rKA+oyio8k4J/+8k4RZUUTMyUcyAOI3SDjqmrelOqVGHa+TzbmroyjQxB1W/FyZxnWjv dzGQ== X-Forwarded-Encrypted: i=1; AHgh+RroAw77guRIB2P+ehyjItu4fM5cHylYxGPhoAkwnmJpRyhhPCMQLwqbnBl4lgssAvBammk93D/+GRwHTK8=@vger.kernel.org X-Gm-Message-State: AOJu0YzTsQYJsp+vAjsOID7m3LNVvGmOA58EERHVY07uTq+0sMBLMoJc E3eKXs8UyLEzqf/nRA1rrucOLpgWdm6TuVZ3uW0grUCAZk8UhkCxwb2l X-Gm-Gg: AR+sD12ZDM0gkJCgDwy5+q0NI+s6rYoDXh/oRhPM0UU9o7hsFjh22zJIF2+tJRo+Uki SPTb4NYls74R+wJctwqqwW/6j3Le1VwLszoE7YEz91ZqEXdVygIvn9umOpG7PyZMwhzXGep2rPo a5oO3ievEDOOcJZh1xtHhU22dpp5K0oYu5DEzGScNOHk36vGg3JWdozXLXli7G1IQeIU4oHUq8y 1pM/VeJ6Fr4j09XbR7htqlSbJwBjJFyOw1ySUVC1xN3N5XVAJiEtBxqC1uLX5oFTFZ/ZffhgNmd FXjQtj7f4Ne9RJ2QX0bl8+WUiOvpuFjPr/vw5YM6YFd7+xylj9YW/fU+04pRTRBLy4mR5pPegU4 jfLZQwAbQ9S7bkOzpg5ByFHYLAOBSjX+AItsKG7Dpktt4DHsYyTOjedKRVpyUvFdpFUjRW312gD 7UhhzwPHRkYQPDKOr4EVUxxay4o9V34pSGwf5JGqtlrAXmsQmBjIptRhu8+q3ILDo9FpZfVq6Ym 2/ytur7 X-Received: by 2002:a17:90b:4405:b0:381:792d:f993 with SMTP id 98e67ed59e1d1-3933b8c4cf1mr5657892a91.17.1786714891897; Fri, 14 Aug 2026 06:41:31 -0700 (PDT) Received: from haichao.tail057a43.ts.net ([2001:da8:e000:1206:e9af:7c0e:be31:2c3f]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-394eb78d512sm2798370a91.16.2026.08.14.06.41.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2026 06:41:31 -0700 (PDT) From: Ruoyu Wang To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Chanwoo Choi , Charles Keepax Cc: patches@opensource.cirrus.com, linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Ruoyu Wang Subject: [PATCH] ASoC: codecs: arizona-jack: Balance MICVDD and runtime PM on MICD errors Date: Fri, 14 Aug 2026 21:41:26 +0800 Message-ID: <20260814134126.1387876-1-ruoyuw560@gmail.com> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" arizona_start_mic() takes a runtime PM reference and enables MICVDD before enabling microphone detection. If regmap_update_bits_check() fails, it only reports the error and leaves both references held. A later arizona_stop_mic() only releases them when clearing ARIZONA_MICD_ENA changes the register. An error before MICD is enabled therefore keeps the device active and MICVDD enabled indefinitely. Release MICVDD and the runtime PM reference on error, just as for a successful update which reports no change. This issue was found by a static analysis checker and confirmed by manual source review. Fixes: fbdc60b2a787 ("extcon: arizona: Correct error handling on regmap_upd= ate_bits_check") Signed-off-by: Ruoyu Wang --- sound/soc/codecs/arizona-jack.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sound/soc/codecs/arizona-jack.c b/sound/soc/codecs/arizona-jac= k.c index a9063bac2752b..ec291174660db 100644 --- a/sound/soc/codecs/arizona-jack.c +++ b/sound/soc/codecs/arizona-jack.c @@ -272,9 +272,10 @@ static void arizona_start_mic(struct arizona_priv *inf= o) ret =3D regmap_update_bits_check(arizona->regmap, ARIZONA_MIC_DETECT_1, ARIZONA_MICD_ENA, ARIZONA_MICD_ENA, &change); - if (ret < 0) { + if (ret < 0) dev_err(arizona->dev, "Failed to enable micd: %d\n", ret); - } else if (!change) { + + if (ret < 0 || !change) { regulator_disable(info->micvdd); pm_runtime_put_autosuspend(arizona->dev); } --=20 2.51.0