Commit 752a9937 authored by Gregory CLEMENT's avatar Gregory CLEMENT Committed by Jason Cooper

ARM: mvebu: use a local variable to store the resume address

The resume address used by the cpuidle code will not always be the
same depending on the SoC. Using a local variable to store the resume
address allows to keep the same function for the PM notifier but with
a different address. This address will be set during the
initialization of the cpuidle logic in pmsu.c.
Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Link: https://lkml.kernel.org/r/1406120453-29291-8-git-send-email-thomas.petazzoni@free-electrons.comSigned-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent 54a4d1b8
...@@ -73,6 +73,8 @@ extern void ll_enable_coherency(void); ...@@ -73,6 +73,8 @@ extern void ll_enable_coherency(void);
extern void armada_370_xp_cpu_resume(void); extern void armada_370_xp_cpu_resume(void);
static void *mvebu_cpu_resume;
static struct platform_device mvebu_v7_cpuidle_device = { static struct platform_device mvebu_v7_cpuidle_device = {
.name = "cpuidle-armada-370-xp", .name = "cpuidle-armada-370-xp",
}; };
...@@ -299,7 +301,7 @@ static int mvebu_v7_cpu_pm_notify(struct notifier_block *self, ...@@ -299,7 +301,7 @@ static int mvebu_v7_cpu_pm_notify(struct notifier_block *self,
{ {
if (action == CPU_PM_ENTER) { if (action == CPU_PM_ENTER) {
unsigned int hw_cpu = cpu_logical_map(smp_processor_id()); unsigned int hw_cpu = cpu_logical_map(smp_processor_id());
mvebu_pmsu_set_cpu_boot_addr(hw_cpu, armada_370_xp_cpu_resume); mvebu_pmsu_set_cpu_boot_addr(hw_cpu, mvebu_cpu_resume);
} else if (action == CPU_PM_EXIT) { } else if (action == CPU_PM_EXIT) {
mvebu_v7_pmsu_idle_exit(); mvebu_v7_pmsu_idle_exit();
} }
...@@ -320,6 +322,7 @@ static int __init armada_xp_cpuidle_init(void) ...@@ -320,6 +322,7 @@ static int __init armada_xp_cpuidle_init(void)
return -ENODEV; return -ENODEV;
of_node_put(np); of_node_put(np);
mvebu_cpu_resume = armada_370_xp_cpu_resume;
mvebu_v7_cpuidle_device.dev.platform_data = armada_370_xp_cpu_suspend; mvebu_v7_cpuidle_device.dev.platform_data = armada_370_xp_cpu_suspend;
return 0; return 0;
......
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