diff options
author | phk <phk@FreeBSD.org> | 2002-09-03 11:22:13 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2002-09-03 11:22:13 +0000 |
commit | baf5e09769325c8052d162b3876f92ec50e473c5 (patch) | |
tree | eb2c4f82a3508d4a5d706a709412f0998e6f5c31 | |
parent | 3ab89715228e91e4632682c442fb2a6f4ff7956a (diff) | |
download | FreeBSD-src-baf5e09769325c8052d162b3876f92ec50e473c5.zip FreeBSD-src-baf5e09769325c8052d162b3876f92ec50e473c5.tar.gz |
Fix interrupt registration:
PUC devices live on pccard or pci so INTR_FAST is never really an option.
Don't try to register the interrupt as fast and don't allow the children
to do so either.
-rw-r--r-- | sys/dev/puc/puc.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/sys/dev/puc/puc.c b/sys/dev/puc/puc.c index 708239d..919c3dc5 100644 --- a/sys/dev/puc/puc.c +++ b/sys/dev/puc/puc.c @@ -159,15 +159,8 @@ puc_attach(device_t dev, const struct puc_device_description *desc) sc->irqres = res; sc->irqrid = rid; -#ifdef PUC_FASTINTR irq_setup = BUS_SETUP_INTR(device_get_parent(dev), dev, res, - INTR_TYPE_TTY | INTR_FAST, puc_intr, sc, &sc->intr_cookie); -#else - irq_setup = ENXIO; -#endif - if (irq_setup != 0) - irq_setup = BUS_SETUP_INTR(device_get_parent(dev), dev, res, - INTR_TYPE_TTY, puc_intr, sc, &sc->intr_cookie); + INTR_TYPE_TTY, puc_intr, sc, &sc->intr_cookie); if (irq_setup != 0) return (ENXIO); @@ -457,7 +450,8 @@ puc_setup_intr(device_t dev, device_t child, struct resource *r, int flags, int i; struct puc_softc *sc; -printf("puc_setup_intr()\n"); + if (flags & INTR_FAST) + return (ENXIO); sc = (struct puc_softc *)device_get_softc(dev); for (i = 0; PUC_PORT_VALID(sc->sc_desc, i); i++) { if (sc->sc_ports[i].dev == child) { @@ -479,7 +473,6 @@ puc_teardown_intr(device_t dev, device_t child, struct resource *r, int i; struct puc_softc *sc; -printf("puc_teardown_intr()\n"); sc = (struct puc_softc *)device_get_softc(dev); for (i = 0; PUC_PORT_VALID(sc->sc_desc, i); i++) { if (sc->sc_ports[i].dev == child) { |