|
@@ -127,29 +127,17 @@ void cpu_node_probe(void)
|
|
printk("Discovered %d cpus on %d nodes\n", highest + 1, num_online_nodes());
|
|
printk("Discovered %d cpus on %d nodes\n", highest + 1, num_online_nodes());
|
|
}
|
|
}
|
|
|
|
|
|
-static void intr_clear_bits(nasid_t nasid, volatile hubreg_t *pend,
|
|
|
|
- int base_level)
|
|
|
|
|
|
+static __init void intr_clear_all(nasid_t nasid)
|
|
{
|
|
{
|
|
- volatile hubreg_t bits;
|
|
|
|
int i;
|
|
int i;
|
|
|
|
|
|
- /* Check pending interrupts */
|
|
|
|
- if ((bits = HUB_L(pend)) != 0)
|
|
|
|
- for (i = 0; i < N_INTPEND_BITS; i++)
|
|
|
|
- if (bits & (1 << i))
|
|
|
|
- LOCAL_HUB_CLR_INTR(base_level + i);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static void intr_clear_all(nasid_t nasid)
|
|
|
|
-{
|
|
|
|
REMOTE_HUB_S(nasid, PI_INT_MASK0_A, 0);
|
|
REMOTE_HUB_S(nasid, PI_INT_MASK0_A, 0);
|
|
REMOTE_HUB_S(nasid, PI_INT_MASK0_B, 0);
|
|
REMOTE_HUB_S(nasid, PI_INT_MASK0_B, 0);
|
|
REMOTE_HUB_S(nasid, PI_INT_MASK1_A, 0);
|
|
REMOTE_HUB_S(nasid, PI_INT_MASK1_A, 0);
|
|
REMOTE_HUB_S(nasid, PI_INT_MASK1_B, 0);
|
|
REMOTE_HUB_S(nasid, PI_INT_MASK1_B, 0);
|
|
- intr_clear_bits(nasid, REMOTE_HUB_ADDR(nasid, PI_INT_PEND0),
|
|
|
|
- INT_PEND0_BASELVL);
|
|
|
|
- intr_clear_bits(nasid, REMOTE_HUB_ADDR(nasid, PI_INT_PEND1),
|
|
|
|
- INT_PEND1_BASELVL);
|
|
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < 128; i++)
|
|
|
|
+ REMOTE_HUB_CLR_INTR(nasid, i);
|
|
}
|
|
}
|
|
|
|
|
|
void __init prom_prepare_cpus(unsigned int max_cpus)
|
|
void __init prom_prepare_cpus(unsigned int max_cpus)
|