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:
Michael Hennerich 2010-10-15 09:49:08 -07:00 committed by Dmitry Torokhov
parent 47026b25fc
commit 1d02ad4362

View file

@ -360,6 +360,13 @@ static int ad7877_rx(struct ad7877 *ts)
Rt /= z1;
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))
input_report_key(input_dev, BTN_TOUCH, 1);