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>
This commit is contained in:
Duncan Laurie 2019-02-01 11:33:57 -08:00 committed by Duncan Laurie
parent dff29e0c65
commit 8312df4173
2 changed files with 22 additions and 3 deletions

View File

@ -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

View File

@ -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;