]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
xilinx_xiic: Fix fill tx fifo loop
authorMelin Tomas <tomas.melin@vaisala.com>
Fri, 28 Jun 2019 12:08:31 +0000 (12:08 +0000)
committerHeiko Schocher <hs@denx.de>
Tue, 9 Jul 2019 05:02:11 +0000 (07:02 +0200)
Comparison should be against the actual message length, not loop index.

len is used for stopping while loop, pos is position in message.
stop should be sent when entire message is sent, not when
len and pos meet.

hs: fixed DOS line endings

Signed-off-by: Tomas Melin <tomas.melin@vaisala.com>
drivers/i2c/xilinx_xiic.c

index 83114ed5103e4ba89f6aa1459a7f7ac82ed68599..e4ca0ab936463e8393b44e4e5fa4b6f07df8f35f 100644 (file)
@@ -149,7 +149,7 @@ static void xiic_fill_tx_fifo(struct xilinx_xiic_priv *priv,
        while (len--) {
                u16 data = msg->buf[pos++];
 
-               if (pos == len && nmsgs == 1) {
+               if ((msg->len - pos == 0) && nmsgs == 1) {
                        /* last message in transfer -> STOP */
                        data |= XIIC_TX_DYN_STOP_MASK;
                }