diff options
author | Andrey Gusakov <andrey.gusakov@cogentembedded.com> | 2017-07-05 20:18:07 +0300 |
---|---|---|
committer | Lucas Stach <l.stach@pengutronix.de> | 2017-07-06 14:43:16 +0200 |
commit | 983fff36cdd246d9a558c9eb7790200989c25c01 (patch) | |
tree | 1d05893c910c9097ae9553ad6d8a3ef22b6ab92f /drivers | |
parent | 166d95d37d4a128fc76fc08eed7bd60d61b6c9fe (diff) | |
download | barebox-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.c | 4 |
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; } } |