aboutsummaryrefslogtreecommitdiffstats
path: root/meta-moblin/packages/linux/linux-moblin-2.6.33.2/linux-2.6.33-i2c-workaround-for-aava-koski-touchscreen.patch
blob: fd267df47b667d1ea2467b122b7ae733d26fcca1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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