mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-01 04:43:50 +00:00
i2c: fix read-only I2C transfers on STM32F0/F3
Ensure that we put a proper start bit if the transfer only contains a read but has the start flag set. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=smaug BUG=chrome-os-partner:40919 TEST=On Smaug (P6), at the Linux prompt, do "cat /sys/class/power_supply/bq27742-0/current_now" and see a proper value rather than an error. Change-Id: I10cc9907476b3cfb006f2c1540688139366c9195 Reviewed-on: https://chromium-review.googlesource.com/275079 Trybot-Ready: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Alec Berg <alecaberg@chromium.org> Commit-Queue: Vincent Palatin <vpalatin@chromium.org> Tested-by: Puthikorn Voravootivat <puthik@chromium.org>
This commit is contained in:
committed by
ChromeOS Commit Bot
parent
7b5c67609f
commit
45f7ddadd1
@@ -421,7 +421,7 @@ int chip_i2c_xfer(int port, int slave_addr, const uint8_t *out, int out_bytes,
|
||||
| STM32_I2C_CR2_RD_WRN | slave_addr
|
||||
| (xfer_stop ? STM32_I2C_CR2_AUTOEND : 0)
|
||||
| (!xfer_stop ? STM32_I2C_CR2_RELOAD : 0)
|
||||
| (out_bytes ? STM32_I2C_CR2_START : 0);
|
||||
| (out_bytes || xfer_start ? STM32_I2C_CR2_START : 0);
|
||||
|
||||
for (i = 0; i < in_bytes; i++) {
|
||||
/* Wait for receive buffer not empty */
|
||||
|
||||
Reference in New Issue
Block a user