aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2012-02-03 08:52:14 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-03-24 05:38:53 -0400
commite0b823e9a543527dbb0f806252ee03a60f2aefbc (patch)
treef54a12a1ff6dc4857801ab45b661fdaf735b2d52 /arch/arm
parent342d00ae2b85af003f11036484a33e12e906fe92 (diff)
ARM: 7318/1: gic: refactor irq_start assignment
The irq_start and hwirq_base assignment code is fairly hairy and ended up being difficult to read following a conflict resolution for 3.2. This patch rearranges the code slightly to make it easier to read. Cc: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/common/gic.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index b2dc2dd7f1df..a3bc86fa3156 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -697,13 +697,12 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start,
697 * For primary GICs, skip over SGIs. 697 * For primary GICs, skip over SGIs.
698 * For secondary GICs, skip over PPIs, too. 698 * For secondary GICs, skip over PPIs, too.
699 */ 699 */
700 domain->hwirq_base = 32; 700 if (gic_nr == 0 && (irq_start & 31) > 0) {
701 if (gic_nr == 0) { 701 domain->hwirq_base = 16;
702 if ((irq_start & 31) > 0) { 702 if (irq_start != -1)
703 domain->hwirq_base = 16; 703 irq_start = (irq_start & ~31) + 16;
704 if (irq_start != -1) 704 } else {
705 irq_start = (irq_start & ~31) + 16; 705 domain->hwirq_base = 32;
706 }
707 } 706 }
708 707
709 /* 708 /*