From owner-freebsd-multimedia Sun Aug 24 14:36:49 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id OAA23033 for multimedia-outgoing; Sun, 24 Aug 1997 14:36:49 -0700 (PDT) Received: from rah.star-gate.com (rah.star-gate.com [204.188.121.18]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id OAA23027 for ; Sun, 24 Aug 1997 14:36:46 -0700 (PDT) Received: from rah.star-gate.com (localhost.star-gate.com [127.0.0.1]) by rah.star-gate.com (8.8.7/8.8.5) with ESMTP id OAA00994; Sun, 24 Aug 1997 14:36:43 -0700 (PDT) Message-Id: <199708242136.OAA00994@rah.star-gate.com> X-Mailer: exmh version 2.0gamma 1/27/96 To: Kyle Mestery cc: freebsd-multimedia@FreeBSD.ORG Subject: Re: Xquake and sound dont work In-reply-to: Your message of "Sun, 24 Aug 1997 14:00:33 CDT." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 24 Aug 1997 14:36:43 -0700 From: Amancio Hasty Sender: owner-freebsd-multimedia@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Hi, Sorry about that I discovered the problem recently here with my gus pnp because the testing was done with my SB16 PnP since that has been the card giving us all the headaches on the guspnp driver. The problem is the isa_dma status provided with the sound driver it works fine with the sb16 however it breaks the gus pnp. I am going to hash out whats going with isa_dmastatus today and in fact started working on it this morning. Just have to learn exactly how the dma hardware works. The symptom is that with the current isa_dmastatus on guspnp16 the dma counter starts counting backwards however with the old isa_dmastatus the counting is ascending. Both drivers at least over here are doing 16bit dma transfers and calling the dma hardware in the exact the same way :( If you want your sound back change the reference in dmabuf.c from snd_isa_dmastatus to isa_dmastatus and replace the isa.c:isa_dmastatus with the enclosed one . Please SB people don't have to do this . Hopefully before the end of the day I will have a viable solution for both SB cards and GUS cards. int isa_dmastatus(int chan) { u_long phy = 0 ; u_long cnt = 0 ; u_long flags ; int waport; if ((dma_inuse & (1 << chan)) == 0) { printf("chan %d not acquired\n", chan); return -1 ; } if (((dma_busy & (1 << chan)) == 0) && (dma_auto_mode & (1 << chan)) == 0 ) { printf("chan %d not busy\n", chan); return -2 ; } flags = splhigh(); if ((chan & 4) == 0) { /* 8-bit channel */ outb(DMA1_FFC, 0); waport = DMA1_CHN(chan); phy= inb(waport) + (inb(waport) <<8) + (inb(dmapageport[chan]) <<16 ); cnt = inb(waport+1) + (inb(waport+1)<<8) +1; cnt &= 0xffff ; } else { outb(DMA2_FFC, 0); waport = DMA2_CHN(chan - 4); phy= inb(waport) + (inb(waport) <<8) + (inb(dmapageport[chan]) <<16 ); cnt = inb(waport+1) + (inb(waport+1)<<8) + 1; phy <<= 1; cnt <<= 1; cnt &= 0x1ffff ; } splx(flags); return cnt ; } >From The Desk Of Kyle Mestery : > I just compiled a kernel built from sources of 8-24-97 at 1:30PM Central > time, and now I have lost sound with xquake. I have some sound, but it is > crackly, and low volume. Does this have to do with the recent > isa_dmastatus stuff that has been happening? I am using guspnp16. > > Kyle Mestery > StorageTek's Network Systems Group > 7600 Boone Ave. N., Brooklyn Park, MN 55428 > mesteka@anubis.network.com, mestery@winternet.com >