I forgot to add to commit message: Reported by: Ulrich Grey <usenet at ulrich-grey.de> Tested by: Ulrich Grey <usenet at ulrich-grey.de>
On Fri, Jun 3, 2016 at 1:05 PM, Svatopluk Kraus <s...@freebsd.org> wrote: > Author: skra > Date: Fri Jun 3 11:05:55 2016 > New Revision: 301266 > URL: https://svnweb.freebsd.org/changeset/base/301266 > > Log: > Postpone allocation of IRQ resource to the time when interrupt > controller devices are attached. This has already been done for > bus_setup_intr(). > > There was no doubt that if someone wants to setup an interrupt, > corresponding interrupt controller device must already be attached. > However, the same must be valid for allocation of an interrupt resource > unless the allocation is done blindly, without any information that > such interrupt even exists. While it was done this blind way before, > it won't be possible after next INTRNG change. > > Modified: > head/sys/arm/freescale/imx/imx6_anatop.c > > Modified: head/sys/arm/freescale/imx/imx6_anatop.c > ============================================================================== > --- head/sys/arm/freescale/imx/imx6_anatop.c Fri Jun 3 10:28:06 2016 > (r301265) > +++ head/sys/arm/freescale/imx/imx6_anatop.c Fri Jun 3 11:05:55 2016 > (r301266) > @@ -78,7 +78,6 @@ __FBSDID("$FreeBSD$"); > > static struct resource_spec imx6_anatop_spec[] = { > { SYS_RES_MEMORY, 0, RF_ACTIVE }, > - { SYS_RES_IRQ, 0, RF_ACTIVE }, > { -1, 0 } > }; > #define MEMRES 0 > @@ -637,11 +636,20 @@ initialize_tempmon(struct imx6_anatop_so > static void > intr_setup(void *arg) > { > + int rid; > struct imx6_anatop_softc *sc; > > sc = arg; > - bus_setup_intr(sc->dev, sc->res[IRQRES], INTR_TYPE_MISC | INTR_MPSAFE, > - tempmon_intr, NULL, sc, &sc->temp_intrhand); > + rid = 0; > + sc->res[IRQRES] = bus_alloc_resource_any(sc->dev, SYS_RES_IRQ, &rid, > + RF_ACTIVE); > + if (sc->res[IRQRES] != NULL) { > + bus_setup_intr(sc->dev, sc->res[IRQRES], > + INTR_TYPE_MISC | INTR_MPSAFE, tempmon_intr, NULL, sc, > + &sc->temp_intrhand); > + } else { > + device_printf(sc->dev, "Cannot allocate IRQ resource\n"); > + } > config_intrhook_disestablish(&sc->intr_setup_hook); > } > > _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"