mfd: max8907c: Do not use I2C_M_NOSTART in first message
Laxman Dewangan [Thu, 29 Mar 2012 09:54:51 +0000 (14:54 +0530)]
It is not recommended to use the flag I2C_M_NOSTART in first
message.

The documentation kernel/Documentation/i2c/i2c-proocol says:
Flag I2C_M_NOSTART:
    In a combined transaction, no 'S Addr Wr/Rd [A]' is generated at some
    point. For example, setting I2C_M_NOSTART on the second partial message
    generates something like:
      S Addr Rd [A] [Data] NA Data [A] P
    If you set the I2C_M_NOSTART variable for the first partial message,
    we do not generate Addr, but we do generate the startbit S. This will
    probably confuse all other clients on your bus, so don't try this.

Change-Id: I8a8a4f6f91a1b53b6d443588ab18704cf100fd50
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/93187
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Tested-by: Bandi Krishna Chaitanya <bandik@nvidia.com>

drivers/mfd/max8907c.c

index d03dbce..ba85a00 100644 (file)
@@ -26,7 +26,7 @@ static int max8907c_i2c_read(struct i2c_client *i2c, u8 reg, u8 count, u8 *dest)
        int ret = 0;
 
        xfer[0].addr = i2c->addr;
-       xfer[0].flags = I2C_M_NOSTART;
+       xfer[0].flags = 0;
        xfer[0].len = 1;
        xfer[0].buf = &reg;