From ea6bc886b8a0bda54fc2776f44d5fc20645d54d7 Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Thu, 15 Dec 2016 19:54:07 +0800 Subject: [PATCH] cpufreq: dt: fix the warning when use opp_v1 [ 0.550764] cpu cpu0: OPP-v2 not supported [ 0.551462] cpu cpu0: Linked as a consumer to regulator.10 [ 0.552012] cpu cpu0: Dropping the link to regulator.10 [ 0.552677] cpu cpu0: Linked as a consumer to regulator.10 [ 0.553552] WARNING: CPU: 2 PID: 1 at drivers/opp/of.c:610 dev_pm_opp_of_cpumask_add_table+0x2c/0xe8 [ 0.554351] Modules linked in: [ 0.554633] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.19.20 #115 [ 0.555180] Hardware name: Rockchip RK3399 Excavator Board (Linux Opensource) (DT) [ 0.555855] pstate: 40000005 (nZcv daif -PAN -UAO) [ 0.556291] pc : dev_pm_opp_of_cpumask_add_table+0x2c/0xe8 [ 0.556784] lr : cpufreq_init+0x220/0x34c [ 0.557146] sp : ffffff800803b7e0 [ 0.557440] x29: ffffff800803b7e0 x28: ffffff8008e7e1cc [ 0.557923] x27: 0000000000000000 x26: 0000000000000001 [ 0.558405] x25: ffffffc0f1622600 x24: ffffffc0f166c400 [ 0.558887] x23: ffffff800803b880 x22: ffffffc0f1622b00 [ 0.559369] x21: 0000000000000001 x20: ffffffc0f162cc00 [ 0.559852] x19: 00000000ffffffff x18: 000000000000000a [ 0.560324] x17: 0000000000000000 x16: 0000000000000000 [ 0.560795] x15: 0000000000000000 x14: ffffff800803b717 [ 0.561267] x13: ffffffffffffffff x12: 0000000000000038 [ 0.561738] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f [ 0.562210] x9 : 3972656674616463 x8 : 7f7f7f7f7f7f7f7f [ 0.562682] x7 : ff726d5e78626d64 x6 : ffffffc0f6142b00 [ 0.563164] x5 : 0000000000000000 x4 : ffffffc0f166c478 [ 0.563636] x3 : 0000000000000005 x2 : ffffff800803b880 [ 0.564108] x1 : ffffff800803b880 x0 : 0000000000000000 [ 0.564590] Call trace: [ 0.564821] dev_pm_opp_of_cpumask_add_table+0x2c/0xe8 [ 0.565278] cpufreq_init+0x220/0x34c [ 0.565609] cpufreq_online+0x1b4/0x61c [ 0.565951] cpufreq_add_dev+0xa0/0xb8 [ 0.566297] subsys_interface_register+0xdc/0x100 [ 0.566719] cpufreq_register_driver+0x134/0x234 [ 0.567131] dt_cpufreq_probe+0x18c/0x1a8 [ 0.567497] platform_drv_probe+0x58/0xa4 [ 0.567861] really_probe+0x264/0x390 [ 0.568192] driver_probe_device+0x124/0x134 [ 0.568579] __device_attach_driver+0xd0/0x110 [ 0.568980] bus_for_each_drv+0xb0/0xd4 [ 0.569322] __device_attach+0xd0/0x160 [ 0.569664] device_initial_probe+0x24/0x30 [ 0.570042] bus_probe_device+0x38/0x98 [ 0.570385] device_add+0x4b4/0x594 [ 0.570703] platform_device_add+0xe4/0x22c [ 0.571080] platform_device_register_full+0xb0/0x104 [ 0.571540] rockchip_cpufreq_driver_init+0x110/0x364 [ 0.571999] do_one_initcall+0xa0/0x1c0 [ 0.572344] kernel_init_freeable+0x31c/0x320 [ 0.572734] kernel_init+0x18/0x108 [ 0.573054] ret_from_fork+0x10/0x18 [ 0.573378] ---[ end trace ae47402f52a7bab0 ]--- Change-Id: I02c7a3cc68536b707baaa8a61f21ac4961184dda Signed-off-by: Finley Xiao --- drivers/cpufreq/cpufreq-dt.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c index 552a05724fcc..ee269642eb28 100644 --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c @@ -236,10 +236,14 @@ static int cpufreq_init(struct cpufreq_policy *policy) cpumask_copy(&cpus, policy->cpus); cpumask_clear_cpu(policy->cpu, &cpus); - if (!dev_pm_opp_of_cpumask_add_table(&cpus)) + if (!cpumask_empty(&cpus)) { + if (!dev_pm_opp_of_cpumask_add_table(&cpus)) + priv->have_static_opps = true; + else + dev_pm_opp_of_remove_table(cpu_dev); + } else { priv->have_static_opps = true; - else - dev_pm_opp_of_remove_table(cpu_dev); + } } #else if (!dev_pm_opp_of_cpumask_add_table(policy->cpus))