Input: edt-ft5x06 - don't recalculate the CRC
authorDario Binacchi <dario.binacchi@amarulasolutions.com>
Mon, 3 Apr 2023 04:27:34 +0000 (21:27 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 3 Apr 2023 04:37:56 +0000 (21:37 -0700)
There is no need to recalculate the CRC when the data has not changed.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Link: https://lore.kernel.org/r/20230402200951.1032513-5-dario.binacchi@amarulasolutions.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/edt-ft5x06.c

index c96fe6520578eee681bc75b0cb43a5366885574b..d4f39724b2598c4b747dd5140d4aa4b729325923 100644 (file)
@@ -319,7 +319,7 @@ static int edt_ft5x06_register_write(struct edt_ft5x06_ts_data *tsdata,
 static int edt_ft5x06_register_read(struct edt_ft5x06_ts_data *tsdata,
                                    u8 addr)
 {
-       u8 wrbuf[2], rdbuf[2];
+       u8 wrbuf[2], rdbuf[2], crc;
        int error;
 
        switch (tsdata->version) {
@@ -333,11 +333,11 @@ static int edt_ft5x06_register_read(struct edt_ft5x06_ts_data *tsdata,
                if (error)
                        return error;
 
-               if ((wrbuf[0] ^ wrbuf[1] ^ rdbuf[0]) != rdbuf[1]) {
+               crc = wrbuf[0] ^ wrbuf[1] ^ rdbuf[0];
+               if (crc != rdbuf[1]) {
                        dev_err(&tsdata->client->dev,
                                "crc error: 0x%02x expected, got 0x%02x\n",
-                               wrbuf[0] ^ wrbuf[1] ^ rdbuf[0],
-                               rdbuf[1]);
+                               crc, rdbuf[1]);
                        return -EIO;
                }
                break;