Module Name:    src
Committed By:   pgoyette
Date:           Fri Apr  1 15:49:12 UTC 2022

Modified Files:
        src/distrib/sets/lists/debug: module.mi
        src/distrib/sets/lists/modules: mi
        src/sys/dev/i2c: i2c.c i2c_subr.c
        src/sys/modules: Makefile
        src/sys/modules/iic: Makefile
Added Files:
        src/sys/modules/i2c_subr: Makefile

Log Message:
Split i2c_subr.c into a separate module rather than including it in
the iic module.  There are valid configurations where i2c_subr code
can be both built-in and part of a loaded module (eg, piixpm is in
the kernel, but the iic module is loaded later).  This causes the
in-kernel linker to detect a duplicate symbol.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/distrib/sets/lists/debug/module.mi
cvs rdiff -u -r1.150 -r1.151 src/distrib/sets/lists/modules/mi
cvs rdiff -u -r1.85 -r1.86 src/sys/dev/i2c/i2c.c
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/i2c/i2c_subr.c
cvs rdiff -u -r1.262 -r1.263 src/sys/modules/Makefile
cvs rdiff -u -r0 -r1.1 src/sys/modules/i2c_subr/Makefile
cvs rdiff -u -r1.6 -r1.7 src/sys/modules/iic/Makefile

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

Modified files:

Index: src/distrib/sets/lists/debug/module.mi
diff -u src/distrib/sets/lists/debug/module.mi:1.16 src/distrib/sets/lists/debug/module.mi:1.17
--- src/distrib/sets/lists/debug/module.mi:1.16	Tue Dec  7 17:39:53 2021
+++ src/distrib/sets/lists/debug/module.mi	Fri Apr  1 15:49:11 2022
@@ -1,4 +1,4 @@
-# $NetBSD: module.mi,v 1.16 2021/12/07 17:39:53 brad Exp $
+# $NetBSD: module.mi,v 1.17 2022/04/01 15:49:11 pgoyette Exp $
 ./usr/libdata/debug/@MODULEDIR@					modules-base-kernel	kmod,debug
 ./usr/libdata/debug/@MODULEDIR@/accf_dataready			modules-base-kernel	kmod,debug
 ./usr/libdata/debug/@MODULEDIR@/accf_dataready/accf_dataready.kmod.debug	modules-base-kernel	kmod,debug
@@ -166,6 +166,8 @@
 ./usr/libdata/debug/@MODULEDIR@/i2c_bitbang/i2c_bitbang.kmod.debug	modules-base-kernel	kmod,debug
 ./usr/libdata/debug/@MODULEDIR@/i2cexec				modules-base-kernel	kmod,debug
 ./usr/libdata/debug/@MODULEDIR@/i2cexec/i2cexec.kmod.debug		modules-base-kernel	kmod,debug
+./usr/libdata/debug/@MODULEDIR@/i2c_subr				modules-base-kernel	kmod,debug
+./usr/libdata/debug/@MODULEDIR@/i2c_subr/i2c_subr.kmod.debug		modules-base-kernel	kmod,debug
 ./usr/libdata/debug/@MODULEDIR@/if_agr				modules-base-kernel	kmod,debug
 ./usr/libdata/debug/@MODULEDIR@/if_agr/if_agr.kmod.debug		modules-base-kernel	kmod,debug
 ./usr/libdata/debug/@MODULEDIR@/if_aue				modules-base-kernel	kmod,debug

Index: src/distrib/sets/lists/modules/mi
diff -u src/distrib/sets/lists/modules/mi:1.150 src/distrib/sets/lists/modules/mi:1.151
--- src/distrib/sets/lists/modules/mi:1.150	Tue Dec  7 17:39:53 2021
+++ src/distrib/sets/lists/modules/mi	Fri Apr  1 15:49:11 2022
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.150 2021/12/07 17:39:53 brad Exp $
+# $NetBSD: mi,v 1.151 2022/04/01 15:49:11 pgoyette Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -189,6 +189,8 @@
 ./@MODULEDIR@/i2c_bitbang/i2c_bitbang.kmod	modules-base-kernel	kmod
 ./@MODULEDIR@/i2cexec				modules-base-kernel	kmod
 ./@MODULEDIR@/i2cexec/i2cexec.kmod		modules-base-kernel	kmod
+./@MODULEDIR@/i2c_subr				modules-base-kernel	kmod
+./@MODULEDIR@/i2c_subr/i2c_subr.kmod		modules-base-kernel	kmod
 ./@MODULEDIR@/if_agr				modules-base-kernel	kmod
 ./@MODULEDIR@/if_agr/if_agr.kmod		modules-base-kernel	kmod
 ./@MODULEDIR@/if_aue				modules-base-kernel	kmod

