Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/dpaa/fman.c
Show First 20 Lines • Show All 449 Lines • ▼ Show 20 Lines | fman_attach(device_t dev) | ||||
sc->irq_rid = 0; | sc->irq_rid = 0; | ||||
sc->irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &sc->irq_rid, | sc->irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &sc->irq_rid, | ||||
RF_ACTIVE); | RF_ACTIVE); | ||||
if (!sc->irq_res) { | if (!sc->irq_res) { | ||||
device_printf(dev, "could not allocate interrupt.\n"); | device_printf(dev, "could not allocate interrupt.\n"); | ||||
goto err; | goto err; | ||||
} | } | ||||
/* | |||||
* XXX: Fix FMan interrupt. This is workaround for the issue with | |||||
* interrupts directed to multiple CPUs by the interrupts subsystem. | |||||
* Workaround is to bind the interrupt to only one CPU0. | |||||
*/ | |||||
XX_FmanFixIntr(rman_get_start(sc->irq_res)); | |||||
sc->err_irq_rid = 1; | sc->err_irq_rid = 1; | ||||
sc->err_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, | sc->err_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, | ||||
&sc->err_irq_rid, RF_ACTIVE | RF_SHAREABLE); | &sc->err_irq_rid, RF_ACTIVE | RF_SHAREABLE); | ||||
if (!sc->err_irq_res) { | if (!sc->err_irq_res) { | ||||
device_printf(dev, "could not allocate error interrupt.\n"); | device_printf(dev, "could not allocate error interrupt.\n"); | ||||
goto err; | goto err; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 94 Lines • Show Last 20 Lines |