[8/9] Input: edt-ft5x06 - unify the crc check

Message ID 20230402200951.1032513-9-dario.binacchi@amarulasolutions.com
State New
Headers show
Series
  • Input: edt-ft5x06 - convert to use regmap API
Related show

Commit Message

Dario Binacchi April 2, 2023, 8:09 p.m. UTC
With this patch, the CRC is always verified by the same function, even in
the case of accessing registers where the number of bytes is minimal.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---

 drivers/input/touchscreen/edt-ft5x06.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

Patch

diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
index 8aae4c1e6b73..fdb32e3591be 100644
--- a/drivers/input/touchscreen/edt-ft5x06.c
+++ b/drivers/input/touchscreen/edt-ft5x06.c
@@ -240,13 +240,10 @@  static int edt_M06_i2c_read(void *context, const void *reg_buf, size_t reg_size,
 		if (!edt_ft5x06_ts_check_crc(tsdata, val_buf, val_size))
 			return -EIO;
 	} else if (reg_read) {
-		u8 crc = wbuf[0] ^ wbuf[1] ^ rbuf[0];
-
-		if (crc != rbuf[1]) {
-			dev_err(dev, "crc error: 0x%02x expected, got 0x%02x\n",
-				crc, rbuf[1]);
+		wbuf[2] = rbuf[0];
+		wbuf[3] = rbuf[1];
+		if (!edt_ft5x06_ts_check_crc(tsdata, wbuf, 4))
 			return -EIO;
-		}
 
 		*((u8 *)val_buf) = rbuf[0];
 	}