diff options
Diffstat (limited to 'arch/arm/mach-omap2/prcm.c')
-rw-r--r-- | arch/arm/mach-omap2/prcm.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c index c2bf57ef6825..90f530540c65 100644 --- a/arch/arm/mach-omap2/prcm.c +++ b/arch/arm/mach-omap2/prcm.c | |||
@@ -19,6 +19,8 @@ | |||
19 | 19 | ||
20 | #include "prcm-regs.h" | 20 | #include "prcm-regs.h" |
21 | 21 | ||
22 | extern void omap2_clk_prepare_for_reboot(void); | ||
23 | |||
22 | u32 omap_prcm_get_reset_sources(void) | 24 | u32 omap_prcm_get_reset_sources(void) |
23 | { | 25 | { |
24 | return RM_RSTST_WKUP & 0x7f; | 26 | return RM_RSTST_WKUP & 0x7f; |
@@ -28,12 +30,6 @@ EXPORT_SYMBOL(omap_prcm_get_reset_sources); | |||
28 | /* Resets clock rates and reboots the system. Only called from system.h */ | 30 | /* Resets clock rates and reboots the system. Only called from system.h */ |
29 | void omap_prcm_arch_reset(char mode) | 31 | void omap_prcm_arch_reset(char mode) |
30 | { | 32 | { |
31 | u32 rate; | 33 | omap2_clk_prepare_for_reboot(); |
32 | struct clk *vclk, *sclk; | ||
33 | |||
34 | vclk = clk_get(NULL, "virt_prcm_set"); | ||
35 | sclk = clk_get(NULL, "sys_ck"); | ||
36 | rate = clk_get_rate(sclk); | ||
37 | clk_set_rate(vclk, rate); /* go to bypass for OMAP limitation */ | ||
38 | RM_RSTCTRL_WKUP |= 2; | 34 | RM_RSTCTRL_WKUP |= 2; |
39 | } | 35 | } |