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

From: Dario Binacchi
Date: Sun Apr 02 2023 - 16:10:44 EST


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@xxxxxxxxxxxxxxxxxxxx>
---

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

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];
}
--
2.32.0