Commit 32715be4 authored by Dmitry Osipenko's avatar Dmitry Osipenko Committed by Viresh Kumar
Browse files

opp: Fix adding OPP entries in a wrong order if rate is unavailable



Fix adding OPP entries in a wrong (opposite) order if OPP rate is
unavailable. The OPP comparison was erroneously skipped, thus OPPs
were left unsorted.

Tested-by: default avatarPeter Geis <pgwipeout@gmail.com>
Tested-by: default avatarNicolas Chauvet <kwizart@gmail.com>
Tested-by: default avatarMatt Merhar <mattmerhar@protonmail.com>
Signed-off-by: default avatarDmitry Osipenko <digetx@gmail.com>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
parent 1048ba83
Loading
Loading
Loading
Loading
+4 −6
Original line number Original line Diff line number Diff line
@@ -1527,13 +1527,11 @@ int _opp_add(struct device *dev, struct dev_pm_opp *new_opp,
	mutex_lock(&opp_table->lock);
	mutex_lock(&opp_table->lock);
	head = &opp_table->opp_list;
	head = &opp_table->opp_list;


	if (likely(!rate_not_available)) {
	ret = _opp_is_duplicate(dev, new_opp, opp_table, &head);
	ret = _opp_is_duplicate(dev, new_opp, opp_table, &head);
	if (ret) {
	if (ret) {
		mutex_unlock(&opp_table->lock);
		mutex_unlock(&opp_table->lock);
		return ret;
		return ret;
	}
	}
	}


	list_add(&new_opp->node, head);
	list_add(&new_opp->node, head);
	mutex_unlock(&opp_table->lock);
	mutex_unlock(&opp_table->lock);