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 ?