]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: rockchip: spdif: Restore regcache cache-only mode on sync failure
authorbui duc phuc <phucduc.bui@gmail.com>
Tue, 2 Jun 2026 10:16:07 +0000 (17:16 +0700)
committerMark Brown <broonie@kernel.org>
Thu, 11 Jun 2026 19:49:41 +0000 (20:49 +0100)
If regcache_sync() fails during runtime resume, the driver disables the
clocks and returns an error. However, the regmap cache-only mode is left
disabled.
Restore cache-only mode in the error path so subsequent register accesses
continue to use the cache while the device is inactive.

Reported-by: Sashiko AI Review <sashiko-bot@kernel.org>
Closes: https://lore.kernel.org/all/20260522103713.6C09D1F000E9@smtp.kernel.org/
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
Link: https://patch.msgid.link/20260602101608.45137-5-phucduc.bui@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/rockchip/rockchip_spdif.c

index 8de5b76cfe7916d3ba87bf868cfa325a3a16d50e..7f15bc7f8f35a334219fe2777fe5a4e22396ffb4 100644 (file)
@@ -94,6 +94,7 @@ static int rk_spdif_runtime_resume(struct device *dev)
 
        ret = regcache_sync(spdif->regmap);
        if (ret) {
+               regcache_cache_only(spdif->regmap, true);
                clk_disable_unprepare(spdif->mclk);
                clk_disable_unprepare(spdif->hclk);
        }