OSDN Git Service

Input: pixcir_i2c_ts - fix receive error
authorFrodo Lai <frodo.lai@gmail.com>
Tue, 16 Jun 2015 22:03:53 +0000 (15:03 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Jul 2015 17:10:15 +0000 (10:10 -0700)
commit 469d7d22cea146e40efe8c330e5164b4d8f13934 upstream.

The i2c_master_recv() uses readsize to receive data from i2c but compares
to size of rdbuf which is always 27. This would cause problem when the
max_fingers is not 5. Change the comparison value to readsize instead.

Fixes: 36874c7e219 ("Input: pixcir_i2c_ts - support up to 5 fingers and
hardware tracking IDs:)

Signed-off-by: Frodo Lai <frodo_lai@bcmcom.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/input/touchscreen/pixcir_i2c_ts.c

index 2c21071..8f3e243 100644 (file)
@@ -78,7 +78,7 @@ static void pixcir_ts_parse(struct pixcir_i2c_ts_data *tsdata,
        }
 
        ret = i2c_master_recv(tsdata->client, rdbuf, readsize);
-       if (ret != sizeof(rdbuf)) {
+       if (ret != readsize) {
                dev_err(&tsdata->client->dev,
                        "%s: i2c_master_recv failed(), ret=%d\n",
                        __func__, ret);