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