regmap: Properly round reg_bytes and val_bytes
Wolfram Sang [Sat, 28 Jan 2012 01:16:41 +0000 (02:16 +0100)]
For the upcoming 2/6-format, we don't see debugfs output otherwise,
since the current division results in 0. I'd think 10/14 is broken
currently, too.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
(cherry picked from commit c212acccc368a087a53559aac2b7d3be941b1252)

Change-Id: I2d8d1683f1649697ad73aa7544a3ac994931e237
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/87583

Rebase-Id: Rc45cc9dcded3f9510f70da9b26ed6c98042bb7cd

drivers/base/regmap/regmap.c

index ca6ade9..89d6566 100644 (file)
@@ -167,9 +167,9 @@ struct regmap *regmap_init(struct device *dev,
 
        mutex_init(&map->lock);
        map->format.buf_size = (config->reg_bits + config->val_bits) / 8;
-       map->format.reg_bytes = config->reg_bits / 8;
+       map->format.reg_bytes = DIV_ROUND_UP(config->reg_bits, 8);
        map->format.pad_bytes = config->pad_bits / 8;
-       map->format.val_bytes = config->val_bits / 8;
+       map->format.val_bytes = DIV_ROUND_UP(config->val_bits, 8);
        map->format.buf_size += map->format.pad_bytes;
        map->dev = dev;
        map->bus = bus;