Il 25/05/2015 13:22, Peter Korsgaard ha scritto:

Hi,

Driver claims to return X/Y in 0..4095 range.
  >>
  >> > Event: time 1432134719.652423, type 3 (EV_ABS), code 0 (ABS_X), value 
7823
  >> > Event: time 1432134719.652423, type 3 (EV_ABS), code 1 (ABS_Y), value 
7987
  >>
  >> But then returns values that are outside this range, confusing user space.
  >>
  >> Garbage in is garbage out.
  >>

  > So why ts_print is working?

Presumably because it just prints the kernel events without validating
that they are really in the min..max range.

Couldn't this be related to xinput only?

No, the reason is your kernel driver. Some user space sw may be able to
more or less work with a kernel driver that provides out of range
events, but xinput clips them to the valid range.

Once again, the fix is to correct the kernel driver.

 From input/drivers/touchscreen/abs7846.c I see:

static int ads7846_probe(struct spi_device *spi)
{
...
         input_set_abs_params(input_dev, ABS_X,
                         pdata->x_min ? : 0,
                         pdata->x_max ? : MAX_12BIT,
                         0, 0);
         input_set_abs_params(input_dev, ABS_Y,
                         pdata->y_min ? : 0,
                         pdata->y_max ? : MAX_12BIT,
                         0, 0);

So presumably you just need to pass the correct x_max/y_max in your
platform data.



Thank you Peter,
after your precious suggestion I discovered a problem in the values in the Device Tree for my ADS7843 Touchscreen

 ti,swap-xy = <1>;
 ti,x-min = <0>;
 ti,x-max = <8000>;
 ti,y-min = <0>;
 ti,y-max = <8000>;

Everything is working with a charm.
Thank you


Cordiali Saluti / Kindest Regards / Mit freundlichen Grüßen
--
Marco Cavallini | KOAN sas | Bergamo - Italia
 embedded and real-time software engineering
Phone:+39-035-255.235 - Fax:+39-178-22.39.748
      http://www.KoanSoftware.com
_______________________________________________
[email protected]: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: %(user_address)s

Reply via email to