diff mbox series

[3/3] ads7846: don't check penirq immediately for 7845

Message ID 20220714084319.107334-4-luca.ellero@brickedbrain.com (mailing list archive)
State Superseded
Headers show
Series ads7846: fix support for ADS7845 | expand

Commit Message

Luca Ellero July 14, 2022, 8:43 a.m. UTC
From: Luca Ellero <l.ellero@asem.it>

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.

Signed-off-by: Luca Ellero <l.ellero@asem.it>
---
 drivers/input/touchscreen/ads7846.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

Comments

Andy Shevchenko July 14, 2022, 11:35 a.m. UTC | #1
On Thu, Jul 14, 2022 at 10:43:19AM +0200, Luca Ellero wrote:
> From: Luca Ellero <l.ellero@asem.it>
> 
> 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.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> Signed-off-by: Luca Ellero <l.ellero@asem.it>
> ---
>  drivers/input/touchscreen/ads7846.c | 8 +-------
>  1 file changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
> index 9e15cdf6faa0..122d3a13b7c5 100644
> --- a/drivers/input/touchscreen/ads7846.c
> +++ b/drivers/input/touchscreen/ads7846.c
> @@ -843,14 +843,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;
> -- 
> 2.25.1
>
diff mbox series

Patch

diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index 9e15cdf6faa0..122d3a13b7c5 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -843,14 +843,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;