Disable switches on Dell Latitute 7410 2in1 due firmware bug Signed-off-by: Elia Devito <eliadevito@xxxxxxxxx> --- maybe Mario Limonciello can help on this drivers/platform/x86/intel-hid.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/platform/x86/intel-hid.c b/drivers/platform/x86/intel-hid.c index 54f5cbfd2189..dc82415abd24 100644 --- a/drivers/platform/x86/intel-hid.c +++ b/drivers/platform/x86/intel-hid.c @@ -105,6 +105,22 @@ static const struct dmi_system_id button_array_switches_table[] = { { } }; +static const struct dmi_system_id button_array_switches_disable[] = { + { + /* + * Dell Latitute 7410 2in1 emit wrong event and VGBS method return wrong + * value when booted with AC adapter plugged-in, disable switches to + * prevent wrong beaviour. + */ + .ident = "Dell Latitute 7410 2in1", + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Latitude 7410"), + }, + }, + { } +}; + #define KEYMAP_LEN \ (ARRAY_SIZE(intel_array_keymap) + ARRAY_SIZE(intel_array_switches) + 1) @@ -515,7 +531,8 @@ static bool intel_button_array_has_switches(struct platform_device *device) return false; if (tablet_mode_switch != 1) { - if (!dmi_check_system(button_array_switches_table)) + if (!dmi_check_system(button_array_switches_table) || + dmi_check_system(button_array_switches_disable)) return false; } -- 2.28.0