• Stephan Gerhold's avatar
    opp: Set required OPPs in reverse order when scaling down · 2c59138c
    Stephan Gerhold authored
    The OPP core already has well-defined semantics to ensure required
    OPPs/regulators are set before/after the frequency change, depending
    on if we scale up or down.
    
    Similar requirements might exist for the order of required OPPs
    when multiple power domains need to be scaled for a frequency change.
    
    For example, on Qualcomm platforms using CPR (Core Power Reduction),
    we need to scale the VDDMX and CPR power domain. When scaling up,
    MX should be scaled up before CPR. When scaling down, CPR should be
    scaled down before MX.
    
    In general, if there are multiple "required-opps" in the device tree
    I would expect that the order is either irrelevant, or there is some
    dependency between the power domains. In that case, the power domains
    should be scaled down in reverse order.
    
    This commit updates _set_required_opps() to set required OPPs in
    reverse order when scaling down.
    Signed-off-by: default avatarStephan Gerhold <stephan@gerhold.net>
    [ Viresh: Fix rebase conflict and minor rearrangement of the code ]
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    2c59138c
core.c 63.4 KB