• Hans de Goede's avatar
    Input: silead - add support for EFI-embedded fw using different min/max coordinates · 66d27d84
    Hans de Goede authored
    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: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20211122220637.11386-2-hdegoede@redhat.comSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    66d27d84
silead.c 19.1 KB