summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAndrey Gusakov <andrey.gusakov@cogentembedded.com>2017-07-05 20:18:07 +0300
committerLucas Stach <l.stach@pengutronix.de>2017-07-06 14:43:16 +0200
commit983fff36cdd246d9a558c9eb7790200989c25c01 (patch)
tree1d05893c910c9097ae9553ad6d8a3ef22b6ab92f /drivers
parent166d95d37d4a128fc76fc08eed7bd60d61b6c9fe (diff)
downloadbarebox-983fff36cdd246d9a558c9eb7790200989c25c01.tar.gz
barebox-983fff36cdd246d9a558c9eb7790200989c25c01.tar.xz
video: tc358767: fix AUXDATAn registers access during write
First four bytes should go to DP0_AUXWDATA0. Due to bug if len > 4 first four bytes was writen to DP0_AUXWDATA1 and all data get shifted by 4 bytes. Fix it. Signed-off-by: Andrey Gusakov <andrey.gusakov@cogentembedded.com> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tc358767.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/video/tc358767.c b/drivers/video/tc358767.c
index cc6a35e70b..4d311c4647 100644
--- a/drivers/video/tc358767.c
+++ b/drivers/video/tc358767.c
@@ -388,7 +388,7 @@ static int tc_aux_write(struct tc_data *tc, int reg, char *data, int size)
i++;
if (((i % 4) == 0) ||
(i == size)) {
- tc_write(DP0_AUXWDATA(i >> 2), tmp);
+ tc_write(DP0_AUXWDATA((i - 1) >> 2), tmp);
tmp = 0;
}
}
@@ -476,7 +476,7 @@ static int tc_aux_i2c_write(struct tc_data *tc, struct i2c_msg *msg)
i++;
if (((i % 4) == 0) ||
(i == msg->len)) {
- tc_write(DP0_AUXWDATA(i >> 2), tmp);
+ tc_write(DP0_AUXWDATA((i - 1) >> 2), tmp);
tmp = 0;
}
}