• Rafael J. Wysocki's avatar
    cpufreq: intel_pstate: Avoid percentages in limits-related computations · e4c204ce
    Rafael J. Wysocki authored
    Currently, intel_pstate_update_perf_limits() first converts the
    policy minimum and maximum limits into percentages of the maximum
    turbo frequency (rounding up to an integer) and then converts these
    percentages to fractions (by using fixed-point arithmetic to divide
    them by 100).
    
    That introduces a rounding error unnecessarily, because the fractions
    can be obtained by carrying out fixed-point divisions directly on the
    input numbers.
    
    Rework the computations in intel_pstate_hwp_set() to use fractions
    instead of percentages (and drop redundant local variables from
    there) and modify intel_pstate_update_perf_limits() to compute the
    fractions directly and percentages out of them.
    
    While at it, introduce percent_ext_fp() for converting percentages
    to fractions (with extended number of fraction bits) and use it in
    the computations.
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    e4c204ce
intel_pstate.c 69.3 KB