summaryrefslogtreecommitdiffstats
path: root/sys/arm/mv
diff options
context:
space:
mode:
authorskra <skra@FreeBSD.org>2016-05-05 13:31:19 +0000
committerskra <skra@FreeBSD.org>2016-05-05 13:31:19 +0000
commitee35e1301377ddf7b2236efed36e044da05faa1a (patch)
tree3e504a67c1025ed66f3addbaa18d456e670fc7fb /sys/arm/mv
parent93266297055f77bcef81e5f72468bc3b338f9e61 (diff)
downloadFreeBSD-src-ee35e1301377ddf7b2236efed36e044da05faa1a.zip
FreeBSD-src-ee35e1301377ddf7b2236efed36e044da05faa1a.tar.gz
INTRNG - redefine struct intr_map_data to avoid headers pollution. Each
struct associated with some type defined in enum intr_map_data_type must have struct intr_map_data on the top of its own definition now. When such structs are used, correct type and size must be filled in. There are three such structs defined in sys/intr.h now. Their definitions should be moved to corresponding headers by follow-up commits. While this change was propagated to all INTRNG like PICs, pic_map_intr() method implementations were corrected on some places. For this specific method, it's ensured by a caller that the 'data' argument passed to this method is never NULL. Also, the return error values were standardized there.
Diffstat (limited to 'sys/arm/mv')
-rw-r--r--sys/arm/mv/mpic.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/arm/mv/mpic.c b/sys/arm/mv/mpic.c
index 7be61fc..7e07d66 100644
--- a/sys/arm/mv/mpic.c
+++ b/sys/arm/mv/mpic.c
@@ -339,15 +339,19 @@ static int
mpic_map_intr(device_t dev, struct intr_map_data *data,
struct intr_irqsrc **isrcp)
{
+ struct intr_map_data_fdt *daf;
struct mv_mpic_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->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 = &sc->mpic_isrcs[data->fdt.cells[0]].mmi_isrc;
+ *isrcp = &sc->mpic_isrcs[daf->cells[0]].mmi_isrc;
return (0);
}
OpenPOWER on IntegriCloud