aboutsummaryrefslogtreecommitdiffstatshomepage
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
parentInput: edt-ft5x06 - convert to use regmap API (diff)
downloadwireguard-linux-079e60a53c25aeb1920e783fa7f7390eabb6afc0.tar.xz
wireguard-linux-079e60a53c25aeb1920e783fa7f7390eabb6afc0.zip
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 '')
-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];
}