Commit ac32bae0 authored by Elia Devito's avatar Elia Devito Committed by Hans de Goede
Browse files

platform/x86: intel-hid: Add alternative method to enable switches



Some convertible have unreliable VGBS return, in these cases we enable
support when receiving the first event.

Signed-off-by: default avatarElia Devito <eliadevito@gmail.com>
Link: https://lore.kernel.org/r/20201204160234.36832-1-elia@xvalue.it


Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 537b0dd4
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -435,6 +435,19 @@ static void notify_handler(acpi_handle handle, u32 event, void *context)
	struct platform_device *device = context;
	struct intel_hid_priv *priv = dev_get_drvdata(&device->dev);
	unsigned long long ev_index;
	int err;

	/*
	 * Some convertible have unreliable VGBS return which could cause incorrect
	 * SW_TABLET_MODE report, in these cases we enable support when receiving
	 * the first event instead of during driver setup.
	 */
	if (!priv->switches && (event == 0xcc || event == 0xcd)) {
		dev_info(&device->dev, "switch event received, enable switches supports\n");
		err = intel_hid_switches_setup(device);
		if (err)
			pr_err("Failed to setup Intel HID switches\n");
	}

	if (priv->wakeup_mode) {
		/*