Message ID | 31f315cf2b0c4afd60b07b7121058dcaa6e4afa1.1598260882.git.viresh.kumar@linaro.org |
---|---|
State | New |
Headers | show |
Series | [-,stable,v5.4,and,v5.7] opp: Enable resources again if they were disabled earlier | expand |
On 24-08-20, 18:10, Greg KH wrote: > On Mon, Aug 24, 2020 at 02:52:23PM +0530, Viresh Kumar wrote: > > From: Rajendra Nayak <rnayak@codeaurora.org> > > > > commit a4501bac0e553bed117b7e1b166d49731caf7260 upstream. > > > > dev_pm_opp_set_rate() can now be called with freq = 0 in order > > to either drop performance or bandwidth votes or to disable > > regulators on platforms which support them. > > > > In such cases, a subsequent call to dev_pm_opp_set_rate() with > > the same frequency ends up returning early because 'old_freq == freq' > > > > Instead make it fall through and put back the dropped performance > > and bandwidth votes and/or enable back the regulators. > > > > Cc: v5.3+ <stable@vger.kernel.org> # v5.3+ > > Fixes: cd7ea582866f ("opp: Make dev_pm_opp_set_rate() handle freq = 0 to drop performance votes") > > Reported-by: Sajida Bhanu <sbhanu@codeaurora.org> > > Reviewed-by: Sibi Sankar <sibis@codeaurora.org> > > Reported-by: Matthias Kaehlcke <mka@chromium.org> > > Tested-by: Matthias Kaehlcke <mka@chromium.org> > > Reviewed-by: Stephen Boyd <sboyd@kernel.org> > > Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org> > > [ Viresh: Don't skip clk_set_rate() and massaged changelog ] > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > > [ Viresh: Updated the patch to apply to v5.4 ] > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > > --- > > drivers/opp/core.c | 10 ++++++---- > > 1 file changed, 6 insertions(+), 4 deletions(-) > > This too is already in the 5.7 and 5.4 queues, why add it again? Same here, your bot reported that patch failed to apply for 5.4 and 5.7, again rightly so as I was required to modify the patch a little bit and so I have added another signed-off and details. -- viresh
diff --git a/drivers/opp/core.c b/drivers/opp/core.c index 9ff0538ee83a..518442be638d 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -843,10 +843,12 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) /* Return early if nothing to do */ if (old_freq == freq) { - dev_dbg(dev, "%s: old/new frequencies (%lu Hz) are same, nothing to do\n", - __func__, freq); - ret = 0; - goto put_opp_table; + if (!opp_table->required_opp_tables) { + dev_dbg(dev, "%s: old/new frequencies (%lu Hz) are same, nothing to do\n", + __func__, freq); + ret = 0; + goto put_opp_table; + } } temp_freq = old_freq;