Commit 079e60a5 authored by Dario Binacchi's avatar Dario Binacchi Committed by Dmitry Torokhov
Browse files

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: default avatarDario Binacchi <dario.binacchi@amarulasolutions.com>
Link: https://lore.kernel.org/r/20230402200951.1032513-9-dario.binacchi@amarulasolutions.com


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 9dfd9708
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -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];
	}