[PATCH 2/2] Input: smtpe-ts: Wait 50mS until polling for pen-up

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Wait a little bit longer, 50mS instead of 20mS, until the driver
starts polling for pen-up. The problematic behavior before this
patch is applied is as follows. The behavior was observed on the
STMPE610QTR controller.

Upon a physical pen-down event, the touchscreen reports one set
of x-y-p coordinates and a pen-down event. After that, the pen-up
polling is triggered and since the controller is not ready yet,
the polling mistakenly detects a pen-up event while the physical
state is still such that the pen is down on the touch surface.

The pen-up handling flushes the controller FIFO, so after that,
all the samples in the controller are discarded. The controller
becomes ready shortly after this bogus pen-up handling and does
generate again a pen-down interrupt. This time, the controller
contains x-y-p samples which all read as zero. Since pressure
value is zero, this set of samples is effectively ignored by
userland.

In the end, the driver just bounces between pen-down and bogus
pen-up handling, generating no useful results. Fix this by giving
the controller a bit more time before polling it for pen-up.

Signed-off-by: Marek Vasut <marex@xxxxxxx>
Cc: Vipul Kumar Samar <vipulkumar.samar@xxxxxx>
Cc: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
---
 drivers/input/touchscreen/stmpe-ts.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/touchscreen/stmpe-ts.c b/drivers/input/touchscreen/stmpe-ts.c
index 9e5c880..a8f5ea7 100644
--- a/drivers/input/touchscreen/stmpe-ts.c
+++ b/drivers/input/touchscreen/stmpe-ts.c
@@ -164,7 +164,7 @@ static irqreturn_t stmpe_ts_handler(int irq, void *data)
 			STMPE_TSC_CTRL_TSC_EN, STMPE_TSC_CTRL_TSC_EN);
 
 	/* start polling for touch_det to detect release */
-	schedule_delayed_work(&ts->work, msecs_to_jiffies(20));
+	schedule_delayed_work(&ts->work, msecs_to_jiffies(50));
 
 	return IRQ_HANDLED;
 }
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux