Hi,
On Fri, Feb 17, 2017 at 12:40:41PM -0800, Dmitry Torokhov wrote:
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.
$ cd linux.git/arch $ git grep -l tsc2004 arm/boot/dts/imx6qdl-nit6xlite.dtsi arm/boot/dts/imx7d-nitrogen7.dts arm/boot/dts/logicpd-torpedo-37xx-devkit.dts arm/boot/dts/omap4-var-som-om44.dtsi $ git grep -l tsc2005 arm/boot/dts/omap3-n900.dts $ git grep -l tsc2007 arm/boot/dts/imx28-tx28.dts arm/boot/dts/imx35-eukrea-cpuimx35.dtsi arm/boot/dts/imx51-eukrea-cpuimx51.dtsi arm/boot/dts/imx53-tx53-x03x.dts arm/boot/dts/imx6qdl-tx6.dtsi arm/boot/dts/imx6ul-tx6ul.dtsi arm/boot/dts/omap3-gta04.dtsi sh/boards/mach-ecovec24/setup.c
You seem to be treating DT data as something very fluid, which is wrong. You need to treat it as a firmware, unlikely to change once device is shipped. Unlike legacy platform data, the fact that DTS files are not present in mainline does not mean that we can ignore such users and change behavior at will.
That said, if driver behavior is out of line from the subsystem expectations, we need to fix it.
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.
As far as I can see all calculate Rtouch and ADS7846 reports (Rmax - Rtouch), which looks sensible.
I am adding a few more folks to the CC so we can try and soft this out. Sebastian, Pali, Pavel, any input here?
I think tsc200x works, since usually userspace is Xorg and I think it only cares for x/y coordinates + boolean pressure. Since no-pressure is correctly reported as 0, everything works as expected. I currently don't have X running on my N900 due some omapdrm bug, so I can't test this, sorry.
I suggest to put the resistance vs pressure thing in its own patch, that also fixes tsc200x-core and merge it to linux-next after the merge window.
-- Sebastian