diff mbox series

[v5,1/2] ACPI: Add stub for acpi_has_method() for !CONFIG_ACPI

Message ID 20260929121348.109556-2-yubowen8@huawei.com
State New
Headers show
Series HiSilicon I2C bus recovery support | expand

Commit Message

Bowen Yu Sept. 29, 2026, 12:13 p.m. UTC
acpi_has_method() is declared in <acpi/acpi_bus.h>, which is only
included by <linux/acpi.h> when CONFIG_ACPI is enabled. Unlike the
ACPICA core helpers (acpi_evaluate_object(), acpi_format_exception(),
...) that get automatic static-inline stubs via the
ACPI_EXTERNAL_RETURN_* macros when !CONFIG_ACPI, acpi_has_method() is
Linux glue and has no stub in the #else section of <linux/acpi.h>.

This forces drivers referencing acpi_has_method() to wrap the call
site in #ifdef CONFIG_ACPI to avoid -Werror=implicit-function-declaration
on !CONFIG_ACPI builds -- a valid config for drivers that
"depends on ARM64 || COMPILE_TEST" with no ACPI dependency.

Add a static inline stub returning false, consistent with the existing
stubs for acpi_check_dsm() and friends, so drivers can drop the #ifdef
and rely on the runtime acpi_disabled check instead.

Signed-off-by: Bowen Yu <yubowen8@huawei.com>
---
 include/linux/acpi.h | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Rafael J. Wysocki (Intel) Sept. 29, 2026, 12:28 p.m. UTC | #1
On Tue, Sep 29, 2026 at 2:13 PM Bowen Yu <yubowen8@huawei.com> wrote:
>
> acpi_has_method() is declared in <acpi/acpi_bus.h>, which is only
> included by <linux/acpi.h> when CONFIG_ACPI is enabled. Unlike the
> ACPICA core helpers (acpi_evaluate_object(), acpi_format_exception(),
> ...) that get automatic static-inline stubs via the
> ACPI_EXTERNAL_RETURN_* macros when !CONFIG_ACPI, acpi_has_method() is
> Linux glue and has no stub in the #else section of <linux/acpi.h>.
>
> This forces drivers referencing acpi_has_method() to wrap the call
> site in #ifdef CONFIG_ACPI to avoid -Werror=implicit-function-declaration
> on !CONFIG_ACPI builds -- a valid config for drivers that
> "depends on ARM64 || COMPILE_TEST" with no ACPI dependency.
>
> Add a static inline stub returning false, consistent with the existing
> stubs for acpi_check_dsm() and friends, so drivers can drop the #ifdef
> and rely on the runtime acpi_disabled check instead.
>
> Signed-off-by: Bowen Yu <yubowen8@huawei.com>
> ---
>  include/linux/acpi.h | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index ddacac812094..141a322435c2 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -1028,6 +1028,11 @@ static inline bool acpi_driver_match_device(struct device *dev,
>         return false;
>  }
>
> +static inline bool acpi_has_method(acpi_handle handle, char *name)
> +{
> +       return false;
> +}
> +
>  static inline bool acpi_check_dsm(acpi_handle handle, const guid_t *guid,
>                                   u64 rev, u64 funcs)
>  {
> --

Please see

https://lore.kernel.org/linux-acpi/3717753.iIbC2pHGDl@rafael.j.wysocki/

in linux-next now.

Thanks!
diff mbox series

Patch

diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index ddacac812094..141a322435c2 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -1028,6 +1028,11 @@  static inline bool acpi_driver_match_device(struct device *dev,
 	return false;
 }
 
+static inline bool acpi_has_method(acpi_handle handle, char *name)
+{
+	return false;
+}
+
 static inline bool acpi_check_dsm(acpi_handle handle, const guid_t *guid,
 				  u64 rev, u64 funcs)
 {