powerpc: move epapr paravirt init of power_save to an initcall
some restructuring of epapr paravirt init resulted in ppc_md.power_save being set, and then overwritten to NULL during machine_init. This patch splits the initialization of ppc_md.power_save out into a postcore init call. Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:
parent
2b09c60389
commit
83e267d797
|
@ -30,6 +30,7 @@ extern u32 epapr_ev_idle_start[];
|
|||
#endif
|
||||
|
||||
bool epapr_paravirt_enabled;
|
||||
static bool epapr_has_idle;
|
||||
|
||||
static int __init early_init_dt_scan_epapr(unsigned long node,
|
||||
const char *uname,
|
||||
|
@ -55,7 +56,7 @@ static int __init early_init_dt_scan_epapr(unsigned long node,
|
|||
|
||||
#if !defined(CONFIG_64BIT) || defined(CONFIG_PPC_BOOK3E_64)
|
||||
if (of_get_flat_dt_prop(node, "has-idle", NULL))
|
||||
ppc_md.power_save = epapr_ev_idle;
|
||||
epapr_has_idle = true;
|
||||
#endif
|
||||
|
||||
epapr_paravirt_enabled = true;
|
||||
|
@ -70,3 +71,12 @@ int __init epapr_paravirt_early_init(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int __init epapr_idle_init(void)
|
||||
{
|
||||
if (epapr_has_idle)
|
||||
ppc_md.power_save = epapr_ev_idle;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
postcore_initcall(epapr_idle_init);
|
||||
|
|
Loading…
Reference in New Issue