Maestro3 and 5.3-beta5

Pyun YongHyeon yongari at kt-is.co.kr
Wed Sep 22 19:41:13 PDT 2004


Since it worked before, it sounds like DMA buffer allocation issue.
Can you try attached patch? It doesn't fix your issue but it checks
return code correctly and we can know whether DMA buffer allocation
was successful or not.

If DMA buffer allocation was successful I have no idea. If you see
DMA buffer allocation failure you probably can workaround the
issue like this:

        Step 1. Make static kernel with your sound drivers. 
        Step 2. add vm.old_contigmalloc=1 in /etc/sysctl.conf

If you needed step2, maestro3 driver needs rewriting for its memory
management code.

Cheers,
Pyun YongHyeon
-- 
Pyun YongHyeon <http://www.kr.freebsd.org/~yongari>
-------------- next part --------------
--- sys/dev/sound/pci/maestro3.c.orig	Mon Jul 26 20:32:39 2004
+++ sys/dev/sound/pci/maestro3.c	Thu Sep 23 11:34:57 2004
@@ -383,7 +383,7 @@
 	ch->channel = c;
 	ch->fmt = AFMT_U8;
 	ch->spd = DSP_DEFAULT_SPEED;
-	if (sndbuf_alloc(ch->buffer, sc->parent_dmat, sc->bufsz) == -1) {
+	if (sndbuf_alloc(ch->buffer, sc->parent_dmat, sc->bufsz) != 0) {
 		device_printf(sc->dev, "m3_pchan_init chn_allocbuf failed\n");
 		return NULL;
 	}
@@ -663,7 +663,7 @@
 	ch->channel = c;
 	ch->fmt = AFMT_U8;
 	ch->spd = DSP_DEFAULT_SPEED;
-	if (sndbuf_alloc(ch->buffer, sc->parent_dmat, sc->bufsz) == -1) {
+	if (sndbuf_alloc(ch->buffer, sc->parent_dmat, sc->bufsz) != 0) {
 		device_printf(sc->dev, "m3_rchan_init chn_allocbuf failed\n");
 		return NULL;
 	}


More information about the freebsd-multimedia mailing list