Date: Sat, 14 Oct 1995 14:52:33 -0400 From: "Johanan L. Codona" <codona@planet.net> To: freebsd-current@FreeBSD.ORG Subject: kern/647 Sound cards fail to work Message-ID: <199510141852.OAA16645@rustic>
next in thread | raw e-mail | index | archive | help
Hi,
This is my first attempt to "pitch in" and find bugs on the list.
Since my soundcard (SB16) hasn't worked since 2.0, I thought I would
try to discover why.
My System:
I am running on a Pentium with 16 MB and the relevant part of my
config file is:
controller snd0
device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr
device sbxvi0 at isa? drq 5
device sbmidi0 at isa? port 0x330
device opl0 at isa? port 0x388
Note that this configuration works fine under DOS/Windows. (B-o)
The symptoms:
On sending a sound to any sound device (audio, dsp, dsp16), the first
part of the sound plays and then stops and the sending process hangs.
I suspect that the problem is that the interrupt handler never gets
called and the driver only plays one buffer of data. This is further
supported by noting that in isa/sound/sb_dsp.c the interrupt handler
is set and freed by calling the functions:
int sb_get_irq (void)
void sb_free_irq (void)
which in turn call
snd_set_irq_handler(sbc_irq, sbintr) and
snd_release_irq (sbc_irq).
It seems that isa/sound/soundcard.c just stubs out these functions:
int
snd_set_irq_handler (int interrupt_level, void(*hndlr)(int))
{
return 1;
}
void
snd_release_irq(int vect)
{
}
I haven't tried to fix this yet, but it seems that a call to
something like register_intr() is required.
Am I right, or am I missing something basic?
--
Johanan L. Codona
The Stekas Group
codona@planet.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199510141852.OAA16645>
