This series adds support for power and volume buttons on 5th and 6th generation Microsoft Surface devices. Specifically, it adds support for the power-button on the Surface Laptop 1 and Laptop 2, as well as support for power- and (on-device) volume-buttons on the Surface Pro 5 (2017), Pro 6, and Book 2. These devices use the same MSHW0040 device as on the Surface Pro 4, however, whereas the Pro 4 uses an ACPI notify handler, the newer devices use GPIO interrupts to signal these events. The first patch of this series ensures that the surfacepro3_button driver, used for MSHW0040 on the Pro 4, does not probe for the newer devices. The second patch adapts soc_button_array to implement the actual button support. Changes in v3: - [PATCH 1/2] platform/x86: surfacepro3_button: Fix device check - Changed subject line to fit conventions. - Added comments to clarify ACPI/DSM specific behavior. - Change return type of introduced device check function to bool. - [PATCH 1/2] Input: soc_button_array - Add support for newer surface devices - Changed subject line to fit conventions. - Explicitly require CONFIG_ACPI via Kconfig instead of guarding with #ifdef CONFIG_ACPI in code. - Add supported Surface devices to module description in Kconfig. - Allow -EPROBE_DEFER and other errors to be propagated from gpiod_get. - Fix deferral process in case GPIO subsystem is not initialized. Changes in v2: - [PATCH 1/2] platform: Fix device check for surfacepro3_button No changes. - [PATCH 2/2] input: soc_button_array for newer surface devices Ensure the patch compiles without CONFIG_ACPI. Maximilian Luz (2): platform/x86: surfacepro3_button: Fix device check Input: soc_button_array - Add support for newer surface devices drivers/input/misc/Kconfig | 6 +- drivers/input/misc/soc_button_array.c | 141 ++++++++++++++++++++-- drivers/platform/x86/surfacepro3_button.c | 47 ++++++++ 3 files changed, 178 insertions(+), 16 deletions(-) -- 2.22.0