]> git.hungrycats.org Git - linux/commitdiff
mfd: Avoid tps6586x burst writes
authorvwadekar@nvidia.com <vwadekar@nvidia.com>
Thu, 24 Feb 2011 04:48:13 +0000 (10:18 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 7 Mar 2011 23:05:17 +0000 (15:05 -0800)
commit 4b57018dcd6418e18c08088c89f123da8a7bfc45 upstream.

tps6586 does not support burst writes. i2c writes have to be
1 byte at a time.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/mfd/tps6586x.c

index b4931ab349299e1205ebd70c9023a9bba344f366..31882f63225f53229fde3769f3bd13ddee33594a 100644 (file)
@@ -152,12 +152,12 @@ static inline int __tps6586x_write(struct i2c_client *client,
 static inline int __tps6586x_writes(struct i2c_client *client, int reg,
                                  int len, uint8_t *val)
 {
-       int ret;
+       int ret, i;
 
-       ret = i2c_smbus_write_i2c_block_data(client, reg, len, val);
-       if (ret < 0) {
-               dev_err(&client->dev, "failed writings to 0x%02x\n", reg);
-               return ret;
+       for (i = 0; i < len; i++) {
+               ret = __tps6586x_write(client, reg + i, *(val + i));
+               if (ret < 0)
+                       return ret;
        }
 
        return 0;