From owner-freebsd-multimedia Sun Aug 23 10:12:15 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id KAA03621 for freebsd-multimedia-outgoing; Sun, 23 Aug 1998 10:12:15 -0700 (PDT) (envelope-from owner-freebsd-multimedia@FreeBSD.ORG) Received: from wireless.4d.net (wireless.4d.net [207.137.156.159]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id KAA03616 for ; Sun, 23 Aug 1998 10:12:14 -0700 (PDT) (envelope-from bad@uhf.wireless.net) Received: from uhf.wireless.net (uhf.wireless.net [207.137.157.140]) by wireless.4d.net (8.8.7/8.8.4) with ESMTP id KAA11315; Sun, 23 Aug 1998 10:20:48 -0700 (PDT) Received: from localhost (bad@localhost) by uhf.wireless.net (8.8.8/8.8.7) with SMTP id KAA01159; Sun, 23 Aug 1998 10:11:11 -0700 (PDT) Date: Sun, 23 Aug 1998 10:11:08 -0700 (PDT) From: Bernie Doehner To: Jos Backus cc: freebsd-multimedia@FreeBSD.ORG Subject: Re: AudioTrix Pro detected but produces no sound :-( In-Reply-To: <19980823184000.A27965@hal.mpn.cp.philips.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-multimedia@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org What OS version are you running? I have found BIG problems with the stock August 4 SNAP sound driver and my OPTI931 card (problems related to improper flag setting, and improper I/O handling - see below). June 7th Luigi driver works even worse. I have submited my suggested patch to Luigi for evaluation but I think he's been very busy. See below for my patch with reference to Aug 4th SNAP shipped sound driver... Note: I have only fixed/tested under Opti931. Luigi reminded me that Trix and others might need to be "fixed" to and that I didn't address them (kinda hard since I don't understand this stuff very well and I can only test on the 931). Bernie The "patch": diff -ru snd/dmabuf.c snd.snap/dmabuf.c --- snd/dmabuf.c Sat Feb 21 09:51:39 1998 +++ snd.snap/dmabuf.c Mon Aug 17 11:42:05 1998 @@ -270,10 +270,12 @@ else timeout = 1 ; ret = tsleep( (caddr_t)b, PRIBIO|PCATCH, "dspwr", timeout); - if (ret == EINTR || ret == ERESTART) + /* if (ret == EINTR || ret == ERESTART)*/ + if (ret == EINTR ) d->flags |= SND_F_ABORTING ; splx(s); - if (ret == EINTR) +/* if (ret == EINTR) */ + if (ret == EINTR || ret == ERESTART) break ; continue; } @@ -459,8 +461,9 @@ l &= DMA_ALIGN_MASK ; /* realign sizes */ if (l != b->dl) { /* for any reason, size has changed. Stop and restart */ + if (b->dl >0 ) + d->callback(d, SND_CB_RD | SND_CB_STOP ); b->dl = l ; - d->callback(d, SND_CB_RD | SND_CB_STOP ); d->callback(d, SND_CB_RD | SND_CB_START ); } } else { @@ -553,10 +556,12 @@ else timeout = 1; /* maybe data will be ready earlier */ ret = tsleep( (caddr_t)b, PRIBIO | PCATCH , "dsprd", timeout ) ; - if (ret == EINTR || ret == ERESTART) +/* if (ret == EINTR || ret == ERESTART) */ + if (ret == EINTR ) d->flags |= SND_F_ABORTING ; splx(s); - if (ret == EINTR) +/* if (ret == EINTR) */ + if (ret == EINTR || ret == ERESTART) break ; continue; } @@ -593,7 +598,7 @@ s = spltty(); /* no interrupts here ... */ d->flags &= ~SND_F_READING ; if (d->flags & SND_F_ABORTING) { - d->flags |= ~SND_F_ABORTING; + d->flags &= ~SND_F_ABORTING; splx(s); dsp_rdabort(d, 1 /* restart */); /* XXX return EINTR ? */ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-multimedia" in the body of the message