i2c: qup: fix the transfer length for BAM RX EOT FLUSH tags
authorAbhishek Sahu <absahu@codeaurora.org>
Mon, 12 Mar 2018 13:14:55 +0000 (18:44 +0530)
committerWolfram Sang <wsa@the-dreams.de>
Sat, 24 Mar 2018 12:19:48 +0000 (13:19 +0100)
In case of FLUSH operation, BAM copies INPUT EOT FLUSH (0x94)
instead of normal EOT (0x93) tag in input data stream when an
input EOT tag is received during flush operation. So only one tag
will be written instead of 2 separate tags.

Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
Reviewed-by: Andy Gross <andy.gross@linaro.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-qup.c

index b2e8f574cd1566cfaec8c847fa03589f1ccae5f3..73a2880686327c0a643d4a8a7554484184ec54e2 100644 (file)
@@ -774,10 +774,10 @@ static int qup_i2c_bam_do_xfer(struct qup_i2c_dev *qup, struct i2c_msg *msg,
                qup->btx.tag.start[0] = QUP_BAM_INPUT_EOT;
                len++;
 
-               /* scratch buf to read the BAM EOT and FLUSH tags */
+               /* scratch buf to read the BAM EOT FLUSH tags */
                ret = qup_sg_set_buf(&qup->brx.sg[rx_cnt++],
                                     &qup->brx.tag.start[0],
-                                    2, qup, DMA_FROM_DEVICE);
+                                    1, qup, DMA_FROM_DEVICE);
                if (ret)
                        return ret;
        }