[PATCH 2/2] ARM: mmp: fix missing cascade_irq in irq handler
Chris Ball
cjb at laptop.org
Tue Jun 5 13:25:28 EDT 2012
Hi,
On Tue, Jun 05 2012, Haojian Zhuang wrote:
> While supporting board in non-DT mode, icu_data[i]->cascade_irq isn't
> assigned with correct value.
>
> Signed-off-by: Haojian Zhuang <haojian.zhuang at gmail.com>
> ---
> arch/arm/mach-mmp/irq.c | 7 +++++++
> 1 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-mmp/irq.c b/arch/arm/mach-mmp/irq.c
> index fcfe0e3..e60c7d9 100644
> --- a/arch/arm/mach-mmp/irq.c
> +++ b/arch/arm/mach-mmp/irq.c
> @@ -241,6 +241,7 @@ void __init mmp2_init_icu(void)
> icu_data[1].clr_mfp_irq_base = IRQ_MMP2_PMIC_BASE;
> icu_data[1].clr_mfp_hwirq = IRQ_MMP2_PMIC - IRQ_MMP2_PMIC_BASE;
> icu_data[1].nr_irqs = 2;
> + icu_data[1].cascade_irq = 4;
> icu_data[1].virq_base = IRQ_MMP2_PMIC_BASE;
> icu_data[1].domain = irq_domain_add_legacy(NULL, icu_data[1].nr_irqs,
> icu_data[1].virq_base, 0,
> @@ -249,6 +250,7 @@ void __init mmp2_init_icu(void)
> icu_data[2].reg_status = mmp_icu_base + 0x154;
> icu_data[2].reg_mask = mmp_icu_base + 0x16c;
> icu_data[2].nr_irqs = 2;
> + icu_data[2].cascade_irq = 5;
> icu_data[2].virq_base = IRQ_MMP2_RTC_BASE;
> icu_data[2].domain = irq_domain_add_legacy(NULL, icu_data[2].nr_irqs,
> icu_data[2].virq_base, 0,
> @@ -257,6 +259,7 @@ void __init mmp2_init_icu(void)
> icu_data[3].reg_status = mmp_icu_base + 0x180;
> icu_data[3].reg_mask = mmp_icu_base + 0x17c;
> icu_data[3].nr_irqs = 3;
> + icu_data[3].cascade_irq = 9;
> icu_data[3].virq_base = IRQ_MMP2_KEYPAD_BASE;
> icu_data[3].domain = irq_domain_add_legacy(NULL, icu_data[3].nr_irqs,
> icu_data[3].virq_base, 0,
> @@ -265,6 +268,7 @@ void __init mmp2_init_icu(void)
> icu_data[4].reg_status = mmp_icu_base + 0x158;
> icu_data[4].reg_mask = mmp_icu_base + 0x170;
> icu_data[4].nr_irqs = 5;
> + icu_data[4].cascade_irq = 17;
> icu_data[4].virq_base = IRQ_MMP2_TWSI_BASE;
> icu_data[4].domain = irq_domain_add_legacy(NULL, icu_data[4].nr_irqs,
> icu_data[4].virq_base, 0,
> @@ -273,6 +277,7 @@ void __init mmp2_init_icu(void)
> icu_data[5].reg_status = mmp_icu_base + 0x15c;
> icu_data[5].reg_mask = mmp_icu_base + 0x174;
> icu_data[5].nr_irqs = 15;
> + icu_data[5].cascade_irq = 35;
> icu_data[5].virq_base = IRQ_MMP2_MISC_BASE;
> icu_data[5].domain = irq_domain_add_legacy(NULL, icu_data[5].nr_irqs,
> icu_data[5].virq_base, 0,
> @@ -281,6 +286,7 @@ void __init mmp2_init_icu(void)
> icu_data[6].reg_status = mmp_icu_base + 0x160;
> icu_data[6].reg_mask = mmp_icu_base + 0x178;
> icu_data[6].nr_irqs = 2;
> + icu_data[6].cascade_irq = 51;
> icu_data[6].virq_base = IRQ_MMP2_MIPI_HSI1_BASE;
> icu_data[6].domain = irq_domain_add_legacy(NULL, icu_data[6].nr_irqs,
> icu_data[6].virq_base, 0,
> @@ -289,6 +295,7 @@ void __init mmp2_init_icu(void)
> icu_data[7].reg_status = mmp_icu_base + 0x188;
> icu_data[7].reg_mask = mmp_icu_base + 0x184;
> icu_data[7].nr_irqs = 2;
> + icu_data[7].cascade_irq = 55;
> icu_data[7].virq_base = IRQ_MMP2_MIPI_HSI0_BASE;
> icu_data[7].domain = irq_domain_add_legacy(NULL, icu_data[7].nr_irqs,
> icu_data[7].virq_base, 0,
Thanks -- this patch fixes the boot crash regression that's present in
3.5-rc1 on our board:
Tested-by: Chris Ball <cjb at laptop.org>
- Chris.
--
Chris Ball <cjb at laptop.org> <http://printf.net/>
One Laptop Per Child
More information about the linux-arm-kernel
mailing list