Message ID | 1409052255-10601-1-git-send-email-broonie@kernel.org |
---|---|
State | New |
Headers | show |
On 08/26/2014 01:24 PM, Mark Brown wrote: > From: Mark Brown <broonie@linaro.org> > > A previous over-zealous factorisation of code means that we only treat > registers as volatile if they are readable. For most devices this is fine > since normally most registers can be read and volatility implies > readability but for format_write() devices where there is no readback from > the hardware and we use volatility to mean simply uncacheability this means > that we end up treating all registers as cacheble. > > A bigger refactoring of the code to clarify this is in order but as a fix > make a minimal change and only check readability when checking volatility > if there is no format_write() operation defined for the device. > > Signed-off-by: Mark Brown <broonie@linaro.org> Tested-by: Lars-Peter Clausen <lars@metafoo.de> Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index bb4502a48be5..44c2df8284d7 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -110,7 +110,7 @@ bool regmap_readable(struct regmap *map, unsigned int reg) bool regmap_volatile(struct regmap *map, unsigned int reg) { - if (!regmap_readable(map, reg)) + if (!map->format.format_write && !regmap_readable(map, reg)) return false; if (map->volatile_reg)