Call stack of regcache_sync calls may not emit any error message even if
operation was cancelled due an error in I/O driver. One such a silent error
is for instance if I2C bus driver doesn't receive ACK from the I2C device
and returns -EREMOTEIO.
Since many users of regcache_sync() don't check and print the error there is
no any indication that HW registers are potentially out of sync.
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
map->cache_bypass = 1;
ret = _regmap_write(map, reg, val);
map->cache_bypass = 0;
map->cache_bypass = 1;
ret = _regmap_write(map, reg, val);
map->cache_bypass = 0;
+ if (ret) {
+ dev_err(map->dev, "Unable to sync register %#x. %d\n",
+ reg, ret);
dev_dbg(map->dev, "Synced register %#x, value %#x\n", reg, val);
}
dev_dbg(map->dev, "Synced register %#x, value %#x\n", reg, val);
}
ret = _regmap_write(map, regtmp, val);
map->cache_bypass = 0;
ret = _regmap_write(map, regtmp, val);
map->cache_bypass = 0;
+ if (ret != 0) {
+ dev_err(map->dev, "Unable to sync register %#x. %d\n",
+ regtmp, ret);
dev_dbg(map->dev, "Synced register %#x, value %#x\n",
regtmp, val);
}
dev_dbg(map->dev, "Synced register %#x, value %#x\n",
regtmp, val);
}
map->cache_bypass = 1;
ret = _regmap_raw_write(map, base, *data, count * val_bytes);
map->cache_bypass = 1;
ret = _regmap_raw_write(map, base, *data, count * val_bytes);
+ if (ret)
+ dev_err(map->dev, "Unable to sync registers %#x-%#x. %d\n",
+ base, cur - map->reg_stride, ret);