summaryrefslogtreecommitdiff
path: root/arch/arm/plat-mxc/cpufreq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-mxc/cpufreq.c')
-rwxr-xr-xarch/arm/plat-mxc/cpufreq.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/arm/plat-mxc/cpufreq.c b/arch/arm/plat-mxc/cpufreq.c
index 47a70d96b24c..bf34bf79ceea 100755
--- a/arch/arm/plat-mxc/cpufreq.c
+++ b/arch/arm/plat-mxc/cpufreq.c
@@ -43,6 +43,9 @@ static struct cpufreq_frequency_table *imx_freq_table;
static int cpu_op_nr;
static struct cpu_op *cpu_op_tbl;
static u32 pre_suspend_rate;
+#ifdef CONFIG_ARCH_MX5
+int cpufreq_suspended;
+#endif
static bool cpufreq_suspend;
static struct mutex set_cpufreq_lock;
@@ -231,7 +234,12 @@ static int mxc_set_target(struct cpufreq_policy *policy,
num_cpus = num_possible_cpus();
if (policy->cpu > num_cpus)
return 0;
- if (dvfs_core_is_active) {
+
+ if (dvfs_core_is_active
+#ifdef CONFIG_ARCH_MX5
+ || cpufreq_suspended
+#endif
+ ) {
struct cpufreq_freqs freqs;
freqs.old = policy->cur;
@@ -506,10 +514,14 @@ Notify_finish:
static struct notifier_block imx_cpufreq_pm_notifier = {
.notifier_call = cpufreq_pm_notify,
};
+#ifdef CONFIG_ARCH_MX6
extern void mx6_cpu_regulator_init(void);
+#endif
static int __init mxc_cpufreq_driver_init(void)
{
+#ifdef CONFIG_ARCH_MX6
mx6_cpu_regulator_init();
+#endif
mutex_init(&set_cpufreq_lock);
register_pm_notifier(&imx_cpufreq_pm_notifier);
return cpufreq_register_driver(&mxc_driver);