Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Sep 2000 08:30:48 -0700
From:      housel@acm.org (Peter S. Housel)
To:        viren@rstcorp.com
Cc:        freebsd-current@FreeBSD.ORG, matey@cis.ohio-state.edu
Subject:   Re: problems with aureal soundcard: kernel fault when playing mp3s
Message-ID:  <mu9d7iig8k7.wl@cx281057-a.irvn1.occa.home.com>
In-Reply-To: In your message of "Tue, 5 Sep 2000 10:32:21 -0400 (EDT)" <14773.1013.154601.647909@jabberwock.rstcorp.com>
References:  <14773.1013.154601.647909@jabberwock.rstcorp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
At Tue, 5 Sep 2000 10:32:21 -0400 (EDT), Viren R.Shah <viren@rstcorp.com> wrote:
> [Alexander, I'm Cc:ing you on this just in case you have heard of
> anyone else having similar problems with Aureal cards with recent
> -currents]
> 
> My last good kernel was from aug 14. On a kernel from 09/05, I get a
> page fault as soon as I try to play mp3s using mpg123.
> 
> Note that I have an Aureal Vortex 8830, so I have to use the linux
> drivers to get the device working
> (http://www.cis.ohio-state.edu/~matey/au88x0/) so this might just be a
> problem with interactions between the linux .o files and kernel data
> structures. The soundcard worked fine using the linux drivers on a
> -current from August 14. I'm wondering if anything changed in the pcm
> code since then. 
> 
> Here's the page fault in DDB. I have a debug kernel if anyone needs
> more info.
> 
> 
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x1000001b
> fault code            = supervisor read, page not present

The pcm interfaces did change.  The following patch fixes the au88x0
driver for me.

Cheers,
-Peter S. Housel-  housel@acm.org  http://members.home.com/housel/

--- au88x0.c	Fri May 26 22:12:56 2000
+++ /usr/src/sys/dev/sound/pci/au88x0.c	Mon Sep  4 23:17:05 2000
@@ -200,17 +200,23 @@
 static int	 auchan_getptr(void *data);
 static pcmchan_caps *auchan_getcaps(void *data);
 
-static pcmchan_caps au_playcaps = {
-	4000, 48000,
-	AFMT_STEREO | AFMT_MU_LAW | AFMT_A_LAW | AFMT_U8 | AFMT_S16_LE,
-	AFMT_STEREO | AFMT_S16_LE
+static u_int32_t au_playfmt[] = {
+	AFMT_U8,
+	AFMT_STEREO | AFMT_U8,
+	AFMT_S16_LE,
+	AFMT_STEREO | AFMT_S16_LE,
+	0
 };
+static pcmchan_caps au_playcaps = {4000, 48000, au_playfmt, 0};
 
-static pcmchan_caps au_reccaps = {
-	4000, 48000,
-	AFMT_STEREO | AFMT_MU_LAW | AFMT_A_LAW | AFMT_U8 | AFMT_S16_LE,
-	AFMT_STEREO | AFMT_S16_LE
+static u_int32_t au_recfmt[] = {
+	AFMT_U8,
+	AFMT_STEREO | AFMT_U8,
+	AFMT_S16_LE,
+	AFMT_STEREO | AFMT_S16_LE,
+	0
 };
+static pcmchan_caps au_reccaps = {4000, 48000, au_recfmt, 0};
 
 static pcm_channel au_chantemplate = {
 	auchan_init,
@@ -221,6 +227,14 @@
 	auchan_trigger,
 	auchan_getptr,
 	auchan_getcaps,
+	NULL, 			/* free */
+	NULL, 			/* nop1 */
+	NULL, 			/* nop2 */
+	NULL, 			/* nop3 */
+	NULL, 			/* nop4 */
+	NULL, 			/* nop5 */
+	NULL, 			/* nop6 */
+	NULL, 			/* nop7 */
 };
 
 
@@ -232,6 +246,7 @@
 static snd_mixer au_mixtemplate = {
 	"Aureal Vortex 88x0 mixer",
 	aumix_init,
+	NULL,
 	aumix_set,
 	aumix_setrecsrc,
 };
@@ -846,7 +861,7 @@
 	au_mixer = (snd_mixer *)malloc(sizeof(*au_mixer), M_DEVBUF, M_NOWAIT);
 	if (au_mixer == NULL) goto bad;
 	bcopy(&au_mixtemplate, au_mixer, sizeof(au_mixtemplate));
-	mixer_init(d, au_mixer, au);
+	mixer_init(dev, au_mixer, au);
 
 	if (bus_dma_tag_create(/*parent*/NULL, /*alignment*/2, /*boundary*/0,
 		/*lowaddr*/BUS_SPACE_MAXADDR_32BIT,


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?mu9d7iig8k7.wl>