All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH  v2 1/2] regmap: Properly round cache_word_size
@ 2011-11-16 19:34 Lars-Peter Clausen
  2011-11-16 19:34 ` [PATCH v2 2/2] regmap: Drop check whether a register is readable in regcache_read Lars-Peter Clausen
  2011-11-17 16:51 ` [PATCH v2 1/2] regmap: Properly round cache_word_size Mark Brown
  0 siblings, 2 replies; 4+ messages in thread
From: Lars-Peter Clausen @ 2011-11-16 19:34 UTC (permalink / raw)
  To: Mark Brown, Dimitris Papastamos; +Cc: linux-kernel, Lars-Peter Clausen

regcache currently only properly works with val bit sizes of 8 or 16, since
it will, when calculating the cache word size, round down. This causes the
cache storage to be too small to hold the full register value. Fix this by
rounding up instead.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>

---
Changes since v1:
 * Use DIV_ROUND_UP
---
 drivers/base/regmap/regcache.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index d687df6..6d93e49 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -111,8 +111,8 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
 	map->num_reg_defaults = config->num_reg_defaults;
 	map->num_reg_defaults_raw = config->num_reg_defaults_raw;
 	map->reg_defaults_raw = config->reg_defaults_raw;
-	map->cache_size_raw = (config->val_bits / 8) * config->num_reg_defaults_raw;
-	map->cache_word_size = config->val_bits / 8;
+	map->cache_word_size = DIV_ROUND_UP(config->val_bits, 8);
+	map->cache_size_raw = map->cache_word_size * config->num_reg_defaults_raw;
 
 	map->cache = NULL;
 	map->cache_ops = cache_types[i];
-- 
1.7.7.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-11-17 16:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-16 19:34 [PATCH v2 1/2] regmap: Properly round cache_word_size Lars-Peter Clausen
2011-11-16 19:34 ` [PATCH v2 2/2] regmap: Drop check whether a register is readable in regcache_read Lars-Peter Clausen
2011-11-17 16:51   ` Mark Brown
2011-11-17 16:51 ` [PATCH v2 1/2] regmap: Properly round cache_word_size Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.