From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from cstnet.cn (smtp25.cstnet.cn [159.226.251.25]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE074382370; Sat, 4 Jul 2026 04:08:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.25 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783138106; cv=none; b=Ymj5jRgQMmP2WFd/oOGuHI8cJ8/sS14myIXKVHn5944nG7mDBxaBLwJArsMVsKLw25b8faZV5Yy6d7rBA+SdFUu7CzVQvhFFPqDTDVBtoDfbArzPGWK6NVWvdzY9DF9zaRXuEm5BqWToU+PefJaB67UBakzEgjpAPSa4EVLtarY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783138106; c=relaxed/simple; bh=uNRZ9ajMP3twrD64L/EBr9vku3NgFZGSDAKL6Nq3u1w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AsfdAB4w0hKa1Eh4Mo8L2Y1n2kim/8dzxPqk0ZfMkw538cKqW3tsaQkivJ1Y3qVuTjsN6iNZjXHJd1+UsEy6mnCxWwr2m6ZyPM8edQcTlszHsQ7NNPldoSGezY/4XRv34KltYvyaMgeRsix01TesKi3d3Yzdkgunmsfehd+uzps= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=iscas.ac.cn; spf=pass smtp.mailfrom=iscas.ac.cn; arc=none smtp.client-ip=159.226.251.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=iscas.ac.cn Received: from localhost.localdomain (unknown [111.196.245.140]) by APP-05 (Coremail) with SMTP id zQCowACX7hEVh0hqD3LJFg--.13458S2; Sat, 04 Jul 2026 12:07:50 +0800 (CST) From: Pengpeng Hou To: Liam Girdwood , Mark Brown Cc: Srinivas Kandagatla , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Oder Chiou , Shenghao Ding , Kevin Lu , Baojun Xu , David Rhodes , Richard Fitzgerald , patches@opensource.cirrus.com, Bartosz Golaszewski , Kuninori Morimoto , Charles Keepax , Sebastian Krzyszkowiak , Shengjiu Wang , Sharique Mohammad , Pengpeng Hou Subject: [PATCH 19/19] ASoC: codecs: max98090: Propagate runtime regcache_sync() errors Date: Sat, 4 Jul 2026 12:07:47 +0800 Message-ID: <20260704040747.56587-1-pengpeng@iscas.ac.cn> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260704034845.14291-1-pengpeng@iscas.ac.cn> References: <20260704034845.14291-1-pengpeng@iscas.ac.cn> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:zQCowACX7hEVh0hqD3LJFg--.13458S2 X-Coremail-Antispam: 1UD129KBjvJXoW7ZryktF47uF47Ar4rAF4fKrg_yoW8GFy5pr ZxAFW5G3y8Xw17Crs7Aw45GF1fK39aya13Cw4Ut348Aw15Jr17tFyfXFyjvF9xGry7GFsr Ar4UtayUuFs8tF7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUU9q14x267AKxVW5JVWrJwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26ryj6F1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U JVWxJr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AKxV WxJr0_GcWle2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2Wl Yx0E2Ix0cI8IcVAFwI0_Jw0_WrylYx0Ex4A2jsIE14v26r4j6F4UMcvjeVCFs4IE7xkEbV WUJVW8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7Cj xVA2Y2ka0xkIwI1lc7CjxVAaw2AFwI0_GFv_Wryl42xK82IYc2Ij64vIr41l4I8I3I0E4I kC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWU WwC2zVAF1VAY17CE14v26r4a6rW5MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr 0_Xr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG 6r1j6r1xMIIF0xvEx4A2jsIE14v26r4j6F4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F 4UJbIYCTnIWIevJa73UjIFyTuYvjTRABMKDUUUU X-CM-SenderInfo: pshqw1xhqjqxpvfd2hldfou0/ max98090_runtime_suspend() puts the regmap into cache-only mode. Runtime resume clears cache-only mode, resets the device, and replays cached register state with regcache_sync(), but currently ignores a failed replay. Return the sync error and restore cache-only/dirty state before failing runtime resume. This deliberately leaves the separate system-resume sync call unchanged because the source does not provide an equally strong paired system suspend/cache-only proof for that path. Signed-off-by: Pengpeng Hou --- sound/soc/codecs/max98090.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c index da416329b038..53f8894db9e0 100644 --- a/sound/soc/codecs/max98090.c +++ b/sound/soc/codecs/max98090.c @@ -2645,12 +2645,18 @@ static void max98090_i2c_remove(struct i2c_client *client) static int max98090_runtime_resume(struct device *dev) { struct max98090_priv *max98090 = dev_get_drvdata(dev); + int ret; regcache_cache_only(max98090->regmap, false); max98090_reset(max98090); - regcache_sync(max98090->regmap); + ret = regcache_sync(max98090->regmap); + if (ret < 0) { + regcache_cache_only(max98090->regmap, true); + regcache_mark_dirty(max98090->regmap); + return ret; + } return 0; } -- 2.43.0