summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@google.com>2019-02-01 11:33:57 -0800
committerDuncan Laurie <dlaurie@chromium.org>2019-02-05 16:03:29 +0000
commit8312df41731dafa64cbe8b30e89e3dfe87422d53 (patch)
tree5f1910353c75fda57998fc1cedf087cf2c131de2
parentdff29e0c65462258776b8fb821516faad3ec1394 (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/Kconfig20
-rw-r--r--src/arch/x86/acpi.c5
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;