On Tue, Mar 26, 2013 at 11:22:54AM -0700, H Hartley Sweeten wrote:
> @@ -284,20 +274,19 @@ static uint32_t I2Chandshake(struct comedi_device *dev, 
> uint32_t val)
>       while (!s626_mc_test(dev, MC2_UPLD_IIC, P_MC2))
>               ;
>  
> -     /*  Wait until I2C bus transfer is finished or an error occurs. */
> -     while ((RR7146(P_I2CCTRL) & (I2C_BUSY | I2C_ERR)) == I2C_BUSY)
> -             ;
> -
> -     /*  Return non-zero if I2C error occurred. */
> -     return RR7146(P_I2CCTRL) & I2C_ERR;
> +     /* Wait until I2C bus transfer is finished or an error occurs */
> +     do {
> +             ctrl = readl(devpriv->base_addr + P_I2CCTRL);
> +     } while ((ctrl & (I2C_BUSY | I2C_ERR)) == I2C_BUSY);
>  
> +     /* Return non-zero if I2C error occurred */
> +     return ctrl & I2C_ERR;
>  }

I look at this like a bugfix because now the normal case is to only
read one time.

Good job.

regards,
dan carpenter

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to