[PATCH 2/2] regcache: Mark cache dirty if selector register rewrite fails

From: phucduc . bui

Date: Mon Jul 13 2026 - 01:04:11 EST


From: bui duc phuc <phucduc.bui@xxxxxxxxx>

After a successful cache synchronization, regcache_sync() clears
cache_dirty. If rewriting a selector register later fails, the cache
and hardware become inconsistent while the cache still appears clean.

Update cache_dirty to reflect the cache and hardware state when
selector register rewriting fails.

Signed-off-by: bui duc phuc <phucduc.bui@xxxxxxxxx>
---
drivers/base/regmap/regcache.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index 040fd60c0d59..96cdae25b9c4 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -465,6 +465,7 @@ int regcache_sync(struct regmap *map)

selector_ret = _regmap_write(map, this->selector_reg, i);
if (selector_ret != 0) {
+ map->cache_dirty = true;
dev_err(map->dev, "Failed to write %x = %x: %d\n",
this->selector_reg, i, selector_ret);
break;
--
2.43.0