mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
OPP: Add helpers for reading the binding properties
The opp-hz DT property is not mandatory and we may use another property as a key in the OPP table. Add helper functions to simplify the reading and comparing the keys. Signed-off-by: Saravana Kannan <saravanak@google.com> Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org> Reviewed-by: Matthias Kaehlcke <mka@chromium.org> Reviewed-by: Sibi Sankar <sibis@codeaurora.org> [ Viresh: Removed an unnecessary comment ] Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
This commit is contained in:
parent
45a41875fa
commit
6c591eec67
3 changed files with 40 additions and 20 deletions
|
@ -1286,11 +1286,21 @@ static bool _opp_supported_by_regulators(struct dev_pm_opp *opp,
|
|||
return true;
|
||||
}
|
||||
|
||||
int _opp_compare_key(struct dev_pm_opp *opp1, struct dev_pm_opp *opp2)
|
||||
{
|
||||
if (opp1->rate != opp2->rate)
|
||||
return opp1->rate < opp2->rate ? -1 : 1;
|
||||
if (opp1->level != opp2->level)
|
||||
return opp1->level < opp2->level ? -1 : 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _opp_is_duplicate(struct device *dev, struct dev_pm_opp *new_opp,
|
||||
struct opp_table *opp_table,
|
||||
struct list_head **head)
|
||||
{
|
||||
struct dev_pm_opp *opp;
|
||||
int opp_cmp;
|
||||
|
||||
/*
|
||||
* Insert new OPP in order of increasing frequency and discard if
|
||||
|
@ -1301,12 +1311,13 @@ static int _opp_is_duplicate(struct device *dev, struct dev_pm_opp *new_opp,
|
|||
* loop.
|
||||
*/
|
||||
list_for_each_entry(opp, &opp_table->opp_list, node) {
|
||||
if (new_opp->rate > opp->rate) {
|
||||
opp_cmp = _opp_compare_key(new_opp, opp);
|
||||
if (opp_cmp > 0) {
|
||||
*head = &opp->node;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (new_opp->rate < opp->rate)
|
||||
if (opp_cmp < 0)
|
||||
return 0;
|
||||
|
||||
/* Duplicate OPPs */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue