Input: ad7877 - filter events where pressure is beyond the maximum
Suppress events where pressure > pressure_max. These events come typically along with inaccurate X and Y samples. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
47026b25fc
commit
1d02ad4362
1 changed files with 7 additions and 0 deletions
|
@ -360,6 +360,13 @@ static int ad7877_rx(struct ad7877 *ts)
|
||||||
Rt /= z1;
|
Rt /= z1;
|
||||||
Rt = (Rt + 2047) >> 12;
|
Rt = (Rt + 2047) >> 12;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sample found inconsistent, pressure is beyond
|
||||||
|
* the maximum. Don't report it to user space.
|
||||||
|
*/
|
||||||
|
if (Rt > ts->pressure_max)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
if (!timer_pending(&ts->timer))
|
if (!timer_pending(&ts->timer))
|
||||||
input_report_key(input_dev, BTN_TOUCH, 1);
|
input_report_key(input_dev, BTN_TOUCH, 1);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue