Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 242586
b: refs/heads/master
c: 2ec523a
h: refs/heads/master
v: v3
  • Loading branch information
Lars-Peter Clausen committed Feb 22, 2011
1 parent 6416bb6 commit 4bfc399
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bf7d4140450f6dbc019a8831223e08d778f90dd7
refs/heads/master: 2ec523a8238a117b082ca6b0cef3b9ae812364f9
45 changes: 24 additions & 21 deletions trunk/drivers/power/bq27x00_battery.c
Original file line number Diff line number Diff line change
Expand Up @@ -565,36 +565,39 @@ static DEFINE_MUTEX(battery_mutex);
static int bq27x00_read_i2c(struct bq27x00_device_info *di, u8 reg, bool single)
{
struct i2c_client *client = to_i2c_client(di->dev);
struct i2c_msg msg[1];
struct i2c_msg msg;
unsigned char data[2];
int ret;

if (!client->adapter)
return -ENODEV;

msg->addr = client->addr;
msg->flags = 0;
msg->len = 1;
msg->buf = data;
msg.addr = client->addr;
msg.flags = 0;
msg.len = 1;
msg.buf = data;

data[0] = reg;
ret = i2c_transfer(client->adapter, msg, 1);
ret = i2c_transfer(client->adapter, &msg, 1);

if (ret < 0)
return ret;

if (single)
msg.len = 1;
else
msg.len = 2;

msg.flags = I2C_M_RD;
ret = i2c_transfer(client->adapter, &msg, 1);
if (ret < 0)
return ret;

if (!single)
ret = get_unaligned_le16(data);
else
ret = data[0];

if (ret >= 0) {
if (!single)
msg->len = 2;
else
msg->len = 1;

msg->flags = I2C_M_RD;
ret = i2c_transfer(client->adapter, msg, 1);
if (ret >= 0) {
if (!single)
ret = get_unaligned_le16(data);
else
ret = data[0];
}
}
return ret;
}

Expand Down

0 comments on commit 4bfc399

Please sign in to comment.