Hi Mark, On 24 June 2010 22:05, Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > > On 24 Jun 2010, at 13:35, Naveen Krishna Ch <naveenkrishna.ch@xxxxxxxxx> wrote: > > > 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.. > > That smells rather like a compiler bug to me - the two versions > ought to be equivalent apart from the ordering of the comparisons. I'm not sure, I'm using arm-2009q3 toolchain. -- 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