aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/microblaze/include/asm/prom.h10
-rw-r--r--arch/microblaze/kernel/prom_parse.c41
2 files changed, 0 insertions, 51 deletions
diff --git a/arch/microblaze/include/asm/prom.h b/arch/microblaze/include/asm/prom.h
index e9fb2eb0035d..4f34bc5baa83 100644
--- a/arch/microblaze/include/asm/prom.h
+++ b/arch/microblaze/include/asm/prom.h
@@ -93,19 +93,9 @@ extern const void *of_get_mac_address(struct device_node *np);
93 * OF interrupt mapping 93 * OF interrupt mapping
94 */ 94 */
95 95
96/**
97 * of_irq_map_init - Initialize the irq remapper
98 * @flags: flags defining workarounds to enable
99 *
100 * Some machines have bugs in the device-tree which require certain workarounds
101 * to be applied. Call this before any interrupt mapping attempts to enable
102 * those workarounds.
103 */
104#define OF_IMAP_OLDWORLD_MAC 0x00000001 96#define OF_IMAP_OLDWORLD_MAC 0x00000001
105#define OF_IMAP_NO_PHANDLE 0x00000002 97#define OF_IMAP_NO_PHANDLE 0x00000002
106 98
107extern void of_irq_map_init(unsigned int flags);
108
109/** 99/**
110 * of_irq_map_raw - Low level interrupt tree parsing 100 * of_irq_map_raw - Low level interrupt tree parsing
111 * @parent: the device interrupt parent 101 * @parent: the device interrupt parent
diff --git a/arch/microblaze/kernel/prom_parse.c b/arch/microblaze/kernel/prom_parse.c
index bf7e6c27e318..cba05812ab46 100644
--- a/arch/microblaze/kernel/prom_parse.c
+++ b/arch/microblaze/kernel/prom_parse.c
@@ -676,47 +676,6 @@ static struct device_node *of_irq_find_parent(struct device_node *child)
676 return p; 676 return p;
677} 677}
678 678
679/* This doesn't need to be called if you don't have any special workaround
680 * flags to pass
681 */
682void of_irq_map_init(unsigned int flags)
683{
684 of_irq_workarounds = flags;
685
686 /* OldWorld, don't bother looking at other things */
687 if (flags & OF_IMAP_OLDWORLD_MAC)
688 return;
689
690 /* If we don't have phandles, let's try to locate a default interrupt
691 * controller (happens when booting with BootX). We do a first match
692 * here, hopefully, that only ever happens on machines with one
693 * controller.
694 */
695 if (flags & OF_IMAP_NO_PHANDLE) {
696 struct device_node *np;
697
698 for (np = NULL; (np = of_find_all_nodes(np)) != NULL;) {
699 if (of_get_property(np, "interrupt-controller", NULL)
700 == NULL)
701 continue;
702 /* Skip /chosen/interrupt-controller */
703 if (strcmp(np->name, "chosen") == 0)
704 continue;
705 /* It seems like at least one person on this planet
706 * wants to use BootX on a machine with an AppleKiwi
707 * controller which happens to pretend to be an
708 * interrupt controller too.
709 */
710 if (strcmp(np->name, "AppleKiwi") == 0)
711 continue;
712 /* I think we found one ! */
713 of_irq_dflt_pic = np;
714 break;
715 }
716 }
717
718}
719
720int of_irq_map_raw(struct device_node *parent, const u32 *intspec, u32 ointsize, 679int of_irq_map_raw(struct device_node *parent, const u32 *intspec, u32 ointsize,
721 const u32 *addr, struct of_irq *out_irq) 680 const u32 *addr, struct of_irq *out_irq)
722{ 681{