mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-17 18:36:00 +00:00
opp: Add dev_pm_opp_get_required_pstate()
Add dev_pm_opp_get_required_pstate() which allows OPP users to retrieve required performance state of a given OPP. Tested-by: Peter Geis <pgwipeout@gmail.com> Tested-by: Nicolas Chauvet <kwizart@gmail.com> Tested-by: Matt Merhar <mattmerhar@protonmail.com> Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
This commit is contained in:
parent
8dd5cada39
commit
597ff5431f
@ -145,6 +145,28 @@ unsigned int dev_pm_opp_get_level(struct dev_pm_opp *opp)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dev_pm_opp_get_level);
|
||||
|
||||
/**
|
||||
* dev_pm_opp_get_required_pstate() - Gets the required performance state
|
||||
* corresponding to an available opp
|
||||
* @opp: opp for which performance state has to be returned for
|
||||
* @index: index of the required opp
|
||||
*
|
||||
* Return: performance state read from device tree corresponding to the
|
||||
* required opp, else return 0.
|
||||
*/
|
||||
unsigned int dev_pm_opp_get_required_pstate(struct dev_pm_opp *opp,
|
||||
unsigned int index)
|
||||
{
|
||||
if (IS_ERR_OR_NULL(opp) || !opp->available ||
|
||||
index >= opp->opp_table->required_opp_count) {
|
||||
pr_err("%s: Invalid parameters\n", __func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return opp->required_opps[index]->pstate;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dev_pm_opp_get_required_pstate);
|
||||
|
||||
/**
|
||||
* dev_pm_opp_is_turbo() - Returns if opp is turbo OPP or not
|
||||
* @opp: opp for which turbo mode is being verified
|
||||
|
@ -98,6 +98,9 @@ unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp);
|
||||
|
||||
unsigned int dev_pm_opp_get_level(struct dev_pm_opp *opp);
|
||||
|
||||
unsigned int dev_pm_opp_get_required_pstate(struct dev_pm_opp *opp,
|
||||
unsigned int index);
|
||||
|
||||
bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp);
|
||||
|
||||
int dev_pm_opp_get_opp_count(struct device *dev);
|
||||
@ -186,6 +189,13 @@ static inline unsigned int dev_pm_opp_get_level(struct dev_pm_opp *opp)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline
|
||||
unsigned int dev_pm_opp_get_required_pstate(struct dev_pm_opp *opp,
|
||||
unsigned int index)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp)
|
||||
{
|
||||
return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user