kern/59306: patch to augment /dev/sndstat to show which module provides driver

Mathew Kanner mat at cnd.mcgill.ca
Sat Nov 15 12:20:24 PST 2003


	Note: There was a bad value `medium' for the field `>Severity:'.
	It was set to the default value of `serious'.


>Number:         59306
>Category:       kern
>Synopsis:       patch to augment /dev/sndstat to show which module provides driver
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Nov 15 12:20:19 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Mathew Kanner
>Release:        FreeBSD 5.x
>Organization:
>Environment:
System: FreeBSD tube.mine.nu 5.1-CURRENT-20031021-JPSNAP FreeBSD 5.1-CURRENT-20031021-JPSNAP #0: Tue Oct 21 01:07:08 GMT 2003     root at ushi.jp.freebsd.org:/usr/obj/usr/src/sys/GENERIC  i386

>Description:

	Sometimes it's very hard to know which module provides the
driver for a soundcard.  This patch changes the output of /dev/sndstat
to include this information (note the kld snd_cmi).

mat at tube$ cat /dev/sndstat 
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <CMedia CMI8738> at io 0xb800 irq 10 kld snd_cmi (1p/1r/0v channels duplex default)

	This eases the installation of a new soundcard as the
procedure becomes

	kldload snd_driver
	cat /dev/sndstat
	[edit /boot/loader.conf to load the klds show]


>How-To-Repeat:
	
>Fix:

--69pVuxX8awAiJ7fD
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="snd_module_status.patch"

diff -ru dev/sound/pci.old/als4000.c dev/sound/pci/als4000.c
--- dev/sound/pci.old/als4000.c	Sun Sep  7 05:14:58 2003
+++ dev/sound/pci/als4000.c	Fri Nov  7 18:59:42 2003
@@ -818,7 +818,7 @@
 	pcm_addchan(dev, PCMDIR_PLAY, &alspchan_class, sc);
 	pcm_addchan(dev, PCMDIR_REC,  &alsrchan_class, sc);
 
-	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld",
+	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld kld snd_als4000",
 		 rman_get_start(sc->reg), rman_get_start(sc->irq));
 	pcm_setstatus(dev, status);
 	return 0;
diff -ru dev/sound/pci.old/au88x0.c dev/sound/pci/au88x0.c
--- dev/sound/pci.old/au88x0.c	Wed Oct 22 00:55:50 2003
+++ dev/sound/pci/au88x0.c	Fri Nov  7 19:00:03 2003
@@ -529,7 +529,7 @@
 	struct au88x0_info *aui;
 
 	aui = pcm_getdevinfo(dev);
-	snprintf(status, sizeof status, "at %s 0x%lx irq %ld",
+	snprintf(status, sizeof status, "at %s 0x%lx irq %ld kld snd_au88x0",
 	    (aui->aui_regtype == SYS_RES_IOPORT)? "io" : "memory",
 	    rman_get_start(aui->aui_reg), rman_get_start(aui->aui_irq));
 	pcm_setstatus(dev, status);
diff -ru dev/sound/pci.old/aureal.c dev/sound/pci/aureal.c
--- dev/sound/pci.old/aureal.c	Sat Sep 13 21:09:21 2003
+++ dev/sound/pci/aureal.c	Fri Nov  7 19:01:10 2003
@@ -647,7 +647,7 @@
 		goto bad;
 	}
 
-	snprintf(status, SND_STATUSLEN, "at %s 0x%lx irq %ld",
+	snprintf(status, SND_STATUSLEN, "at %s 0x%lx irq %ld kld snd_aureal",
 		 (type[0] == SYS_RES_IOPORT)? "io" : "memory",
 		 rman_get_start(reg[0]), rman_get_start(irq));
 
diff -ru dev/sound/pci.old/cmi.c dev/sound/pci/cmi.c
--- dev/sound/pci.old/cmi.c	Fri Oct 24 23:49:03 2003
+++ dev/sound/pci/cmi.c	Fri Nov  7 19:01:19 2003
@@ -898,7 +898,7 @@
 	pcm_addchan(dev, PCMDIR_PLAY, &cmichan_class, sc);
 	pcm_addchan(dev, PCMDIR_REC, &cmichan_class, sc);
 
-	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld",
+	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld kld snd_cmi",
 		 rman_get_start(sc->reg), rman_get_start(sc->irq));
 	pcm_setstatus(dev, status);
 
diff -ru dev/sound/pci.old/cs4281.c dev/sound/pci/cs4281.c
--- dev/sound/pci.old/cs4281.c	Sun Sep  7 05:14:58 2003
+++ dev/sound/pci/cs4281.c	Fri Nov  7 19:01:43 2003
@@ -858,7 +858,7 @@
     pcm_addchan(dev, PCMDIR_PLAY, &cs4281chan_class, sc);
     pcm_addchan(dev, PCMDIR_REC, &cs4281chan_class, sc);
 
-    snprintf(status, SND_STATUSLEN, "at %s 0x%lx irq %ld",
+    snprintf(status, SND_STATUSLEN, "at %s 0x%lx irq %ld kld snd_cs4281",
 	     (sc->regtype == SYS_RES_IOPORT)? "io" : "memory",
 	     rman_get_start(sc->reg), rman_get_start(sc->irq));
     pcm_setstatus(dev, status);
diff -ru dev/sound/pci.old/csapcm.c dev/sound/pci/csapcm.c
--- dev/sound/pci.old/csapcm.c	Sun Sep  7 05:14:58 2003
+++ dev/sound/pci/csapcm.c	Fri Nov  7 19:02:10 2003
@@ -788,7 +788,7 @@
 		return (ENXIO);
 	}
 
-	snprintf(status, SND_STATUSLEN, "at irq %ld", rman_get_start(resp->irq));
+	snprintf(status, SND_STATUSLEN, "at irq %ld kld snd_csa", rman_get_start(resp->irq));
 
 	/* Enable interrupt. */
 	if (snd_setup_intr(dev, resp->irq, INTR_MPSAFE, csa_intr, csa, &csa->ih)) {
diff -ru dev/sound/pci.old/ds1.c dev/sound/pci/ds1.c
--- dev/sound/pci.old/ds1.c	Sun Sep  7 05:14:58 2003
+++ dev/sound/pci/ds1.c	Fri Nov  7 19:02:33 2003
@@ -996,7 +996,7 @@
 		goto bad;
 	}
 
-	snprintf(status, SND_STATUSLEN, "at memory 0x%lx irq %ld",
+	snprintf(status, SND_STATUSLEN, "at memory 0x%lx irq %ld kld snd_ds1",
 		 rman_get_start(sc->reg), rman_get_start(sc->irq));
 
 	if (pcm_register(dev, sc, DS1_CHANS, 2))
diff -ru dev/sound/pci.old/emu10k1.c dev/sound/pci/emu10k1.c
--- dev/sound/pci.old/emu10k1.c	Sat Sep 13 21:09:21 2003
+++ dev/sound/pci/emu10k1.c	Fri Nov  7 19:02:48 2003
@@ -1517,7 +1517,7 @@
 		goto bad;
 	}
 
-	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld", rman_get_start(sc->reg), rman_get_start(sc->irq));
+	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld kld snd_emu10k1", rman_get_start(sc->reg), rman_get_start(sc->irq));
 
 	if (pcm_register(dev, sc, EMU_CHANS, gotmic ? 3 : 2)) goto bad;
 	for (i = 0; i < EMU_CHANS; i++)
diff -ru dev/sound/pci.old/es137x.c dev/sound/pci/es137x.c
--- dev/sound/pci.old/es137x.c	Sat Sep 13 21:09:21 2003
+++ dev/sound/pci/es137x.c	Fri Nov  7 19:03:01 2003
@@ -924,7 +924,7 @@
 		goto bad;
 	}
 
-	snprintf(status, SND_STATUSLEN, "at %s 0x%lx irq %ld",
+	snprintf(status, SND_STATUSLEN, "at %s 0x%lx irq %ld kld snd_es137x",
 		 (es->regtype == SYS_RES_IOPORT)? "io" : "memory",
 		 rman_get_start(es->reg), rman_get_start(es->irq));
 
diff -ru dev/sound/pci.old/fm801.c dev/sound/pci/fm801.c
--- dev/sound/pci.old/fm801.c	Sun Sep  7 05:14:58 2003
+++ dev/sound/pci/fm801.c	Fri Nov  7 19:03:20 2003
@@ -638,7 +638,7 @@
 		goto oops;
 	}
 
-	snprintf(status, 64, "at %s 0x%lx irq %ld",
+	snprintf(status, 64, "at %s 0x%lx irq %ld kld snd_fm801",
 		(fm801->regtype == SYS_RES_IOPORT)? "io" : "memory",
 		rman_get_start(fm801->reg), rman_get_start(fm801->irq));
 
diff -ru dev/sound/pci.old/ich.c dev/sound/pci/ich.c
--- dev/sound/pci.old/ich.c	Wed Oct 22 00:55:50 2003
+++ dev/sound/pci/ich.c	Fri Nov  7 19:03:32 2003
@@ -761,7 +761,7 @@
 	if (sc->hasmic)
 		pcm_addchan(dev, PCMDIR_REC, &ichchan_class, sc);	/* record mic */
 
-	snprintf(status, SND_STATUSLEN, "at io 0x%lx, 0x%lx irq %ld bufsz %u",
+	snprintf(status, SND_STATUSLEN, "at io 0x%lx, 0x%lx irq %ld bufsz %u kld snd_ich",
 		 rman_get_start(sc->nambar), rman_get_start(sc->nabmbar), rman_get_start(sc->irq), sc->bufsz);
 
 	pcm_setstatus(dev, status);
diff -ru dev/sound/pci.old/maestro.c dev/sound/pci/maestro.c
--- dev/sound/pci.old/maestro.c	Sat Sep 13 21:09:21 2003
+++ dev/sound/pci/maestro.c	Fri Nov  7 19:03:46 2003
@@ -1033,7 +1033,7 @@
 	ess->irqid = irqid;
 	ess->ih = ih;
 
-	snprintf(status, SND_STATUSLEN, "at I/O port 0x%lx irq %ld",
+	snprintf(status, SND_STATUSLEN, "at I/O port 0x%lx irq %ld kld snd_maestro",
 	    rman_get_start(reg), rman_get_start(irq));
 
 	if (pcm_register(dev, ess, AGG_MAXPLAYCH, 1))
diff -ru dev/sound/pci.old/maestro3.c dev/sound/pci/maestro3.c
--- dev/sound/pci.old/maestro3.c	Sun Sep  7 05:14:58 2003
+++ dev/sound/pci/maestro3.c	Fri Nov  7 19:04:05 2003
@@ -1189,7 +1189,7 @@
 			goto bad;
 		}
 	}
- 	snprintf(status, SND_STATUSLEN, "at %s 0x%lx irq %ld",
+ 	snprintf(status, SND_STATUSLEN, "at %s 0x%lx irq %ld kld snd_maestro3",
 		 (sc->regtype == SYS_RES_IOPORT)? "io" : "memory",
 		 rman_get_start(sc->reg), rman_get_start(sc->irq));
 	if (pcm_setstatus(dev, status)) {
diff -ru dev/sound/pci.old/neomagic.c dev/sound/pci/neomagic.c
--- dev/sound/pci.old/neomagic.c	Sat Sep 13 21:09:22 2003
+++ dev/sound/pci/neomagic.c	Fri Nov  7 19:04:24 2003
@@ -704,7 +704,7 @@
 		goto bad;
 	}
 
-	snprintf(status, SND_STATUSLEN, "at memory 0x%lx, 0x%lx irq %ld",
+	snprintf(status, SND_STATUSLEN, "at memory 0x%lx, 0x%lx irq %ld kld snd_neomagic",
 		 rman_get_start(sc->buf), rman_get_start(sc->reg),
 		 rman_get_start(sc->irq));
 
diff -ru dev/sound/pci.old/solo.c dev/sound/pci/solo.c
--- dev/sound/pci.old/solo.c	Sat Sep 13 21:09:22 2003
+++ dev/sound/pci/solo.c	Fri Nov  7 19:04:37 2003
@@ -997,7 +997,7 @@
 		goto no;
     	}
 
-    	snprintf(status, SND_STATUSLEN, "at io 0x%lx,0x%lx,0x%lx irq %ld",
+    	snprintf(status, SND_STATUSLEN, "at io 0x%lx,0x%lx,0x%lx irq %ld kld snd_solo",
     	     	rman_get_start(sc->io), rman_get_start(sc->sb), rman_get_start(sc->vc),
 		rman_get_start(sc->irq));
 
diff -ru dev/sound/pci.old/t4dwave.c dev/sound/pci/t4dwave.c
--- dev/sound/pci.old/t4dwave.c	Sat Sep 13 21:09:22 2003
+++ dev/sound/pci/t4dwave.c	Fri Nov  7 19:04:48 2003
@@ -860,7 +860,7 @@
 		goto bad;
 	}
 
-	snprintf(status, 64, "at io 0x%lx irq %ld",
+	snprintf(status, 64, "at io 0x%lx irq %ld kld snd_t4dwave",
 		 rman_get_start(tr->reg), rman_get_start(tr->irq));
 
 	if (pcm_register(dev, tr, TR_MAXPLAYCH, 1)) goto bad;
diff -ru dev/sound/pci.old/via8233.c dev/sound/pci/via8233.c
--- dev/sound/pci.old/via8233.c	Sun Sep  7 05:14:58 2003
+++ dev/sound/pci/via8233.c	Fri Nov  7 19:04:59 2003
@@ -843,7 +843,7 @@
 		ac97_setextmode(via->codec, ext);
 	}
 
-	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld", 
+	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld kld snd_via8233", 
 		 rman_get_start(via->reg), rman_get_start(via->irq));
 
 	/* Register */
diff -ru dev/sound/pci.old/via82c686.c dev/sound/pci/via82c686.c
--- dev/sound/pci.old/via82c686.c	Sun Sep  7 05:14:58 2003
+++ dev/sound/pci/via82c686.c	Fri Nov  7 19:05:12 2003
@@ -572,7 +572,7 @@
 	if (bus_dmamap_load(via->sgd_dmat, via->sgd_dmamap, via->sgd_table, NSEGS * sizeof(struct via_dma_op), dma_cb, via, 0))
 		goto bad;
 
-	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld", rman_get_start(via->reg), rman_get_start(via->irq));
+	snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld kld snd_via82c686", rman_get_start(via->reg), rman_get_start(via->irq));
 
 	/* Register */
 	if (pcm_register(dev, via, 1, 1)) goto bad;
diff -ru dev/sound/pci.old/vibes.c dev/sound/pci/vibes.c
--- dev/sound/pci.old/vibes.c	Sun Sep  7 05:14:58 2003
+++ dev/sound/pci/vibes.c	Fri Nov  7 19:05:26 2003
@@ -878,7 +878,7 @@
         pcm_addchan(dev, PCMDIR_PLAY, &svpchan_class, sc);
         pcm_addchan(dev, PCMDIR_REC,  &svrchan_class, sc);
 
-        snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld",
+        snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld kld snd_vibes",
                  rman_get_start(sc->enh_reg),  rman_get_start(sc->irq));
         pcm_setstatus(dev, status);
 

--69pVuxX8awAiJ7fD--
>Release-Note:
>Audit-Trail:
>Unformatted:
 --69pVuxX8awAiJ7fD
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 


More information about the freebsd-bugs mailing list