From: "H. Nikolaus Schaller" <hns@goldelico.com>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: "Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
"Sebastian Reichel" <sre@kernel.org>,
"Mark Rutland" <mark.rutland@arm.com>,
"Benoît Cousson" <bcousson@baylibre.com>,
"Tony Lindgren" <tony@atomide.com>,
"Russell King" <linux@armlinux.org.uk>,
"Arnd Bergmann" <arnd@arndb.de>,
"Michael Welling" <mwelling@ieee.org>,
"Mika Penttilä" <mika.penttila@nextfour.com>,
"Javier Martinez Canillas" <javier@osg.samsung.com>,
"Igor Grinberg" <grinberg@compulab.co.il>,
"Andrew F. Davis" <afd@ti.com>, "Mark Brown" <broonie@kernel.org>,
"Jonathan Cameron" <jic23@kernel.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Alexander Stein" <alexander.stein@systec-electronic.com>,
"Eric Engestrom" <eric@engestrom.ch>,
"Hans de Goede" <hdegoede@redhat.com>,
"Benjamin Tissoires" <benjamin.tissoires@redhat.com>,
"Petr Cvek" <petr.cvek@tul.cz>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
"Hans Verkuil" <hans.verkuil@cisco.com>,
"Nick Dyer" <nick@shmanahar.org>,
"Siebren Vroegindeweij" <siebren.vroegindeweij@hotmail.com>,
"Michel Verlaan" <michel.verl@gmail.com>,
linux-input@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
letux-kernel@openphoenux.org, linux-iio@vger.kernel.org,
kernel@pyra-handheld.com,
"Aaro Koskinen" <aaro.koskinen@nokia.com>,
"Pavel Machek" <pavel@ucw.cz>,
"Andrey Gelman" <andrey.gelman@compulab.co.il>,
"Haibo Chen" <haibo.chen@freescale.com>
Subject: Re: [PATCH v9 1/8] drivers:input:tsc2007: add new common binding names, pre-calibration, flipping and rotation
Date: Mon, 20 Feb 2017 22:24:31 +0100 [thread overview]
Message-ID: <A77657DA-BFF3-4A4E-9302-047B77072F3A@goldelico.com> (raw)
In-Reply-To: <201702202207.38582@pali>
[-- Attachment #1: Type: text/plain, Size: 5105 bytes --]
Hi Pali,
> Am 20.02.2017 um 22:07 schrieb Pali Rohár <pali.rohar@gmail.com>:
>
> On Monday 20 February 2017 21:35:18 H. Nikolaus Schaller wrote:
>> Hi Pali,
>>
>>> Am 20.02.2017 um 20:42 schrieb Pali Rohár <pali.rohar@gmail.com>:
>>>
>>> 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.
>>
>> This assumes that I can and want to write a graphics system myself.
>
> Not only. There are already existing graphics systems. And you need to
> provide needed information from kernel, so they can start using it.
>
> So input_abs_set_res() is needed to use in your kernel driver.
I didn't know about this feature and obviously nobody else has implemented
it in the tsc2007 driver.
>
>>> I hope that XServer is already using it for evdev devices...
>>
>> No idea if it does. It is a black box for me out of our control.
>
> https://cgit.freedesktop.org/xorg/driver/xf86-input-evdev/tree/src/evdev.c#n1479
>
> So yes, it does.
>
>>> For whole implementation look at evtest program. That should be
>>> good starting point for your userspace implementation.
>>
>> The problem I have is that *I* have no userspace implementation and
>> the GTA04 project does not want to enforce one. We have several
>> different ones: X11 based (LXDE and others), Qt (fb based),
>> Replicant to name some.
>>
>> All have the same problem to be solved once. The common denominator
>> for a solution are 2 lines of code in the kernel plus some DT
>> properties you need anyways if calibration should be automated in
>> userland.
>
> As I wrote above part of linux input API is resolution value. And from
> all information I understood that having current value, minimal value,
> maximal value and resolution is enough for correct calculation of pixel
> coordinates in userspace.
>
> And Xserver evdev driver is using it.
>
> If other non-X11 application (which you want/need to use) use resolution
> information incorrectly (or calculate positions incorrectly), then this
> is bug that application. Not in Linux kernel, that is important.
>
> And I would rather see fixes of such bugs in that (broken) application
> as doing workarounds in kernel, just because of bugs in application.
>
> More important, are those applications really broken?
>
> From my point of view: Reporting size of input device is already part of
> stable kernel <--> userspace API/ABI and it should be used instead of
> inventing new way...
>
>>> While I'm watching this discussion... in my opinion kernel should
>>> just invert input axes (when needed) and should not do any other
>>> normalization or integer/floating-point
>>> re-calibration/re-calculation. If it correctly exports minimum
>>> value, maximum value and resolution then userspace can correctly
>>> re-scale input events to units which userspace needs (e.g. mapping
>>> into LCD screen pixels or whatever is needed).
>>
>> It can, but afaik it does not yet.
>
> I did not tested it, but code is in xf86-input-evdev already there.
>
> So please try to implement input_abs_set_res() in kernel driver and test
> userspace.
>
>> And if it does, it does it in a
>> plethora of different implementation states. That is the reason why
>> we want to solve it once for all userlands in the kernel and not
>> rely on user-space help.
>
> For me this looks like "we are going to fix userspace bugs in kernel".
Such things are system bugs and it is neither necessarily a userspace
or kernel bug.
> Really! Not a good idea. Plus I still see this as abusing kernel API/ABI
> as resolution should be handled differently as you are proposing.
I don't understand what you say here. Where are we abusing kernel
API/ABI?
>
>> Surely, userland can do a lot of things. It could also do the whole
>> file system stuff (FUSE).
>>
>> A more input device related example comes to my mind: userland could
>> do keyboard mapping completely. It would suffice if the kernel
>> presents some x/y coordinates or gpio-numbers for buttons and
>> user-space could map. Still there is a (pre-)mapping to Key-Codes.
>> And yes, they are mapped a second time in userland if needed, but it
>> works sufficiently well if not done.
>>
>> BR and thanks,
>> Nikolaus
BR,
Nikolaus
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
next prev parent reply other threads:[~2017-02-20 21:24 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-28 14:53 [PATCH v9 0/8] drivers: touchscreen: tsc2007 and ads7846/tsc2046 improvements (use common touchscreen bindings, pre-calibration, spi fix and provide iio raw values) H. Nikolaus Schaller
2016-12-28 14:53 ` [PATCH v9 1/8] drivers:input:tsc2007: add new common binding names, pre-calibration, flipping and rotation H. Nikolaus Schaller
2017-01-09 17:43 ` Rob Herring
2017-01-28 19:33 ` Dmitry Torokhov
2017-01-28 21:44 ` H. Nikolaus Schaller
2017-02-17 20:40 ` Dmitry Torokhov
2017-02-18 3:22 ` Sebastian Reichel
2017-02-18 11:33 ` H. Nikolaus Schaller
2017-02-18 23:44 ` Sebastian Reichel
2017-02-19 12:07 ` H. Nikolaus Schaller
2017-02-19 20:15 ` Sebastian Reichel
2017-02-20 16:49 ` H. Nikolaus Schaller
2017-02-18 7:45 ` [Letux-kernel] " Andreas Kemnade
2017-02-18 9:15 ` Pavel Machek
2017-02-18 11:33 ` H. Nikolaus Schaller
2017-02-18 18:08 ` Pavel Machek
2017-02-18 19:17 ` H. Nikolaus Schaller
2017-02-18 22:54 ` Pavel Machek
2017-02-19 12:05 ` H. Nikolaus Schaller
2017-02-19 14:17 ` Pavel Machek
2017-02-19 17:04 ` H. Nikolaus Schaller
2017-02-19 17:15 ` Pavel Machek
2017-02-19 17:51 ` H. Nikolaus Schaller
2017-02-19 19:05 ` Pavel Machek
2017-02-19 19:31 ` H. Nikolaus Schaller
2017-02-19 20:57 ` Pavel Machek
2017-02-19 22:01 ` H. Nikolaus Schaller
2017-02-19 22:19 ` Pavel Machek
2017-02-20 16:50 ` H. Nikolaus Schaller
2017-02-20 19:29 ` Pavel Machek
2017-02-20 20:20 ` H. Nikolaus Schaller
2017-02-20 22:26 ` Petr Cvek
2017-02-21 8:29 ` H. Nikolaus Schaller
2017-02-19 22:29 ` [Letux-kernel] " Andreas Kemnade
2017-02-19 22:39 ` Pavel Machek
2017-02-20 16:50 ` H. Nikolaus Schaller
2017-02-20 19:32 ` Pavel Machek
2017-02-20 20:22 ` H. Nikolaus Schaller
2017-02-20 20:50 ` H. Nikolaus Schaller
2017-02-18 11:32 ` H. Nikolaus Schaller
2017-02-20 1:07 ` Dmitry Torokhov
2017-02-20 16:50 ` H. Nikolaus Schaller
2017-02-20 19:42 ` Pali Rohár
2017-02-20 20:35 ` H. Nikolaus Schaller
2017-02-20 21:07 ` Pali Rohár
2017-02-20 21:24 ` H. Nikolaus Schaller [this message]
2017-02-20 21:54 ` Pali Rohár
2017-02-21 6:42 ` H. Nikolaus Schaller
2017-02-21 8:53 ` Pali Rohár
2017-02-20 21:08 ` Pali Rohár
2017-02-20 21:27 ` H. Nikolaus Schaller
2017-02-20 21:50 ` Dmitry Torokhov
2017-02-20 22:21 ` Petr Cvek
2017-02-20 22:24 ` Dmitry Torokhov
2017-02-21 6:56 ` H. Nikolaus Schaller
2017-02-20 22:45 ` Pali Rohár
2017-02-21 6:36 ` H. Nikolaus Schaller
2017-02-21 9:09 ` Pali Rohár
2017-02-21 17:07 ` [Letux-kernel] " Andreas Kemnade
2017-02-20 22:04 ` Pali Rohár
2017-02-21 6:49 ` H. Nikolaus Schaller
2017-02-21 7:14 ` H. Nikolaus Schaller
2017-02-21 8:47 ` Pali Rohár
2017-02-21 8:57 ` [Letux-kernel] " Christ van Willegen
2017-02-21 11:07 ` Pavel Machek
2016-12-28 14:53 ` [PATCH v9 2/8] drivers:input:tsc2007: check for presence and power down tsc2007 during probe H. Nikolaus Schaller
2017-02-17 20:52 ` Dmitry Torokhov
2016-12-28 14:53 ` [PATCH v9 3/8] DT:omap3+tsc2007: use new common touchscreen bindings H. Nikolaus Schaller
2016-12-28 14:53 ` [PATCH v9 4/8] drivers:input:ads7846(+tsc2046): add new common binding names, pre-calibration and flipping H. Nikolaus Schaller
2016-12-28 14:53 ` [PATCH v9 5/8] dt-bindings: input: move ads7846 bindings to touchscreen subdirectory H. Nikolaus Schaller
2017-02-23 9:54 ` H. Nikolaus Schaller
2016-12-28 14:53 ` [PATCH v9 6/8] drivers:input:ads7846(+tsc2046): fix spi module table H. Nikolaus Schaller
2017-01-28 19:35 ` Dmitry Torokhov
2017-01-29 8:39 ` H. Nikolaus Schaller
2017-01-29 18:01 ` Dmitry Torokhov
2017-01-29 18:25 ` H. Nikolaus Schaller
2017-02-01 20:20 ` H. Nikolaus Schaller
2017-02-01 21:14 ` Javier Martinez Canillas
2017-02-01 22:28 ` Dmitry Torokhov
2017-02-01 22:50 ` Javier Martinez Canillas
2017-02-02 5:47 ` H. Nikolaus Schaller
2016-12-28 14:53 ` [PATCH v9 7/8] DT:omap3+ads7846: use new common touchscreen bindings H. Nikolaus Schaller
2016-12-28 14:53 ` [PATCH v9 8/8] drivers:input:tsc2007: add iio interface to read external ADC input and temperature H. Nikolaus Schaller
2016-12-30 20:36 ` Jonathan Cameron
2017-02-17 21:27 ` Dmitry Torokhov
2017-02-18 11:35 ` H. Nikolaus Schaller
2017-01-16 6:34 ` [PATCH v9 0/8] drivers: touchscreen: tsc2007 and ads7846/tsc2046 improvements (use common touchscreen bindings, pre-calibration, spi fix and provide iio raw values) H. Nikolaus Schaller
2017-01-21 13:08 ` Jonathan Cameron
2017-01-21 13:17 ` H. Nikolaus Schaller
2017-01-28 18:16 ` [Letux-kernel] " H. Nikolaus Schaller
2017-02-12 15:18 ` H. Nikolaus Schaller
2017-02-15 14:03 ` H. Nikolaus Schaller
2017-02-17 20:43 ` Dmitry Torokhov
2017-02-18 11:30 ` H. Nikolaus Schaller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=A77657DA-BFF3-4A4E-9302-047B77072F3A@goldelico.com \
--to=hns@goldelico.com \
--cc=aaro.koskinen@nokia.com \
--cc=afd@ti.com \
--cc=alexander.stein@systec-electronic.com \
--cc=andrey.gelman@compulab.co.il \
--cc=arnd@arndb.de \
--cc=bcousson@baylibre.com \
--cc=benjamin.tissoires@redhat.com \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=eric@engestrom.ch \
--cc=grinberg@compulab.co.il \
--cc=haibo.chen@freescale.com \
--cc=hans.verkuil@cisco.com \
--cc=hdegoede@redhat.com \
--cc=javier@osg.samsung.com \
--cc=jic23@kernel.org \
--cc=kernel@pyra-handheld.com \
--cc=letux-kernel@openphoenux.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=mark.rutland@arm.com \
--cc=mchehab@kernel.org \
--cc=michel.verl@gmail.com \
--cc=mika.penttila@nextfour.com \
--cc=mwelling@ieee.org \
--cc=nick@shmanahar.org \
--cc=pali.rohar@gmail.com \
--cc=pavel@ucw.cz \
--cc=petr.cvek@tul.cz \
--cc=robh+dt@kernel.org \
--cc=siebren.vroegindeweij@hotmail.com \
--cc=sre@kernel.org \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).