diff options
-rw-r--r-- | arch/microblaze/include/asm/prom.h | 10 | ||||
-rw-r--r-- | arch/microblaze/kernel/prom_parse.c | 41 |
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 | ||
107 | extern 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 | */ | ||
682 | void 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 | |||
720 | int of_irq_map_raw(struct device_node *parent, const u32 *intspec, u32 ointsize, | 679 | int 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 | { |