diff options
author | Duncan Laurie <dlaurie@google.com> | 2019-02-01 11:33:57 -0800 |
---|---|---|
committer | Duncan Laurie <dlaurie@chromium.org> | 2019-02-05 16:03:29 +0000 |
commit | 8312df41731dafa64cbe8b30e89e3dfe87422d53 (patch) | |
tree | 5f1910353c75fda57998fc1cedf087cf2c131de2 | |
parent | dff29e0c65462258776b8fb821516faad3ec1394 (diff) |
Kconfig: Add system type entries for common enclosures
These are more common system types and in some cases it is important
to know when a device is a convertible or a tablet or detachable
instead of just a laptop.
This change will select the appropriate SMBIOS enclosure type based
on the selected system type.
This is important for the Intel Virtual Button driver as it does a
check on the SMBIOS enclosure type and only enables the tablet mode
events if it is set to convertible:
https://patchwork.kernel.org/patch/10236253/
Change-Id: I148ec2329a1dd38ad55c60ba277a514c66376fcc
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/c/31206
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rw-r--r-- | src/Kconfig | 20 | ||||
-rw-r--r-- | src/arch/x86/acpi.c | 5 |
2 files changed, 22 insertions, 3 deletions
diff --git a/src/Kconfig b/src/Kconfig index a069f63e4e..e527751519 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -335,6 +335,18 @@ config SYSTEM_TYPE_LAPTOP default n bool +config SYSTEM_TYPE_TABLET + default n + bool + +config SYSTEM_TYPE_DETACHABLE + default n + bool + +config SYSTEM_TYPE_CONVERTIBLE + default n + bool + config CBFS_AUTOGEN_ATTRIBUTES default n bool @@ -654,11 +666,15 @@ config SMBIOS_ENCLOSURE_TYPE hex depends on GENERATE_SMBIOS_TABLES default 0x09 if SYSTEM_TYPE_LAPTOP + default 0x1e if SYSTEM_TYPE_TABLET + default 0x1f if SYSTEM_TYPE_CONVERTIBLE + default 0x20 if SYSTEM_TYPE_DETACHABLE default 0x03 help System Enclosure or Chassis Types as defined in SMBIOS specification. - The default value is SMBIOS_ENCLOSURE_DESKTOP (0x03) or - SMBIOS_ENCLOSURE_LAPTOP (0x09) if SYSTEM_TYPE_LAPTOP is set. + The default value is SMBIOS_ENCLOSURE_DESKTOP (0x03) but laptop, + convertible, or tablet enclosure will be used if the appropriate + system type is selected. endmenu diff --git a/src/arch/x86/acpi.c b/src/arch/x86/acpi.c index 3b33f1ba7f..a89b871f5d 100644 --- a/src/arch/x86/acpi.c +++ b/src/arch/x86/acpi.c @@ -1066,7 +1066,10 @@ void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt) fadt->x_dsdt_l = (unsigned long)dsdt; fadt->x_dsdt_h = 0; - if (IS_ENABLED(CONFIG_SYSTEM_TYPE_LAPTOP)) + if (IS_ENABLED(CONFIG_SYSTEM_TYPE_CONVERTIBLE) || + IS_ENABLED(CONFIG_SYSTEM_TYPE_DETACHABLE) || + IS_ENABLED(CONFIG_SYSTEM_TYPE_LAPTOP) || + IS_ENABLED(CONFIG_SYSTEM_TYPE_TABLET)) fadt->preferred_pm_profile = PM_MOBILE; else fadt->preferred_pm_profile = PM_DESKTOP; |