Subject: Debugging soundblaster compatability
To: None <current-users@netbsd.org>
From: Peter Seebach <seebs@plethora.net>
List: current-users
Date: 08/12/2001 22:37:09
My laptop has an ESS "Allegro-1" chipset, which is driven (under FreeBSD)
by the Maestro3 driver.  I noticed that the card supposedly has "DOS
legacy compatability", so I have been trying to get that to work, since it's
easier than porting a driver (and the driver has a big chunk of GPL'd code
to download to a DSP...).

I haven't quite got it.  I'm tweaking the configuration on the Allegro to
try to enable soundblaster compatability, and the soundblaster driver probes
the card successfully.

---
sb0 at isa0 port 0x220-0x237 irq 10 drq 1: dsp v3.02
audio0 at sb0: half duplex, mmap, independent
midi0 at sb0: SB MIDI UART
opl0 at sb0: model OPL3
midi at opl0 not configured
---

Unfortunately, actual attempts to play anything fail:
$ audioplay file.au
[long pause]
audioplay: audio drain ioctl failed: Resource temporarily unavailable

I'm not sure what else I should experiment with.  My thinking is that,
while a "real" driver would be a great thing (and I'm sending a PCI card
using the same chipset to someone who wants to work on one), getting audio
out of my laptop *now* would be fun too.

I'm going to try other drivers (in particular, "ess0", which looks like it
may be a better match).  Any other suggestions for ways in which I can debug
the gizmo?

BTW, the "put it in compatability mode" code I'm using is based on ESS docs,
and should be correctly setting the irq and port addresses.  Is there any way,
other than trying "audioplay" all the time, to confirm or deny the IRQ setting
for a device?

Annoyingly, this laptop doesn't let me specify reserved IRQ's, so I can't just
clear other IRQ's and try them.

-s