Input: smtpe-ts - wait 50mS until polling for pen-up
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@denx.de> Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
8f6bcc97ab
commit
9ceeb59c5f
|
@ -164,7 +164,7 @@ static irqreturn_t stmpe_ts_handler(int irq, void *data)
|
||||||
STMPE_TSC_CTRL_TSC_EN, STMPE_TSC_CTRL_TSC_EN);
|
STMPE_TSC_CTRL_TSC_EN, STMPE_TSC_CTRL_TSC_EN);
|
||||||
|
|
||||||
/* start polling for touch_det to detect release */
|
/* 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;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue