summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2016-04-07 17:45:01 +0000
committerian <ian@FreeBSD.org>2016-04-07 17:45:01 +0000
commitb04802100628537587131b4ef04b339f23d5a033 (patch)
treed27fecf133e697d3ad47a6767414b8264f301442 /sys
parent07227124862241463a10be15edbe413babb68e8e (diff)
downloadFreeBSD-src-b04802100628537587131b4ef04b339f23d5a033.zip
FreeBSD-src-b04802100628537587131b4ef04b339f23d5a033.tar.gz
Comestic changes; when INTRNG support was added, some functions became
oddly separated from related functionality. This just moves some blocks of code around so that setup_intr and teardown_intr are near each other again, and likewise for enable/disable_intr. No functional changes.
Diffstat (limited to 'sys')
-rw-r--r--sys/arm/freescale/imx/imx_gpio.c80
1 files changed, 40 insertions, 40 deletions
diff --git a/sys/arm/freescale/imx/imx_gpio.c b/sys/arm/freescale/imx/imx_gpio.c
index cdff020..e67aa66 100644
--- a/sys/arm/freescale/imx/imx_gpio.c
+++ b/sys/arm/freescale/imx/imx_gpio.c
@@ -157,45 +157,6 @@ static int imx51_gpio_pin_toggle(device_t, uint32_t pin);
#ifdef ARM_INTRNG
static int
-gpio_pic_teardown_intr(device_t dev, struct intr_irqsrc *isrc,
- struct resource *res, struct intr_map_data *data)
-{
- struct imx51_gpio_softc *sc;
- struct gpio_irqsrc *gi;
-
- sc = device_get_softc(dev);
- if (isrc->isrc_handlers == 0) {
- gi = (struct gpio_irqsrc *)isrc;
- gi->gi_pol = INTR_POLARITY_CONFORM;
- gi->gi_trig = INTR_TRIGGER_CONFORM;
-
- // XXX Not sure this is necessary
- mtx_lock_spin(&sc->sc_mtx);
- CLEAR4(sc, IMX_GPIO_IMR_REG, (1U << gi->gi_irq));
- WRITE4(sc, IMX_GPIO_ISR_REG, (1U << gi->gi_irq));
- mtx_unlock_spin(&sc->sc_mtx);
- }
- return (0);
-}
-
-/*
- * this is mask_intr
- */
-static void
-gpio_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
-{
- struct imx51_gpio_softc *sc;
- u_int irq;
-
- sc = device_get_softc(dev);
- irq = ((struct gpio_irqsrc *)isrc)->gi_irq;
-
- mtx_lock_spin(&sc->sc_mtx);
- CLEAR4(sc, IMX_GPIO_IMR_REG, (1U << irq));
- mtx_unlock_spin(&sc->sc_mtx);
-}
-
-static int
gpio_pic_map_fdt(device_t dev, u_int ncells, pcell_t *cells, u_int *irqp,
enum intr_polarity *polp, enum intr_trigger *trigp)
{
@@ -279,6 +240,28 @@ gpio_pic_map_intr(device_t dev, struct intr_map_data *data,
}
static int
+gpio_pic_teardown_intr(device_t dev, struct intr_irqsrc *isrc,
+ struct resource *res, struct intr_map_data *data)
+{
+ struct imx51_gpio_softc *sc;
+ struct gpio_irqsrc *gi;
+
+ sc = device_get_softc(dev);
+ if (isrc->isrc_handlers == 0) {
+ gi = (struct gpio_irqsrc *)isrc;
+ gi->gi_pol = INTR_POLARITY_CONFORM;
+ gi->gi_trig = INTR_TRIGGER_CONFORM;
+
+ // XXX Not sure this is necessary
+ mtx_lock_spin(&sc->sc_mtx);
+ CLEAR4(sc, IMX_GPIO_IMR_REG, (1U << gi->gi_irq));
+ WRITE4(sc, IMX_GPIO_ISR_REG, (1U << gi->gi_irq));
+ mtx_unlock_spin(&sc->sc_mtx);
+ }
+ return (0);
+}
+
+static int
gpio_pic_setup_intr(device_t dev, struct intr_irqsrc *isrc,
struct resource *res, struct intr_map_data *data)
{
@@ -345,6 +328,23 @@ gpio_pic_setup_intr(device_t dev, struct intr_irqsrc *isrc,
}
/*
+ * this is mask_intr
+ */
+static void
+gpio_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ struct imx51_gpio_softc *sc;
+ u_int irq;
+
+ sc = device_get_softc(dev);
+ irq = ((struct gpio_irqsrc *)isrc)->gi_irq;
+
+ mtx_lock_spin(&sc->sc_mtx);
+ CLEAR4(sc, IMX_GPIO_IMR_REG, (1U << irq));
+ mtx_unlock_spin(&sc->sc_mtx);
+}
+
+/*
* this is unmask_intr
*/
static void
@@ -417,7 +417,7 @@ gpio_pic_filter(void *arg)
}
/*
- * register our isrcs into intrng to make it known about them.
+ * Initialize our isrcs and register them with intrng.
*/
static int
gpio_pic_register_isrcs(struct imx51_gpio_softc *sc)
OpenPOWER on IntegriCloud