]> www.infradead.org Git - users/jedix/linux-maple.git/commit
i2c: k1: check for transfer error
authorAlex Elder <elder@riscstar.com>
Mon, 16 Jun 2025 12:51:36 +0000 (07:51 -0500)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Sat, 21 Jun 2025 20:17:02 +0000 (22:17 +0200)
commita6c23dac756b9541b33aa3bcd30f464df2879209
tree4d081161d45d50bfefeef98ad2e22eda2f1cb26a
parent9a816ebeb573eddc2ed079dd4ea57a8d831c176c
i2c: k1: check for transfer error

If spacemit_i2c_xfer_msg() times out waiting for a message transfer to
complete, or if the hardware reports an error, it returns a negative
error code (-ETIMEDOUT, -EAGAIN, -ENXIO. or -EIO).

The sole caller of spacemit_i2c_xfer_msg() is spacemit_i2c_xfer(),
which is the i2c_algorithm->xfer callback function.  It currently
does not save the value returned by spacemit_i2c_xfer_msg().

The result is that transfer errors go unreported, and a caller
has no indication anything is wrong.

When this code was out for review, the return value *was* checked
in early versions.  But for some reason, that assignment got dropped
between versions 5 and 6 of the series, perhaps related to reworking
the code to merge spacemit_i2c_xfer_core() into spacemit_i2c_xfer().

Simply assigning the value returned to "ret" fixes the problem.

Fixes: 5ea558473fa31 ("i2c: spacemit: add support for SpacemiT K1 SoC")
Signed-off-by: Alex Elder <elder@riscstar.com>
Cc: <stable@vger.kernel.org> # v6.15+
Reviewed-by: Troy Mitchell <troymitchell988@gmail.com>
Link: https://lore.kernel.org/r/20250616125137.1555453-1-elder@riscstar.com
Signed-off-by: Andi Shyti <andi@smida.it>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
drivers/i2c/busses/i2c-k1.c