Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8fec051e authored by Viresh Kumar's avatar Viresh Kumar Committed by Rafael J. Wysocki
Browse files

cpufreq: Convert existing drivers to use cpufreq_freq_transition_{begin|end}



CPUFreq core has new infrastructure that would guarantee serialized calls to
target() or target_index() callbacks. These are called
cpufreq_freq_transition_begin() and cpufreq_freq_transition_end().

This patch converts existing drivers to use these new set of routines.

Reviewed-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 12478cf0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -270,7 +270,7 @@ static int nforce2_target(struct cpufreq_policy *policy,
	pr_debug("Old CPU frequency %d kHz, new %d kHz\n",
	       freqs.old, freqs.new);

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
	cpufreq_freq_transition_begin(policy, &freqs);

	/* Disable IRQs */
	/* local_irq_save(flags); */
@@ -285,7 +285,7 @@ static int nforce2_target(struct cpufreq_policy *policy,
	/* Enable IRQs */
	/* local_irq_restore(flags); */

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
	cpufreq_freq_transition_end(policy, &freqs, 0);

	return 0;
}
+4 −5
Original line number Diff line number Diff line
@@ -1507,8 +1507,8 @@ static void cpufreq_out_of_sync(unsigned int cpu, unsigned int old_freq,
	policy = per_cpu(cpufreq_cpu_data, cpu);
	read_unlock_irqrestore(&cpufreq_driver_lock, flags);

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
	cpufreq_freq_transition_begin(policy, &freqs);
	cpufreq_freq_transition_end(policy, &freqs, 0);
}

/**
@@ -1868,8 +1868,7 @@ int __cpufreq_driver_target(struct cpufreq_policy *policy,
			pr_debug("%s: cpu: %d, oldfreq: %u, new freq: %u\n",
				 __func__, policy->cpu, freqs.old, freqs.new);

			cpufreq_notify_transition(policy, &freqs,
					CPUFREQ_PRECHANGE);
			cpufreq_freq_transition_begin(policy, &freqs);
		}

		retval = cpufreq_driver->target_index(policy, index);
@@ -1878,7 +1877,7 @@ int __cpufreq_driver_target(struct cpufreq_policy *policy,
			       __func__, retval);

		if (notify)
			cpufreq_notify_post_transition(policy, &freqs, retval);
			cpufreq_freq_transition_end(policy, &freqs, retval);
	}

out:
+2 −2
Original line number Diff line number Diff line
@@ -219,7 +219,7 @@ static int exynos_target(struct cpufreq_policy *policy, unsigned int index)
	freqs.old = policy->cur;
	freqs.new = freq_table[index].frequency;

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
	cpufreq_freq_transition_begin(policy, &freqs);

	/* Set the target frequency in all C0_3_PSTATE register */
	for_each_cpu(i, policy->cpus) {
@@ -258,7 +258,7 @@ static void exynos_cpufreq_work(struct work_struct *work)
		dev_crit(dvfs_info->dev, "New frequency out of range\n");
		freqs.new = freqs.old;
	}
	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
	cpufreq_freq_transition_end(policy, &freqs, 0);

	cpufreq_cpu_put(policy);
	mutex_unlock(&cpufreq_lock);
+2 −2
Original line number Diff line number Diff line
@@ -265,7 +265,7 @@ static void gx_set_cpuspeed(struct cpufreq_policy *policy, unsigned int khz)

	freqs.new = new_khz;

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
	cpufreq_freq_transition_begin(policy, &freqs);
	local_irq_save(flags);

	if (new_khz != stock_freq) {
@@ -314,7 +314,7 @@ static void gx_set_cpuspeed(struct cpufreq_policy *policy, unsigned int khz)

	gx_params->pci_suscfg = suscfg;

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
	cpufreq_freq_transition_end(policy, &freqs, 0);

	pr_debug("suspend modulation w/ duration of ON:%d us, OFF:%d us\n",
		gx_params->on_duration * 32, gx_params->off_duration * 32);
+2 −2
Original line number Diff line number Diff line
@@ -122,7 +122,7 @@ static int integrator_set_target(struct cpufreq_policy *policy,
		return 0;
	}

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
	cpufreq_freq_transition_begin(policy, &freqs);

	cm_osc = __raw_readl(cm_base + INTEGRATOR_HDR_OSC_OFFSET);

@@ -143,7 +143,7 @@ static int integrator_set_target(struct cpufreq_policy *policy,
	 */
	set_cpus_allowed(current, cpus_allowed);

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
	cpufreq_freq_transition_end(policy, &freqs, 0);

	return 0;
}
Loading