MLK-11281-14: ARM: imx: restore RC_OSC after LPSR
authorRobin Gong <b38343@freescale.com>
Thu, 11 Jun 2015 07:49:38 +0000 (15:49 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:49:05 +0000 (14:49 -0500)
Restore RC_OSC after LPSR resume back, otherwise,
low power idle will never works normally.

Signed-off-by: Robin Gong <b38343@freescale.com>
Signed-off-by: Anson Huang <b20788@freescale.com>
arch/arm/mach-imx/cpuidle.h
arch/arm/mach-imx/pm-imx7.c

index c2be762..728404c 100644 (file)
@@ -17,6 +17,7 @@ extern int imx6sl_cpuidle_init(void);
 extern int imx6sx_cpuidle_init(void);
 extern int imx6ul_cpuidle_init(void);
 extern int imx7d_cpuidle_init(void);
+extern int imx7d_enable_rcosc(void);
 #else
 static inline int imx5_cpuidle_init(void)
 {
@@ -42,4 +43,8 @@ static inline int imx7d_cpuidle_init(void)
 {
        return 0;
 }
+static inline int imx7d_enable_rcosc(void)
+{
+       return 0;
+}
 #endif
index e6d7856..df366e7 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "common.h"
 #include "hardware.h"
+#include "cpuidle.h"
 
 #define MX7_SUSPEND_OCRAM_SIZE         0x1000
 #define MX7_MAX_DDRC_NUM               32
@@ -711,6 +712,7 @@ static int imx7_pm_enter(suspend_state_t state)
                        imx7_gpt_restore();
                        imx7_sys_counter_restore();
                        imx7_gpio_restore();
+                       imx7d_enable_rcosc();
                }
                if (imx_gpcv2_is_mf_mix_off() ||
                        imx7_pm_is_resume_from_lpsr()) {