summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/sound
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1998-10-22 10:34:11 +0000
committerbde <bde@FreeBSD.org>1998-10-22 10:34:11 +0000
commit8bfaa707a64fee18f43f787a8873970c96bfa251 (patch)
treee7081c1a49ab2a0dc20cfdacf96bd59e7fe65fd7 /sys/i386/isa/sound
parent495233d3915ca022754dc25cee598a1477ba632a (diff)
downloadFreeBSD-src-8bfaa707a64fee18f43f787a8873970c96bfa251.zip
FreeBSD-src-8bfaa707a64fee18f43f787a8873970c96bfa251.tar.gz
The previous change was much too simple to actually compensate for
braindamage in sound driver confiruration. Attempt to only reference interrupt handlers if their driver is configured.
Diffstat (limited to 'sys/i386/isa/sound')
-rw-r--r--sys/i386/isa/sound/soundcard.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/i386/isa/sound/soundcard.c b/sys/i386/isa/sound/soundcard.c
index 43649c0..475c16d 100644
--- a/sys/i386/isa/sound/soundcard.c
+++ b/sys/i386/isa/sound/soundcard.c
@@ -401,23 +401,37 @@ sndattach(struct isa_device * dev)
char *dname;
void *tmp;
- /* XXX this is probably incomplete. */
+ /*
+ * Associate interrupt handlers with devices. XXX this may be incomplete.
+ */
dname = dev->id_driver->name;
+#if defined(CONFIG_AD1848)
if (strcmp(dname, "css") == 0 || strcmp(dname, "gusxvi") == 0 ||
strcmp(dname, "mss") == 0)
dev->id_ointr = adintr;
+#endif
+#ifdef CONFIG_GUS
if (strcmp(dname, "gus") == 0)
dev->id_ointr = gusintr;
+#endif
+#ifdef CONFIG_PAS
if (strcmp(dname, "pas") == 0)
dev->id_ointr = pasintr;
+#endif
+#if NSB > 0 && (defined(CONFIG_MIDI) || defined(CONFIG_AUDIO))
if (strcmp(dname, "sb") == 0)
dev->id_ointr = sbintr;
+#endif
if (strcmp(dname, "sscape_mss") == 0)
dev->id_ointr = sndintr;
+#if NSSCAPE > 0
if (strcmp(dname, "sscape") == 0 || strcmp(dname, "trix") == 0)
dev->id_ointr = sscapeintr;
+#endif
+#if NSND > 0
if (strcmp(dname, "uart0") == 0)
dev->id_ointr = m6850intr;
+#endif
unit = driver_to_voxunit(dev->id_driver);
hw_config.io_base = dev->id_iobase;
OpenPOWER on IntegriCloud