mirror of
https://github.com/torvalds/linux.git
synced 2025-01-01 15:51:46 +00:00
i2c: algo-bit: add support for I2C_M_STOP
Support for enforced STOPs will allow us to use SCCB compatible devices. Based on a preliminary patch by Wolfram Sang. Signed-off-by: Jean Delvare <jdelvare@suse.de> Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
413dfbbfca
commit
606fd2788b
@ -553,10 +553,17 @@ static int bit_xfer(struct i2c_adapter *i2c_adap,
|
||||
nak_ok = pmsg->flags & I2C_M_IGNORE_NAK;
|
||||
if (!(pmsg->flags & I2C_M_NOSTART)) {
|
||||
if (i) {
|
||||
bit_dbg(3, &i2c_adap->dev, "emitting "
|
||||
"repeated start condition\n");
|
||||
if (msgs[i - 1].flags & I2C_M_STOP) {
|
||||
bit_dbg(3, &i2c_adap->dev,
|
||||
"emitting enforced stop/start condition\n");
|
||||
i2c_stop(adap);
|
||||
i2c_start(adap);
|
||||
} else {
|
||||
bit_dbg(3, &i2c_adap->dev,
|
||||
"emitting repeated start condition\n");
|
||||
i2c_repstart(adap);
|
||||
}
|
||||
}
|
||||
ret = bit_doAddress(i2c_adap, pmsg);
|
||||
if ((ret != 0) && !nak_ok) {
|
||||
bit_dbg(1, &i2c_adap->dev, "NAK from "
|
||||
|
Loading…
Reference in New Issue
Block a user