[PATCH] ppc64: Fixup platforms for new ppc_md.idle
This patch fixes up iSeries, pSeries, pmac and maple to set the correct idle function for each platform. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
c66d5dd6b5
commit
62d60e9f0f
|
@ -940,5 +940,6 @@ void __init iSeries_early_setup(void)
|
||||||
ppc_md.get_rtc_time = iSeries_get_rtc_time;
|
ppc_md.get_rtc_time = iSeries_get_rtc_time;
|
||||||
ppc_md.calibrate_decr = iSeries_calibrate_decr;
|
ppc_md.calibrate_decr = iSeries_calibrate_decr;
|
||||||
ppc_md.progress = iSeries_progress;
|
ppc_md.progress = iSeries_progress;
|
||||||
|
ppc_md.idle_loop = iSeries_idle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -177,6 +177,8 @@ void __init maple_setup_arch(void)
|
||||||
#ifdef CONFIG_DUMMY_CONSOLE
|
#ifdef CONFIG_DUMMY_CONSOLE
|
||||||
conswitchp = &dummy_con;
|
conswitchp = &dummy_con;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
printk(KERN_INFO "Using native/NAP idle loop\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -297,4 +299,5 @@ struct machdep_calls __initdata maple_md = {
|
||||||
.get_rtc_time = maple_get_rtc_time,
|
.get_rtc_time = maple_get_rtc_time,
|
||||||
.calibrate_decr = generic_calibrate_decr,
|
.calibrate_decr = generic_calibrate_decr,
|
||||||
.progress = maple_progress,
|
.progress = maple_progress,
|
||||||
|
.idle_loop = native_idle,
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
|
#include <linux/cpu.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -82,6 +83,9 @@ int fwnmi_active; /* TRUE if an FWNMI handler is present */
|
||||||
extern void pSeries_system_reset_exception(struct pt_regs *regs);
|
extern void pSeries_system_reset_exception(struct pt_regs *regs);
|
||||||
extern int pSeries_machine_check_exception(struct pt_regs *regs);
|
extern int pSeries_machine_check_exception(struct pt_regs *regs);
|
||||||
|
|
||||||
|
static int shared_idle(void);
|
||||||
|
static int dedicated_idle(void);
|
||||||
|
|
||||||
static volatile void __iomem * chrp_int_ack_special;
|
static volatile void __iomem * chrp_int_ack_special;
|
||||||
struct mpic *pSeries_mpic;
|
struct mpic *pSeries_mpic;
|
||||||
|
|
||||||
|
@ -229,6 +233,20 @@ static void __init pSeries_setup_arch(void)
|
||||||
|
|
||||||
if (cur_cpu_spec->firmware_features & FW_FEATURE_SPLPAR)
|
if (cur_cpu_spec->firmware_features & FW_FEATURE_SPLPAR)
|
||||||
vpa_init(boot_cpuid);
|
vpa_init(boot_cpuid);
|
||||||
|
|
||||||
|
/* Choose an idle loop */
|
||||||
|
if (cur_cpu_spec->firmware_features & FW_FEATURE_SPLPAR) {
|
||||||
|
if (get_paca()->lppaca.shared_proc) {
|
||||||
|
printk(KERN_INFO "Using shared processor idle loop\n");
|
||||||
|
ppc_md.idle_loop = shared_idle;
|
||||||
|
} else {
|
||||||
|
printk(KERN_INFO "Using dedicated idle loop\n");
|
||||||
|
ppc_md.idle_loop = dedicated_idle;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
printk(KERN_INFO "Using default idle loop\n");
|
||||||
|
ppc_md.idle_loop = default_idle;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init pSeries_init_panel(void)
|
static int __init pSeries_init_panel(void)
|
||||||
|
|
|
@ -186,6 +186,8 @@ void __init pmac_setup_arch(void)
|
||||||
#ifdef CONFIG_DUMMY_CONSOLE
|
#ifdef CONFIG_DUMMY_CONSOLE
|
||||||
conswitchp = &dummy_con;
|
conswitchp = &dummy_con;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
printk(KERN_INFO "Using native/NAP idle loop\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SCSI
|
#ifdef CONFIG_SCSI
|
||||||
|
@ -507,5 +509,6 @@ struct machdep_calls __initdata pmac_md = {
|
||||||
.calibrate_decr = pmac_calibrate_decr,
|
.calibrate_decr = pmac_calibrate_decr,
|
||||||
.feature_call = pmac_do_feature_call,
|
.feature_call = pmac_do_feature_call,
|
||||||
.progress = pmac_progress,
|
.progress = pmac_progress,
|
||||||
.check_legacy_ioport = pmac_check_legacy_ioport
|
.check_legacy_ioport = pmac_check_legacy_ioport,
|
||||||
|
.idle_loop = native_idle,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue