diff options
author | Rajendra Nayak <rnayak@ti.com> | 2008-09-26 08:19:14 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@deeprootsystems.com> | 2009-11-11 17:42:24 -0500 |
commit | 3231fc889c114870ca830041fcdeb5d4745304cf (patch) | |
tree | 8ce76ef76d93b2676b0b4bd8b0a1746111c8522c /arch/arm | |
parent | c96631e13888e9be3a80aae291ed671d4d573ec9 (diff) |
OMAP3: PM: restore SRAM functions after off-mode.
Generalize the copy of SRAM functions into omap_push_sram_idle()
so it can be used on init but also after off-mode transitions.
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 10 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/sram.h | 6 | ||||
-rw-r--r-- | arch/arm/plat-omap/sram.c | 8 |
3 files changed, 18 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 391054900a6..b88da1bcb66 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -749,6 +749,12 @@ static int __init clkdms_setup(struct clockdomain *clkdm, void *unused) | |||
749 | return 0; | 749 | return 0; |
750 | } | 750 | } |
751 | 751 | ||
752 | void omap_push_sram_idle(void) | ||
753 | { | ||
754 | _omap_sram_idle = omap_sram_push(omap34xx_cpu_suspend, | ||
755 | omap34xx_cpu_suspend_sz); | ||
756 | } | ||
757 | |||
752 | static int __init omap3_pm_init(void) | 758 | static int __init omap3_pm_init(void) |
753 | { | 759 | { |
754 | struct power_state *pwrst, *tmp; | 760 | struct power_state *pwrst, *tmp; |
@@ -786,9 +792,7 @@ static int __init omap3_pm_init(void) | |||
786 | goto err2; | 792 | goto err2; |
787 | } | 793 | } |
788 | 794 | ||
789 | _omap_sram_idle = omap_sram_push(omap34xx_cpu_suspend, | 795 | omap_push_sram_idle(); |
790 | omap34xx_cpu_suspend_sz); | ||
791 | |||
792 | #ifdef CONFIG_SUSPEND | 796 | #ifdef CONFIG_SUSPEND |
793 | suspend_set_ops(&omap_pm_ops); | 797 | suspend_set_ops(&omap_pm_ops); |
794 | #endif /* CONFIG_SUSPEND */ | 798 | #endif /* CONFIG_SUSPEND */ |
diff --git a/arch/arm/plat-omap/include/plat/sram.h b/arch/arm/plat-omap/include/plat/sram.h index 8974e3fc269..77799d576bc 100644 --- a/arch/arm/plat-omap/include/plat/sram.h +++ b/arch/arm/plat-omap/include/plat/sram.h | |||
@@ -68,4 +68,10 @@ extern u32 omap3_sram_configure_core_dpll( | |||
68 | u32 sdrc_actim_ctrl_b_1, u32 sdrc_mr_1); | 68 | u32 sdrc_actim_ctrl_b_1, u32 sdrc_mr_1); |
69 | extern unsigned long omap3_sram_configure_core_dpll_sz; | 69 | extern unsigned long omap3_sram_configure_core_dpll_sz; |
70 | 70 | ||
71 | #ifdef CONFIG_PM | ||
72 | extern void omap_push_sram_idle(void); | ||
73 | #else | ||
74 | static inline void omap_push_sram_idle(void) {} | ||
75 | #endif /* CONFIG_PM */ | ||
76 | |||
71 | #endif | 77 | #endif |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index a53aa854173..3e923668778 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -396,22 +396,24 @@ u32 omap3_configure_core_dpll(u32 m2, u32 unlock_dll, u32 f, u32 inc, | |||
396 | sdrc_actim_ctrl_b_1, sdrc_mr_1); | 396 | sdrc_actim_ctrl_b_1, sdrc_mr_1); |
397 | } | 397 | } |
398 | 398 | ||
399 | /* REVISIT: Should this be same as omap34xx_sram_init() after off-idle? */ | 399 | #ifdef CONFIG_PM |
400 | void restore_sram_functions(void) | 400 | void omap3_sram_restore_context(void) |
401 | { | 401 | { |
402 | omap_sram_ceil = omap_sram_base + omap_sram_size; | 402 | omap_sram_ceil = omap_sram_base + omap_sram_size; |
403 | 403 | ||
404 | _omap3_sram_configure_core_dpll = | 404 | _omap3_sram_configure_core_dpll = |
405 | omap_sram_push(omap3_sram_configure_core_dpll, | 405 | omap_sram_push(omap3_sram_configure_core_dpll, |
406 | omap3_sram_configure_core_dpll_sz); | 406 | omap3_sram_configure_core_dpll_sz); |
407 | omap_push_sram_idle(); | ||
407 | } | 408 | } |
409 | #endif /* CONFIG_PM */ | ||
408 | 410 | ||
409 | int __init omap34xx_sram_init(void) | 411 | int __init omap34xx_sram_init(void) |
410 | { | 412 | { |
411 | _omap3_sram_configure_core_dpll = | 413 | _omap3_sram_configure_core_dpll = |
412 | omap_sram_push(omap3_sram_configure_core_dpll, | 414 | omap_sram_push(omap3_sram_configure_core_dpll, |
413 | omap3_sram_configure_core_dpll_sz); | 415 | omap3_sram_configure_core_dpll_sz); |
414 | 416 | omap_push_sram_idle(); | |
415 | return 0; | 417 | return 0; |
416 | } | 418 | } |
417 | #else | 419 | #else |