At Tue, 5 Sep 2000 10:32:21 -0400 (EDT), Viren R.Shah <[EMAIL PROTECTED]> 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-  [EMAIL PROTECTED]  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 [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to