Message ID | 20220714084319.107334-1-luca.ellero@brickedbrain.com |
---|---|
Headers | show |
Series | ads7846: fix support for ADS7845 | expand |
On Thu, Jul 14, 2022 at 10:43:17AM +0200, Luca Ellero wrote: > From: Luca Ellero <l.ellero@asem.it> > > ADS7845 doesn't support pressure. > This patch avoids the following error reported by libinput-list-devices: > "ADS7845 Touchscreen: kernel bug: device has min == max on ABS_PRESSURE" Missed period, otherwise looks good. Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > Signed-off-by: Luca Ellero <l.ellero@asem.it> > --- > drivers/input/touchscreen/ads7846.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c > index bed68a68f330..24605c40d039 100644 > --- a/drivers/input/touchscreen/ads7846.c > +++ b/drivers/input/touchscreen/ads7846.c > @@ -1316,8 +1316,9 @@ static int ads7846_probe(struct spi_device *spi) > pdata->y_min ? : 0, > pdata->y_max ? : MAX_12BIT, > 0, 0); > - input_set_abs_params(input_dev, ABS_PRESSURE, > - pdata->pressure_min, pdata->pressure_max, 0, 0); > + if (ts->model != 7845) > + input_set_abs_params(input_dev, ABS_PRESSURE, > + pdata->pressure_min, pdata->pressure_max, 0, 0); > > /* > * Parse common framework properties. Must be done here to ensure the > -- > 2.25.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 >
On 14/07/2022 13:32, Andy Shevchenko wrote: > On Thu, Jul 14, 2022 at 10:43:17AM +0200, Luca Ellero wrote: >> From: Luca Ellero <l.ellero@asem.it> >> >> ADS7845 doesn't support pressure. >> This patch avoids the following error reported by libinput-list-devices: >> "ADS7845 Touchscreen: kernel bug: device has min == max on ABS_PRESSURE" > > Missed period, otherwise looks good. > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > >> Signed-off-by: Luca Ellero <l.ellero@asem.it> >> --- >> drivers/input/touchscreen/ads7846.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c >> index bed68a68f330..24605c40d039 100644 >> --- a/drivers/input/touchscreen/ads7846.c >> +++ b/drivers/input/touchscreen/ads7846.c >> @@ -1316,8 +1316,9 @@ static int ads7846_probe(struct spi_device *spi) >> pdata->y_min ? : 0, >> pdata->y_max ? : MAX_12BIT, >> 0, 0); >> - input_set_abs_params(input_dev, ABS_PRESSURE, >> - pdata->pressure_min, pdata->pressure_max, 0, 0); >> + if (ts->model != 7845) >> + input_set_abs_params(input_dev, ABS_PRESSURE, >> + pdata->pressure_min, pdata->pressure_max, 0, 0); >> >> /* >> * Parse common framework properties. Must be done here to ensure the >> -- >> 2.25.1 >> > Hi Andy, thank you for your comments. I will resend v2 of the patches. Regards Luca