diff options
-rw-r--r-- | drivers/media/usb/em28xx/em28xx-i2c.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c b/drivers/media/usb/em28xx/em28xx-i2c.c index 67a8e623dd8c..4a24ed08e46a 100644 --- a/drivers/media/usb/em28xx/em28xx-i2c.c +++ b/drivers/media/usb/em28xx/em28xx-i2c.c | |||
@@ -445,7 +445,11 @@ static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned char *eedata, int len) | |||
445 | */ | 445 | */ |
446 | static u32 functionality(struct i2c_adapter *adap) | 446 | static u32 functionality(struct i2c_adapter *adap) |
447 | { | 447 | { |
448 | return I2C_FUNC_SMBUS_EMUL; | 448 | struct em28xx *dev = adap->algo_data; |
449 | u32 func_flags = I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; | ||
450 | if (dev->board.is_em2800) | ||
451 | func_flags &= ~I2C_FUNC_SMBUS_WRITE_BLOCK_DATA; | ||
452 | return func_flags; | ||
449 | } | 453 | } |
450 | 454 | ||
451 | static struct i2c_algorithm em28xx_algo = { | 455 | static struct i2c_algorithm em28xx_algo = { |