Skip to content

Commit 009eabd

Browse files
committed
HACK: Log the aborted message when I2C transfers fail
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
1 parent 5baf7a0 commit 009eabd

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

drivers/i2c/busses/i2c-designware-master.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,6 +901,9 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
901901
ret = i2c_dw_wait_transfer(dev);
902902
if (ret) {
903903
dev_err(dev->dev, "controller timed out\n");
904+
dev_err(dev->dev, "%s: message err %d msgs_num %u, addr %02x, flags %04x, len %u, first byte %02x\n",
905+
__func__, ret, num, msgs[0].addr, msgs[0].flags, msgs[0].len,
906+
(!msgs[0].flags & I2C_M_RD) && msgs[0].len >= 1 ? msgs[0].buf[0] : 0);
904907
/* i2c_dw_init_master() implicitly disables the adapter */
905908
i2c_recover_bus(&dev->adapter);
906909
i2c_dw_init_master(dev);
@@ -941,6 +944,9 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
941944
/* We have an error */
942945
if (dev->cmd_err == DW_IC_ERR_TX_ABRT) {
943946
ret = i2c_dw_handle_tx_abort(dev);
947+
dev_err(dev->dev, "%s: Aborted message err %d msgs_num %u, addr %02x, flags %04x, len %u, first byte %02x\n",
948+
__func__, ret, num, msgs[0].addr, msgs[0].flags, msgs[0].len,
949+
(!msgs[0].flags & I2C_M_RD) && msgs[0].len >= 1 ? msgs[0].buf[0] : 0);
944950
goto done;
945951
}
946952

0 commit comments

Comments
 (0)