Module Name:    src
Committed By:   thorpej
Date:           Sat May  8 16:56:10 UTC 2021

Modified Files:
        src/sys/dev/i2c [thorpej-i2c-spi-conf]: adadc.c fcu.c

Log Message:
ia->ia_cookie -> devhandle_to_of(device_handle(self))


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.10.4.1 src/sys/dev/i2c/adadc.c
cvs rdiff -u -r1.12 -r1.12.4.1 src/sys/dev/i2c/fcu.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/i2c/adadc.c
diff -u src/sys/dev/i2c/adadc.c:1.10 src/sys/dev/i2c/adadc.c:1.10.4.1
--- src/sys/dev/i2c/adadc.c:1.10	Wed Jan 27 02:29:48 2021
+++ src/sys/dev/i2c/adadc.c	Sat May  8 16:56:10 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: adadc.c,v 1.10 2021/01/27 02:29:48 thorpej Exp $ */
+/* $NetBSD: adadc.c,v 1.10.4.1 2021/05/08 16:56:10 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 Michael Lorenz
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: adadc.c,v 1.10 2021/01/27 02:29:48 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: adadc.c,v 1.10.4.1 2021/05/08 16:56:10 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -128,6 +128,7 @@ adadc_attach(device_t parent, device_t s
 	struct i2c_attach_args *ia = aux;
 	envsys_data_t *s;
 	int error, ch;
+	int phandle;
 	uint32_t eeprom[40];
 	char loc[256];
 	int which_cpu;
@@ -151,8 +152,8 @@ adadc_attach(device_t parent, device_t s
 	 * should probably just expose the temperature and four ENVSYS_INTEGERs
 	 */
 	which_cpu = 0;
-	ch = OF_child(ia->ia_cookie);
-	while (ch != 0) {
+	phandle = devhandle_to_of(device_handle(self));
+	for (ch = OF_child(phandle); ch != 0; ch = OF_peer(ch)) {
 		if (OF_getprop(ch, "location", loc, 32) > 0) {
 			int reg = 0;
 			OF_getprop(ch, "reg", &reg, sizeof(reg));
@@ -185,7 +186,6 @@ adadc_attach(device_t parent, device_t s
 			sysmon_envsys_sensor_attach(sc->sc_sme, s);
 			sc->sc_nsensors++;
 		}
-		ch = OF_peer(ch);
 	}
 	aprint_debug_dev(self, "monitoring CPU %d\n", which_cpu);
 	error = get_cpuid(which_cpu, (uint8_t *)eeprom);

Index: src/sys/dev/i2c/fcu.c
diff -u src/sys/dev/i2c/fcu.c:1.12 src/sys/dev/i2c/fcu.c:1.12.4.1
--- src/sys/dev/i2c/fcu.c:1.12	Wed Jan 27 02:29:48 2021
+++ src/sys/dev/i2c/fcu.c	Sat May  8 16:56:10 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: fcu.c,v 1.12 2021/01/27 02:29:48 thorpej Exp $ */
+/* $NetBSD: fcu.c,v 1.12.4.1 2021/05/08 16:56:10 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 Michael Lorenz
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fcu.c,v 1.12 2021/01/27 02:29:48 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fcu.c,v 1.12.4.1 2021/05/08 16:56:10 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -141,6 +141,7 @@ fcu_attach(device_t parent, device_t sel
 	struct fcu_softc *sc = device_private(self);
 	struct i2c_attach_args *ia = aux;
 	int have_eeprom1 = 1;
+	int phandle;
 
 	sc->sc_dev = self;
 	sc->sc_i2c = ia->ia_tag;
@@ -185,11 +186,11 @@ fcu_attach(device_t parent, device_t sel
 	sc->sc_nfans = 0;
 
 	/* round up sensors */
+	phandle = devhandle_to_of(device_handle(self));
 	int ch;
 
 	sc->sc_nsensors = 0;
-	ch = OF_child(ia->ia_cookie);
-	while (ch != 0) {
+	for (ch = OF_child(phandle); ch != 0; ch = OF_peer(ch)) {
 		char type[32], descr[32];
 		uint32_t reg;
 
@@ -198,7 +199,7 @@ fcu_attach(device_t parent, device_t sel
 		s->state = ENVSYS_SINVALID;
 
 		if (OF_getprop(ch, "device_type", type, 32) <= 0)
-			goto next;
+			continue;
 
 		if (strcmp(type, "fan-rpm-control") == 0) {
 			s->units = ENVSYS_SFANRPM;
@@ -214,15 +215,15 @@ fcu_attach(device_t parent, device_t sel
 			s->units = ENVSYS_INDICATOR;
 		} else {
 			/* ignore other types for now */
-			goto next;
+			continue;
 		}
 
 		if (OF_getprop(ch, "reg", &reg, sizeof(reg)) <= 0)
-			goto next;
+			continue;
 		s->private = reg;
 
 		if (OF_getprop(ch, "location", descr, 32) <= 0)
-			goto next;
+			continue;
 		strcpy(s->desc, descr);
 
 		if (s->units == ENVSYS_SFANRPM) {
@@ -304,8 +305,6 @@ fcu_attach(device_t parent, device_t sel
 		}
 		sysmon_envsys_sensor_attach(sc->sc_sme, s);
 		sc->sc_nsensors++;
-next:
-		ch = OF_peer(ch);
 	}		
 	sysmon_envsys_register(sc->sc_sme);
 

Reply via email to