Hi Pavel,
Am 18.02.2017 um 10:15 schrieb Pavel Machek pavel@ucw.cz:
Hi!
Well, there is some historic confusion wether this driver reports resistance or pressure.
The unpatched tsc2007 driver does it wrong (please test!) and we fix it on the fly (because a separate patch is much more complex than doing it right immediately).
This ti,report-resistance property is a means to get the old (wrong) meaning back in case someone urgently needs it and can't fix the user-space workaround which he must be using.
AFAIK there is no mainline board using the DT except ours (and the upcoming OMAP5-Pyra), so we shouldn't care too much. If you prefer, you can remove this compatibility property. We don't need it for our devices.
N900 is mainline and uses DT.
Yes, but it does not use the tsc2007 and will not be influenced at all by this patch.
That the function name is wrong is a second issue and this double negation might confuse a litte.
Please test on a real device if the patched driver reports pressure now (unless ti,report-resistance is specified).
I unfortunately can not test this driver as I do not have the hardware. So all my observations are from code and data sheets.
That said, what is the values emitted as ABS_PRESSURE when finger is not touching the device, barely touching the device, or pressing firmly? It seems that between TSC2007, TSC2004, TSC2005, and ADS7846, we have confusion as to what is being reported.
I am adding a few more folks to the CC so we can try and soft this out. Sebastian, Pali, Pavel, any input here?
X work ok on N900. Nikolaus wrote rather long email, but I'm not what the meaning is and what is supposed to be broken there.
IMHO it is broken that you have to do a subtle calibration step in user-space and repeat it for different GUI toolkits.
I do this on X startup:
xinput --set-prop --type=float "TSC200X touchscreen" "Coordinate Transformation Matrix" 1.10 0.00 -0.05 0.00 1.18 -0.10 0.00 0.00 1.00 xinput --set-prop --type=int "TSC200X touchscreen" "Evdev Axis Inversion" 0 1 xinput --set-prop --type=float "TSC2005 touchscreen" "Coordinate Transformation Matrix" 1\ .10 0.00 -0.05 0.00 1.18 -0.10 0.00 0.00 1.00 xinput --set-prop --type=int "TSC2005 touchscreen" "Evdev Axis Inversion" 0 1
Wouldn't it be nice to get rid of this completely, because the DT/kernel knows these factors? Especially since they are well defined by the hardware?
And I agree that kernel should _not_ attempt rescaling itself, as it would lose precision.
With an almost 1:1 mapping you won't loose precision.
Providing default calibration info is ok.
IMHO it is missing one step of automation.
BR and thanks, Nikolaus