Module Name:    src
Committed By:   khorben
Date:           Wed Sep  7 00:29:23 UTC 2022

Modified Files:
        src/distrib/sets/lists/modules: md.amd64 md.i386
        src/sys/arch/i386/conf: MODULAR
        src/sys/dev/pci: emuxki.c
        src/sys/modules: Makefile
Added Files:
        src/sys/modules/emuxki: Makefile Makefile.inc emuxki.ioconf

Log Message:
emuxki(4): allow building as a module

Tested on NetBSD/amd64 with a Sound Blaster Live! Value (CT4870)

Note that this required setting outputs.master to the maximum value
allowed (255) to get sound out, and then cranking the volume pretty
high.

Additional sound cards sponsored by the NetBSD Foundation; thanks!


To generate a diff of this commit:
cvs rdiff -u -r1.96 -r1.97 src/distrib/sets/lists/modules/md.amd64
cvs rdiff -u -r1.94 -r1.95 src/distrib/sets/lists/modules/md.i386
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/i386/conf/MODULAR
cvs rdiff -u -r1.72 -r1.73 src/sys/dev/pci/emuxki.c
cvs rdiff -u -r1.269 -r1.270 src/sys/modules/Makefile
cvs rdiff -u -r0 -r1.1 src/sys/modules/emuxki/Makefile \
    src/sys/modules/emuxki/Makefile.inc src/sys/modules/emuxki/emuxki.ioconf

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/modules/md.amd64
diff -u src/distrib/sets/lists/modules/md.amd64:1.96 src/distrib/sets/lists/modules/md.amd64:1.97
--- src/distrib/sets/lists/modules/md.amd64:1.96	Fri Aug  5 08:48:36 2022
+++ src/distrib/sets/lists/modules/md.amd64	Wed Sep  7 00:29:23 2022
@@ -1,4 +1,4 @@
-# $NetBSD: md.amd64,v 1.96 2022/08/05 08:48:36 riastradh Exp $
+# $NetBSD: md.amd64,v 1.97 2022/09/07 00:29:23 khorben Exp $
 #
 ./@MODULEDIR@/acpiacad				modules-base-kernel	kmod
 ./@MODULEDIR@/acpiacad/acpiacad.kmod		modules-base-kernel	kmod
@@ -134,6 +134,8 @@
 ./@MODULEDIR@/dtrace_syscall_netbsd32/dtrace_syscall_netbsd32.kmod	modules-base-kernel	kmod,dtrace
 ./@MODULEDIR@/emdtv				modules-base-kernel	kmod
 ./@MODULEDIR@/emdtv/emdtv.kmod			modules-base-kernel	kmod
+./@MODULEDIR@/emuxki				modules-base-kernel	kmod
+./@MODULEDIR@/emuxki/emuxki.kmod		modules-base-kernel	kmod
 ./@MODULEDIR@/est				modules-base-kernel	kmod
 ./@MODULEDIR@/est/est.kmod			modules-base-kernel	kmod
 ./@MODULEDIR@/exec_elf32			modules-base-kernel	kmod

Index: src/distrib/sets/lists/modules/md.i386
diff -u src/distrib/sets/lists/modules/md.i386:1.94 src/distrib/sets/lists/modules/md.i386:1.95
--- src/distrib/sets/lists/modules/md.i386:1.94	Fri Aug  5 08:48:36 2022
+++ src/distrib/sets/lists/modules/md.i386	Wed Sep  7 00:29:23 2022
@@ -1,4 +1,4 @@
-# $NetBSD: md.i386,v 1.94 2022/08/05 08:48:36 riastradh Exp $
+# $NetBSD: md.i386,v 1.95 2022/09/07 00:29:23 khorben Exp $
 #
 ./@MODULEDIR@/acpiacad				modules-base-kernel	kmod
 ./@MODULEDIR@/acpiacad/acpiacad.kmod		modules-base-kernel	kmod
@@ -86,6 +86,8 @@
 ./@MODULEDIR@/dtrace_syscall_linux/dtrace_syscall_linux.kmod	modules-base-kernel	kmod,dtrace
 ./@MODULEDIR@/emdtv				modules-base-kernel	kmod
 ./@MODULEDIR@/emdtv/emdtv.kmod			modules-base-kernel	kmod
+./@MODULEDIR@/emuxki				modules-base-kernel	kmod
+./@MODULEDIR@/emuxki/emuxki.kmod		modules-base-kernel	kmod
 ./@MODULEDIR@/est				modules-base-kernel	kmod
 ./@MODULEDIR@/est/est.kmod			modules-base-kernel	kmod
 ./@MODULEDIR@/exec_aout				modules-base-kernel	kmod

Index: src/sys/arch/i386/conf/MODULAR
diff -u src/sys/arch/i386/conf/MODULAR:1.9 src/sys/arch/i386/conf/MODULAR:1.10
--- src/sys/arch/i386/conf/MODULAR:1.9	Tue Aug 17 22:00:29 2021
+++ src/sys/arch/i386/conf/MODULAR	Wed Sep  7 00:29:23 2022
@@ -1,4 +1,4 @@
-# $NetBSD: MODULAR,v 1.9 2021/08/17 22:00:29 andvar Exp $
+# $NetBSD: MODULAR,v 1.10 2022/09/07 00:29:23 khorben Exp $
 #
 # MODULAR kernel
 # This kernel config prefers loading kernel drivers from file system.
@@ -54,6 +54,7 @@ no pseudo-device	vcoda		       # coda mi
 no uvideo*
 no pseye*
 
