platform/x86: intel-hid: Do not create SW_TABLET_MODE input-dev when a KIOX010A ACPI...
authorHans de Goede <hdegoede@redhat.com>
Mon, 7 Dec 2020 16:51:29 +0000 (17:51 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 7 Dec 2020 16:52:03 +0000 (17:52 +0100)
commitdea5b80a043f6cd6ad341d9957a43e363366630e
tree306dc1a169e11afc003b9cd13684e641877aca39
parentac32bae0008340d87328a74d7598333bf48348c7
platform/x86: intel-hid: Do not create SW_TABLET_MODE input-dev when a KIOX010A ACPI dev is present

Some 360 degree hinges (yoga) style 2-in-1 devices use 2 accelerometers
to allow the OS to determine the angle between the display and the base
of the device. On Windows these are read by a special HingeAngleService
process which calls an ACPI DSM (Device Specific Method) on the
ACPI KIOX010A device node for the sensor in the display, to let the
firmware know if the 2-in-1 is in tablet- or laptop-mode so that it can
disable the kbd and touchpad to avoid spurious input in tablet-mode.

The linux kxcjk1013 driver calls the DSM for this once at probe time
to ensure that the builtin kbd and touchpad work. On some devices this
causes a "spurious" 0xcd event on the intel-hid ACPI dev. In this case
there is not a functional tablet-mode switch, so we should not register
the tablet-mode switch device.

Cc: Elia Devito <eliadevito@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20201207165129.396298-1-hdegoede@redhat.com
drivers/platform/x86/intel-hid.c