MIPS: lantiq: move eiu init after irq_domain register
The eiu init failed as the irq_domain was not yet available. Signed-off-by: John Crispin <blogic@openwrt.org> Patchwork: http://patchwork.linux-mips.org/patch/8047/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Родитель
e8b8ca8cb3
Коммит
d32caf94e0
|
@ -379,30 +379,6 @@ int __init icu_of_init(struct device_node *node, struct device_node *parent)
|
||||||
panic("Failed to remap icu memory");
|
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 */
|
/* turn off all irqs by default */
|
||||||
for (i = 0; i < MAX_IM; i++) {
|
for (i = 0; i < MAX_IM; i++) {
|
||||||
/* make sure all irqs are turned off by default */
|
/* make sure all irqs are turned off by default */
|
||||||
|
@ -459,6 +435,30 @@ int __init icu_of_init(struct device_node *node, struct device_node *parent)
|
||||||
if (MIPS_CPU_TIMER_IRQ != 7)
|
if (MIPS_CPU_TIMER_IRQ != 7)
|
||||||
irq_create_mapping(ltq_domain, MIPS_CPU_TIMER_IRQ);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче