Skip to content

Commit 2bf413d

Browse files
Russell KingWolfram Sang
authored andcommitted
i2c: designware: report short transfers
Rather than reporting success for a short transfer due to interrupt latency, report an error both to the caller, as well as to the kernel log. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
1 parent 9c76358 commit 2bf413d

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,7 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
758758
}
759759

760760
/* no error */
761-
if (likely(!dev->cmd_err)) {
761+
if (likely(!dev->cmd_err && !dev->status)) {
762762
ret = num;
763763
goto done;
764764
}
@@ -768,6 +768,11 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
768768
ret = i2c_dw_handle_tx_abort(dev);
769769
goto done;
770770
}
771+
772+
if (dev->status)
773+
dev_err(dev->dev,
774+
"transfer terminated early - interrupt latency too high?\n");
775+
771776
ret = -EIO;
772777

773778
done:

0 commit comments

Comments
 (0)