Thread (11 messages) 11 messages, 3 authors, 2014-01-28

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.c
b/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;

 	/*
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help