diff options
-rw-r--r-- | arch/powerpc/platforms/chrp/setup.c | 4 | ||||
-rw-r--r-- | arch/powerpc/sysdev/i8259.c | 5 | ||||
-rw-r--r-- | include/asm-powerpc/i8259.h | 1 |
3 files changed, 9 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c index cae3d13229b9..49b8dabcbc99 100644 --- a/arch/powerpc/platforms/chrp/setup.c +++ b/arch/powerpc/platforms/chrp/setup.c | |||
@@ -477,8 +477,10 @@ static void __init chrp_find_8259(void) | |||
477 | " address, polling\n"); | 477 | " address, polling\n"); |
478 | 478 | ||
479 | i8259_init(pic, chrp_int_ack); | 479 | i8259_init(pic, chrp_int_ack); |
480 | if (ppc_md.get_irq == NULL) | 480 | if (ppc_md.get_irq == NULL) { |
481 | ppc_md.get_irq = i8259_irq; | 481 | ppc_md.get_irq = i8259_irq; |
482 | irq_set_default_host(i8259_get_host()); | ||
483 | } | ||
482 | if (chrp_mpic != NULL) { | 484 | if (chrp_mpic != NULL) { |
483 | cascade_irq = irq_of_parse_and_map(pic, 0); | 485 | cascade_irq = irq_of_parse_and_map(pic, 0); |
484 | if (cascade_irq == NO_IRQ) | 486 | if (cascade_irq == NO_IRQ) |
diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c index 0450265d73bb..ad87adc975bc 100644 --- a/arch/powerpc/sysdev/i8259.c +++ b/arch/powerpc/sysdev/i8259.c | |||
@@ -224,6 +224,11 @@ static struct irq_host_ops i8259_host_ops = { | |||
224 | .xlate = i8259_host_xlate, | 224 | .xlate = i8259_host_xlate, |
225 | }; | 225 | }; |
226 | 226 | ||
227 | struct irq_host *i8259_get_host(void) | ||
228 | { | ||
229 | return i8259_host; | ||
230 | } | ||
231 | |||
227 | /** | 232 | /** |
228 | * i8259_init - Initialize the legacy controller | 233 | * i8259_init - Initialize the legacy controller |
229 | * @node: device node of the legacy PIC (can be NULL, but then, it will match | 234 | * @node: device node of the legacy PIC (can be NULL, but then, it will match |
diff --git a/include/asm-powerpc/i8259.h b/include/asm-powerpc/i8259.h index 78489fb8d140..db1362f8c603 100644 --- a/include/asm-powerpc/i8259.h +++ b/include/asm-powerpc/i8259.h | |||
@@ -7,6 +7,7 @@ | |||
7 | #ifdef CONFIG_PPC_MERGE | 7 | #ifdef CONFIG_PPC_MERGE |
8 | extern void i8259_init(struct device_node *node, unsigned long intack_addr); | 8 | extern void i8259_init(struct device_node *node, unsigned long intack_addr); |
9 | extern unsigned int i8259_irq(void); | 9 | extern unsigned int i8259_irq(void); |
10 | extern struct irq_host *i8259_get_host(void); | ||
10 | #else | 11 | #else |
11 | extern void i8259_init(unsigned long intack_addr, int offset); | 12 | extern void i8259_init(unsigned long intack_addr, int offset); |
12 | extern int i8259_irq(void); | 13 | extern int i8259_irq(void); |