[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:
Родитель
2fcc82d883
Коммит
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)
|
||||
{
|
||||
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 = {
|
||||
|
|
Загрузка…
Ссылка в новой задаче