Add option to force enable/disable switches support. Signed-off-by: Elia Devito <eliadevito@xxxxxxxxx> --- drivers/platform/x86/intel-hid.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/platform/x86/intel-hid.c b/drivers/platform/x86/intel-hid.c index 5093c57102cf..54f5cbfd2189 100644 --- a/drivers/platform/x86/intel-hid.c +++ b/drivers/platform/x86/intel-hid.c @@ -147,6 +147,10 @@ static const char *intel_hid_dsm_fn_to_method[INTEL_HID_DSM_FN_MAX] = { static unsigned long long intel_hid_dsm_fn_mask; static guid_t intel_dsm_guid; +static int tablet_mode_switch = -1; + +module_param(tablet_mode_switch, int, 0444); +MODULE_PARM_DESC(tablet_mode_switch, "Enable/Disable tablet mode switch (0:disable, 1:enable)"); static bool intel_hid_execute_method(acpi_handle handle, enum intel_hid_dsm_fn_codes fn_index, @@ -507,9 +511,14 @@ static bool intel_button_array_has_switches(struct platform_device *device) acpi_handle handle = ACPI_HANDLE(&device->dev); unsigned long long vgbs; - if (!dmi_check_system(button_array_switches_table)) + if (tablet_mode_switch == 0) return false; + if (tablet_mode_switch != 1) { + if (!dmi_check_system(button_array_switches_table)) + return false; + } + if (!intel_hid_evaluate_method(handle, INTEL_HID_DSM_VGBS_FN, &vgbs)) return false; -- 2.28.0