2020-10-09 22:11:24 +08:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
#
|
|
|
|
# Microsoft Surface Platform-Specific Drivers
|
|
|
|
#
|
|
|
|
|
|
|
|
menuconfig SURFACE_PLATFORMS
|
|
|
|
bool "Microsoft Surface Platform-Specific Device Drivers"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Say Y here to get to see options for platform-specific device drivers
|
|
|
|
for Microsoft Surface devices. This option alone does not add any
|
|
|
|
kernel code.
|
|
|
|
|
|
|
|
If you say N, all options in this submenu will be skipped and disabled.
|
2020-10-09 22:11:25 +08:00
|
|
|
|
|
|
|
if SURFACE_PLATFORMS
|
|
|
|
|
|
|
|
config SURFACE3_WMI
|
|
|
|
tristate "Surface 3 WMI Driver"
|
|
|
|
depends on ACPI_WMI
|
|
|
|
depends on DMI
|
|
|
|
depends on INPUT
|
|
|
|
depends on SPI
|
|
|
|
help
|
|
|
|
Say Y here if you have a Surface 3.
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
|
|
be called surface3-wmi.
|
|
|
|
|
2020-10-09 22:11:26 +08:00
|
|
|
config SURFACE_3_BUTTON
|
|
|
|
tristate "Power/home/volume buttons driver for Microsoft Surface 3 tablet"
|
|
|
|
depends on ACPI && KEYBOARD_GPIO && I2C
|
|
|
|
help
|
|
|
|
This driver handles the power/home/volume buttons on the Microsoft Surface 3 tablet.
|
|
|
|
|
2020-10-09 22:11:27 +08:00
|
|
|
config SURFACE_3_POWER_OPREGION
|
|
|
|
tristate "Surface 3 battery platform operation region support"
|
|
|
|
depends on ACPI && I2C
|
|
|
|
help
|
|
|
|
This driver provides support for ACPI operation
|
|
|
|
region of the Surface 3 battery platform driver.
|
|
|
|
|
platform/surface: Add Driver to set up lid GPEs on MS Surface device
Conventionally, wake-up events for a specific device, in our case the
lid device, are managed via the ACPI _PRW field. While this does not
seem strictly necessary based on ACPI spec, the kernel disables GPE
wakeups to avoid non-wakeup interrupts preventing suspend by default and
only enables GPEs associated via the _PRW field with a wake-up capable
device. This behavior has been introduced in commit f941d3e41da7 ("ACPI:
EC / PM: Disable non-wakeup GPEs for suspend-to-idle") and is described
in more detail in its commit message.
Unfortunately, on MS Surface devices, there is no _PRW field present on
the lid device, thus no GPE is associated with it, and therefore the GPE
responsible for sending the status-change notification to the lid gets
disabled during suspend, making it impossible to wake the device via the
lid.
This patch introduces a pseudo-device and respective driver which, based
on some DMI matching, marks the corresponding GPE of the lid device for
wake and enables it during suspend. The behavior of this driver models
the behavior of the ACPI/PM core for normal wakeup GPEs, properly
declared via the _PRW field.
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
Link: https://lore.kernel.org/r/20201028105427.1593764-1-luzmaximilian@gmail.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2020-10-28 18:54:27 +08:00
|
|
|
config SURFACE_GPE
|
|
|
|
tristate "Surface GPE/Lid Support Driver"
|
|
|
|
depends on ACPI
|
|
|
|
depends on DMI
|
|
|
|
help
|
|
|
|
This driver marks the GPEs related to the ACPI lid device found on
|
|
|
|
Microsoft Surface devices as wakeup sources and prepares them
|
|
|
|
accordingly. It is required on those devices to allow wake-ups from
|
|
|
|
suspend by opening the lid.
|
|
|
|
|
2020-10-09 22:11:28 +08:00
|
|
|
config SURFACE_PRO3_BUTTON
|
|
|
|
tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3/4 tablet"
|
|
|
|
depends on ACPI && INPUT
|
|
|
|
help
|
|
|
|
This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3/4 tablet.
|
|
|
|
|
2020-10-09 22:11:25 +08:00
|
|
|
endif # SURFACE_PLATFORMS
|