mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
3.1 KiB
68 lines
3.1 KiB
# SPDX-License-Identifier: GPL-2.0+ |
|
# Copyright (C) 2019-2020 Maximilian Luz <[email protected]> |
|
|
|
menuconfig SURFACE_AGGREGATOR |
|
tristate "Microsoft Surface System Aggregator Module Subsystem and Drivers" |
|
depends on SERIAL_DEV_BUS |
|
select CRC_CCITT |
|
help |
|
The Surface System Aggregator Module (Surface SAM or SSAM) is an |
|
embedded controller (EC) found on 5th- and later-generation Microsoft |
|
Surface devices (i.e. Surface Pro 5, Surface Book 2, Surface Laptop, |
|
and newer, with exception of Surface Go series devices). |
|
|
|
Depending on the device in question, this EC provides varying |
|
functionality, including: |
|
- EC access from ACPI via Surface ACPI Notify (5th- and 6th-generation) |
|
- battery status information (all devices) |
|
- thermal sensor access (all devices) |
|
- performance mode / cooling mode control (all devices) |
|
- clipboard detachment system control (Surface Book 2 and 3) |
|
- HID / keyboard input (Surface Laptops, Surface Book 3) |
|
|
|
This option controls whether the Surface SAM subsystem core will be |
|
built. This includes a driver for the Surface Serial Hub (SSH), which |
|
is the device responsible for the communication with the EC, and a |
|
basic kernel interface exposing the EC functionality to other client |
|
drivers, i.e. allowing them to make requests to the EC and receive |
|
events from it. Selecting this option alone will not provide any |
|
client drivers and therefore no functionality beyond the in-kernel |
|
interface. Said functionality is the responsibility of the respective |
|
client drivers. |
|
|
|
Note: While 4th-generation Surface devices also make use of a SAM EC, |
|
due to a difference in the communication interface of the controller, |
|
only 5th and later generations are currently supported. Specifically, |
|
devices using SAM-over-SSH are supported, whereas devices using |
|
SAM-over-HID, which is used on the 4th generation, are currently not |
|
supported. |
|
|
|
Choose m if you want to build the SAM subsystem core and SSH driver as |
|
module, y if you want to build it into the kernel and n if you don't |
|
want it at all. |
|
|
|
config SURFACE_AGGREGATOR_BUS |
|
bool "Surface System Aggregator Module Bus" |
|
depends on SURFACE_AGGREGATOR |
|
default y |
|
help |
|
Expands the Surface System Aggregator Module (SSAM) core driver by |
|
providing a dedicated bus and client-device type. |
|
|
|
This bus and device type are intended to provide and simplify support |
|
for non-platform and non-ACPI SSAM devices, i.e. SSAM devices that are |
|
not auto-detectable via the conventional means (e.g. ACPI). |
|
|
|
config SURFACE_AGGREGATOR_ERROR_INJECTION |
|
bool "Surface System Aggregator Module Error Injection Capabilities" |
|
depends on SURFACE_AGGREGATOR |
|
depends on FUNCTION_ERROR_INJECTION |
|
help |
|
Provides error-injection capabilities for the Surface System |
|
Aggregator Module subsystem and Surface Serial Hub driver. |
|
|
|
Specifically, exports error injection hooks to be used with the |
|
kernel's function error injection capabilities to simulate underlying |
|
transport and communication problems, such as invalid data sent to or |
|
received from the EC, dropped data, and communication timeouts. |
|
Intended for development and debugging.
|
|
|