summaryrefslogtreecommitdiffstats
path: root/sys/dev/fdt/fdt_common.c
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2013-10-24 15:44:29 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2013-10-24 15:44:29 +0000
commit7a74ddb4bc83f14da37acbc308d6aa5f11ab296d (patch)
treef2557649bc8b300fcc51576daef184f162d828ad /sys/dev/fdt/fdt_common.c
parent55228c4ed428f052b8aea65e57455a06b1e0e8ef (diff)
downloadFreeBSD-src-7a74ddb4bc83f14da37acbc308d6aa5f11ab296d.zip
FreeBSD-src-7a74ddb4bc83f14da37acbc308d6aa5f11ab296d.tar.gz
Do not map IRQs twice. This fixes PowerPC/FDT systems with multiple PICs,
which would try to treat the previously-mapped interrupts from fdt_decode_intr() as interrupt line numbers on the same parent PIC.
Diffstat (limited to 'sys/dev/fdt/fdt_common.c')
-rw-r--r--sys/dev/fdt/fdt_common.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/dev/fdt/fdt_common.c b/sys/dev/fdt/fdt_common.c
index d6401d2..15bf964 100644
--- a/sys/dev/fdt/fdt_common.c
+++ b/sys/dev/fdt/fdt_common.c
@@ -514,7 +514,7 @@ fdt_intr_to_rl(phandle_t node, struct resource_list *rl,
pcell_t *intr;
pcell_t intr_cells;
int interrupt, trig, pol;
- int i, intr_num, irq, rv;
+ int i, intr_num, rv;
if (OF_getproplen(node, "interrupts") <= 0)
/* Node does not have 'interrupts' property. */
@@ -566,8 +566,7 @@ fdt_intr_to_rl(phandle_t node, struct resource_list *rl,
intr_sl[i].trig = trig;
intr_sl[i].pol = pol;
- irq = FDT_MAP_IRQ(iph, interrupt);
- resource_list_add(rl, SYS_RES_IRQ, i, irq, irq, 1);
+ resource_list_add(rl, SYS_RES_IRQ, i, interrupt, interrupt, 1);
}
out:
OpenPOWER on IntegriCloud