[net-next PATCH v7 10/16] ACPI: utils: Introduce acpi_get_local_address()
Andy Shevchenko
andy.shevchenko at gmail.com
Thu Mar 11 12:10:53 GMT 2021
On Thu, Mar 11, 2021 at 8:22 AM Calvin Johnson
<calvin.johnson at oss.nxp.com> wrote:
>
> Introduce a wrapper around the _ADR evaluation.
Reviewed-by: Andy Shevchenko <andy.shevchenko at gmail.com>
> Signed-off-by: Calvin Johnson <calvin.johnson at oss.nxp.com>
> ---
>
> Changes in v7: None
> Changes in v6: None
> Changes in v5:
> - Replace fwnode_get_id() with acpi_get_local_address()
>
> Changes in v4:
> - Improve code structure to handle all cases
>
> Changes in v3:
> - Modified to retrieve reg property value for ACPI as well
> - Resolved compilation issue with CONFIG_ACPI = n
> - Added more info into documentation
>
> Changes in v2: None
>
> drivers/acpi/utils.c | 14 ++++++++++++++
> include/linux/acpi.h | 7 +++++++
> 2 files changed, 21 insertions(+)
>
> diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> index 682edd913b3b..41fe380a09a7 100644
> --- a/drivers/acpi/utils.c
> +++ b/drivers/acpi/utils.c
> @@ -277,6 +277,20 @@ acpi_evaluate_integer(acpi_handle handle,
>
> EXPORT_SYMBOL(acpi_evaluate_integer);
>
> +int acpi_get_local_address(acpi_handle handle, u32 *addr)
> +{
> + unsigned long long adr;
> + acpi_status status;
> +
> + status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, &adr);
> + if (ACPI_FAILURE(status))
> + return -ENODATA;
> +
> + *addr = (u32)adr;
> + return 0;
> +}
> +EXPORT_SYMBOL(acpi_get_local_address);
> +
> acpi_status
> acpi_evaluate_reference(acpi_handle handle,
> acpi_string pathname,
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index fcdaab723916..700f9fc303ab 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -706,6 +706,8 @@ static inline u64 acpi_arch_get_root_pointer(void)
> }
> #endif
>
> +int acpi_get_local_address(acpi_handle handle, u32 *addr);
> +
> #else /* !CONFIG_ACPI */
>
> #define acpi_disabled 1
> @@ -953,6 +955,11 @@ static inline struct acpi_device *acpi_resource_consumer(struct resource *res)
> return NULL;
> }
>
> +static inline int acpi_get_local_address(acpi_handle handle, u32 *addr)
> +{
> + return -ENODEV;
> +}
> +
> #endif /* !CONFIG_ACPI */
>
> #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
> --
> 2.17.1
>
--
With Best Regards,
Andy Shevchenko
More information about the linux-arm-kernel
mailing list