summaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorvwadekar@nvidia.com <vwadekar@nvidia.com>2011-02-24 10:18:13 +0530
committerSamuel Ortiz <sameo@linux.intel.com>2011-03-02 10:57:50 +0100
commit4b57018dcd6418e18c08088c89f123da8a7bfc45 (patch)
treed45dcc4392a99546fc0e2dbd97b6219ff6d916a2 /drivers/mfd
parent77bd70e9009eab6dbdef3ee08afe87ab26df8dac (diff)
downloadlinux-4b57018dcd6418e18c08088c89f123da8a7bfc45.tar.bz2
mfd: Avoid tps6586x burst writes
tps6586 does not support burst writes. i2c writes have to be 1 byte at a time. Cc: stable@kernel.org Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/tps6586x.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/mfd/tps6586x.c b/drivers/mfd/tps6586x.c
index 627cf577b16d..e9018d1394ee 100644
--- a/drivers/mfd/tps6586x.c
+++ b/drivers/mfd/tps6586x.c
@@ -150,12 +150,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;