• Viresh Kumar's avatar
    OPP: don't drop performance constraint on OPP table removal · 04bd2eaf
    Viresh Kumar authored
    This code was added (long back) by commit 009acd19 ("PM / OPP:
    Support updating performance state of device's power domain") and at
    that time the `opp->pstate` field was used to store the performance
    state required by a device's OPP.
    
    Over time that changed and the `->pstate` field is now used only for
    genpd devices and consumer devices access that via the required-opps
    instead.
    
    Because of all these changes, _opp_table_kref_release() now drops the
    constraint only when the genpd's OPP table gets freed and not the
    device's. Which is definitely not what we wanted. And dropping the
    constraint doesn't have much meaning as the genpd itself is going away.
    
    Moreover, if we want to drop constraints here, then just dropping the
    performance constraint alone isn't sufficient as there are other
    resource constraints like clk, regulator, etc. too, which must be
    handled.
    
    Probably the right thing to do here is to leave this decision to the
    consumers, which can call `dev_pm_opp_set_rate(dev, 0)` or similar APIs
    to drop all constraints properly. Which many of the consumers already
    do.
    
    Remove the special code, which is broken anyway.
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    04bd2eaf
core.c 81.4 KB