From b4be50c9ca3651e4124cde57f227203b47399eab Mon Sep 17 00:00:00 2001 From: Hung-Te Lin Date: Mon, 10 Sep 2018 10:55:49 +0800 Subject: acpi: Call acpi_gen_writeSTA by status from device tree The device tree now supports 'hidden' and the status can be found in `struct device.hidden`. A new acpi_device_status() will return the expected setting of STA from a `struct device`. BUG=b:72200466 BRANCH=eve TEST=Builds and boots properly on device eve Change-Id: I6dc62aff63cc3cb950739398a4dcac21836c9766 Signed-off-by: Hung-Te Lin Reviewed-on: https://review.coreboot.org/28567 Reviewed-by: Duncan Laurie Reviewed-by: Furquan Shaikh Tested-by: build bot (Jenkins) --- src/arch/x86/acpi_device.c | 9 +++++++++ src/arch/x86/include/arch/acpi_device.h | 1 + 2 files changed, 10 insertions(+) (limited to 'src/arch') diff --git a/src/arch/x86/acpi_device.c b/src/arch/x86/acpi_device.c index a5984da1d7..48b7fee26c 100644 --- a/src/arch/x86/acpi_device.c +++ b/src/arch/x86/acpi_device.c @@ -166,6 +166,15 @@ const char *acpi_device_path_join(struct device *dev, const char *name) return buf; } +int acpi_device_status(const struct device *dev) +{ + if (!dev->enabled) + return ACPI_STATUS_DEVICE_ALL_OFF; + if (dev->hidden) + return ACPI_STATUS_DEVICE_HIDDEN_ON; + return ACPI_STATUS_DEVICE_ALL_ON; +} + /* ACPI 6.1 section 6.4.3.6: Extended Interrupt Descriptor */ void acpi_device_write_interrupt(const struct acpi_irq *irq) { diff --git a/src/arch/x86/include/arch/acpi_device.h b/src/arch/x86/include/arch/acpi_device.h index 31b97bc09f..2711af5a60 100644 --- a/src/arch/x86/include/arch/acpi_device.h +++ b/src/arch/x86/include/arch/acpi_device.h @@ -66,6 +66,7 @@ const char *acpi_device_name(struct device *dev); const char *acpi_device_path(struct device *dev); const char *acpi_device_scope(struct device *dev); const char *acpi_device_path_join(struct device *dev, const char *name); +int acpi_device_status(const struct device *dev); /* * ACPI Descriptor for extended Interrupt() -- cgit v1.2.3