MIPS: GCMP: Avoid accessing registers when they are not present
Signed-off-by: Chris Dearman <chris@mips.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
7098f74828
commit
05cf20790b
|
@ -411,6 +411,11 @@ static struct gic_intr_map gic_intr_map[GIC_NUM_INTRS] = {
|
||||||
*/
|
*/
|
||||||
int __init gcmp_probe(unsigned long addr, unsigned long size)
|
int __init gcmp_probe(unsigned long addr, unsigned long size)
|
||||||
{
|
{
|
||||||
|
if (mips_revision_sconid != MIPS_REVISION_SCON_ROCIT) {
|
||||||
|
gcmp_present = 0;
|
||||||
|
return gcmp_present;
|
||||||
|
}
|
||||||
|
|
||||||
if (gcmp_present >= 0)
|
if (gcmp_present >= 0)
|
||||||
return gcmp_present;
|
return gcmp_present;
|
||||||
|
|
||||||
|
@ -479,9 +484,14 @@ void __init arch_init_irq(void)
|
||||||
GCMPGCB(GICBA) = GIC_BASE_ADDR | GCMP_GCB_GICBA_EN_MSK;
|
GCMPGCB(GICBA) = GIC_BASE_ADDR | GCMP_GCB_GICBA_EN_MSK;
|
||||||
gic_present = 1;
|
gic_present = 1;
|
||||||
} else {
|
} else {
|
||||||
_msc01_biu_base = (unsigned long) ioremap_nocache(MSC01_BIU_REG_BASE, MSC01_BIU_ADDRSPACE_SZ);
|
if (mips_revision_sconid == MIPS_REVISION_SCON_ROCIT) {
|
||||||
gic_present = (REG(_msc01_biu_base, MSC01_SC_CFG) &
|
_msc01_biu_base = (unsigned long)
|
||||||
MSC01_SC_CFG_GICPRES_MSK) >> MSC01_SC_CFG_GICPRES_SHF;
|
ioremap_nocache(MSC01_BIU_REG_BASE,
|
||||||
|
MSC01_BIU_ADDRSPACE_SZ);
|
||||||
|
gic_present = (REG(_msc01_biu_base, MSC01_SC_CFG) &
|
||||||
|
MSC01_SC_CFG_GICPRES_MSK) >>
|
||||||
|
MSC01_SC_CFG_GICPRES_SHF;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (gic_present)
|
if (gic_present)
|
||||||
pr_debug("GIC present\n");
|
pr_debug("GIC present\n");
|
||||||
|
|
Loading…
Reference in New Issue