+no emuxki*
 no hdaudio*
 no hdafg*
 

Index: src/sys/dev/pci/emuxki.c
diff -u src/sys/dev/pci/emuxki.c:1.72 src/sys/dev/pci/emuxki.c:1.73
--- src/sys/dev/pci/emuxki.c:1.72	Mon Aug 29 09:04:27 2022
+++ src/sys/dev/pci/emuxki.c	Wed Sep  7 00:29:23 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: emuxki.c,v 1.72 2022/08/29 09:04:27 khorben Exp $	*/
+/*	$NetBSD: emuxki.c,v 1.73 2022/09/07 00:29:23 khorben Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2007 The NetBSD Foundation, Inc.
@@ -38,10 +38,11 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: emuxki.c,v 1.72 2022/08/29 09:04:27 khorben Exp $");
+__KERNEL_RCSID(0, "$NetBSD: emuxki.c,v 1.73 2022/09/07 00:29:23 khorben Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
+#include <sys/module.h>
 #include <sys/errno.h>
 #include <sys/systm.h>
 #include <sys/audioio.h>
@@ -164,10 +165,10 @@ struct emuxki_softc {
 	void			(*pintr)(void *);
 	void			*pintrarg;
 	audio_params_t		play;
-	int			pframesize;
-	int			pblksize;
-	int			plength;
-	int			poffset;
+	uint32_t		pframesize;
+	uint32_t		pblksize;
+	uint32_t		plength;
+	uint32_t		poffset;
 
 	struct dmamem		*rmem;		/* rec internal memory */
 	void			(*rintr)(void *);
@@ -1431,3 +1432,32 @@ emuxki_ac97_flags(void *hdl)
 
 	return AC97_HOST_SWAPPED_CHANNELS;
 }
+
+MODULE(MODULE_CLASS_DRIVER, emuxki, "pci,audio");
+
+#ifdef _MODULE
+#include "ioconf.c"
+#endif
+
+static int
+emuxki_modcmd(modcmd_t cmd, void *opaque)
+{
+	int error = 0;
+
+	switch (cmd) {
+	case MODULE_CMD_INIT:
+#ifdef _MODULE
+		error = config_init_component(cfdriver_ioconf_emuxki,
+		    cfattach_ioconf_emuxki, cfdata_ioconf_emuxki);
+#endif
+		return error;
+	case MODULE_CMD_FINI:
+#ifdef _MODULE
+		error = config_fini_component(cfdriver_ioconf_emuxki,
+		    cfattach_ioconf_emuxki, cfdata_ioconf_emuxki);
+#endif
+		return error;
+	default:
+		return ENOTTY;
+	}
+}

Index: src/sys/modules/Makefile
diff -u src/sys/modules/Makefile:1.269 src/sys/modules/Makefile:1.270
--- src/sys/modules/Makefile:1.269	Thu Jul 28 22:00:23 2022
+++ src/sys/modules/Makefile	Wed Sep  7 00:29:23 2022
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.269 2022/07/28 22:00:23 riastradh Exp $
+#	$NetBSD: Makefile,v 1.270 2022/09/07 00:29:23 khorben Exp $
 
 .include <bsd.own.mk>
 
@@ -225,6 +225,7 @@ SUBDIR+=	amdsmn
 SUBDIR+=	amdtemp
 SUBDIR+=	amdzentemp
 SUBDIR+=	coretemp
+SUBDIR+=	emuxki
 SUBDIR+=	est
 SUBDIR+=	hdafg
 SUBDIR+=	hdaudio

Added files:

Index: src/sys/modules/emuxki/Makefile
diff -u /dev/null src/sys/modules/emuxki/Makefile:1.1
--- /dev/null	Wed Sep  7 00:29:23 2022
+++ src/sys/modules/emuxki/Makefile	Wed Sep  7 00:29:23 2022
@@ -0,0 +1,8 @@
+#	$NetBSD: Makefile,v 1.1 2022/09/07 00:29:23 khorben Exp $
+
+.include "../Makefile.inc"
+.include "${.CURDIR}/Makefile.inc"
+
+KMOD=	emuxki
+
+.include <bsd.kmodule.mk>
Index: src/sys/modules/emuxki/Makefile.inc
diff -u /dev/null src/sys/modules/emuxki/Makefile.inc:1.1
--- /dev/null	Wed Sep  7 00:29:23 2022
+++ src/sys/modules/emuxki/Makefile.inc	Wed Sep  7 00:29:23 2022
@@ -0,0 +1,10 @@
+#	$NetBSD: Makefile.inc,v 1.1 2022/09/07 00:29:23 khorben Exp $
+
+# This file is used by modules and rump kernels
+
+IOCONFDIR:=	${.PARSEDIR}
+
+.PATH:	${NETBSDSRCDIR}/sys/dev/pci ${IOCONFDIR}
+
+IOCONF=	emuxki.ioconf
+SRCS+=	emuxki.c
Index: src/sys/modules/emuxki/emuxki.ioconf
diff -u /dev/null src/sys/modules/emuxki/emuxki.ioconf:1.1
--- /dev/null	Wed Sep  7 00:29:23 2022
+++ src/sys/modules/emuxki/emuxki.ioconf	Wed Sep  7 00:29:23 2022
@@ -0,0 +1,10 @@
+#	$NetBSD: emuxki.ioconf,v 1.1 2022/09/07 00:29:23 khorben Exp $
+
+ioconf emuxki
+
+include "conf/files"
+include "dev/pci/files.pci"
+
+pseudo-root pci*
+
+emuxki* at pci? dev ? function ?

Reply via email to