Skip to content

Commit 2a4eb73

Browse files
committed
OPP: Don't remove dynamic OPPs from _dev_pm_opp_remove_table()
Only one platform was depending on this feature and it is already updated now. Stop removing dynamic OPPs from _dev_pm_opp_remove_table(). This simplifies lot of paths and removes unnecessary parameters. Tested-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
1 parent 883071c commit 2a4eb73

File tree

4 files changed

+17
-30
lines changed

4 files changed

+17
-30
lines changed

drivers/opp/core.c

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1759,14 +1759,10 @@ int dev_pm_opp_unregister_notifier(struct device *dev,
17591759
EXPORT_SYMBOL(dev_pm_opp_unregister_notifier);
17601760

17611761
/*
1762-
* Free OPPs either created using static entries present in DT or even the
1763-
* dynamically added entries based on remove_all param.
1762+
* Free OPPs either created using static entries present in DT.
17641763
*/
1765-
void _dev_pm_opp_remove_table(struct opp_table *opp_table, struct device *dev,
1766-
bool remove_all)
1764+
void _dev_pm_opp_remove_table(struct opp_table *opp_table, struct device *dev)
17671765
{
1768-
struct dev_pm_opp *opp, *tmp;
1769-
17701766
/* Protect dev_list */
17711767
mutex_lock(&opp_table->lock);
17721768

@@ -1775,12 +1771,6 @@ void _dev_pm_opp_remove_table(struct opp_table *opp_table, struct device *dev,
17751771
/* Free static OPPs */
17761772
_put_opp_list_kref(opp_table);
17771773

1778-
/* Free dynamic OPPs */
1779-
list_for_each_entry_safe(opp, tmp, &opp_table->opp_list, node) {
1780-
if (remove_all)
1781-
dev_pm_opp_put(opp);
1782-
}
1783-
17841774
/*
17851775
* The OPP table is getting removed, drop the performance state
17861776
* constraints.
@@ -1795,7 +1785,7 @@ void _dev_pm_opp_remove_table(struct opp_table *opp_table, struct device *dev,
17951785
mutex_unlock(&opp_table->lock);
17961786
}
17971787

1798-
void _dev_pm_opp_find_and_remove_table(struct device *dev, bool remove_all)
1788+
void _dev_pm_opp_find_and_remove_table(struct device *dev)
17991789
{
18001790
struct opp_table *opp_table;
18011791

@@ -1812,7 +1802,7 @@ void _dev_pm_opp_find_and_remove_table(struct device *dev, bool remove_all)
18121802
return;
18131803
}
18141804

1815-
_dev_pm_opp_remove_table(opp_table, dev, remove_all);
1805+
_dev_pm_opp_remove_table(opp_table, dev);
18161806

18171807
dev_pm_opp_put_opp_table(opp_table);
18181808
}
@@ -1826,6 +1816,6 @@ void _dev_pm_opp_find_and_remove_table(struct device *dev, bool remove_all)
18261816
*/
18271817
void dev_pm_opp_remove_table(struct device *dev)
18281818
{
1829-
_dev_pm_opp_find_and_remove_table(dev, true);
1819+
_dev_pm_opp_find_and_remove_table(dev);
18301820
}
18311821
EXPORT_SYMBOL_GPL(dev_pm_opp_remove_table);

drivers/opp/cpu.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ void dev_pm_opp_free_cpufreq_table(struct device *dev,
108108
EXPORT_SYMBOL_GPL(dev_pm_opp_free_cpufreq_table);
109109
#endif /* CONFIG_CPU_FREQ */
110110

111-
void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask, bool of,
111+
void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask,
112112
int last_cpu)
113113
{
114114
struct device *cpu_dev;
@@ -127,10 +127,7 @@ void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask, bool of,
127127
continue;
128128
}
129129

130-
if (of)
131-
dev_pm_opp_of_remove_table(cpu_dev);
132-
else
133-
dev_pm_opp_remove_table(cpu_dev);
130+
_dev_pm_opp_find_and_remove_table(cpu_dev);
134131
}
135132
}
136133

@@ -144,7 +141,7 @@ void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask, bool of,
144141
*/
145142
void dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask)
146143
{
147-
_dev_pm_opp_cpumask_remove_table(cpumask, false, -1);
144+
_dev_pm_opp_cpumask_remove_table(cpumask, -1);
148145
}
149146
EXPORT_SYMBOL_GPL(dev_pm_opp_cpumask_remove_table);
150147

