summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorDario Binacchi <dario.binacchi@amarulasolutions.com>2023-04-02 21:36:33 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2023-04-02 21:38:03 -0700
commit079e60a53c25aeb1920e783fa7f7390eabb6afc0 (patch)
treecadad36d5aae60e2795e763b560ebe59c90266f9 /drivers/input
parent9dfd9708ffba1e7969af5e4ecda660151146de98 (diff)
downloadlinux-079e60a53c25aeb1920e783fa7f7390eabb6afc0.tar.gz
Input: edt-ft5x06 - unify the crc check
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> Link: https://lore.kernel.org/r/20230402200951.1032513-9-dario.binacchi@amarulasolutions.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/touchscreen/edt-ft5x06.c9
1 files 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];
}