Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3617778 authored by Luca Ellero's avatar Luca Ellero Committed by Greg Kroah-Hartman
Browse files

Input: ads7846 - don't check penirq immediately for 7845



[ Upstream commit fa9f4275b20ec7b2a8fb05c66362d10b36f9efec ]

To discard false readings, one should use "ti,penirq-recheck-delay-usecs".
Checking get_pendown_state() at the beginning, most of the time fails
causing malfunctioning.

Fixes: ffa458c1 ("spi: ads7846 driver")
Signed-off-by: default avatarLuca Ellero <l.ellero@asem.it>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20230126105227.47648-4-l.ellero@asem.it


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent ea9c4fbf
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -790,14 +790,8 @@ static void ads7846_report_state(struct ads7846 *ts)
	if (x == MAX_12BIT)
		x = 0;

	if (ts->model == 7843) {
	if (ts->model == 7843 || ts->model == 7845) {
		Rt = ts->pressure_max / 2;
	} else if (ts->model == 7845) {
		if (get_pendown_state(ts))
			Rt = ts->pressure_max / 2;
		else
			Rt = 0;
		dev_vdbg(&ts->spi->dev, "x/y: %d/%d, PD %d\n", x, y, Rt);
	} else if (likely(x && z1)) {
		/* compute touch pressure resistance using equation #2 */
		Rt = z2;