[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <fb7daf0f65e122b62e3149316849a3aeb3c8e5c3.1447446957.git.hns@goldelico.com>
Date: Fri, 13 Nov 2015 21:35:53 +0100
From: "H. Nikolaus Schaller" <hns@...delico.com>
To: Rob Herring <robh+dt@...nel.org>, Pawel Moll <pawel.moll@....com>,
Mark Rutland <mark.rutland@....com>,
Ian Campbell <ijc+devicetree@...lion.org.uk>,
Kumar Gala <galak@...eaurora.org>,
BenoƮt Cousson <bcousson@...libre.com>,
Tony Lindgren <tony@...mide.com>,
Russell King <linux@....linux.org.uk>,
Dmitry Torokhov <dmitry.torokhov@...il.com>,
"H. Nikolaus Schaller" <hns@...delico.com>,
Hans Verkuil <hans.verkuil@...co.com>,
Mauro Carvalho Chehab <mchehab@....samsung.com>,
Sebastian Reichel <sre@...nel.org>,
Haibo Chen <haibo.chen@...escale.com>,
Andrey Gelman <andrey.gelman@...pulab.co.il>,
Igor Grinberg <grinberg@...pulab.co.il>,
Aaron Sierra <asierra@...-inc.com>,
Krzysztof Kozlowski <k.kozlowski@...sung.com>
Cc: devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-omap@...r.kernel.org, gta04-owner@...delico.com,
linux-input@...r.kernel.org
Subject: [PATCH v2 2/8] drivers:input:tsc2007: send pendown and penup only once like ads7846(+tsc2046) driver does
this should reduce unnecessary input events.
Signed-off-by: H. Nikolaus Schaller <hns@...delico.com>
---
drivers/input/touchscreen/tsc2007.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/input/touchscreen/tsc2007.c b/drivers/input/touchscreen/tsc2007.c
index e0c7173..1a8a79d 100644
--- a/drivers/input/touchscreen/tsc2007.c
+++ b/drivers/input/touchscreen/tsc2007.c
@@ -94,6 +94,7 @@ struct tsc2007 {
wait_queue_head_t wait;
bool stopped;
+ bool pendown;
int (*get_pendown_state)(struct device *);
void (*clear_penirq)(void);
@@ -251,7 +252,10 @@ static irqreturn_t tsc2007_soft_irq(int irq, void *handle)
dev_dbg(&ts->client->dev,
"shaped point(%4d,%4d), pressure (%4u)\n",
tc.x, tc.y, rt);
- input_report_key(input, BTN_TOUCH, 1);
+ if (!ts->pendown) {
+ input_report_key(input, BTN_TOUCH, 1);
+ ts->pendown = true;
+ }
input_report_abs(input, ABS_X, tc.x);
input_report_abs(input, ABS_Y, tc.y);
input_report_abs(input, ABS_PRESSURE, rt);
@@ -272,9 +276,13 @@ static irqreturn_t tsc2007_soft_irq(int irq, void *handle)
dev_dbg(&ts->client->dev, "UP\n");
- input_report_key(input, BTN_TOUCH, 0);
- input_report_abs(input, ABS_PRESSURE, 0);
- input_sync(input);
+ if (ts->pendown) {
+ input_report_key(input, BTN_TOUCH, 0);
+ input_report_abs(input, ABS_PRESSURE, 0);
+ input_sync(input);
+
+ ts->pendown = false;
+ }
if (ts->clear_penirq)
ts->clear_penirq();
--
2.5.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists