i2c: uniphier: issue STOP only for last message or I2C_M_STOP
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 31 Aug 2018 14:30:47 +0000 (23:30 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Oct 2018 06:53:19 +0000 (08:53 +0200)
commit46ceebc6a43cbaa32c66e90fa4f08bf416b18b52
tree45f37e6c305da0179452b5f3050377d2fc847271
parent26e2f55d1be0ade9c1104dea7da53cd5ddca0a2b
i2c: uniphier: issue STOP only for last message or I2C_M_STOP

[ Upstream commit 38f5d8d8cbb2ffa2b54315118185332329ec891c ]

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: dd6fd4a32793 ("i2c: uniphier: add UniPhier FIFO-less 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.c