diff options
author | dg <dg@FreeBSD.org> | 1995-05-12 22:39:40 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1995-05-12 22:39:40 +0000 |
commit | e6b57c33e6a9fb351159f1716b81f1a2cbc3102e (patch) | |
tree | e00c7663815c196ae3dd1146e6af0e46187b262c /sys/i386/isa | |
parent | 5e587399a6444989a8f3daa1c9e76a9cc0e0486a (diff) | |
download | FreeBSD-src-e6b57c33e6a9fb351159f1716b81f1a2cbc3102e.zip FreeBSD-src-e6b57c33e6a9fb351159f1716b81f1a2cbc3102e.tar.gz |
Only use card's soft-configured irq if no irq was specified in the kernel
config file. This should fix a number of complaints regarding the auto
detection behavior.
Diffstat (limited to 'sys/i386/isa')
-rw-r--r-- | sys/i386/isa/if_ed.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/i386/isa/if_ed.c b/sys/i386/isa/if_ed.c index 50dab23..6898dfd 100644 --- a/sys/i386/isa/if_ed.c +++ b/sys/i386/isa/if_ed.c @@ -13,7 +13,7 @@ * the SMC Elite Ultra (8216), the 3Com 3c503, the NE1000 and NE2000, * and a variety of similar clones. * - * $Id: if_ed.c,v 1.69 1995/04/12 20:47:45 wollman Exp $ + * $Id: if_ed.c,v 1.70 1995/05/04 07:56:23 davidg Exp $ */ #include "ed.h" @@ -503,9 +503,10 @@ ed_probe_WD80x3(isa_dev) (ED_WD_IRR_IR0 | ED_WD_IRR_IR1)) >> 5); /* - * Use what the board tells us. + * If no interrupt specified (or "?"), use what the board tells us. */ - isa_dev->id_irq = ed_intr_mask[iptr]; + if (isa_dev->id_irq <= 0) + isa_dev->id_irq = ed_intr_mask[iptr]; /* * Enable the interrupt. @@ -523,9 +524,10 @@ ed_probe_WD80x3(isa_dev) inb(isa_dev->id_iobase + ED_WD790_HWR) & ~ED_WD790_HWR_SWH); /* - * Use what the board tells us. + * If no interrupt specified (or "?"), use what the board tells us. */ - isa_dev->id_irq = ed_790_intr_mask[iptr]; + if (isa_dev->id_irq <= 0) + isa_dev->id_irq = ed_790_intr_mask[iptr]; /* * Enable interrupts. |