lkml.org 
[lkml]   [2020]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 713/717] thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has changed
    Date
    From: Zhuguangqing <zhuguangqing@xiaomi.com>

    commit 236761f19a4f373354f1dcf399b57753f1f4b871 upstream.

    If state has not changed successfully and we updated cpufreq_state,
    next time when the new state is equal to cpufreq_state (not changed
    successfully last time), we will return directly and miss a
    freq_qos_update_request() that should have been.

    Fixes: 5130802ddbb1 ("thermal: cpu_cooling: Switch to QoS requests for freq limits")
    Cc: v5.4+ <stable@vger.kernel.org> # v5.4+
    Signed-off-by: Zhuguangqing <zhuguangqing@xiaomi.com>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/20201106092243.15574-1-zhuguangqing83@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/thermal/cpufreq_cooling.c | 4 +---
    1 file changed, 1 insertion(+), 3 deletions(-)

    --- a/drivers/thermal/cpufreq_cooling.c
    +++ b/drivers/thermal/cpufreq_cooling.c
    @@ -438,13 +438,11 @@ static int cpufreq_set_cur_state(struct
    if (cpufreq_cdev->cpufreq_state == state)
    return 0;

    - cpufreq_cdev->cpufreq_state = state;
    -
    frequency = get_state_freq(cpufreq_cdev, state);

    ret = freq_qos_update_request(&cpufreq_cdev->qos_req, frequency);
    -
    if (ret > 0) {
    + cpufreq_cdev->cpufreq_state = state;
    cpus = cpufreq_cdev->policy->cpus;
    max_capacity = arch_scale_cpu_capacity(cpumask_first(cpus));
    capacity = frequency * max_capacity;

    \
     
     \ /
      Last update: 2020-12-28 15:40    [W:4.977 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site