Input: goodix - fix variable length array warning
authorIrina Tirdea <irina.tirdea@intel.com>
Tue, 9 Jun 2015 18:03:15 +0000 (11:03 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 9 Jun 2015 18:23:26 +0000 (11:23 -0700)
Fix sparse warning:

drivers/input/touchscreen/goodix.c:182:26: warning: Variable length array is used.

Replace the variable length array with fixed length.

Some Goodix devices have maximum 5 touch points, while others have 10 touch
points. Using the maximum length (80 bytes) for all devices will lead to
wasting 40 bytes on stack when using devices with maximum 5 touch points.
However, that is preferable to using kmalloc which will use even more
resources.

Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Acked-by: Bastien Nocera <hadess@hadess.net>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/goodix.c

index 099fc466bd1695a3d71489a0eb1965b13c275906..6457033439d55b6e5bfa04fbbda9368f404caeff 100644 (file)
@@ -147,7 +147,7 @@ static void goodix_ts_report_touch(struct goodix_ts_data *ts, u8 *coor_data)
  */
 static void goodix_process_events(struct goodix_ts_data *ts)
 {
-       u8  point_data[1 + GOODIX_CONTACT_SIZE * ts->max_touch_num];
+       u8  point_data[1 + GOODIX_CONTACT_SIZE * GOODIX_MAX_CONTACTS];
        int touch_num;
        int i;