mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] auxdisplay: lcd2s: add error handling for i2c transfers
@ 2026-03-10  2:02 Wang Jun
  2026-03-10 10:17 ` Andy Shevchenko
  0 siblings, 1 reply; 6+ messages in thread
From: Wang Jun @ 2026-03-10  2:02 UTC (permalink / raw)
  To: Andy Shevchenko, Geert Uytterhoeven
  Cc: linux-kernel, Andrew Morton, Randy Dunlap, gszhai, 25125332,
	25125283, 23120469, Wang Jun

The lcd2s_print() and lcd2s_gotoxy() functions currently ignore the
return value of lcd2s_i2c_master_send(), which can fail. This can lead
to silent data loss or incorrect cursor positioning.

Add proper error checking: if the number of bytes sent does not match
the expected length, return -EIO; otherwise propagate any error code
from the I2C transfer.

Also fix the missing return statement in lcd2s_gotoxy().

Signed-off-by: Wang Jun <1742789905@qq.com>
---
 drivers/auxdisplay/lcd2s.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/auxdisplay/lcd2s.c b/drivers/auxdisplay/lcd2s.c
index defb0573e43c..c5f79baac132 100644
--- a/drivers/auxdisplay/lcd2s.c
+++ b/drivers/auxdisplay/lcd2s.c
@@ -99,19 +99,30 @@ static int lcd2s_print(struct charlcd *lcd, int c)
 {
 	struct lcd2s_data *lcd2s = lcd->drvdata;
 	u8 buf[2] = { LCD2S_CMD_WRITE, c };
+	int ret;
 
-	lcd2s_i2c_master_send(lcd2s->i2c, buf, sizeof(buf));
-	return 0;
+	ret = lcd2s_i2c_master_send(lcd2s->i2c, buf, sizeof(buf));
+	if (ret == sizeof(buf))
+		return 0;
+	else if (ret < 0)
+		return ret;
+	else
+		return -EIO;
 }
 
 static int lcd2s_gotoxy(struct charlcd *lcd, unsigned int x, unsigned int y)
 {
 	struct lcd2s_data *lcd2s = lcd->drvdata;
 	u8 buf[3] = { LCD2S_CMD_CUR_POS, y + 1, x + 1 };
+	int ret;
 
-	lcd2s_i2c_master_send(lcd2s->i2c, buf, sizeof(buf));
-
-	return 0;
+	ret = lcd2s_i2c_master_send(lcd2s->i2c, buf, sizeof(buf));
+	if (ret == sizeof(buf))
+		return 0;
+	else if (ret < 0)
+		return ret;
+	else
+		return -EIO;
 }
 
 static int lcd2s_home(struct charlcd *lcd)
-- 
2.43.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-03-13 10:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-03-10  2:02 [PATCH] auxdisplay: lcd2s: add error handling for i2c transfers Wang Jun
2026-03-10 10:17 ` Andy Shevchenko
2026-03-12 13:25   ` [PATCH V2] " Wang Jun
2026-03-12 14:24     ` Andy Shevchenko
2026-03-12 14:51       ` [PATCH v3] " Wang Jun
2026-03-13 10:02         ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®