summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authornate <nate@FreeBSD.org>1998-04-20 15:15:20 +0000
committernate <nate@FreeBSD.org>1998-04-20 15:15:20 +0000
commit26ef0a3053225f5a76aec92b63eeec20d22d5eaf (patch)
treee82faef78ce22349ba903d47d80713ce9564cb2d /sys
parentd8a676d94eac455890ffebe9cead1d9842c71fbf (diff)
downloadFreeBSD-src-26ef0a3053225f5a76aec92b63eeec20d22d5eaf.zip
FreeBSD-src-26ef0a3053225f5a76aec92b63eeec20d22d5eaf.tar.gz
- Only poll the PCIC controller for insertion/removal events if the
controller hasn't been assigned an IRQ.
Diffstat (limited to 'sys')
-rw-r--r--sys/pccard/pcic.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/pccard/pcic.c b/sys/pccard/pcic.c
index 04efe59..584a375 100644
--- a/sys/pccard/pcic.c
+++ b/sys/pccard/pcic.c
@@ -795,7 +795,7 @@ pcic_probe(void)
pcic98_probe_end:
}
#endif /* PC98 */
- if (validslots)
+ if (validslots && pcic_irq <= 0)
pcictimeout_ch = timeout(pcictimeout, 0, hz/2);
return(validslots);
}
@@ -1051,8 +1051,9 @@ pcic_disable(struct slot *slt)
}
/*
- * PCIC timer, it seems that we lose interrupts sometimes
- * so poll just in case...
+ * PCIC timer. If the controller doesn't have a free IRQ to use
+ * or if interrupt steering doesn't work, poll the controller for
+ * insertion/removal events.
*/
static void
pcictimeout(void *chan)
OpenPOWER on IntegriCloud