Hi Mark,
On Tue, Nov 20, 2012 at 12:49 PM, Mark Brown
broo...@opensource.wolfsonmicro.com wrote:
On Thu, Nov 15, 2012 at 05:43:32PM +0530, Naveen Krishna Chatradhi wrote:
+ iicstat = readl(i2c-regs + S3C2410_IICSTAT);
+ delay = 1;
+ while ((iicstat S3C2410_IICSTAT_START)
On Tue, Nov 20, 2012 at 04:57:16PM +0800, Daniel Kurtz wrote:
On Tue, Nov 20, 2012 at 12:49 PM, Mark Brown
On the hardware I was using when I wrote the original code here we were
hitting 1-2 spins often enough to be interesting - starting off with a
direct busy wait was definitely useful
On Thu, Nov 15, 2012 at 05:43:32PM +0530, Naveen Krishna Chatradhi wrote:
+ iicstat = readl(i2c-regs + S3C2410_IICSTAT);
+ delay = 1;
+ while ((iicstat S3C2410_IICSTAT_START)
+ktime_us_delta(now, start) S3C2410_IDLE_TIMEOUT) {
+ usleep_range(delay, 2 *
From: Daniel Kurtz djku...@chromium.org
Usually, the i2c controller has finished emitting the i2c STOP before the
driver reaches the bus idle polling loop. Optimize for this most common
case by reading IICSTAT first and potentially skipping the loop.
If the cpu is faster than the hardware, we