diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2013-10-24 15:44:29 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2013-10-24 15:44:29 +0000 |
commit | 7a74ddb4bc83f14da37acbc308d6aa5f11ab296d (patch) | |
tree | f2557649bc8b300fcc51576daef184f162d828ad | |
parent | 55228c4ed428f052b8aea65e57455a06b1e0e8ef (diff) | |
download | FreeBSD-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.
-rw-r--r-- | sys/dev/fdt/fdt_common.c | 5 |
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: |