Skip to content

Commit

Permalink
[media] go7007: fix i2c_xfer return codes
Browse files Browse the repository at this point in the history
The i2c_xfer functions didn't return the proper error codes and (especially
important) on success they returned 0 instead of the number of transferred
messages.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Hans Verkuil authored and Mauro Carvalho Chehab committed Mar 24, 2013
1 parent 1589037 commit ffb9749
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
20 changes: 10 additions & 10 deletions drivers/staging/media/go7007/go7007-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ static DEFINE_MUTEX(adlink_mpg24_i2c_lock);
static int go7007_i2c_xfer(struct go7007 *go, u16 addr, int read,
u16 command, int flags, u8 *data)
{
int i, ret = -1;
int i, ret = -EIO;
u16 val;

if (go->status == STATUS_SHUTDOWN)
return -1;
return -ENODEV;

#ifdef GO7007_I2C_DEBUG
if (read)
Expand Down Expand Up @@ -146,7 +146,7 @@ static int go7007_smbus_xfer(struct i2c_adapter *adapter, u16 addr,
struct go7007 *go = i2c_get_adapdata(adapter);

if (size != I2C_SMBUS_BYTE_DATA)
return -1;
return -EIO;
return go7007_i2c_xfer(go, addr, read_write == I2C_SMBUS_READ, command,
flags & I2C_CLIENT_SCCB ? 0x10 : 0x00, &data->byte);
}
Expand All @@ -170,26 +170,26 @@ static int go7007_i2c_master_xfer(struct i2c_adapter *adapter,
(msgs[i].flags & I2C_M_RD) ||
!(msgs[i + 1].flags & I2C_M_RD) ||
msgs[i + 1].len != 1)
return -1;
return -EIO;
if (go7007_i2c_xfer(go, msgs[i].addr, 1,
(msgs[i].buf[0] << 8) | msgs[i].buf[1],
0x01, &msgs[i + 1].buf[0]) < 0)
return -1;
return -EIO;
++i;
} else if (msgs[i].len == 3) {
if (msgs[i].flags & I2C_M_RD)
return -1;
return -EIO;
if (msgs[i].len != 3)
return -1;
return -EIO;
if (go7007_i2c_xfer(go, msgs[i].addr, 0,
(msgs[i].buf[0] << 8) | msgs[i].buf[1],
0x01, &msgs[i].buf[2]) < 0)
return -1;
return -EIO;
} else
return -1;
return -EIO;
}

return 0;
return num;
}

static u32 go7007_functionality(struct i2c_adapter *adapter)
Expand Down
6 changes: 3 additions & 3 deletions drivers/staging/media/go7007/go7007-usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -876,10 +876,10 @@ static int go7007_usb_i2c_master_xfer(struct i2c_adapter *adapter,
struct go7007_usb *usb = go->hpi_context;
u8 buf[16];
int buf_len, i;
int ret = -1;
int ret = -EIO;

if (go->status == STATUS_SHUTDOWN)
return -1;
return -ENODEV;

mutex_lock(&usb->i2c_lock);

Expand Down Expand Up @@ -936,7 +936,7 @@ static int go7007_usb_i2c_master_xfer(struct i2c_adapter *adapter,
memcpy(msgs[i].buf, buf + 1, msgs[i].len);
}
}
ret = 0;
ret = num;

i2c_done:
mutex_unlock(&usb->i2c_lock);
Expand Down

0 comments on commit ffb9749

Please sign in to comment.