From: Lars-Peter Clausen <lars@metafoo.de>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>,
Dimitris Papastamos <dp@opensource.wolfsonmicro.com>,
Jonathan Cameron <jic23@kernel.org>
Cc: Michael Hennerich <michael.hennerich@analog.com>,
<linux-kernel@vger.kernel.org>, <linux-iio@vger.kernel.org>,
<device-drivers-devel@blackfin.uclinux.org>, <drivers@analog.com>,
Lars-Peter Clausen <lars@metafoo.de>
Subject: [PATCH 3/7] regmap: Properly round cache_word_size
Date: Wed, 16 Nov 2011 16:28:18 +0100 [thread overview]
Message-ID: <1321457302-8724-3-git-send-email-lars@metafoo.de> (raw)
In-Reply-To: <1321457302-8724-1-git-send-email-lars@metafoo.de>
regcache currently only properly works with val sizes of 8 or 16. For all other
val sizes it will round them down to the next multiple of 8, which will cause
the cache to be too small. This patch fixes it by rounding the cache_word_size
up to the nearest storage size.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
drivers/base/regmap/regcache.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index d687df6..6f0dbc0 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -111,8 +111,15 @@ 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;
+
+ if (config->val_bits <= 8)
+ map->cache_word_size = 1;
+ else if (config->val_bits <= 16)
+ map->cache_word_size = 2;
+ else
+ return -EINVAL;
+
+ 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
next prev parent reply other threads:[~2011-11-16 15:29 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-16 15:28 [PATCH 1/7] regmap: Move initialization of regcache related fields to regcache_init Lars-Peter Clausen
2011-11-16 15:28 ` [PATCH 2/7] regmap: Make reg_config reg_defaults const Lars-Peter Clausen
2011-11-16 16:13 ` Mark Brown
2011-11-16 16:23 ` Lars-Peter Clausen
2011-11-16 16:24 ` Mark Brown
2011-11-16 16:36 ` Lars-Peter Clausen
2011-11-16 16:39 ` Mark Brown
2011-11-16 16:50 ` Lars-Peter Clausen
2011-11-16 16:51 ` Mark Brown
2011-11-16 17:01 ` Lars-Peter Clausen
2011-11-16 17:09 ` Mark Brown
2011-11-16 17:20 ` Lars-Peter Clausen
2011-11-16 17:26 ` Mark Brown
2011-11-16 17:35 ` Mark Brown
2011-11-16 15:28 ` Lars-Peter Clausen [this message]
2011-11-16 16:14 ` [PATCH 3/7] regmap: Properly round cache_word_size Mark Brown
2011-11-16 16:25 ` Lars-Peter Clausen
2011-11-16 15:28 ` [PATCH 4/7] regmap: Try cached read before checking if a hardware read is possible Lars-Peter Clausen
2011-11-16 17:35 ` Mark Brown
2011-11-16 15:28 ` [PATCH 5/7] regmap: Check if a register is writable instead of readable in regcache_read Lars-Peter Clausen
2011-11-16 16:16 ` Mark Brown
2011-11-16 16:34 ` Lars-Peter Clausen
2011-11-16 16:38 ` Mark Brown
2011-11-16 16:52 ` Lars-Peter Clausen
2011-11-16 16:56 ` Mark Brown
2011-11-16 17:09 ` Lars-Peter Clausen
2011-11-16 17:12 ` Mark Brown
2011-11-16 17:15 ` Lars-Peter Clausen
2011-11-16 17:22 ` Mark Brown
2011-11-16 15:28 ` [PATCH 6/7] regmap: Add support for 10/14 register formating Lars-Peter Clausen
2011-11-16 17:37 ` Mark Brown
2011-11-16 15:28 ` [PATCH 7/7] staging:iio:dac: Add AD5380 driver Lars-Peter Clausen
2011-11-16 16:56 ` Lars-Peter Clausen
2011-11-17 20:24 ` Jonathan Cameron
2011-11-18 9:08 ` Lars-Peter Clausen
2011-11-18 9:51 ` J.I. Cameron
2011-11-16 17:35 ` [PATCH 1/7] regmap: Move initialization of regcache related fields to regcache_init Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1321457302-8724-3-git-send-email-lars@metafoo.de \
--to=lars@metafoo.de \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=device-drivers-devel@blackfin.uclinux.org \
--cc=dp@opensource.wolfsonmicro.com \
--cc=drivers@analog.com \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael.hennerich@analog.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).