cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig (7380B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2#
      3# Microsoft Surface Platform-Specific Drivers
      4#
      5
      6menuconfig SURFACE_PLATFORMS
      7	bool "Microsoft Surface Platform-Specific Device Drivers"
      8	depends on ARM64 || X86 || COMPILE_TEST
      9	default y
     10	help
     11	  Say Y here to get to see options for platform-specific device drivers
     12	  for Microsoft Surface devices. This option alone does not add any
     13	  kernel code.
     14
     15	  If you say N, all options in this submenu will be skipped and disabled.
     16
     17if SURFACE_PLATFORMS
     18
     19config SURFACE3_WMI
     20	tristate "Surface 3 WMI Driver"
     21	depends on ACPI_WMI
     22	depends on DMI
     23	depends on INPUT
     24	depends on SPI
     25	help
     26	  Say Y here if you have a Surface 3.
     27
     28	  To compile this driver as a module, choose M here: the module will
     29	  be called surface3-wmi.
     30
     31config SURFACE_3_POWER_OPREGION
     32	tristate "Surface 3 battery platform operation region support"
     33	depends on ACPI
     34	depends on I2C
     35	help
     36	  This driver provides support for ACPI operation
     37	  region of the Surface 3 battery platform driver.
     38
     39config SURFACE_ACPI_NOTIFY
     40	tristate "Surface ACPI Notify Driver"
     41	depends on SURFACE_AGGREGATOR
     42	help
     43	  Surface ACPI Notify (SAN) driver for Microsoft Surface devices.
     44
     45	  This driver provides support for the ACPI interface (called SAN) of
     46	  the Surface System Aggregator Module (SSAM) EC. This interface is used
     47	  on 5th- and 6th-generation Microsoft Surface devices (including
     48	  Surface Pro 5 and 6, Surface Book 2, Surface Laptops 1 and 2, and in
     49	  reduced functionality on the Surface Laptop 3) to execute SSAM
     50	  requests directly from ACPI code, as well as receive SSAM events and
     51	  turn them into ACPI notifications. It essentially acts as a
     52	  translation layer between the SSAM controller and ACPI.
     53
     54	  Specifically, this driver may be needed for battery status reporting,
     55	  thermal sensor access, and real-time clock information, depending on
     56	  the Surface device in question.
     57
     58config SURFACE_AGGREGATOR_CDEV
     59	tristate "Surface System Aggregator Module User-Space Interface"
     60	depends on SURFACE_AGGREGATOR
     61	help
     62	  Provides a misc-device interface to the Surface System Aggregator
     63	  Module (SSAM) controller.
     64
     65	  This option provides a module (called surface_aggregator_cdev), that,
     66	  when loaded, will add a client device (and its respective driver) to
     67	  the SSAM controller. Said client device manages a misc-device
     68	  interface (/dev/surface/aggregator), which can be used by user-space
     69	  tools to directly communicate with the SSAM EC by sending requests and
     70	  receiving the corresponding responses.
     71
     72	  The provided interface is intended for debugging and development only,
     73	  and should not be used otherwise.
     74
     75config SURFACE_AGGREGATOR_REGISTRY
     76	tristate "Surface System Aggregator Module Device Registry"
     77	depends on SURFACE_AGGREGATOR
     78	depends on SURFACE_AGGREGATOR_BUS
     79	help
     80	  Device-registry and device-hubs for Surface System Aggregator Module
     81	  (SSAM) devices.
     82
     83	  Provides a module and driver which act as a device-registry for SSAM
     84	  client devices that cannot be detected automatically, e.g. via ACPI.
     85	  Such devices are instead provided via this registry and attached via
     86	  device hubs, also provided in this module.
     87
     88	  Devices provided via this registry are:
     89	  - Platform profile (performance-/cooling-mode) device (5th- and later
     90	    generations).
     91	  - Battery/AC devices (7th-generation).
     92	  - HID input devices (7th-generation).
     93
     94	  Select M (recommended) or Y here if you want support for the above
     95	  mentioned devices on the corresponding Surface models. Without this
     96	  module, the respective devices will not be instantiated and thus any
     97	  functionality provided by them will be missing, even when drivers for
     98	  these devices are present. In other words, this module only provides
     99	  the respective client devices. Drivers for these devices still need to
    100	  be selected via the other options.
    101
    102config SURFACE_DTX
    103	tristate "Surface DTX (Detachment System) Driver"
    104	depends on SURFACE_AGGREGATOR
    105	depends on INPUT
    106	help
    107	  Driver for the Surface Book clipboard detachment system (DTX).
    108
    109	  On the Surface Book series devices, the display part containing the
    110	  CPU (called the clipboard) can be detached from the base (containing a
    111	  battery, the keyboard, and, optionally, a discrete GPU) by (if
    112	  necessary) unlocking and opening the latch connecting both parts.
    113
    114	  This driver provides a user-space interface that can influence the
    115	  behavior of this process, which includes the option to abort it in
    116	  case the base is still in use or speed it up in case it is not.
    117
    118	  Note that this module can be built without support for the Surface
    119	  Aggregator Bus (i.e. CONFIG_SURFACE_AGGREGATOR_BUS=n). In that case,
    120	  some devices, specifically the Surface Book 3, will not be supported.
    121
    122config SURFACE_GPE
    123	tristate "Surface GPE/Lid Support Driver"
    124	depends on ACPI
    125	depends on DMI
    126	help
    127	  This driver marks the GPEs related to the ACPI lid device found on
    128	  Microsoft Surface devices as wakeup sources and prepares them
    129	  accordingly. It is required on those devices to allow wake-ups from
    130	  suspend by opening the lid.
    131
    132config SURFACE_HOTPLUG
    133	tristate "Surface Hot-Plug Driver"
    134	depends on ACPI
    135	depends on GPIOLIB
    136	help
    137	  Driver for out-of-band hot-plug event signaling on Microsoft Surface
    138	  devices with hot-pluggable PCIe cards.
    139
    140	  This driver is used on Surface Book (2 and 3) devices with a
    141	  hot-pluggable discrete GPU (dGPU). When not in use, the dGPU on those
    142	  devices can enter D3cold, which prevents in-band (standard) PCIe
    143	  hot-plug signaling. Thus, without this driver, detaching the base
    144	  containing the dGPU will not correctly update the state of the
    145	  corresponding PCIe device if it is in D3cold. This driver adds support
    146	  for out-of-band hot-plug notifications, ensuring that the device state
    147	  is properly updated even when the device in question is in D3cold.
    148
    149	  Select M or Y here, if you want to (fully) support hot-plugging of
    150	  dGPU devices on the Surface Book 2 and/or 3 during D3cold.
    151
    152config SURFACE_PLATFORM_PROFILE
    153	tristate "Surface Platform Profile Driver"
    154	depends on ACPI
    155	depends on SURFACE_AGGREGATOR_REGISTRY
    156	select ACPI_PLATFORM_PROFILE
    157	help
    158	  Provides support for the ACPI platform profile on 5th- and later
    159	  generation Microsoft Surface devices.
    160
    161	  More specifically, this driver provides ACPI platform profile support
    162	  on Microsoft Surface devices with a Surface System Aggregator Module
    163	  (SSAM) connected via the Surface Serial Hub (SSH / SAM-over-SSH). In
    164	  other words, this driver provides platform profile support on the
    165	  Surface Pro 5, Surface Book 2, Surface Laptop, Surface Laptop Go and
    166	  later. On those devices, the platform profile can significantly
    167	  influence cooling behavior, e.g. setting it to 'quiet' (default) or
    168	  'low-power' can significantly limit performance of the discrete GPU on
    169	  Surface Books, while in turn leading to lower power consumption and/or
    170	  less fan noise.
    171
    172	  Select M or Y here, if you want to include ACPI platform profile
    173	  support on the above mentioned devices.
    174
    175config SURFACE_PRO3_BUTTON
    176	tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3/4 tablet"
    177	depends on ACPI
    178	depends on INPUT
    179	help
    180	  This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3/4 tablet.
    181
    182source "drivers/platform/surface/aggregator/Kconfig"
    183
    184endif # SURFACE_PLATFORMS