svn commit: r301266 - head/sys/arm/freescale/imx

Svatopluk Kraus skra at FreeBSD.org
Fri Jun 3 11:05:56 UTC 2016


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);
 }
 


More information about the svn-src-all mailing list