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 <[email protected]>
> ---
>  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 <[email protected]>

-- 
Jean Delvare
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to