From: bui duc phuc <phucduc.bui@gmail.com>
If regcache_sync() fails in si521xx_resume(), the function only logs the
error, leaving regmap with cache_only disabled even though the register
cache has not been synchronized with the hardware.
Re-enable cache_only on failure to restore the state established by
si521xx_suspend().
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
---
drivers/clk/clk-si521xx.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/clk-si521xx.c b/drivers/clk/clk-si521xx.c
index ceadc07bcb6d..e96d5d082624 100644
--- a/drivers/clk/clk-si521xx.c
+++ b/drivers/clk/clk-si521xx.c
@@ -358,8 +358,10 @@ static int __maybe_unused si521xx_resume(struct device *dev)
regcache_cache_only(si->regmap, false);
ret = regcache_sync(si->regmap);
- if (ret)
+ if (ret) {
+ regcache_cache_only(si->regmap, true);
dev_err(dev, "Failed to restore register map: %d\n", ret);
+ }
return ret;
}
--
2.43.0