i2c: uniphier-f: issue STOP only for last message or I2C_M_STOP
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 31 Aug 2018 14:30:48 +0000 (23:30 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Oct 2018 06:54:21 +0000 (08:54 +0200)
commitb08d15cc921f9bdd472dc4b264998e88cd7d0071
treebf137071758d418bb378ec4612b1b74fee6dc426
parent82fc9c6b7b9a355b3e794386c7630a076d762072
i2c: uniphier-f: issue STOP only for last message or I2C_M_STOP

[ Upstream commit 4c85609b08c4761eca0a40fd7beb06bc650f252d ]

This driver currently emits a STOP if the next message is not
I2C_MD_RD.  It should not do it because it disturbs the I2C_RDWR
ioctl, where read/write transactions are combined without STOP
between.

Issue STOP only when the message is the last one _or_ flagged with
I2C_M_STOP.

Fixes: 6a62974b667f ("i2c: uniphier_f: add UniPhier FIFO-builtin I2C driver")
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/i2c/busses/i2c-uniphier-f.c