PM / OPP: Add light weight _opp_free() routine

The OPPs which are never successfully added using _opp_add() are not
required to be freed with the _opp_remove() routine, as a simple kfree()
is enough for them.

Introduce a new light weight routine _opp_free(), which will do that.

That also helps us removing the 'notify' parameter to _opp_remove(),
which isn't required anymore.

Note that _opp_free() contains a call to _remove_opp_table() as the OPP
table might have been added for this very OPP only. The
_remove_opp_table() routine returns quickly if there are more OPPs in
the table. This will be simplified in later patches though.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Viresh Kumar
2017-01-02 14:40:59 +05:30
committed by Rafael J. Wysocki
parent 04a86a84c4
commit 969fceb3c7
3 changed files with 13 additions and 11 deletions

View File

@@ -362,7 +362,7 @@ static int _opp_add_static_v2(struct device *dev, struct device_node *np)
return 0;
free_opp:
_opp_remove(opp_table, new_opp, false);
_opp_free(new_opp, opp_table);
unlock:
mutex_unlock(&opp_table_lock);
return ret;