From 8312df41731dafa64cbe8b30e89e3dfe87422d53 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Fri, 1 Feb 2019 11:33:57 -0800 Subject: 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 Reviewed-on: https://review.coreboot.org/c/31206 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber Reviewed-by: Paul Menzel --- src/Kconfig | 20 ++++++++++++++++++-- src/arch/x86/acpi.c | 5 ++++- 2 files changed, 22 insertions(+), 3 deletions(-) (limited to 'src') 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; -- cgit v1.2.3