Re: [PATCH 4/4] Input: zforce - reduce stack memory allocated to frames
From: Heiko Stübner <heiko@sntech.de>
Date: 2014-01-27 20:23:25
Also in:
lkml
On Monday, 27. January 2014 19:46:13 Luis Ortega wrote:
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.
Nice catch, thanks Acked-by: Heiko Stuebner <heiko@sntech.de> on a bq Cervantes (imx6sl) Tested-by: Heiko Stuebner <heiko@sntech.de> As a side-note, this change conflicts with one of my patches adding devicetree support to the driver [0], which Dmitry will hopefully also look at soon. So one of us might need to respin his series depending on the ordering. [0] http://permalink.gmane.org/gmane.linux.kernel.input/33587
quoted hunk ↗ jump to hunk
Signed-off-by: Luis Ortega <redacted> --- drivers/input/touchscreen/zforce_ts.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)diff --git a/drivers/input/touchscreen/zforce_ts.cb/drivers/input/touchscreen/zforce_ts.c index e082d5c..afb2492 100644--- a/drivers/input/touchscreen/zforce_ts.c +++ b/drivers/input/touchscreen/zforce_ts.c@@ -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@@ -475,7 +476,7 @@ static irqreturn_t zforce_irq_thread(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; /*