Input: ad7877 - filter events where pressure is beyond the maximum
[cascardo/linux.git] / drivers / input / touchscreen / ad7877.c
index 96c0a0d..b7de78e 100644 (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);