diff options
author | Tapas Kumar Kundu <tkundu@codeaurora.org> | 2015-11-20 11:25:44 -0800 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:22:33 -0700 |
commit | 5e635690ee27b98046d46a17f4f842001e1e7370 (patch) | |
tree | ea6119feaa15c6bbeb095d7fb11bec18f033b7ee /drivers/soc | |
parent | 56f6d6c3529d4fbd4b30156dacbb57f108ec1c62 (diff) |
soc: qcom: msm_perf: use device_offline/device_online api
Replace obsolute cpu_up/cpu_down api with device_online/
device_offline api for cpu hotplugging
Change-Id: I808c733b0109ee6cf6183be229592d67f760d5cc
Signed-off-by: Tapas Kumar Kundu <tkundu@codeaurora.org>
Diffstat (limited to 'drivers/soc')
-rw-r--r-- | drivers/soc/qcom/msm_performance.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/soc/qcom/msm_performance.c b/drivers/soc/qcom/msm_performance.c index 498638272899..a9d25e46ebae 100644 --- a/drivers/soc/qcom/msm_performance.c +++ b/drivers/soc/qcom/msm_performance.c @@ -1589,11 +1589,13 @@ static int __ref rm_high_pwr_cost_cpus(struct cluster *cl) pr_debug("msm_perf: Offlining CPU%d Power:%d\n", max_cost_cpu, max_cost); cpumask_set_cpu(max_cost_cpu, cl->offlined_cpus); - if (cpu_down(max_cost_cpu)) { + lock_device_hotplug(); + if (device_offline(get_cpu_device(max_cost_cpu))) { cpumask_clear_cpu(max_cost_cpu, cl->offlined_cpus); pr_debug("msm_perf: Offlining CPU%d failed\n", max_cost_cpu); } + unlock_device_hotplug(); end: pcpu_pwr = &per_cpu(cpu_power_cost, max_cost_cpu); @@ -1641,12 +1643,15 @@ static void __ref try_hotplug(struct cluster *data) pr_debug("msm_perf: Offlining CPU%d\n", i); cpumask_set_cpu(i, data->offlined_cpus); - if (cpu_down(i)) { + lock_device_hotplug(); + if (device_offline(get_cpu_device(i))) { cpumask_clear_cpu(i, data->offlined_cpus); pr_debug("msm_perf: Offlining CPU%d failed\n", i); + unlock_device_hotplug(); continue; } + unlock_device_hotplug(); if (num_online_managed(data->cpus) <= data->max_cpu_request) break; @@ -1656,11 +1661,14 @@ static void __ref try_hotplug(struct cluster *data) if (cpu_online(i)) continue; pr_debug("msm_perf: Onlining CPU%d\n", i); - if (cpu_up(i)) { + lock_device_hotplug(); + if (device_online(get_cpu_device(i))) { pr_debug("msm_perf: Onlining CPU%d failed\n", i); + unlock_device_hotplug(); continue; } + unlock_device_hotplug(); cpumask_clear_cpu(i, data->offlined_cpus); if (num_online_managed(data->cpus) >= data->max_cpu_request) @@ -1676,8 +1684,10 @@ static void __ref release_cluster_control(struct cpumask *off_cpus) for_each_cpu(cpu, off_cpus) { pr_debug("msm_perf: Release CPU %d\n", cpu); - if (!cpu_up(cpu)) + lock_device_hotplug(); + if (!device_online(get_cpu_device(cpu))) cpumask_clear_cpu(cpu, off_cpus); + unlock_device_hotplug(); } } |