Hi Mark, On 24 June 2010 17:02, Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > > On Wed, Jun 23, 2010 at 11:15:55AM +0530, Naveen Krishna Ch wrote: > > > Where should i be looking, > > I would suggest looking at the driver and comparing it with the > datasheet. > > > Will changing the spin counts work? > > I'd expect this to be unlikely. Note that if we run out of spins we > still go for the 1ms sleep that was being used originally so it's more > likely that there's a bug in the chip when that register is being read > (though this would be surprising) or some other change in your kernel is > causing problems. --- a/drivers/i2c/busses/i2c-s3c2410.c +++ b/drivers/i2c/busses/i2c-s3c2410.c @@ -527,7 +527,7 @@ static int s3c24xx_i2c_doxfer(struct s3c24xx_i2c *i2c, /* first, try busy waiting briefly */ do { iicstat = readl(i2c->regs + S3C2410_IICSTAT); - } while ((iicstat & S3C2410_IICSTAT_START) && --spins); + } while (--spins && (iicstat & S3C2410_IICSTAT_START)); /* if that timed out sleep */ if (!spins) { Does the trick.. -- Shine bright, (: Naveen Krishna Ch :) -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html