Skip to content

Commit 953ba9f

Browse files
bzolnierrafaeljw
authored andcommitted
cpufreq-dt: add suspend frequency support
Add suspend frequency support and if needed set it to the frequency obtained from the suspend opp (can be defined using opp-v2 bindings and is optional). Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent 201f371 commit 953ba9f

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

drivers/cpufreq/cpufreq-dt.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ static int cpufreq_init(struct cpufreq_policy *policy)
196196
struct device *cpu_dev;
197197
struct regulator *cpu_reg;
198198
struct clk *cpu_clk;
199+
struct dev_pm_opp *suspend_opp;
199200
unsigned long min_uV = ~0, max_uV = 0;
200201
unsigned int transition_latency;
201202
bool need_update = false;
@@ -333,6 +334,13 @@ static int cpufreq_init(struct cpufreq_policy *policy)
333334
policy->driver_data = priv;
334335

335336
policy->clk = cpu_clk;
337+
338+
rcu_read_lock();
339+
suspend_opp = dev_pm_opp_get_suspend_opp(cpu_dev);
340+
if (suspend_opp)
341+
policy->suspend_freq = dev_pm_opp_get_freq(suspend_opp) / 1000;
342+
rcu_read_unlock();
343+
336344
ret = cpufreq_table_validate_and_show(policy, freq_table);
337345
if (ret) {
338346
dev_err(cpu_dev, "%s: invalid frequency table: %d\n", __func__,
@@ -423,6 +431,7 @@ static struct cpufreq_driver dt_cpufreq_driver = {
423431
.ready = cpufreq_ready,
424432
.name = "cpufreq-dt",
425433
.attr = cpufreq_dt_attr,
434+
.suspend = cpufreq_generic_suspend,
426435
};
427436

428437
static int dt_cpufreq_probe(struct platform_device *pdev)

0 commit comments

Comments
 (0)