diff options
| -rw-r--r-- | arch/arm/common/gic.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c index 43240f315dea..410a546060a2 100644 --- a/arch/arm/common/gic.c +++ b/arch/arm/common/gic.c | |||
| @@ -582,13 +582,16 @@ void __init gic_init(unsigned int gic_nr, int irq_start, | |||
| 582 | * For primary GICs, skip over SGIs. | 582 | * For primary GICs, skip over SGIs. |
| 583 | * For secondary GICs, skip over PPIs, too. | 583 | * For secondary GICs, skip over PPIs, too. |
| 584 | */ | 584 | */ |
| 585 | domain->hwirq_base = 32; | ||
| 585 | if (gic_nr == 0) { | 586 | if (gic_nr == 0) { |
| 586 | gic_cpu_base_addr = cpu_base; | 587 | gic_cpu_base_addr = cpu_base; |
| 587 | domain->hwirq_base = 16; | 588 | |
| 588 | if (irq_start > 0) | 589 | if ((irq_start & 31) > 0) { |
| 589 | irq_start = (irq_start & ~31) + 16; | 590 | domain->hwirq_base = 16; |
| 590 | } else | 591 | if (irq_start != -1) |
| 591 | domain->hwirq_base = 32; | 592 | irq_start = (irq_start & ~31) + 16; |
| 593 | } | ||
| 594 | } | ||
| 592 | 595 | ||
| 593 | /* | 596 | /* |
| 594 | * Find out how many interrupts are supported. | 597 | * Find out how many interrupts are supported. |
