Commit e26f4067 authored by Magnus Damm's avatar Magnus Damm Committed by Simon Horman

ARM: shmobile: Rework sh7372 sleep code to use virt_to_phys()

Instead of having a hard coded virt-to-phys address
conversion code in sleep-sh7372.S, rework the code
to do the conversion in C using virt_to_phys().

This removes the need for PLAT_PHYS_OFFSET which
in turn is needed for ARCH_MULTIPLATFORM.
Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
[horms+renesas@verge.net.au: squashed in build fix posted as
 "ARM: shmobile: sh7372 build fix for SUSPEND=n && CPU_IDLE=n"]
Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
parent 4f309d27
...@@ -75,6 +75,8 @@ extern void sh7372_intcs_resume(void); ...@@ -75,6 +75,8 @@ extern void sh7372_intcs_resume(void);
extern void sh7372_intca_suspend(void); extern void sh7372_intca_suspend(void);
extern void sh7372_intca_resume(void); extern void sh7372_intca_resume(void);
extern unsigned long sh7372_cpu_resume;
#ifdef CONFIG_PM #ifdef CONFIG_PM
extern void __init sh7372_init_pm_domains(void); extern void __init sh7372_init_pm_domains(void);
#else #else
......
...@@ -351,6 +351,9 @@ static void sh7372_enter_a4s_common(int pllc0_on) ...@@ -351,6 +351,9 @@ static void sh7372_enter_a4s_common(int pllc0_on)
static void sh7372_pm_setup_smfram(void) static void sh7372_pm_setup_smfram(void)
{ {
/* pass physical address of cpu_resume() to assembly resume code */
sh7372_cpu_resume = virt_to_phys(cpu_resume);
memcpy((void *)SMFRAM, sh7372_resume_core_standby_sysc, 0x100); memcpy((void *)SMFRAM, sh7372_resume_core_standby_sysc, 0x100);
} }
#else #else
......
...@@ -40,7 +40,10 @@ ...@@ -40,7 +40,10 @@
.global sh7372_resume_core_standby_sysc .global sh7372_resume_core_standby_sysc
sh7372_resume_core_standby_sysc: sh7372_resume_core_standby_sysc:
ldr pc, 1f ldr pc, 1f
1: .long cpu_resume - PAGE_OFFSET + PLAT_PHYS_OFFSET
.globl sh7372_cpu_resume
sh7372_cpu_resume:
1: .space 4
#define SPDCR 0xe6180008 #define SPDCR 0xe6180008
......
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