|
@@ -582,13 +582,16 @@ void __init gic_init(unsigned int gic_nr, int irq_start,
|
|
* For primary GICs, skip over SGIs.
|
|
* For primary GICs, skip over SGIs.
|
|
* For secondary GICs, skip over PPIs, too.
|
|
* For secondary GICs, skip over PPIs, too.
|
|
*/
|
|
*/
|
|
|
|
+ domain->hwirq_base = 32;
|
|
if (gic_nr == 0) {
|
|
if (gic_nr == 0) {
|
|
gic_cpu_base_addr = cpu_base;
|
|
gic_cpu_base_addr = cpu_base;
|
|
- domain->hwirq_base = 16;
|
|
|
|
- if (irq_start > 0)
|
|
|
|
- irq_start = (irq_start & ~31) + 16;
|
|
|
|
- } else
|
|
|
|
- domain->hwirq_base = 32;
|
|
|
|
|
|
+
|
|
|
|
+ if ((irq_start & 31) > 0) {
|
|
|
|
+ domain->hwirq_base = 16;
|
|
|
|
+ if (irq_start != -1)
|
|
|
|
+ irq_start = (irq_start & ~31) + 16;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
/*
|
|
* Find out how many interrupts are supported.
|
|
* Find out how many interrupts are supported.
|