i2c: tegra: don't advertise SMBUS_QUICK
authorWolfram Sang <wsa@the-dreams.de>
Tue, 16 Jun 2015 17:47:21 +0000 (19:47 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Sun, 21 Jun 2015 19:16:26 +0000 (21:16 +0200)
This HW cannot send 0-byte-length messages and the driver discards them.
So, we should not advertise SMBUS_QUICK.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-tegra.c

index 1bcd75e..0a1b6ea 100644 (file)
@@ -656,8 +656,8 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
 static u32 tegra_i2c_func(struct i2c_adapter *adap)
 {
        struct tegra_i2c_dev *i2c_dev = i2c_get_adapdata(adap);
-       u32 ret = I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | I2C_FUNC_10BIT_ADDR |
-                               I2C_FUNC_PROTOCOL_MANGLING;
+       u32 ret = I2C_FUNC_I2C | (I2C_FUNC_SMBUS_EMUL & ~I2C_FUNC_SMBUS_QUICK) |
+                 I2C_FUNC_10BIT_ADDR | I2C_FUNC_PROTOCOL_MANGLING;
 
        if (i2c_dev->hw->has_continue_xfer_support)
                ret |= I2C_FUNC_NOSTART;