From owner-freebsd-current Tue Dec 14 11: 8:55 1999 Delivered-To: freebsd-current@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id C1D5F14F9E; Tue, 14 Dec 1999 11:08:42 -0800 (PST) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.1/8.9.1) with ESMTP id OAA02885; Tue, 14 Dec 1999 14:08:40 -0500 (EST) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.9.3/8.9.1) id OAA13677; Tue, 14 Dec 1999 14:08:10 -0500 (EST) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Tue, 14 Dec 1999 14:08:09 -0500 (EST) To: freebsd-current@freebsd.org Cc: tanimura@freebsd.org Subject: ESS1688 newpcm support, soundblaster panics at boot X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Message-ID: <14422.37057.798245.620736@grasshopper.cs.duke.edu> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I have an old, wheezing Dell Lattitude LM with an ESS1688 sound chip. (specs at http://support.dell.com/docs/systems/pespmmx/specs.htm) I have managed to get newpcm to find the 1688 via 'options PNPBIOS' and the following patch: Index: sys/dev/sound/isa/sbc.c =================================================================== RCS file: /home/ncvs/src/sys/dev/sound/isa/sbc.c,v retrieving revision 1.7 diff -u -r1.7 sbc.c --- sbc.c 1999/12/12 02:30:19 1.7 +++ sbc.c 1999/12/14 04:47:41 @@ -187,6 +187,7 @@ {0x01100001, "Avance Asound 110"}, {0x01200001, "Avance Logic ALS120"}, + {0x02017316, "ESS ES1688"}, /* ESS1688 */ {0x68187316, "ESS ES1868"}, /* ESS1868 */ {0x69187316, "ESS ES1869"}, /* ESS1869 */ {0xacb0110e, "ESS ES1869 (Compaq OEM)"}, However, the machine now panics on boot in sbchan_init(), at line 821 of sb.c with a page fault on access to virtual address 0x14: 810 static void * 811 sbchan_init(void *devinfo, snd_dbuf *b, pcm_channel *c, int dir) 812 { 813 struct sb_info *sb = devinfo; 814 struct sb_chinfo *ch = (dir == PCMDIR_PLAY)? &sb->pch : &sb->rch; 815 816 ch->parent = sb; 817 ch->channel = c; 818 ch->buffer = b; 819 ch->buffer->bufsize = DSP_BUFFSIZE; 820 if (chn_allocbuf(ch->buffer, sb->parent_dmat) == -1) return NULL; 821 ch->buffer->chan = (dir == PCMDIR_PLAY)? rman_get_start(sb->drq2) 822 : rman_get_start(sb->drq1); 823 return ch; 824 } I strongly suspect that this is due to the fact that this card has only 1 dma channel. I suspect the panic is caused by rman_get_start(sb->drq2) when sb->drq2 is null. Does newpcm even support simplex operations on soundblaster chips? I ask because I simply could not get simplex operations to work on my wss cards, so I suspect that simplex operation is simply not well tested. Can anybody who is more familiar with newpcm please point me in the right direction? Thanks, Drew ------------------------------------------------------------------------------ Andrew Gallatin, Sr Systems Programmer http://www.cs.duke.edu/~gallatin Duke University Email: gallatin@cs.duke.edu Department of Computer Science Phone: (919) 660-6590 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message