ACPI: Define acpi_get_preferred_pm_profile()
Change-Id: I2e7f22ccccc6c0df8e7e9f354c50893a53a41714 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/42140 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
parent
4a3f67a9f2
commit
e0d38680d4
|
@ -1251,14 +1251,7 @@ void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
|
||||||
/* should be 0 ACPI 3.0 */
|
/* should be 0 ACPI 3.0 */
|
||||||
fadt->reserved = 0;
|
fadt->reserved = 0;
|
||||||
|
|
||||||
if (CONFIG(SYSTEM_TYPE_CONVERTIBLE) ||
|
fadt->preferred_pm_profile = acpi_get_preferred_pm_profile();
|
||||||
CONFIG(SYSTEM_TYPE_LAPTOP))
|
|
||||||
fadt->preferred_pm_profile = PM_MOBILE;
|
|
||||||
else if (CONFIG(SYSTEM_TYPE_DETACHABLE) ||
|
|
||||||
CONFIG(SYSTEM_TYPE_TABLET))
|
|
||||||
fadt->preferred_pm_profile = PM_TABLET;
|
|
||||||
else
|
|
||||||
fadt->preferred_pm_profile = PM_DESKTOP;
|
|
||||||
|
|
||||||
arch_fill_fadt(fadt);
|
arch_fill_fadt(fadt);
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include <acpi/acpi.h>
|
#include <acpi/acpi.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <romstage_handoff.h>
|
#include <romstage_handoff.h>
|
||||||
|
#include <smbios.h>
|
||||||
|
|
||||||
/* This is filled with acpi_handoff_wakeup_s3() call early in ramstage. */
|
/* This is filled with acpi_handoff_wakeup_s3() call early in ramstage. */
|
||||||
static int acpi_slp_type = -1;
|
static int acpi_slp_type = -1;
|
||||||
|
@ -29,3 +30,21 @@ int acpi_handoff_wakeup_s3(void)
|
||||||
void __weak mainboard_suspend_resume(void)
|
void __weak mainboard_suspend_resume(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Default mapping to ACPI FADT preferred_pm_profile field. */
|
||||||
|
uint8_t acpi_get_preferred_pm_profile(void)
|
||||||
|
{
|
||||||
|
switch (smbios_mainboard_enclosure_type()) {
|
||||||
|
case SMBIOS_ENCLOSURE_LAPTOP:
|
||||||
|
case SMBIOS_ENCLOSURE_CONVERTIBLE:
|
||||||
|
return PM_MOBILE;
|
||||||
|
case SMBIOS_ENCLOSURE_DETACHABLE:
|
||||||
|
case SMBIOS_ENCLOSURE_TABLET:
|
||||||
|
return PM_TABLET;
|
||||||
|
case SMBIOS_ENCLOSURE_DESKTOP:
|
||||||
|
return PM_DESKTOP;
|
||||||
|
case SMBIOS_ENCLOSURE_UNKNOWN:
|
||||||
|
default:
|
||||||
|
return PM_UNSPECIFIED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1045,6 +1045,8 @@ static inline int acpi_sleep_from_pm1(uint32_t pm1_cnt)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
uint8_t acpi_get_preferred_pm_profile(void);
|
||||||
|
|
||||||
/* Returns ACPI_Sx values. */
|
/* Returns ACPI_Sx values. */
|
||||||
int acpi_get_sleep_type(void);
|
int acpi_get_sleep_type(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue