|
@@ -108,7 +108,8 @@ void dev_pm_opp_free_cpufreq_table(struct device *dev,
|
|
EXPORT_SYMBOL_GPL(dev_pm_opp_free_cpufreq_table);
|
|
EXPORT_SYMBOL_GPL(dev_pm_opp_free_cpufreq_table);
|
|
#endif /* CONFIG_CPU_FREQ */
|
|
#endif /* CONFIG_CPU_FREQ */
|
|
|
|
|
|
-void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask, bool of)
|
|
|
|
|
|
+void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask, bool of,
|
|
|
|
+ int last_cpu)
|
|
{
|
|
{
|
|
struct device *cpu_dev;
|
|
struct device *cpu_dev;
|
|
int cpu;
|
|
int cpu;
|
|
@@ -116,6 +117,9 @@ void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask, bool of)
|
|
WARN_ON(cpumask_empty(cpumask));
|
|
WARN_ON(cpumask_empty(cpumask));
|
|
|
|
|
|
for_each_cpu(cpu, cpumask) {
|
|
for_each_cpu(cpu, cpumask) {
|
|
|
|
+ if (cpu == last_cpu)
|
|
|
|
+ break;
|
|
|
|
+
|
|
cpu_dev = get_cpu_device(cpu);
|
|
cpu_dev = get_cpu_device(cpu);
|
|
if (!cpu_dev) {
|
|
if (!cpu_dev) {
|
|
pr_err("%s: failed to get cpu%d device\n", __func__,
|
|
pr_err("%s: failed to get cpu%d device\n", __func__,
|
|
@@ -140,7 +144,7 @@ void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask, bool of)
|
|
*/
|
|
*/
|
|
void dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask)
|
|
void dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask)
|
|
{
|
|
{
|
|
- _dev_pm_opp_cpumask_remove_table(cpumask, false);
|
|
|
|
|
|
+ _dev_pm_opp_cpumask_remove_table(cpumask, false, -1);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(dev_pm_opp_cpumask_remove_table);
|
|
EXPORT_SYMBOL_GPL(dev_pm_opp_cpumask_remove_table);
|
|
|
|
|