summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pseries/power.c
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2014-07-16 12:02:43 +1000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-07-28 14:11:26 +1000
commit8e83e9053f23cd036b73ae246d86c50cbb3ca73e (patch)
tree94641ed8d6fe643742b669787ec6461f14c1c5b9 /arch/powerpc/platforms/pseries/power.c
parentb14726c51ce338ee3abe753fa40428a119c12597 (diff)
downloadblackbird-op-linux-8e83e9053f23cd036b73ae246d86c50cbb3ca73e.tar.gz
blackbird-op-linux-8e83e9053f23cd036b73ae246d86c50cbb3ca73e.zip
powerpc/pseries: Switch pseries drivers to use machine_xxx_initcall()
A lot of the code in platforms/pseries is using non-machine initcalls. That means if a kernel built with pseries support runs on another platform, for example powernv, the initcalls will still run. Most of these cases are OK, though sometimes only due to luck. Some were having more effect: * hcall_inst_init - Checking FW_FEATURE_LPAR which is set on ps3 & celleb. * mobility_sysfs_init - created sysfs files unconditionally - but no effect due to ENOSYS from rtas_ibm_suspend_me() * apo_pm_init - created sysfs, allows write - nothing checks the value written to though * alloc_dispatch_log_kmem_cache - creating kmem_cache on non-pseries machines Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms/pseries/power.c')
-rw-r--r--arch/powerpc/platforms/pseries/power.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/pseries/power.c b/arch/powerpc/platforms/pseries/power.c
index 6d6266236446..c26eadde434c 100644
--- a/arch/powerpc/platforms/pseries/power.c
+++ b/arch/powerpc/platforms/pseries/power.c
@@ -25,6 +25,7 @@
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/init.h>
+#include <asm/machdep.h>
unsigned long rtas_poweron_auto; /* default and normal state is 0 */
@@ -71,11 +72,11 @@ static int __init pm_init(void)
return -ENOMEM;
return sysfs_create_group(power_kobj, &attr_group);
}
-core_initcall(pm_init);
+machine_core_initcall(pseries, pm_init);
#else
static int __init apo_pm_init(void)
{
return (sysfs_create_file(power_kobj, &auto_poweron_attr.attr));
}
-__initcall(apo_pm_init);
+machine_device_initcall(pseries, apo_pm_init);
#endif
OpenPOWER on IntegriCloud