• Viresh Kumar's avatar
    OPP: Call dev_pm_opp_set_opp() for required OPPs · e37440e7
    Viresh Kumar authored
    Configuring the required OPP was never properly implemented, we just
    took an exception for genpds and configured them directly, while leaving
    out all other required OPP types.
    
    Now that a standard call to dev_pm_opp_set_opp() takes care of
    configuring the opp->level too, the special handling for genpds can be
    avoided by simply calling dev_pm_opp_set_opp() for the required OPPs,
    which shall eventually configure the corresponding level for genpds.
    
    This also makes it possible for us to configure other type of required
    OPPs (no concrete users yet though), via the same path. This is how
    other frameworks take care of parent nodes, like clock, regulators, etc,
    where we recursively call the same helper.
    
    In order to call dev_pm_opp_set_opp() for the virtual genpd devices,
    they must share the OPP table of the genpd. Call _add_opp_dev() for them
    to get that done.
    
    This commit also extends the struct dev_pm_opp_config to pass required
    devices, for non-genpd cases, which can be used to call
    dev_pm_opp_set_opp() for the non-genpd required devices.
    Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Tested-by: default avatarStephan Gerhold <stephan.gerhold@kernkonzept.com>
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    e37440e7
opp.h 9.74 KB