Input: atkbd - make dmi callback functions return 1
Subsystems (2)
PATCH 1/2 Input: atkbd - make dmi callback functions return 1
We only care about if there is a successful match from the table (or no match at all), we can make dmi_check_system return immediately if we have a successful match instead of iterate thorough the whole table.
Make the dmi callback function return 1 then dmi_check_system will return immediately if we have a successful match.
--- drivers/input/keyboard/atkbd.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/input/keyboard/atkbd.c +2 -2
@@ -1578,14 +1578,14 @@ static int __init atkbd_setup_forced_release(const struct dmi_system_id *id) atkbd_platform_fixup = atkbd_apply_forced_release_keylist; atkbd_platform_fixup_data = id->driver_data; -return 0 ; +return 1 ; }static int __init atkbd_setup_scancode_fixup (const struct dmi_system_id *id) { atkbd_platform_scancode_fixup = id->driver_data; -return 0 ; +return 1 ; }static const struct dmi_system_id atkbd_dmi_quirk_table[]__initconst = {
Signature · 1 line
1.7.4.1
PATCH 2/2 Input: lifebook - make dmi callback functions return 1
We only care about if there is any successful match from the table (or no match at all), we can make dmi_check_system return immediately if we have a successful match instead of iterate thorough the whole table.
Make the dmi callback function return 1 then dmi_check_system will return immediately if we have a successful match.
I think current implementation already assumes there is exactly one match or no match at all. If there are multiple successful matches then it is a bug, because new matches will override some variables such as lifebook_use_6byte_proto and desired_serio_phys.
--- drivers/input/mouse/lifebook.c | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-)
drivers/input/mouse/lifebook.c +15 -2
@@ -30,10 +30,15 @@ static bool lifebook_present;static const char *desired_serio_phys; +static int lifebook_found (const struct dmi_system_id *d) +{ +return 1 ; +} +static int lifebook_limit_serio3 (const struct dmi_system_id *d) { desired_serio_phys ="isa0060/serio3" ; -return 0 ; +return 1 ; }static bool lifebook_use_6byte_proto;
@@ -41,7 +46,7 @@ static bool lifebook_use_6byte_proto;static int lifebook_set_6byte_proto (const struct dmi_system_id *d) { lifebook_use_6byte_proto = true; -return 0 ; +return 1 ; }static const struct dmi_system_id __initconst lifebook_dmi_table[] = {
@@ -50,42 +55,49 @@ static const struct dmi_system_id __initconst lifebook_dmi_table[] = { .matches = { DMI_MATCH(DMI_PRODUCT_NAME, "FLORA-ie 55mi"), }, + .callback = lifebook_found, }, {/* LifeBook B */ .matches = { DMI_MATCH(DMI_PRODUCT_NAME, "Lifebook B Series"), }, + .callback = lifebook_found, }, {/* LifeBook B */ .matches = { DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B Series"), }, + .callback = lifebook_found, }, {/* Lifebook B */ .matches = { DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK B Series"), }, + .callback = lifebook_found, }, {/* Lifebook B-2130 */ .matches = { DMI_MATCH(DMI_BOARD_NAME, "ZEPHYR"), }, + .callback = lifebook_found, }, {/* Lifebook B213x/B2150 */ .matches = { DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B2131/B2133/B2150"), }, + .callback = lifebook_found, }, {/* Zephyr */ .matches = { DMI_MATCH(DMI_PRODUCT_NAME, "ZEPHYR"), }, + .callback = lifebook_found, }, {/* Panasonic CF-18 */
@@ -122,6 +134,7 @@ static const struct dmi_system_id __initconst lifebook_dmi_table[] = { .matches = { DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"), }, + .callback = lifebook_found, }, { } };
Signature · 1 line
1.7.4.1