[POWERPC] mpic: Deal with bogus NIRQ in Feature Reporting Register
Some chips (like the SoCs from Freescale) report the wrong value in NIRQ and this causes issues if its doesn't match or exceed the value of irq_count. Add a flag that board code can set to just use irq_count instead of FRR[NIRQ]. Eventually we'll add a device tree property with the number of sources. Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:

committed by
Paul Mackerras

parent
2ca7633dc7
commit
475ca391b4
@@ -1144,9 +1144,12 @@ struct mpic * __init mpic_alloc(struct device_node *node,
|
||||
mpic->num_cpus = ((greg_feature & MPIC_GREG_FEATURE_LAST_CPU_MASK)
|
||||
>> MPIC_GREG_FEATURE_LAST_CPU_SHIFT) + 1;
|
||||
if (isu_size == 0)
|
||||
mpic->num_sources =
|
||||
((greg_feature & MPIC_GREG_FEATURE_LAST_SRC_MASK)
|
||||
>> MPIC_GREG_FEATURE_LAST_SRC_SHIFT) + 1;
|
||||
if (flags & MPIC_BROKEN_FRR_NIRQS)
|
||||
mpic->num_sources = mpic->irq_count;
|
||||
else
|
||||
mpic->num_sources =
|
||||
((greg_feature & MPIC_GREG_FEATURE_LAST_SRC_MASK)
|
||||
>> MPIC_GREG_FEATURE_LAST_SRC_SHIFT) + 1;
|
||||
|
||||
/* Map the per-CPU registers */
|
||||
for (i = 0; i < mpic->num_cpus; i++) {
|
||||
|
Reference in New Issue
Block a user