i2c: mvtwsi: Handle zero-length offsets properly
authormario.six@gdsys.cc <mario.six@gdsys.cc>
Thu, 21 Jul 2016 09:57:11 +0000 (11:57 +0200)
committerHeiko Schocher <hs@denx.de>
Tue, 26 Jul 2016 08:20:19 +0000 (10:20 +0200)
commit24f9c6bbc7d5e5e276dea32a81ade71f0e6b56ae
tree4c4b2f5ed0b474e3641be7d5979277c4df5e2f6a
parent14a6ff2c4f22010e5d67f25508f09e3b53a1f1c4
i2c: mvtwsi: Handle zero-length offsets properly

Zero-length offsets are not properly handled by the driver. When a read
operation with a zero-length offset is started, a START condition is
asserted, and since no offset bytes are transferred, a repeated START is
issued immediately after, which confuses the controller.

To fix this, we send the first START only if any address bytes need to
be sent, and keep track of the expected start status accordingly.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
drivers/i2c/mvtwsi.c