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>