From: 张晴 <zhangqing@rock-chips.com>
Date: Thu, 28 Feb 2013 10:42:37 +0000 (+0800)
Subject: tps65910&rk610:Solve communication conflict when rk610 and tps65910 on the same i2c
X-Git-Tag: firefly_0821_release~7496
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bbae0860c1b8ef0203abc55e9cd040bd3f7af9ca;p=firefly-linux-kernel-4.4.55.git

tps65910&rk610:Solve communication conflict when rk610 and tps65910 on the same i2c
---

diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
index ced0c602c732..5c279a0a02c3 100755
--- a/drivers/mfd/tps65910.c
+++ b/drivers/mfd/tps65910.c
@@ -157,13 +157,8 @@ int tps65910_bulk_read(struct tps65910 *tps65910, u8 reg,
 		     int count, u8 *buf)
 {
 	int ret;
-#if 0                    
-	mutex_lock(&tps65910->io_mutex);
-	
-	ret = tps65910->read(tps65910, reg, count, buf);
-
-	mutex_unlock(&tps65910->io_mutex);
-#else    
+                    
+#if defined(CONFIG_MFD_RK610)    
 	int i;             //Solve communication conflict when rk610 and 65910 on the same i2c 
 
 	mutex_lock(&tps65910->io_mutex);
@@ -177,6 +172,12 @@ int tps65910_bulk_read(struct tps65910 *tps65910, u8 reg,
 			buf[i] = ret & 0x000000FF;
 		}
 	}
+	mutex_unlock(&tps65910->io_mutex);
+#else
+	mutex_lock(&tps65910->io_mutex);
+	
+	ret = tps65910->read(tps65910, reg, count, buf);
+
 	mutex_unlock(&tps65910->io_mutex);
 #endif
 	return 0;
@@ -188,13 +189,8 @@ int tps65910_bulk_write(struct tps65910 *tps65910, u8 reg,
 		     int count, u8 *buf)
 {
 	int ret;
-#if 0
-	mutex_lock(&tps65910->io_mutex);
 	
-	ret = tps65910->write(tps65910, reg, count, buf);
-
-	mutex_unlock(&tps65910->io_mutex);
-#else
+#if defined(CONFIG_MFD_RK610)    
 	int i;       // //Solve communication conflict when rk610 and 65910 on the same i2c 
 
 	mutex_lock(&tps65910->io_mutex);
@@ -206,6 +202,12 @@ int tps65910_bulk_write(struct tps65910 *tps65910, u8 reg,
 			return ret;
 		}
 	}
+	mutex_unlock(&tps65910->io_mutex);
+#else
+	mutex_lock(&tps65910->io_mutex);
+	
+	ret = tps65910->write(tps65910, reg, count, buf);
+
 	mutex_unlock(&tps65910->io_mutex);
 #endif
 	return 0;