aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin Kim <dojip.kim@lge.com>2014-04-29 13:25:49 -0700
committerLorDClockaN <davor@losinj.com>2014-09-16 20:07:31 +0200
commit466e4895d67e8680abd4a6ddb239fba94dd04836 (patch)
tree7756b8bd1bd07cf030643d1be1acd5ec06246d72
parent5026c7a0c8c7e0c463eda12ac1e999023d0c6389 (diff)
video: slimport: Do not access the sp registers after power downkitkat
The burst i2c errors sometimes causes a watchdog reset. The i2c errors are caused by accessing the sp registers after SP is power down. So do not access the sp register after power down to avoid the watchdog reset. Change-Id: If64b0bf6f437292f356fa165d4203d522c26cfe6 Signed-off-by: Devin Kim <dojip.kim@lge.com>
-rw-r--r--drivers/video/slimport/slimport.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/video/slimport/slimport.c b/drivers/video/slimport/slimport.c
index f4b471761e8..f146ba382b2 100644
--- a/drivers/video/slimport/slimport.c
+++ b/drivers/video/slimport/slimport.c
@@ -241,6 +241,11 @@ int sp_read_reg(uint8_t slave_addr, uint8_t offset, uint8_t *buf)
if (!the_chip)
return -EINVAL;
+ if (sp_tx_pd_mode) {
+ pr_debug("tried to access the sp reg after power down\n");
+ return -EIO;
+ }
+
the_chip->client->addr = (slave_addr >> 1);
ret = i2c_smbus_read_byte_data(the_chip->client, offset);
if (ret < 0) {
@@ -259,6 +264,11 @@ int sp_write_reg(uint8_t slave_addr, uint8_t offset, uint8_t value)
if (!the_chip)
return -EINVAL;
+ if (sp_tx_pd_mode) {
+ pr_debug("tried to access the sp reg after power down\n");
+ return -EIO;
+ }
+
the_chip->client->addr = (slave_addr >> 1);
ret = i2c_smbus_write_byte_data(the_chip->client, offset, value);
if (ret < 0) {