regmap: Back out work buffer fix
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 9 Apr 2013 17:03:25 +0000 (18:03 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 9 Apr 2013 17:03:25 +0000 (18:03 +0100)
This reverts commit bc8ce4 (regmap: don't corrupt work buffer in
_regmap_raw_write()) since it turns out that it can cause issues when
taken in isolation from the other changes in -next that lead to its
discovery.  On the basis that nobody noticed the problems for quite some
time without that subsequent work let's drop it from v3.9.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/base/regmap/regmap.c

index d34adef1e63e2bee55aa3cd5a9e7f2d98912103b..58cfb3232428f05b702d5b7b3a569429b9f8fe5c 100644 (file)
@@ -943,7 +943,8 @@ static int _regmap_raw_write(struct regmap *map, unsigned int reg,
                unsigned int ival;
                int val_bytes = map->format.val_bytes;
                for (i = 0; i < val_len / val_bytes; i++) {
-                       ival = map->format.parse_val(val + (i * val_bytes));
+                       memcpy(map->work_buf, val + (i * val_bytes), val_bytes);
+                       ival = map->format.parse_val(map->work_buf);
                        ret = regcache_write(map, reg + (i * map->reg_stride),
                                             ival);
                        if (ret) {