* [PATCH] regmap: Fix handling of volatile registers for format_write() chips
@ 2014-08-26 11:24 Mark Brown
2014-08-26 15:57 ` Lars-Peter Clausen
0 siblings, 1 reply; 2+ messages in thread
From: Mark Brown @ 2014-08-26 11:24 UTC (permalink / raw)
To: Scott Jiang, Lars-Peter Clausen; +Cc: linux-kernel, Mark Brown
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>
---
drivers/base/regmap/regmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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)
--
2.1.0.rc1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] regmap: Fix handling of volatile registers for format_write() chips
2014-08-26 11:24 [PATCH] regmap: Fix handling of volatile registers for format_write() chips Mark Brown
@ 2014-08-26 15:57 ` Lars-Peter Clausen
0 siblings, 0 replies; 2+ messages in thread
From: Lars-Peter Clausen @ 2014-08-26 15:57 UTC (permalink / raw)
To: Mark Brown, Scott Jiang; +Cc: linux-kernel, Mark Brown
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.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-08-26 15:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-26 11:24 [PATCH] regmap: Fix handling of volatile registers for format_write() chips Mark Brown
2014-08-26 15:57 ` Lars-Peter Clausen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox