From: 柯飞雄 Date: Wed, 12 May 2010 02:19:45 +0000 (+0000) Subject: mod i2c X-Git-Tag: firefly_0821_release~11565 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=08e5c91a299ae84b3397e0b50d0da57eaa92dd53;p=firefly-linux-kernel-4.4.55.git mod i2c --- diff --git a/drivers/i2c/busses/i2c-rk2818.c b/drivers/i2c/busses/i2c-rk2818.c index 32f28c449bf2..6abc52fce7c7 100755 --- a/drivers/i2c/busses/i2c-rk2818.c +++ b/drivers/i2c/busses/i2c-rk2818.c @@ -246,13 +246,15 @@ static int rk2818_wait_while_busy(struct rk2818_i2c_data *i2c) { unsigned long timeout = jiffies + RK2818_I2C_TIMEOUT; unsigned long lsr; + unsigned int time = 10; dev_dbg(i2c->dev,"wait_while_busy"); while(!time_after(jiffies, timeout)) { lsr = readl(i2c->regs + I2C_LSR); if(!(lsr & I2C_LSR_BUSY)) return 0; - udelay(100); + udelay(time); + time *= 2; } return -ETIMEDOUT; }