From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Torokhov Subject: Re: [PATCH v9 1/8] drivers:input:tsc2007: add new common binding names, pre-calibration, flipping and rotation Date: Mon, 20 Feb 2017 14:24:38 -0800 Message-ID: References: <201702202042.15878@pali> <201702202208.50498@pali> <15339314-8696-f603-d0da-beefe54f0653@tul.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <15339314-8696-f603-d0da-beefe54f0653-qphu/3gb4gc@public.gmane.org> Sender: linux-iio-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Petr Cvek Cc: "H. Nikolaus Schaller" , =?UTF-8?Q?Pali_Roh=C3=A1r?= , Sebastian Reichel , Mark Rutland , =?UTF-8?Q?Beno=C3=AEt_Cousson?= , Tony Lindgren , Russell King , Arnd Bergmann , Michael Welling , =?UTF-8?Q?Mika_Penttil=C3=A4?= , Javier Martinez Canillas , Igor Grinberg , "Andrew F. Davis" , Mark Brown , Jonathan Cameron , Rob Herring , Alexander Stein , Eric Engestrom , Hans List-Id: linux-input@vger.kernel.org On Mon, Feb 20, 2017 at 2:21 PM, Petr Cvek wrote: > Hi, > > Dne 20.2.2017 v 22:50 Dmitry Torokhov napsal(a): >> On Mon, Feb 20, 2017 at 1:27 PM, H. Nikolaus Schaller wrote: >>> >>>> Am 20.02.2017 um 22:08 schrieb Pali Roh=C3=A1r : >>>> >>>> On Monday 20 February 2017 20:42:15 Pali Roh=C3=A1r wrote: >>>>> Hi Nikolaus! >>>>> >>>>> On Monday 20 February 2017 17:50:04 H. Nikolaus Schaller wrote: >>>>>> Hi Dmitry, >>>>>> >>>>>>> Input driver may set resolution for given axis in units per mm >>>>>>> (or units per radian for rotational axis ABS_RX, ABS_RY, >>>>>>> ABS_RZ), and if you check the binding, you can use >>>>>>> "touchscreen-x-mm" and "touchscreen-y-mm" to specify the size of >>>>>>> entire touch surface and set resolution from it so that >>>>>>> userspace can calculate the proper scaling factor. >>>>>> >>>>>> How is this information exposed by the kernel to user-space? By >>>>>> scanning the DT file or tree? >>>>> >>>>> Set input_abs_set_res() from kernel. And in userspace call EVIOCGABS >>>>> ioctl() on input device. Look at struct input_absinfo, you should >>>>> have all needed information here. This is generic input interface, >>>>> no DT is needed. >>>> >>>> Looking at kernel code... via EVIOCSABS ioctl() you can even set >>>> resolution from userspace for specified input device. >>>> >>>> So this could be potentially used for calibrating input device from >>>> userspace? (In case DT data will not fully match current HW) >>>> >>>>> I hope that XServer is already using it for evdev devices... >>>>> >>>>> For whole implementation look at evtest program. That should be good >>>>> starting point for your userspace implementation. >>>>> >>>>> While I'm watching this discussion... in my opinion kernel should >>>>> just invert input axes (when needed) >>> >>> It is questionable why it should do that at all then. >> >> Because the task of the kernel is to provide unified view of the >> hardware. Axis swapping and inversion is needed to that "up" is always >> "up" and "right" is always "right". > > Actually my Xorg calibration 3x3 matrix is fine with both axis inverted (= on TSC2046). Yes, you can make it work for your touchscreen as long as you know that it inverted somehow. How you gain this knowledge is the question. Thanks. --=20 Dmitry