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>