Skip to contentSkip to conversation

of: Add of_property_present() helper

PATCH In review Rob Herring 2 participants 3 messages Feb 15, 2023 – Feb 16, 2023 Device tree

lore
Share & tools
lore

Rob Herring

author maintainer
#0 lore raw

PATCH 1/2 of: Add of_property_present() helper

Add an of_property_present() function similar to fwnode_property_present(). of_property_read_bool() could be used directly, but it is cleaner to not use it on non-boolean properties.

---
I plan to add this for v6.3 and send most of the conversion patches in the next cycle.

---
 include/linux/of.h | 5 +++++
 1 file changed, 5 insertions(+)
include/linux/of.h +5 -0
index 8b9f94386dc3..b3e04021186f 100644
@@ -1537,6 +1537,11 @@ static inline bool of_device_is_system_power_controller(const struct device_node
 	return of_property_read_bool(np, "system-power-controller");
 }
 
+static inline bool of_property_present(const struct device_node *np, const char *propname)
+{
+	return of_property_read_bool(np, propname);
+}
+
 /*
  * Overlay support
  */
Signature · 1 line
2.39.1
author maintainer
#1 lore raw

PATCH 2/2 of: Use of_property_present() helper

Use of_property_present() instead of of_get_property/of_find_property() in places where we just need to test presence of a property.

---
 drivers/of/platform.c | 2 +-
 drivers/of/property.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/of/platform.c +1 -1
index b3878a98d27f..284379e67649 100644
@@ -529,7 +529,7 @@ static int __init of_platform_default_populate_init(void)
 		int ret;
 
 		/* Check if we have a MacOS display without a node spec */
-		if (of_get_property(of_chosen, "linux,bootx-noscreen", NULL)) {
+		if (of_property_present(of_chosen, "linux,bootx-noscreen")) {
 			/*
 			 * The old code tried to work out which node was the MacOS
 			 * display based on the address. I'm dropping that since the
drivers/of/property.c +1 -1
index 134cfc980b70..ff71d2ac26cb 100644
@@ -1086,7 +1086,7 @@ static struct device_node *of_get_compat_node(struct device_node *np)
 			np = NULL;
 		}
 
-		if (of_find_property(np, "compatible", NULL))
+		if (of_property_present(np, "compatible"))
 			break;
 
 		np = of_get_next_parent(np);
Signature · 1 line
2.39.1
Reviewed-by Tested-by on v1 1/2
#2 lore raw
In reply to Rob Herring
Quoted 18 lines · Rob Herring

Add an of_property_present() function similar to fwnode_property_present(). of_property_read_bool() could be used directly, but it is cleaner to not use it on non-boolean properties.

---
I plan to add this for v6.3 and send most of the conversion patches in the next cycle.

---
 include/linux/of.h | 5 +++++
 1 file changed, 5 insertions(+)
include/linux/of.h +0 -0
index 8b9f94386dc3..b3e04021186f 100644
@@ -1537,6 +1537,11 @@ static inline bool of_device_is_system_power_controller(const struct device_node
 	return of_property_read_bool(np, "system-power-controller");

include/linux/of.h static inline bool of_device_is_system_power_controller(const struct device_node · line 1547

Quoted 10 lines
include/linux/of.h +5 -0
 }
 
+static inline bool of_property_present(const struct device_node *np, const char *propname)
+{
+	return of_property_read_bool(np, propname);
+}
+
 /*
  * Overlay support
  */

of_property_present() needs a docbook header.

Otherwise, for patches 1 and 2:

Test was boot of 32 bit arm devboard with full devicetree unittest