drivers/opp/of.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev,
279279
*/
280280
void dev_pm_opp_of_remove_table(struct device *dev)
281281
{
282-
_dev_pm_opp_find_and_remove_table(dev, false);
282+
_dev_pm_opp_find_and_remove_table(dev);
283283
}
284284
EXPORT_SYMBOL_GPL(dev_pm_opp_of_remove_table);
285285

@@ -432,7 +432,7 @@ static int _of_add_opp_table_v2(struct device *dev, struct device_node *opp_np,
432432
if (ret) {
433433
dev_err(dev, "%s: Failed to add OPP, %d\n", __func__,
434434
ret);
435-
_dev_pm_opp_remove_table(opp_table, dev, false);
435+
_dev_pm_opp_remove_table(opp_table, dev);
436436
of_node_put(np);
437437
goto put_opp_table;
438438
}
@@ -453,7 +453,7 @@ static int _of_add_opp_table_v2(struct device *dev, struct device_node *opp_np,
453453
dev_err(dev, "Not all nodes have performance state set (%d: %d)\n",
454454
count, pstate_count);
455455
ret = -ENOENT;
456-
_dev_pm_opp_remove_table(opp_table, dev, false);
456+
_dev_pm_opp_remove_table(opp_table, dev);
457457
goto put_opp_table;
458458
}
459459

@@ -507,7 +507,7 @@ static int _of_add_opp_table_v1(struct device *dev)
507507
if (ret) {
508508
dev_err(dev, "%s: Failed to add OPP %ld (%d)\n",
509509
__func__, freq, ret);
510-
_dev_pm_opp_remove_table(opp_table, dev, false);
510+
_dev_pm_opp_remove_table(opp_table, dev);
511511
break;
512512
}
513513
nr -= 2;
@@ -618,7 +618,7 @@ EXPORT_SYMBOL_GPL(dev_pm_opp_of_add_table_indexed);
618618
*/
619619
void dev_pm_opp_of_cpumask_remove_table(const struct cpumask *cpumask)
620620
{
621-
_dev_pm_opp_cpumask_remove_table(cpumask, true, -1);
621+
_dev_pm_opp_cpumask_remove_table(cpumask, -1);
622622
}
623623
EXPORT_SYMBOL_GPL(dev_pm_opp_of_cpumask_remove_table);
624624

@@ -653,7 +653,7 @@ int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask)
653653
__func__, cpu, ret);
654654

655655
/* Free all other OPPs */
656-
_dev_pm_opp_cpumask_remove_table(cpumask, true, cpu);
656+
_dev_pm_opp_cpumask_remove_table(cpumask, cpu);
657657
break;
658658
}
659659
}

drivers/opp/opp.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,13 +194,13 @@ void _get_opp_table_kref(struct opp_table *opp_table);
194194
int _get_opp_count(struct opp_table *opp_table);
195195
struct opp_table *_find_opp_table(struct device *dev);
196196
struct opp_device *_add_opp_dev(const struct device *dev, struct opp_table *opp_table);
197-
void _dev_pm_opp_remove_table(struct opp_table *opp_table, struct device *dev, bool remove_all);
198-
void _dev_pm_opp_find_and_remove_table(struct device *dev, bool remove_all);
197+
void _dev_pm_opp_remove_table(struct opp_table *opp_table, struct device *dev);
198+
void _dev_pm_opp_find_and_remove_table(struct device *dev);
199199
struct dev_pm_opp *_opp_allocate(struct opp_table *opp_table);
200200
void _opp_free(struct dev_pm_opp *opp);
201201
int _opp_add(struct device *dev, struct dev_pm_opp *new_opp, struct opp_table *opp_table, bool rate_not_available);
202202
int _opp_add_v1(struct opp_table *opp_table, struct device *dev, unsigned long freq, long u_volt, bool dynamic);
203-
void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask, bool of, int last_cpu);
203+
void _dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask, int last_cpu);
204204
struct opp_table *_add_opp_table(struct device *dev);
205205
void _put_opp_list_kref(struct opp_table *opp_table);
206206

0 commit comments

Comments
 (0)