summaryrefslogtreecommitdiff
path: root/drivers/base/regmap
diff options
context:
space:
mode:
authorbui duc phuc <phucduc.bui@gmail.com>2026-07-13 12:03:12 +0700
committerMark Brown <broonie@kernel.org>2026-07-13 18:52:43 +0100
commita7d168db6bb7a5be2616a4828f491e412fe57a6d (patch)
tree2cdc30f0f16b18f7dda27c9daa9d751b196f9ecf /drivers/base/regmap
parent85da24aac16ab70c77a763e42e52fc3a782fb21c (diff)
downloadlinux-a7d168db6bb7a5be2616a4828f491e412fe57a6d.tar.gz
linux-a7d168db6bb7a5be2616a4828f491e412fe57a6d.zip
regcache: Mark cache dirty if selector register rewrite fails
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@gmail.com> Link: https://patch.msgid.link/20260713050312.38729-3-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/base/regmap')
-rw-r--r--drivers/base/regmap/regcache.c1
1 files changed, 1 insertions, 0 deletions
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 @@ out:
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;