1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- From baea71233ed1796651cab6ead484a18666a765aa Mon Sep 17 00:00:00 2001
- From: John Crispin <blogic@openwrt.org>
- Date: Thu, 11 Sep 2014 19:25:25 +0200
- Subject: [PATCH] MIPS: lantiq: move eiu init after irq_domain register
- Signed-off-by: John Crispin <blogic@openwrt.org>
- ---
- arch/mips/lantiq/irq.c | 48 ++++++++++++++++++++++++------------------------
- 1 file changed, 24 insertions(+), 24 deletions(-)
- --- a/arch/mips/lantiq/irq.c
- +++ b/arch/mips/lantiq/irq.c
- @@ -380,30 +380,6 @@ int __init icu_of_init(struct device_nod
- panic("Failed to remap icu memory");
- }
-
- - /* the external interrupts are optional and xway only */
- - eiu_node = of_find_compatible_node(NULL, NULL, "lantiq,eiu-xway");
- - if (eiu_node && !of_address_to_resource(eiu_node, 0, &res)) {
- - /* find out how many external irq sources we have */
- - exin_avail = of_irq_count(eiu_node);
- -
- - if (exin_avail > MAX_EIU)
- - exin_avail = MAX_EIU;
- -
- - ret = of_irq_to_resource_table(eiu_node,
- - ltq_eiu_irq, exin_avail);
- - if (ret != exin_avail)
- - panic("failed to load external irq resources");
- -
- - if (request_mem_region(res.start, resource_size(&res),
- - res.name) < 0)
- - pr_err("Failed to request eiu memory");
- -
- - ltq_eiu_membase = ioremap_nocache(res.start,
- - resource_size(&res));
- - if (!ltq_eiu_membase)
- - panic("Failed to remap eiu memory");
- - }
- -
- /* turn off all irqs by default */
- for (i = 0; i < MAX_IM; i++) {
- /* make sure all irqs are turned off by default */
- @@ -460,6 +436,30 @@ int __init icu_of_init(struct device_nod
- if (MIPS_CPU_TIMER_IRQ != 7)
- irq_create_mapping(ltq_domain, MIPS_CPU_TIMER_IRQ);
-
- + /* the external interrupts are optional and xway only */
- + eiu_node = of_find_compatible_node(NULL, NULL, "lantiq,eiu-xway");
- + if (eiu_node && !of_address_to_resource(eiu_node, 0, &res)) {
- + /* find out how many external irq sources we have */
- + exin_avail = of_irq_count(eiu_node);
- +
- + if (exin_avail > MAX_EIU)
- + exin_avail = MAX_EIU;
- +
- + ret = of_irq_to_resource_table(eiu_node,
- + ltq_eiu_irq, exin_avail);
- + if (ret != exin_avail)
- + panic("failed to load external irq resources");
- +
- + if (request_mem_region(res.start, resource_size(&res),
- + res.name) < 0)
- + pr_err("Failed to request eiu memory");
- +
- + ltq_eiu_membase = ioremap_nocache(res.start,
- + resource_size(&res));
- + if (!ltq_eiu_membase)
- + panic("Failed to remap eiu memory");
- + }
- +
- return 0;
- }
-
|