Index: src/sys/dev/i2c/i2c.c
diff -u src/sys/dev/i2c/i2c.c:1.85 src/sys/dev/i2c/i2c.c:1.86
--- src/sys/dev/i2c/i2c.c:1.85	Mon Mar 28 12:33:21 2022
+++ src/sys/dev/i2c/i2c.c	Fri Apr  1 15:49:12 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: i2c.c,v 1.85 2022/03/28 12:33:21 riastradh Exp $	*/
+/*	$NetBSD: i2c.c,v 1.86 2022/04/01 15:49:12 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -53,7 +53,7 @@
 #endif /* _KERNEL_OPT */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i2c.c,v 1.85 2022/03/28 12:33:21 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i2c.c,v 1.86 2022/04/01 15:49:12 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -900,7 +900,7 @@ CFATTACH_DECL3_NEW(iic, sizeof(struct ii
     iic_match, iic_attach, iic_detach, NULL, iic_rescan, iic_child_detach,
     DVF_DETACH_SHUTDOWN);
 
-MODULE(MODULE_CLASS_DRIVER, iic, "i2cexec,i2c_bitbang");
+MODULE(MODULE_CLASS_DRIVER, iic, "i2cexec,i2c_bitbang,i2c_subr");
 
 #ifdef _MODULE
 #include "ioconf.c"

Index: src/sys/dev/i2c/i2c_subr.c
diff -u src/sys/dev/i2c/i2c_subr.c:1.1 src/sys/dev/i2c/i2c_subr.c:1.2
--- src/sys/dev/i2c/i2c_subr.c:1.1	Mon Oct  3 22:27:23 2011
+++ src/sys/dev/i2c/i2c_subr.c	Fri Apr  1 15:49:12 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: i2c_subr.c,v 1.1 2011/10/03 22:27:23 jmcneill Exp $	*/
+/*	$NetBSD: i2c_subr.c,v 1.2 2022/04/01 15:49:12 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,13 +36,29 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i2c_subr.c,v 1.1 2011/10/03 22:27:23 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i2c_subr.c,v 1.2 2022/04/01 15:49:12 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
+#include <sys/module.h>
 
 #include <dev/i2c/i2cvar.h>
 
+MODULE(MODULE_CLASS_EXEC, i2c_subr, NULL);
+
+static int
+i2c_subr_modcmd(modcmd_t cmd, void *opaque)
+{
+
+	switch (cmd) {
+	case MODULE_CMD_INIT:
+	case MODULE_CMD_FINI:
+		return 0;
+	default:
+		return ENOTTY;
+	}
+}
+
 int
 iicbus_print(void *aux, const char *pnp)
 {

Index: src/sys/modules/Makefile
diff -u src/sys/modules/Makefile:1.262 src/sys/modules/Makefile:1.263
--- src/sys/modules/Makefile:1.262	Tue Dec  7 17:39:54 2021
+++ src/sys/modules/Makefile	Fri Apr  1 15:49:11 2022
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.262 2021/12/07 17:39:54 brad Exp $
+#	$NetBSD: Makefile,v 1.263 2022/04/01 15:49:11 pgoyette Exp $
 
 .include <bsd.own.mk>
 
@@ -70,6 +70,7 @@ SUBDIR+=	hythygtemp
 SUBDIR+=	am2315temp
 SUBDIR+=	i2cexec
 SUBDIR+=	i2c_bitbang
+SUBDIR+=	i2c_subr
 SUBDIR+=	if_agr
 SUBDIR+=	if_aue
 SUBDIR+=	if_axe

Index: src/sys/modules/iic/Makefile
diff -u src/sys/modules/iic/Makefile:1.6 src/sys/modules/iic/Makefile:1.7
--- src/sys/modules/iic/Makefile:1.6	Sun Feb 17 04:05:53 2019
+++ src/sys/modules/iic/Makefile	Fri Apr  1 15:49:11 2022
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.6 2019/02/17 04:05:53 rin Exp $
+#	$NetBSD: Makefile,v 1.7 2022/04/01 15:49:11 pgoyette Exp $
 
 .include "../Makefile.inc"
 
@@ -6,7 +6,7 @@
 
 KMOD=   	iic
 IOCONF=		iic.ioconf
-SRCS=		i2c.c i2c_subr.c
+SRCS=		i2c.c
 
 WARNS=		3
 

Added files:

Index: src/sys/modules/i2c_subr/Makefile
diff -u /dev/null src/sys/modules/i2c_subr/Makefile:1.1
--- /dev/null	Fri Apr  1 15:49:12 2022
+++ src/sys/modules/i2c_subr/Makefile	Fri Apr  1 15:49:11 2022
@@ -0,0 +1,10 @@
+#	$NetBSD: Makefile,v 1.1 2022/04/01 15:49:11 pgoyette Exp $
+
+.include "../Makefile.inc"
+
+.PATH:	${S}/dev/i2c
+
+KMOD=	i2c_subr
+SRCS=	i2c_subr.c
+
+.include <bsd.kmodule.mk>

Reply via email to