• Viresh Kumar's avatar
    cpufreq: Don't skip frequency validation for has_target() drivers · 98015228
    Viresh Kumar authored
    CPUFREQ_CONST_LOOPS was introduced in a very old commit from pre-2.6
    kernel release by commit 6a4a93f9 ("[CPUFREQ] Fix 'out of sync'
    issue").
    
    Basically, that commit does two things:
    
     - It adds the frequency verification code (which is quite similar to
       what we have today as well).
    
     - And it sets the CPUFREQ_CONST_LOOPS flag only for setpolicy drivers,
       rightly so based on the code we had then. The idea was to avoid
       frequency validation for setpolicy drivers as the cpufreq core doesn't
       know what frequency the hardware is running at and so no point in
       doing frequency verification.
    
    The problem happened when we started to use the same CPUFREQ_CONST_LOOPS
    flag for constant loops-per-jiffy thing as well and many has_target()
    drivers started using the same flag and unknowingly skipped the
    verification of frequency. There is no logical reason behind skipping
    frequency validation because of the presence of CPUFREQ_CONST_LOOPS
    flag otherwise.
    
    Fix this issue by skipping frequency validation only for setpolicy
    drivers and always doing it for has_target() drivers irrespective of
    the presence or absence of CPUFREQ_CONST_LOOPS flag.
    
    cpufreq_notify_transition() is only called for has_target() type driver
    and not for set_policy type, and the check is simply redundant. Remove
    it as well.
    
    Also remove () around freq comparison statement as they aren't required
    and checkpatch also warns for them.
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    98015228
cpufreq.c 69.6 KB