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 ?