Message ID | 1616148733-15154-2-git-send-email-zhouyanjie@wanyeetech.com |
---|---|
State | Accepted |
Commit | 942bfbecc0281c75db84f744b9b77b0f2396f484 |
Headers | show |
Series | [v2] I2C: JZ4780: Fix bug for Ingenic X1000. | expand |
On Fri, Mar 19, 2021 at 06:12:13PM +0800, 周琰杰 (Zhou Yanjie) wrote: > Only send "X1000_I2C_DC_STOP" when last byte, or it will cause > error when I2C write operation. > > Fixes: 21575a7a8d4c ("I2C: JZ4780: Add support for the X1000.") > > Reported-by: 杨文龙 (Yang Wenlong) <ywltyut@sina.cn> > Tested-by: 杨文龙 (Yang Wenlong) <ywltyut@sina.cn> > Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com> Applied to for-current with updated commit message, thanks!
diff --git a/drivers/i2c/busses/i2c-jz4780.c b/drivers/i2c/busses/i2c-jz4780.c index 8509c5f..55177eb 100644 --- a/drivers/i2c/busses/i2c-jz4780.c +++ b/drivers/i2c/busses/i2c-jz4780.c @@ -525,8 +525,8 @@ static irqreturn_t jz4780_i2c_irq(int irqno, void *dev_id) i2c_sta = jz4780_i2c_readw(i2c, JZ4780_I2C_STA); data = *i2c->wbuf; data &= ~JZ4780_I2C_DC_READ; - if ((!i2c->stop_hold) && (i2c->cdata->version >= - ID_X1000)) + if ((i2c->wt_len == 1) && (!i2c->stop_hold) && + (i2c->cdata->version >= ID_X1000)) data |= X1000_I2C_DC_STOP; jz4780_i2c_writew(i2c, JZ4780_I2C_DC, data); i2c->wbuf++;