Re: [PATCH 1/2] acpi: Add acpi_init_properties to ACPI driver code
From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2021-07-24 10:51:30
Also in:
lkml, platform-driver-x86
On Fri, Jul 23, 2021 at 10:25 PM Michael Bottini [off-list ref] wrote:
Some products in the field, like Intel Rocket Lake systems, contain AML code that can modify _DSD properties after they have been evaluated by ACPI init code.
That is directly against the spec.
Therefore, there is a need for drivers to be able to reevaluate _DSDs so that the updated property values can be read. Export acpi_init_properties() for this purpose.
I'm not sure. By the spec, the OS need not evaluate _DSD for a given device more than once.
quoted hunk ↗ jump to hunk
Signed-off-by: Michael Bottini <redacted> --- drivers/acpi/property.c | 1 + include/linux/acpi.h | 6 ++++++ 2 files changed, 7 insertions(+)diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c index e312ebaed8db..2c1f8cf1a8f0 100644 --- a/drivers/acpi/property.c +++ b/drivers/acpi/property.c@@ -432,6 +432,7 @@ void acpi_init_properties(struct acpi_device *adev) if (!adev->data.pointer) acpi_extract_apple_properties(adev); } +EXPORT_SYMBOL(acpi_init_properties);
EXPORT_SyMBOL_GPL(), please.
quoted hunk ↗ jump to hunk
static void acpi_destroy_nondev_subnodes(struct list_head *list) {diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 72e4f7fd268c..57defc3bc9b9 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h@@ -716,6 +716,8 @@ static inline u64 acpi_arch_get_root_pointer(void) int acpi_get_local_address(acpi_handle handle, u32 *addr); +void acpi_init_properties(struct acpi_device *adev); + #else /* !CONFIG_ACPI */ #define acpi_disabled 1@@ -976,6 +978,10 @@ static inline int acpi_get_local_address(acpi_handle handle, u32 *addr) return -ENODEV; } +static inline void acpi_init_properties(struct acpi_device *adev) +{ +} + #endif /* !CONFIG_ACPI */ #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC --2.25.1