Input: i8042 - merge quirk tables
authorWerner Sembach <wse@tuxedocomputers.com>
Thu, 30 Jun 2022 00:38:07 +0000 (17:38 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 30 Jun 2022 00:41:06 +0000 (17:41 -0700)
commitff946268a0813c35b790dfbe07c3bfaa7bfb869c
treeb602eb96a76832b20efe1b552ee61b910b19a481
parent95a9916c909f0b1d95e24b4232b4bc38ff755415
Input: i8042 - merge quirk tables

Merge i8042 quirk tables to reduce code duplication for devices that need
more than one quirk. Before every quirk had its own table with devices
needing that quirk. If a new quirk needed to be added a new table had to
be created. When a device needed multiple quirks, it appeared in multiple
tables. Now only one table called i8042_dmi_quirk_table exists. In it every
device has one entry and required quirks are coded in the .driver_data
field of the struct dmi_system_id used by this table. Multiple quirks for
one device can be applied by bitwise-or of the new SERIO_QUIRK_* defines.

Also align quirkable options with command line parameters and make vendor
wide quirks per device overwriteable on a per device basis. The first match
is honored while following matches are ignored. So when a vendor wide quirk
is defined in the table, a device can inserted before and therefore
ignoring the vendor wide define.

Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220629112725.12922-3-wse@tuxedocomputers.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/serio/i8042-x86ia64io.h