diff mbox series

[v2,1/1] ACPI: property: Consider data nodes as being available

Message ID 20241219152148.975622-1-sakari.ailus@linux.intel.com (mailing list archive)
State Queued
Delegated to: Rafael Wysocki
Headers show
Series [v2,1/1] ACPI: property: Consider data nodes as being available | expand

Commit Message

Sakari Ailus Dec. 19, 2024, 3:21 p.m. UTC
New functions making use of the data node availability information, like
fwnode_for_each_available_child_node(), have been added years after
fwnode_device_is_available() was introduced. To enumerate the data nodes
in various ways specific to those functions, the node availability test
needs to pass.

On ACPI, there is no explicit data node availbility information in the
first place and the original fwnode_device_is_available() implementation
simply returns false. This causes new functions that only enumerate
available nodes to never return any nodes on ACPI for leaf devices that
have child data nodes.

However, on the DT side, fwnode_device_is_available() returns true for all
nodes without the "status" property which are analogous to the ACPI data
nodes, so there is a difference in behavior between DT and ACPI in that
respect.

Thus from now on, return true from fwnode_device_is_available() on all
ACPI data nodes.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/acpi/property.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: e14d5ae28eb28c5edef53bd648037d2bb4fce1b3

Comments

Rafael J. Wysocki Dec. 19, 2024, 8:06 p.m. UTC | #1
On Thu, Dec 19, 2024 at 4:21 PM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
>
> New functions making use of the data node availability information, like
> fwnode_for_each_available_child_node(), have been added years after
> fwnode_device_is_available() was introduced. To enumerate the data nodes
> in various ways specific to those functions, the node availability test
> needs to pass.
>
> On ACPI, there is no explicit data node availbility information in the
> first place and the original fwnode_device_is_available() implementation
> simply returns false. This causes new functions that only enumerate
> available nodes to never return any nodes on ACPI for leaf devices that
> have child data nodes.
>
> However, on the DT side, fwnode_device_is_available() returns true for all
> nodes without the "status" property which are analogous to the ACPI data
> nodes, so there is a difference in behavior between DT and ACPI in that
> respect.
>
> Thus from now on, return true from fwnode_device_is_available() on all
> ACPI data nodes.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
>  drivers/acpi/property.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c
> index 80a52a4e66dd..1ee81e771ae6 100644
> --- a/drivers/acpi/property.c
> +++ b/drivers/acpi/property.c
> @@ -1492,7 +1492,7 @@ acpi_graph_get_remote_endpoint(const struct fwnode_handle *__fwnode)
>  static bool acpi_fwnode_device_is_available(const struct fwnode_handle *fwnode)
>  {
>         if (!is_acpi_device_node(fwnode))
> -               return false;
> +               return true;
>
>         return acpi_device_is_present(to_acpi_device_node(fwnode));
>  }
>
> base-commit: e14d5ae28eb28c5edef53bd648037d2bb4fce1b3
> --

Applied as 6.14 material, thanks!
diff mbox series

Patch

diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c
index 80a52a4e66dd..1ee81e771ae6 100644
--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -1492,7 +1492,7 @@  acpi_graph_get_remote_endpoint(const struct fwnode_handle *__fwnode)
 static bool acpi_fwnode_device_is_available(const struct fwnode_handle *fwnode)
 {
 	if (!is_acpi_device_node(fwnode))
-		return false;
+		return true;
 
 	return acpi_device_is_present(to_acpi_device_node(fwnode));
 }