Commit c91cbd81 authored by Michel Ludwig's avatar Michel Ludwig Committed by Mauro Carvalho Chehab

V4L/DVB (12780): tm6000: Improve handling of SMBus Write Byte commands followed by a read command.

SMBus Write Byte commands followed by a read command on the same I2C
address are not sent out to the chip as they wouldn't have any effect.
Signed-off-by: default avatarMichel Ludwig <michel.ludwig@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 64fd8d20
...@@ -141,6 +141,13 @@ static int tm6000_i2c_xfer(struct i2c_adapter *i2c_adap, ...@@ -141,6 +141,13 @@ static int tm6000_i2c_xfer(struct i2c_adapter *i2c_adap,
printk(" %02x", msgs[i].buf[byte]); printk(" %02x", msgs[i].buf[byte]);
} }
/* SMBus Write Byte command followed by a read command */
if(msgs[i].len == 1 && i+1 < num && msgs[i+1].flags & I2C_M_RD
&& msgs[i+1].addr == msgs[i].addr) {
prev_reg = msgs[i].buf[0];
continue;
}
rc = tm6000_read_write_usb (dev, rc = tm6000_read_write_usb (dev,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
REQ_16_SET_GET_I2CSEQ, REQ_16_SET_GET_I2CSEQ,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment