Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Dec 1999 14:08:09 -0500 (EST)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        freebsd-current@freebsd.org
Cc:        tanimura@freebsd.org
Subject:   ESS1688 newpcm support, soundblaster panics at boot
Message-ID:  <14422.37057.798245.620736@grasshopper.cs.duke.edu>

next in thread | raw e-mail | index | archive | help

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14422.37057.798245.620736>