generic-poky/meta-moblin/packages/linux/linux-moblin-2.6.33.2/linux-2.6.33-i2c-workaround...

42 lines
1.3 KiB
Diff

From b766d59f044858ed3d149e97619a0bf5cc2873f3 Mon Sep 17 00:00:00 2001
From: Priya Vijayan <priya.vijayan@intel.com>
Date: Tue, 27 Apr 2010 13:23:28 -0700
Subject: [PATCH] workaround for aava KOSKI
Signed-off-by: Priya Vijayan <priya.vijayan@intel.com>
---
drivers/i2c/busses/i2c-mrst.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/i2c/busses/i2c-mrst.c b/drivers/i2c/busses/i2c-mrst.c
index e591a90..0737f42 100644
--- a/drivers/i2c/busses/i2c-mrst.c
+++ b/drivers/i2c/busses/i2c-mrst.c
@@ -217,6 +217,7 @@ static int mrst_i2c_disable(struct i2c_adapter *adap)
dev_dbg(&adap->dev, "i2c is busy, count is %d\n", count);
if (count++ > 10000)
return -EBUSY;
+ udelay(10);
}
/* Set IC_ENABLE to 0 */
@@ -468,6 +469,7 @@ static int xfer_read(struct i2c_adapter *adap, unsigned char *buf, int length)
reg_val = mrst_i2c_read(i2c->base + IC_STATUS);
if (count++ > MAX_T_POLL_COUNT)
goto read_loop;
+ udelay(10);
}
reg_val = mrst_i2c_read(i2c->base + IC_DATA_CMD);
@@ -522,6 +524,7 @@ static int xfer_write(struct i2c_adapter *adap,
while ((reg_val & bit_get) == 0) {
if (count++ > MAX_T_POLL_COUNT)
goto write_loop;
+ udelay(10);
reg_val = mrst_i2c_read(i2c->base + IC_STATUS);
}
--
1.6.2.2