diff options
author | Hsin-Yi Wang | 2021-06-16 13:33:35 +0800 |
---|---|---|
committer | Viresh Kumar | 2021-06-18 09:00:55 +0530 |
commit | 4fa82a87ba55f5eca7d194055572110652daa264 (patch) | |
tree | 755993e853f88f35ac154d71149ba380b3c3547a /drivers/opp/core.c | |
parent | ac9fd3c8034011cc10a4c161b70a5837d95203f6 (diff) |
opp: Allow required-opps to be used for non genpd use cases
Don't limit required_opp_table to genpd only. One possible use case is
cpufreq based devfreq governor, which can use required-opps property to
derive devfreq from cpufreq.
Though the OPP core still doesn't support non-genpd required-opps in
_set_required_opps().
Suggested-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
[ Viresh: Update _set_required_opps() to check for genpd ]
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Diffstat (limited to 'drivers/opp/core.c')
-rw-r--r-- | drivers/opp/core.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/opp/core.c b/drivers/opp/core.c index e366218d6736..b335c077f215 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -893,6 +893,16 @@ static int _set_required_opps(struct device *dev, if (!required_opp_tables) return 0; + /* + * We only support genpd's OPPs in the "required-opps" for now, as we + * don't know much about other use cases. Error out if the required OPP + * doesn't belong to a genpd. + */ + if (unlikely(!required_opp_tables[0]->is_genpd)) { + dev_err(dev, "required-opps don't belong to a genpd\n"); + return -ENOENT; + } + /* required-opps not fully initialized yet */ if (lazy_linking_pending(opp_table)) return -EBUSY; |