summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/mediatek/mtk_gpio_v1.c10
-rw-r--r--sys/mips/mediatek/mtk_gpio_v2.c10
-rw-r--r--sys/mips/mediatek/mtk_intr_gic.c12
-rw-r--r--sys/mips/mediatek/mtk_intr_v1.c12
-rw-r--r--sys/mips/mediatek/mtk_intr_v2.c12
-rw-r--r--sys/mips/mips/mips_pic.c12
6 files changed, 46 insertions, 22 deletions
diff --git a/sys/mips/mediatek/mtk_gpio_v1.c b/sys/mips/mediatek/mtk_gpio_v1.c
index 5499263..ec56360 100644
--- a/sys/mips/mediatek/mtk_gpio_v1.c
+++ b/sys/mips/mediatek/mtk_gpio_v1.c
@@ -514,15 +514,19 @@ static int
mtk_gpio_pic_map_intr(device_t dev, struct intr_map_data *data,
struct intr_irqsrc **isrcp)
{
+ struct intr_map_data_fdt *daf;
struct mtk_gpio_softc *sc;
+ if (data->type != INTR_MAP_DATA_FDT)
+ return (ENOTSUP);
+
sc = device_get_softc(dev);
+ daf = (struct intr_map_data_fdt *)data;
- if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
- data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->num_pins)
+ if (daf->ncells != 1 || daf->cells[0] >= sc->num_pins)
return (EINVAL);
- *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ *isrcp = PIC_INTR_ISRC(sc, daf->cells[0]);
return (0);
}
diff --git a/sys/mips/mediatek/mtk_gpio_v2.c b/sys/mips/mediatek/mtk_gpio_v2.c
index c7c0326..66236cc 100644
--- a/sys/mips/mediatek/mtk_gpio_v2.c
+++ b/sys/mips/mediatek/mtk_gpio_v2.c
@@ -511,15 +511,19 @@ static int
mtk_gpio_pic_map_intr(device_t dev, struct intr_map_data *data,
struct intr_irqsrc **isrcp)
{
+ struct intr_map_data_fdt *daf;
struct mtk_gpio_softc *sc;
+ if (data->type != INTR_MAP_DATA_FDT)
+ return (ENOTSUP);
+
sc = device_get_softc(dev);
+ daf = (struct intr_map_data_fdt *)data;
- if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
- data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->num_pins)
+ if (daf->ncells != 1 || daf->cells[0] >= sc->num_pins)
return (EINVAL);
- *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ *isrcp = PIC_INTR_ISRC(sc, daf->cells[0]);
return (0);
}
diff --git a/sys/mips/mediatek/mtk_intr_gic.c b/sys/mips/mediatek/mtk_intr_gic.c
index 5c25045..ea8c887 100644
--- a/sys/mips/mediatek/mtk_intr_gic.c
+++ b/sys/mips/mediatek/mtk_intr_gic.c
@@ -265,18 +265,22 @@ mtk_gic_map_intr(device_t dev, struct intr_map_data *data,
struct intr_irqsrc **isrcp)
{
#ifdef FDT
+ struct intr_map_data_fdt *daf;
struct mtk_gic_softc *sc;
+ if (data->type != INTR_MAP_DATA_FDT)
+ return (ENOTSUP);
+
sc = device_get_softc(dev);
+ daf = (struct intr_map_data_fdt *)data;
- if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
- data->fdt.ncells != 3 || data->fdt.cells[1] >= sc->nirqs)
+ if (daf->ncells != 3 || daf->cells[1] >= sc->nirqs)
return (EINVAL);
- *isrcp = GIC_INTR_ISRC(sc, data->fdt.cells[1]);
+ *isrcp = GIC_INTR_ISRC(sc, daf->cells[1]);
return (0);
#else
- return (EINVAL);
+ return (ENOTSUP);
#endif
}
diff --git a/sys/mips/mediatek/mtk_intr_v1.c b/sys/mips/mediatek/mtk_intr_v1.c
index f1ae3a2..58b610d 100644
--- a/sys/mips/mediatek/mtk_intr_v1.c
+++ b/sys/mips/mediatek/mtk_intr_v1.c
@@ -275,18 +275,22 @@ mtk_pic_map_intr(device_t dev, struct intr_map_data *data,
struct intr_irqsrc **isrcp)
{
#ifdef FDT
+ struct intr_map_data_fdt *daf;
struct mtk_pic_softc *sc;
+ if (data->type != INTR_MAP_DATA_FDT)
+ return (ENOTSUP);
+
sc = device_get_softc(dev);
+ daf = (struct intr_map_data_fdt *)data;
- if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
- data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->nirqs)
+ if (daf->ncells != 1 || daf->cells[0] >= sc->nirqs)
return (EINVAL);
- *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ *isrcp = PIC_INTR_ISRC(sc, daf->cells[0]);
return (0);
#else
- return (EINVAL);
+ return (ENOTSUP);
#endif
}
diff --git a/sys/mips/mediatek/mtk_intr_v2.c b/sys/mips/mediatek/mtk_intr_v2.c
index 5a9646e..556738f 100644
--- a/sys/mips/mediatek/mtk_intr_v2.c
+++ b/sys/mips/mediatek/mtk_intr_v2.c
@@ -270,18 +270,22 @@ mtk_pic_map_intr(device_t dev, struct intr_map_data *data,
struct intr_irqsrc **isrcp)
{
#ifdef FDT
+ struct intr_map_data_fdt *daf;
struct mtk_pic_softc *sc;
+ if (data->type != INTR_MAP_DATA_FDT)
+ return (ENOTSUP);
+
sc = device_get_softc(dev);
+ daf = (struct intr_map_data_fdt *)data;
- if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
- data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->nirqs)
+ if (daf->ncells != 1 || daf->cells[0] >= sc->nirqs)
return (EINVAL);
- *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ *isrcp = PIC_INTR_ISRC(sc, daf->cells[0]);
return (0);
#else
- return (EINVAL);
+ return (ENOTSUP);
#endif
}
diff --git a/sys/mips/mips/mips_pic.c b/sys/mips/mips/mips_pic.c
index a24647d..9b7eeb0 100644
--- a/sys/mips/mips/mips_pic.c
+++ b/sys/mips/mips/mips_pic.c
@@ -305,18 +305,22 @@ mips_pic_map_intr(device_t dev, struct intr_map_data *data,
struct intr_irqsrc **isrcp)
{
#ifdef FDT
+ struct intr_map_data_fdt *daf;
struct mips_pic_softc *sc;
+ if (data->type != INTR_MAP_DATA_FDT)
+ return (ENOTSUP);
+
sc = device_get_softc(dev);
+ daf = (struct intr_map_data_fdt *)data;
- if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
- data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->nirqs)
+ if (daf->ncells != 1 || daf->cells[0] >= sc->nirqs)
return (EINVAL);
- *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ *isrcp = PIC_INTR_ISRC(sc, daf->cells[0]);
return (0);
#else
- return (EINVAL);
+ return (ENOTSUP);
#endif
}
OpenPOWER on IntegriCloud