Input: zforce - reduce stack memory allocated to frames
authorLuis Ortega <luiorpe1@upv.es>
Mon, 27 Jan 2014 20:28:33 +0000 (12:28 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 28 Jan 2014 06:35:17 +0000 (22:35 -0800)
A frame is a u8 array with the following structure:
[PAYLOAD_HEADER, PAYLOAD_LENGTH, ...PAYLOAD_BODY...]

PAYLOAD_BODY can be at most 255 bytes long, as it's size is represented
by PAYLOAD_LENGTH. Therefore we can reduce the stack memory allocated to
payload_buffer[] roughly by half, from 512 to 257 bytes.

Signed-off-by: Luis Ortega <luiorpe1@upv.es>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Heiko Stuebner <heiko@sntech.de> - bq Cervantes (imx6sl)
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/zforce_ts.c

index 3ed024985a581ae55aa7fbf1671a1f49d7fef232..307f582eeabfbf79cad0534c162ed5110de7e2ef 100644 (file)
@@ -33,6 +33,7 @@
 #define WAIT_TIMEOUT           msecs_to_jiffies(1000)
 
 #define FRAME_START            0xee
+#define FRAME_MAXSIZE          257
 
 /* Offsets of the different parts of the payload the controller sends */
 #define PAYLOAD_HEADER         0
@@ -464,7 +465,7 @@ static irqreturn_t zforce_interrupt(int irq, void *dev_id)
        struct i2c_client *client = ts->client;
        const struct zforce_ts_platdata *pdata = dev_get_platdata(&client->dev);
        int ret;
-       u8 payload_buffer[512];
+       u8 payload_buffer[FRAME_MAXSIZE];
        u8 *payload;
 
        /*