|
@@ -197,7 +197,7 @@ void gic_write_cpu_compare(cycle_t cnt, int cpu)
|
|
|
|
|
|
local_irq_save(flags);
|
|
|
|
|
|
- gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR), cpu);
|
|
|
+ gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR), mips_cm_vp_id(cpu));
|
|
|
|
|
|
if (mips_cm_is64) {
|
|
|
gic_write(GIC_REG(VPE_OTHER, GIC_VPE_COMPARE), cnt);
|
|
@@ -553,7 +553,8 @@ static void gic_mask_local_irq_all_vpes(struct irq_data *d)
|
|
|
|
|
|
spin_lock_irqsave(&gic_lock, flags);
|
|
|
for (i = 0; i < gic_vpes; i++) {
|
|
|
- gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR), i);
|
|
|
+ gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR),
|
|
|
+ mips_cm_vp_id(i));
|
|
|
gic_write32(GIC_REG(VPE_OTHER, GIC_VPE_RMASK), 1 << intr);
|
|
|
}
|
|
|
spin_unlock_irqrestore(&gic_lock, flags);
|
|
@@ -567,7 +568,8 @@ static void gic_unmask_local_irq_all_vpes(struct irq_data *d)
|
|
|
|
|
|
spin_lock_irqsave(&gic_lock, flags);
|
|
|
for (i = 0; i < gic_vpes; i++) {
|
|
|
- gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR), i);
|
|
|
+ gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR),
|
|
|
+ mips_cm_vp_id(i));
|
|
|
gic_write32(GIC_REG(VPE_OTHER, GIC_VPE_SMASK), 1 << intr);
|
|
|
}
|
|
|
spin_unlock_irqrestore(&gic_lock, flags);
|
|
@@ -607,7 +609,8 @@ static void __init gic_basic_init(void)
|
|
|
for (i = 0; i < gic_vpes; i++) {
|
|
|
unsigned int j;
|
|
|
|
|
|
- gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR), i);
|
|
|
+ gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR),
|
|
|
+ mips_cm_vp_id(i));
|
|
|
for (j = 0; j < GIC_NUM_LOCAL_INTRS; j++) {
|
|
|
if (!gic_local_irq_is_routable(j))
|
|
|
continue;
|
|
@@ -652,7 +655,8 @@ static int gic_local_irq_domain_map(struct irq_domain *d, unsigned int virq,
|
|
|
for (i = 0; i < gic_vpes; i++) {
|
|
|
u32 val = GIC_MAP_TO_PIN_MSK | gic_cpu_pin;
|
|
|
|
|
|
- gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR), i);
|
|
|
+ gic_write(GIC_REG(VPE_LOCAL, GIC_VPE_OTHER_ADDR),
|
|
|
+ mips_cm_vp_id(i));
|
|
|
|
|
|
switch (intr) {
|
|
|
case GIC_LOCAL_INT_WD:
|