diff options
author | Michael Hennerich <michael.hennerich@analog.com> | 2010-10-15 12:49:08 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-10-18 00:12:46 -0400 |
commit | 1d02ad436235080b8a95a2c86a66cb7b8f2e9df9 (patch) | |
tree | b7b1e19086ce8f3df55e0eb60c1354f4fe26b37a /drivers | |
parent | 47026b25fc6cd2d7ec85d4a83c472bca20946a94 (diff) |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/input/touchscreen/ad7877.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c index 96c0a0d4b69c..b7de78e82737 100644 --- a/drivers/input/touchscreen/ad7877.c +++ b/drivers/input/touchscreen/ad7877.c | |||
@@ -360,6 +360,13 @@ static int ad7877_rx(struct ad7877 *ts) | |||
360 | Rt /= z1; | 360 | Rt /= z1; |
361 | Rt = (Rt + 2047) >> 12; | 361 | Rt = (Rt + 2047) >> 12; |
362 | 362 | ||
363 | /* | ||
364 | * Sample found inconsistent, pressure is beyond | ||
365 | * the maximum. Don't report it to user space. | ||
366 | */ | ||
367 | if (Rt > ts->pressure_max) | ||
368 | return -EINVAL; | ||
369 | |||
363 | if (!timer_pending(&ts->timer)) | 370 | if (!timer_pending(&ts->timer)) |
364 | input_report_key(input_dev, BTN_TOUCH, 1); | 371 | input_report_key(input_dev, BTN_TOUCH, 1); |
365 | 372 | ||