[media] go7007: fix i2c_xfer return codes
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>
This commit is contained in:
parent
1589037f87
commit
ffb9749346
|
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue