Module Name:    src
Committed By:   thorpej
Date:           Mon Sep 13 14:47:28 UTC 2021

Modified Files:
        src/sys/arch/macppc/dev [thorpej-i2c-spi-conf2]: cuda.c
        src/sys/arch/sandpoint/sandpoint [thorpej-i2c-spi-conf2]: autoconf.c
        src/sys/arch/sparc64/sparc64 [thorpej-i2c-spi-conf2]: ofw_patch.c
        src/sys/dev/i2c [thorpej-i2c-spi-conf2]: i2c.c i2cvar.h
Added Files:
        src/sys/dev/i2c [thorpej-i2c-spi-conf2]: i2c_enum.h

Log Message:
Move the i2c enumeration helpers to their own header file to detangle
it from reliance on "iic" being configured into the kernel.


To generate a diff of this commit:
cvs rdiff -u -r1.29.2.5 -r1.29.2.6 src/sys/arch/macppc/dev/cuda.c
cvs rdiff -u -r1.29.16.4 -r1.29.16.5 \
    src/sys/arch/sandpoint/sandpoint/autoconf.c
cvs rdiff -u -r1.7.14.7 -r1.7.14.8 src/sys/arch/sparc64/sparc64/ofw_patch.c
cvs rdiff -u -r1.80.2.7 -r1.80.2.8 src/sys/dev/i2c/i2c.c
cvs rdiff -u -r0 -r1.1.2.1 src/sys/dev/i2c/i2c_enum.h
cvs rdiff -u -r1.24.12.3 -r1.24.12.4 src/sys/dev/i2c/i2cvar.h

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

Modified files:

Index: src/sys/arch/macppc/dev/cuda.c
diff -u src/sys/arch/macppc/dev/cuda.c:1.29.2.5 src/sys/arch/macppc/dev/cuda.c:1.29.2.6
--- src/sys/arch/macppc/dev/cuda.c:1.29.2.5	Sat Sep 11 17:22:35 2021
+++ src/sys/arch/macppc/dev/cuda.c	Mon Sep 13 14:47:28 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: cuda.c,v 1.29.2.5 2021/09/11 17:22:35 thorpej Exp $ */
+/*	$NetBSD: cuda.c,v 1.29.2.6 2021/09/13 14:47:28 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2006 Michael Lorenz
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cuda.c,v 1.29.2.5 2021/09/11 17:22:35 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cuda.c,v 1.29.2.6 2021/09/13 14:47:28 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -41,6 +41,7 @@ __KERNEL_RCSID(0, "$NetBSD: cuda.c,v 1.2
 #include <machine/pio.h>
 #include <dev/clock_subr.h>
 #include <dev/i2c/i2cvar.h>
+#include <dev/i2c/i2c_enum.h>
 
 #include <macppc/dev/viareg.h>
 #include <macppc/dev/cudavar.h>

Index: src/sys/arch/sandpoint/sandpoint/autoconf.c
diff -u src/sys/arch/sandpoint/sandpoint/autoconf.c:1.29.16.4 src/sys/arch/sandpoint/sandpoint/autoconf.c:1.29.16.5
--- src/sys/arch/sandpoint/sandpoint/autoconf.c:1.29.16.4	Sat Sep 11 01:03:18 2021
+++ src/sys/arch/sandpoint/sandpoint/autoconf.c	Mon Sep 13 14:47:28 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: autoconf.c,v 1.29.16.4 2021/09/11 01:03:18 thorpej Exp $	*/
+/*	$NetBSD: autoconf.c,v 1.29.16.5 2021/09/13 14:47:28 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.29.16.4 2021/09/11 01:03:18 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.29.16.5 2021/09/13 14:47:28 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -44,7 +44,8 @@ __KERNEL_RCSID(0, "$NetBSD: autoconf.c,v
 
 #include <dev/cons.h>
 #include <dev/pci/pcivar.h>
-#include <dev/i2c/i2cvar.h>
+
+#include <dev/i2c/i2c_enum.h>
 
 #include <net/if.h>
 #include <net/if_ether.h>

Index: src/sys/arch/sparc64/sparc64/ofw_patch.c
diff -u src/sys/arch/sparc64/sparc64/ofw_patch.c:1.7.14.7 src/sys/arch/sparc64/sparc64/ofw_patch.c:1.7.14.8
--- src/sys/arch/sparc64/sparc64/ofw_patch.c:1.7.14.7	Sun Sep 12 19:23:27 2021
+++ src/sys/arch/sparc64/sparc64/ofw_patch.c	Mon Sep 13 14:47:28 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ofw_patch.c,v 1.7.14.7 2021/09/12 19:23:27 thorpej Exp $ */
+/*	$NetBSD: ofw_patch.c,v 1.7.14.8 2021/09/13 14:47:28 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2020, 2021 The NetBSD Foundation, Inc.
@@ -29,12 +29,13 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ofw_patch.c,v 1.7.14.7 2021/09/12 19:23:27 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ofw_patch.c,v 1.7.14.8 2021/09/13 14:47:28 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/kmem.h>
 
-#include <dev/i2c/i2cvar.h>
+#include <dev/i2c/i2c_enum.h>
+
 #include <dev/scsipi/scsipiconf.h>
 
 #include <machine/autoconf.h>

Index: src/sys/dev/i2c/i2c.c
diff -u src/sys/dev/i2c/i2c.c:1.80.2.7 src/sys/dev/i2c/i2c.c:1.80.2.8
--- src/sys/dev/i2c/i2c.c:1.80.2.7	Sun Sep 12 22:02:19 2021
+++ src/sys/dev/i2c/i2c.c	Mon Sep 13 14:47:28 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i2c.c,v 1.80.2.7 2021/09/12 22:02:19 thorpej Exp $	*/
+/*	$NetBSD: i2c.c,v 1.80.2.8 2021/09/13 14:47:28 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2021 The NetBSD Foundation, Inc.
@@ -69,7 +69,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i2c.c,v 1.80.2.7 2021/09/12 22:02:19 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i2c.c,v 1.80.2.8 2021/09/13 14:47:28 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -631,41 +631,6 @@ iic_enumerate_devices_callback(device_t 
 	return true;				/* keep enumerating */
 }
 
-/*
- * i2c_enumerate_deventries:
- *
- *	Helper for enumerating known i2c devices that can be used
- *	by a platform's i2c-emumerate-devices device call if needed.
- */
-int
-i2c_enumerate_deventries(device_t dev, devhandle_t call_handle,
-    struct i2c_enumerate_devices_args *args,
-    const struct i2c_deventry *entries, unsigned int nentries)
-{
-	unsigned int i;
-	bool cbrv;
-
-	for (i = 0; i < nentries; i++) {
-		args->ia->ia_addr = entries[i].addr;
-		args->ia->ia_name = entries[i].name;
-		args->ia->ia_clist = entries[i].compat;
-		args->ia->ia_clist_size =
-		    entries[i].compat != NULL ? strlen(entries[i].compat) + 1
-					      : 0;
-
-		/* no devhandle for child devices. */
-		devhandle_invalidate(&args->ia->ia_devhandle);
-
-		cbrv = args->callback(dev, args);
-
-		if (!cbrv) {
-			break;
-		}
-	}
-
-	return 0;
-}
-
 static int
 iic_match(device_t parent, cfdata_t cf, void *aux)
 {

Index: src/sys/dev/i2c/i2cvar.h
diff -u src/sys/dev/i2c/i2cvar.h:1.24.12.3 src/sys/dev/i2c/i2cvar.h:1.24.12.4
--- src/sys/dev/i2c/i2cvar.h:1.24.12.3	Sat Sep 11 01:03:18 2021
+++ src/sys/dev/i2c/i2cvar.h	Mon Sep 13 14:47:28 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i2cvar.h,v 1.24.12.3 2021/09/11 01:03:18 thorpej Exp $	*/
+/*	$NetBSD: i2cvar.h,v 1.24.12.4 2021/09/13 14:47:28 thorpej Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -175,19 +175,6 @@ struct i2c_enumerate_devices_args {
 };
 
 /*
- * Helpers for enumerating known i2c devices, that can be used from
- * the i2c-enumerate-devices device call.
- */
-struct i2c_deventry {
-	const char *name;
-	const char *compat;
-	i2c_addr_t addr;
-};
-int	i2c_enumerate_deventries(device_t, devhandle_t,
-	    struct i2c_enumerate_devices_args *,
-	    const struct i2c_deventry *, unsigned int);
-
-/*
  * API presented to i2c controllers.
  */
 int	iicbus_print(void *, const char *);

Added files:

Index: src/sys/dev/i2c/i2c_enum.h
diff -u /dev/null src/sys/dev/i2c/i2c_enum.h:1.1.2.1
--- /dev/null	Mon Sep 13 14:47:28 2021
+++ src/sys/dev/i2c/i2c_enum.h	Mon Sep 13 14:47:28 2021
@@ -0,0 +1,76 @@
+/*	$NetBSD: i2c_enum.h,v 1.1.2.1 2021/09/13 14:47:28 thorpej Exp $	*/
+
+/*-             
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved. 
+ *       
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Jason R. Thorpe.
+ *  
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *              
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */             
+
+#ifndef _DEV_I2C_I2C_ENUM_H_
+#define	_DEV_I2C_I2C_ENUM_H_
+
+#include <dev/i2c/i2cvar.h>
+
+/*
+ * Helpers for enumerating known i2c devices, that can be used from
+ * the i2c-enumerate-devices device call.
+ */
+struct i2c_deventry {
+	const char *name;
+	const char *compat;
+	i2c_addr_t addr;
+};
+
+static inline int __unused
+i2c_enumerate_deventries(device_t dev, devhandle_t call_handle,
+    struct i2c_enumerate_devices_args *args,
+    const struct i2c_deventry *entries, unsigned int nentries)
+{
+	unsigned int i;
+	bool cbrv;
+
+	for (i = 0; i < nentries; i++) {
+		args->ia->ia_addr = entries[i].addr;
+		args->ia->ia_name = entries[i].name;
+		args->ia->ia_clist = entries[i].compat;
+		args->ia->ia_clist_size =
+		    entries[i].compat != NULL ? strlen(entries[i].compat) + 1
+					      : 0;
+
+		/* no devhandle for child devices. */
+		devhandle_invalidate(&args->ia->ia_devhandle);
+
+		cbrv = args->callback(dev, args);
+
+		if (!cbrv) {
+			break;
+		}
+	}
+
+	return 0;
+}
+
+#endif /* _DEV_I2C_I2C_ENUM_H_ */

Reply via email to