*
*/
-#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/smp.h>
#include <asm/smp.h>
#include <asm/residual.h>
#include <asm/time.h>
-#include <asm/open_pic.h>
#include <asm/machdep.h>
-
-extern unsigned long smp_chrp_cpu_nr;
-
-static int __init smp_chrp_probe(void)
-{
- if (smp_chrp_cpu_nr > 1)
- openpic_request_IPIs();
-
- return smp_chrp_cpu_nr;
-}
+#include <asm/smp.h>
+#include <asm/mpic.h>
+#include <asm/rtas.h>
static void __devinit smp_chrp_kick_cpu(int nr)
{
static void __devinit smp_chrp_setup_cpu(int cpu_nr)
{
- if (OpenPIC_Addr)
- do_openpic_setup_cpu();
+ mpic_setup_this_cpu();
}
static DEFINE_SPINLOCK(timebase_lock);
/* CHRP with openpic */
struct smp_ops_t chrp_smp_ops = {
- .message_pass = smp_openpic_message_pass,
- .probe = smp_chrp_probe,
+ .message_pass = smp_mpic_message_pass,
+ .probe = smp_mpic_probe,
.kick_cpu = smp_chrp_kick_cpu,
.setup_cpu = smp_chrp_setup_cpu,
.give_timebase = smp_chrp_give_timebase,