Changeset View
Changeset View
Standalone View
Standalone View
sys/arm/mv/mv_ap806_sei.c
Show First 20 Lines • Show All 364 Lines • ▼ Show 20 Lines | mv_ap806_sei_attach(device_t dev) | ||||
name = device_get_nameunit(sc->dev); | name = device_get_nameunit(sc->dev); | ||||
for (irq = 0; irq < MV_AP806_SEI_MAX_NIRQS; irq++) { | for (irq = 0; irq < MV_AP806_SEI_MAX_NIRQS; irq++) { | ||||
sc->isrcs[irq].irq = irq; | sc->isrcs[irq].irq = irq; | ||||
rv = intr_isrc_register(&sc->isrcs[irq].isrc, | rv = intr_isrc_register(&sc->isrcs[irq].isrc, | ||||
sc->dev, 0, "%s,%u", name, irq); | sc->dev, 0, "%s,%u", name, irq); | ||||
if (rv != 0) | if (rv != 0) | ||||
goto fail; /* XXX deregister ISRCs */ | goto fail; /* XXX deregister ISRCs */ | ||||
} | } | ||||
xref = OF_xref_from_node(node);; | xref = OF_xref_from_node(node); | ||||
if (intr_pic_register(dev, xref) == NULL) { | if (intr_pic_register(dev, xref) == NULL) { | ||||
device_printf(dev, "Cannot register SEI\n"); | device_printf(dev, "Cannot register SEI\n"); | ||||
rv = ENXIO; | rv = ENXIO; | ||||
goto fail; | goto fail; | ||||
} | } | ||||
if (bus_setup_intr(dev, sc->irq_res,INTR_TYPE_MISC | INTR_MPSAFE, | if (bus_setup_intr(dev, sc->irq_res,INTR_TYPE_MISC | INTR_MPSAFE, | ||||
mv_ap806_sei_intr, NULL, sc, &sc->irq_ih)) { | mv_ap806_sei_intr, NULL, sc, &sc->irq_ih)) { | ||||
device_printf(dev, | device_printf(dev, | ||||
▲ Show 20 Lines • Show All 132 Lines • Show Last 20 Lines |