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 default n
bool 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 config CBFS_AUTOGEN_ATTRIBUTES
default n default n
bool bool
@ -654,11 +666,15 @@ config SMBIOS_ENCLOSURE_TYPE
hex hex
depends on GENERATE_SMBIOS_TABLES depends on GENERATE_SMBIOS_TABLES
default 0x09 if SYSTEM_TYPE_LAPTOP 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 default 0x03
help help
System Enclosure or Chassis Types as defined in SMBIOS specification. System Enclosure or Chassis Types as defined in SMBIOS specification.
The default value is SMBIOS_ENCLOSURE_DESKTOP (0x03) or The default value is SMBIOS_ENCLOSURE_DESKTOP (0x03) but laptop,
SMBIOS_ENCLOSURE_LAPTOP (0x09) if SYSTEM_TYPE_LAPTOP is set. convertible, or tablet enclosure will be used if the appropriate
system type is selected.
endmenu 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_l = (unsigned long)dsdt;
fadt->x_dsdt_h = 0; 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; fadt->preferred_pm_profile = PM_MOBILE;
else else
fadt->preferred_pm_profile = PM_DESKTOP; fadt->preferred_pm_profile = PM_DESKTOP;