aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/common/gic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/common/gic.c')
-rw-r--r--arch/arm/common/gic.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index a1feb6b4f9f..b2dc2dd7f1d 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -612,7 +612,8 @@ static void __init gic_pm_init(struct gic_chip_data *gic)
612 sizeof(u32)); 612 sizeof(u32));
613 BUG_ON(!gic->saved_ppi_conf); 613 BUG_ON(!gic->saved_ppi_conf);
614 614
615 cpu_pm_register_notifier(&gic_notifier_block); 615 if (gic == &gic_data[0])
616 cpu_pm_register_notifier(&gic_notifier_block);
616} 617}
617#else 618#else
618static void __init gic_pm_init(struct gic_chip_data *gic) 619static void __init gic_pm_init(struct gic_chip_data *gic)
@@ -696,12 +697,14 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start,
696 * For primary GICs, skip over SGIs. 697 * For primary GICs, skip over SGIs.
697 * For secondary GICs, skip over PPIs, too. 698 * For secondary GICs, skip over PPIs, too.
698 */ 699 */
700 domain->hwirq_base = 32;
699 if (gic_nr == 0) { 701 if (gic_nr == 0) {
700 domain->hwirq_base = 16; 702 if ((irq_start & 31) > 0) {
701 if (irq_start > 0) 703 domain->hwirq_base = 16;
702 irq_start = (irq_start & ~31) + 16; 704 if (irq_start != -1)
703 } else 705 irq_start = (irq_start & ~31) + 16;
704 domain->hwirq_base = 32; 706 }
707 }
705 708
706 /* 709 /*
707 * Find out how many interrupts are supported. 710 * Find out how many interrupts are supported.