Commit 3850169d authored by Olof Johansson's avatar Olof Johansson Committed by Paul Mackerras

[POWERPC] pasemi: Move pasemi_idle_init() to late_initcall()

Move pasemi_idle_init() to be a late_initcall instead of being called from
setup_arch().  This way the cpufreq driver has a chance to initialize and
save away the boot time astate before we go to idle for the first time.
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent cd783416
...@@ -72,8 +72,11 @@ static int pasemi_system_reset_exception(struct pt_regs *regs) ...@@ -72,8 +72,11 @@ static int pasemi_system_reset_exception(struct pt_regs *regs)
return 1; return 1;
} }
void __init pasemi_idle_init(void) static int __init pasemi_idle_init(void)
{ {
if (!machine_is(pasemi))
return -ENODEV;
#ifndef CONFIG_PPC_PASEMI_CPUFREQ #ifndef CONFIG_PPC_PASEMI_CPUFREQ
printk(KERN_WARNING "No cpufreq driver, powersavings modes disabled\n"); printk(KERN_WARNING "No cpufreq driver, powersavings modes disabled\n");
current_mode = 0; current_mode = 0;
...@@ -82,7 +85,10 @@ void __init pasemi_idle_init(void) ...@@ -82,7 +85,10 @@ void __init pasemi_idle_init(void)
ppc_md.system_reset_exception = pasemi_system_reset_exception; ppc_md.system_reset_exception = pasemi_system_reset_exception;
ppc_md.power_save = modes[current_mode].entry; ppc_md.power_save = modes[current_mode].entry;
printk(KERN_INFO "Using PA6T idle loop (%s)\n", modes[current_mode].name); printk(KERN_INFO "Using PA6T idle loop (%s)\n", modes[current_mode].name);
return 0;
} }
late_initcall(pasemi_idle_init);
static int __init idle_param(char *p) static int __init idle_param(char *p)
{ {
......
...@@ -10,8 +10,6 @@ extern void __iomem *pasemi_pci_getcfgaddr(struct pci_dev *dev, int offset); ...@@ -10,8 +10,6 @@ extern void __iomem *pasemi_pci_getcfgaddr(struct pci_dev *dev, int offset);
extern void __init alloc_iobmap_l2(void); extern void __init alloc_iobmap_l2(void);
extern void __init pasemi_idle_init(void);
/* Power savings modes, implemented in asm */ /* Power savings modes, implemented in asm */
extern void idle_spin(void); extern void idle_spin(void);
extern void idle_doze(void); extern void idle_doze(void);
......
...@@ -115,8 +115,6 @@ void __init pas_setup_arch(void) ...@@ -115,8 +115,6 @@ void __init pas_setup_arch(void)
/* Remap SDC register for doing reset */ /* Remap SDC register for doing reset */
/* XXXOJN This should maybe come out of the device tree */ /* XXXOJN This should maybe come out of the device tree */
reset_reg = ioremap(0xfc101100, 4); reset_reg = ioremap(0xfc101100, 4);
pasemi_idle_init();
} }
static int __init pas_setup_mce_regs(void) static int __init pas_setup_mce_regs(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment