Input: silead - add support for EFI-embedded fw using different min/max coordinates
authorHans de Goede <hdegoede@redhat.com>
Mon, 13 Dec 2021 05:05:29 +0000 (21:05 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 13 Dec 2021 05:10:21 +0000 (21:10 -0800)
commit66d27d848fa6bf613bd716cb2c71769a211a6ffe
tree84fee182f6b9de96e510a0c69b6c21de4228a587
parent71f4ecd5ee8463bd47783bb0a37516aee3e0fd38
Input: silead - add support for EFI-embedded fw using different min/max coordinates

Unfortunately, at the time of writing this commit message, we have been
unable to get permission from Silead, or from device OEMs, to distribute
the necessary Silead firmware files in linux-firmware.

On a whole bunch of devices the UEFI BIOS code contains a touchscreen
driver, which contains an embedded copy of the firmware. The fw-loader
code has a "platform" fallback mechanism, which together with info on the
firmware from drivers/platform/x86/touchscreen_dmi.c will use the firmware
from the UEFI driver when the firmware is missing from /lib/firmware. This
makes the touchscreen work OOTB without users needing to manually download
the firmware.

The firmware bundled with the original Windows/Android is usually newer
then the firmware in the UEFI driver and it is better calibrated. This
better calibration can lead to significant differences in the reported
min/max coordinates.

Add support for a new (optional) "silead,efi-fw-min-max" property which
provides a set of alternative min/max values to use for the x/y axis when
the EFI embedded firmware is used.

The new property is only used on (x86) devices which do not use devicetree,
IOW it is not used in actual devicetree files. The devicetree-bindings
maintainers have requested properties like these to not be added to the
devicetree-bindings, so the new property is deliberately not added to the
existing silead devicetree-bindings documentation.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20211122220637.11386-2-hdegoede@redhat.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/silead.c