Commit ad2a9108 authored by Pierre Gondois's avatar Pierre Gondois Committed by Viresh Kumar

cpufreq: scmi: Set transition_delay_us

Make use of the newly added callbacks:
- rate_limit_get()
- fast_switch_rate_limit()
to populate policies's `transition_delay_us`, defined as the
'Preferred average time interval between consecutive
invocations of the driver to set the frequency for this policy.'
Signed-off-by: default avatarPierre Gondois <pierre.gondois@arm.com>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
parent 2441caa8
......@@ -144,6 +144,29 @@ scmi_get_cpu_power(struct device *cpu_dev, unsigned long *power,
return 0;
}
static int
scmi_get_rate_limit(u32 domain, bool has_fast_switch)
{
int ret, rate_limit;
if (has_fast_switch) {
/*
* Fast channels are used whenever available,
* so use their rate_limit value if populated.
*/
ret = perf_ops->fast_switch_rate_limit(ph, domain,
&rate_limit);
if (!ret && rate_limit)
return rate_limit;
}
ret = perf_ops->rate_limit_get(ph, domain, &rate_limit);
if (ret)
return 0;
return rate_limit;
}
static int scmi_cpufreq_init(struct cpufreq_policy *policy)
{
int ret, nr_opp, domain;
......@@ -250,6 +273,9 @@ static int scmi_cpufreq_init(struct cpufreq_policy *policy)
policy->fast_switch_possible =
perf_ops->fast_switch_possible(ph, domain);
policy->transition_delay_us =
scmi_get_rate_limit(domain, policy->fast_switch_possible);
return 0;
out_free_opp:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment