On Fri, 4 Jan 2013 14:13:31 +0100, Amaury Decrême wrote: > The sticky bits must be cleared at the end of the transaction by writing > a 1 to all fields. > > Datasheet: > SMBus Status (SMB_STS) > The following registers are all sticky bits and only can be > cleared by writing a one to their corresponding fields. > > Signed-off-by: Amaury Decrême <amaury.decreme@xxxxxxxxx> > --- > drivers/i2c/busses/i2c-sis630.c | 4 +--- > 1 files changed, 1 insertions(+), 3 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-sis630.c b/drivers/i2c/busses/i2c-sis630.c > index df8e20a..3124d80 100644 > --- a/drivers/i2c/busses/i2c-sis630.c > +++ b/drivers/i2c/busses/i2c-sis630.c > @@ -213,10 +213,8 @@ static int sis630_transaction_wait(struct i2c_adapter *adap, int size) > > static void sis630_transaction_end(struct i2c_adapter *adap, u8 oldclock) > { > - int temp = 0; > - > /* clear all status "sticky" bits */ > - sis630_write(SMB_STS, temp); > + sis630_write(SMB_STS, 0xFF); > > dev_dbg(&adap->dev, "SMB_CNT before clock restore 0x%02x\n", sis630_read(SMB_CNT)); > Reviewed-by: Jean Delvare <khali@xxxxxxxxxxxx> -- Jean Delvare -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html