svn commit: r367767 - head/sys/dev/extres/syscon

Emmanuel Vadot manu at FreeBSD.org
Tue Nov 17 14:59:59 UTC 2020


Author: manu
Date: Tue Nov 17 14:59:58 2020
New Revision: 367767
URL: https://svnweb.freebsd.org/changeset/base/367767

Log:
  syscon: Add syscon_get_by_ofw_node
  
  This allow to get a syscon node defined under a specific fdt node (which isn't
  always the device one).

Modified:
  head/sys/dev/extres/syscon/syscon.c
  head/sys/dev/extres/syscon/syscon.h

Modified: head/sys/dev/extres/syscon/syscon.c
==============================================================================
--- head/sys/dev/extres/syscon/syscon.c	Tue Nov 17 14:58:30 2020	(r367766)
+++ head/sys/dev/extres/syscon/syscon.c	Tue Nov 17 14:59:58 2020	(r367767)
@@ -264,6 +264,21 @@ syscon_get_ofw_node(struct syscon *syscon)
 }
 
 int
+syscon_get_by_ofw_node(device_t cdev, phandle_t node, struct syscon **syscon)
+{
+
+	SYSCON_TOPO_SLOCK();
+	*syscon = syscon_find_by_ofw_node(node);
+	if (*syscon == NULL) {
+		SYSCON_TOPO_UNLOCK();
+		device_printf(cdev, "Failed to find syscon node\n");
+		return (ENODEV);
+	}
+	SYSCON_TOPO_UNLOCK();
+	return (0);
+}
+
+int
 syscon_get_by_ofw_property(device_t cdev, phandle_t cnode, char *name,
     struct syscon **syscon)
 {

Modified: head/sys/dev/extres/syscon/syscon.h
==============================================================================
--- head/sys/dev/extres/syscon/syscon.h	Tue Nov 17 14:58:30 2020	(r367766)
+++ head/sys/dev/extres/syscon/syscon.h	Tue Nov 17 14:59:58 2020	(r367767)
@@ -73,6 +73,7 @@ struct syscon *syscon_create_ofw_node(device_t pdev,
 phandle_t syscon_get_ofw_node(struct syscon *syscon);
 int syscon_get_by_ofw_property(device_t consumer, phandle_t node, char *name,
     struct syscon **syscon);
+int syscon_get_by_ofw_node(device_t cdev, phandle_t node, struct syscon **syscon);
 #endif
 
 #endif /* DEV_SYSCON_H */


More information about the svn-src-all mailing list