diff options
| -rw-r--r-- | arch/mips/mti-malta/malta-int.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/mips/mti-malta/malta-int.c b/arch/mips/mti-malta/malta-int.c index 377a925e8cc6..4c3fca18a171 100644 --- a/arch/mips/mti-malta/malta-int.c +++ b/arch/mips/mti-malta/malta-int.c | |||
| @@ -411,6 +411,11 @@ static struct gic_intr_map gic_intr_map[GIC_NUM_INTRS] = { | |||
| 411 | */ | 411 | */ |
| 412 | int __init gcmp_probe(unsigned long addr, unsigned long size) | 412 | int __init gcmp_probe(unsigned long addr, unsigned long size) |
| 413 | { | 413 | { |
| 414 | if (mips_revision_sconid != MIPS_REVISION_SCON_ROCIT) { | ||
| 415 | gcmp_present = 0; | ||
| 416 | return gcmp_present; | ||
| 417 | } | ||
| 418 | |||
| 414 | if (gcmp_present >= 0) | 419 | if (gcmp_present >= 0) |
| 415 | return gcmp_present; | 420 | return gcmp_present; |
| 416 | 421 | ||
| @@ -479,9 +484,14 @@ void __init arch_init_irq(void) | |||
| 479 | GCMPGCB(GICBA) = GIC_BASE_ADDR | GCMP_GCB_GICBA_EN_MSK; | 484 | GCMPGCB(GICBA) = GIC_BASE_ADDR | GCMP_GCB_GICBA_EN_MSK; |
| 480 | gic_present = 1; | 485 | gic_present = 1; |
| 481 | } else { | 486 | } else { |
| 482 | _msc01_biu_base = (unsigned long) ioremap_nocache(MSC01_BIU_REG_BASE, MSC01_BIU_ADDRSPACE_SZ); | 487 | if (mips_revision_sconid == MIPS_REVISION_SCON_ROCIT) { |
| 483 | gic_present = (REG(_msc01_biu_base, MSC01_SC_CFG) & | 488 | _msc01_biu_base = (unsigned long) |
| 484 | MSC01_SC_CFG_GICPRES_MSK) >> MSC01_SC_CFG_GICPRES_SHF; | 489 | ioremap_nocache(MSC01_BIU_REG_BASE, |
| 490 | MSC01_BIU_ADDRSPACE_SZ); | ||
| 491 | gic_present = (REG(_msc01_biu_base, MSC01_SC_CFG) & | ||
| 492 | MSC01_SC_CFG_GICPRES_MSK) >> | ||
| 493 | MSC01_SC_CFG_GICPRES_SHF; | ||
| 494 | } | ||
| 485 | } | 495 | } |
| 486 | if (gic_present) | 496 | if (gic_present) |
| 487 | pr_debug("GIC present\n"); | 497 | pr_debug("GIC present\n"); |
