diff options
author | Maulik Shah <mkshah@codeaurora.org> | 2017-04-06 10:38:13 +0530 |
---|---|---|
committer | Maulik Shah <mkshah@codeaurora.org> | 2017-05-09 17:45:09 +0530 |
commit | b39ce179da9818c98616da20f3a1b0667c559179 (patch) | |
tree | b1e9b5e3833f539665f4519fa002550ad839a7cb /drivers/firmware/psci.c | |
parent | 3d82d66409abb91539bcb9d1f343fcb9d583f2b4 (diff) |
drivers: firmware: psci: Set ARM32 cpuidle ops
ARM64 uses cpu enable-method property as "psci" whereas for ARM32
this needs to be "arm,psci".
Use "psci" as enable-method for ARM32 and initialize cpuidle ops
to be used by LPM driver for ARM32.
Change-Id: I1bafc2460b3f62c6d7688d5bb7aa9cffa03bf917
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
Diffstat (limited to 'drivers/firmware/psci.c')
-rw-r--r-- | drivers/firmware/psci.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c index af0060d6a22a..d652f3b53635 100644 --- a/drivers/firmware/psci.c +++ b/drivers/firmware/psci.c @@ -230,6 +230,13 @@ static int __init psci_features(u32 psci_func_id) #ifdef CONFIG_CPU_IDLE static DEFINE_PER_CPU_READ_MOSTLY(u32 *, psci_power_state); +#ifdef CONFIG_ARM_PSCI +static int psci_cpu_init(struct device_node *cpu_node, int cpu) +{ + return 0; +} +#endif + static int psci_dt_cpu_init_idle(struct device_node *cpu_node, int cpu) { int i, ret, count = 0; @@ -333,10 +340,14 @@ int psci_cpu_suspend_enter(unsigned long state_id) #ifdef CONFIG_ARM static struct cpuidle_ops psci_cpuidle_ops __initdata = { .suspend = psci_cpu_suspend_enter, +#ifdef CONFIG_ARM_PSCI + .init = psci_cpu_init, +#else .init = psci_dt_cpu_init_idle, +#endif }; -CPUIDLE_METHOD_OF_DECLARE(psci, "arm,psci", &psci_cpuidle_ops); +CPUIDLE_METHOD_OF_DECLARE(psci, "psci", &psci_cpuidle_ops); #endif #endif |