[media] em28xx: fix the i2c adapter functionality flags
I2C_FUNC_SMBUS_EMUL includes flag I2C_FUNC_SMBUS_WRITE_BLOCK_DATA which signals that up to 31 data bytes can be written to the ic2 client. But the EM2800 supports only i2c messages with max. 4 data bytes. I2C_FUNC_IC2 should be set if a master_xfer function pointer is provided in struct i2c_algorithm. Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
2fcc82d883
commit
eaf33c404c
|
@ -445,7 +445,11 @@ static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned char *eedata, int len)
|
||||||
*/
|
*/
|
||||||
static u32 functionality(struct i2c_adapter *adap)
|
static u32 functionality(struct i2c_adapter *adap)
|
||||||
{
|
{
|
||||||
return I2C_FUNC_SMBUS_EMUL;
|
struct em28xx *dev = adap->algo_data;
|
||||||
|
u32 func_flags = I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
|
||||||
|
if (dev->board.is_em2800)
|
||||||
|
func_flags &= ~I2C_FUNC_SMBUS_WRITE_BLOCK_DATA;
|
||||||
|
return func_flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct i2c_algorithm em28xx_algo = {
|
static struct i2c_algorithm em28xx_algo = {
|
||||||
|
|
Loading…
Reference in New Issue