From: Anson Huang <anson.hu...@nxp.com> To reduce the suspend/resume latency, CPU's max supported frequency should be used during low level suspend/resume phase, "opp-suspend" property is NOT feasible since OPP defined in DT could be NOT supported according to speed garding and market segment fuse settings. So we can assign the cpufreq policy's suspend_freq with max available frequency provided by cpufreq driver.
Signed-off-by: Anson Huang <anson.hu...@nxp.com> --- drivers/cpufreq/imx-cpufreq-dt.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/cpufreq/imx-cpufreq-dt.c b/drivers/cpufreq/imx-cpufreq-dt.c index 4f85f31..b6607e8 100644 --- a/drivers/cpufreq/imx-cpufreq-dt.c +++ b/drivers/cpufreq/imx-cpufreq-dt.c @@ -4,6 +4,7 @@ */ #include <linux/cpu.h> +#include <linux/cpufreq.h> #include <linux/err.h> #include <linux/init.h> #include <linux/kernel.h> @@ -84,6 +85,16 @@ static int imx_cpufreq_dt_remove(struct platform_device *pdev) return 0; } +static int __init imx_cpufreq_dt_setup_suspend_opp(void) +{ + struct cpufreq_policy *policy = cpufreq_cpu_get(0); + + policy->suspend_freq = cpufreq_quick_get_max(0); + + return 0; +} +late_initcall(imx_cpufreq_dt_setup_suspend_opp); + static struct platform_driver imx_cpufreq_dt_driver = { .probe = imx_cpufreq_dt_probe, .remove = imx_cpufreq_dt_remove, -- 2.7.4