summaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq
diff options
context:
space:
mode:
authorStratos Karafotis <stratosk@semaphore.gr>2014-07-18 08:37:25 -0700
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-07-21 13:43:18 +0200
commitac658131d79e775efb0b819cc5a833e581d4de28 (patch)
tree83efd36c570136f8a3989bc70970fb88b46a543d /drivers/cpufreq
parent4ab60c3f32c721e46217e762bcd3e55a8f659c04 (diff)
downloadop-kernel-dev-ac658131d79e775efb0b819cc5a833e581d4de28.zip
op-kernel-dev-ac658131d79e775efb0b819cc5a833e581d4de28.tar.gz
cpufreq: intel_pstate: Keep values in aperf/mperf in full precision
Currently we shift right aperf and mperf variables by FRAC_BITS to prevent overflow when we convert them to fix point numbers (shift left by FRAC_BITS). But this is not necessary, because we actually use delta aperf and mperf which are much less than APERF and MPERF values. So, use the unmodified APERF and MPERF values in calculation. This also adds 8 bits in precision, although the gain is insignificant. Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr> Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r--drivers/cpufreq/intel_pstate.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index ff3c562..129ffb2 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -584,9 +584,6 @@ static inline void intel_pstate_sample(struct cpudata *cpu)
rdmsrl(MSR_IA32_MPERF, mperf);
local_irq_restore(flags);
- aperf = aperf >> FRAC_BITS;
- mperf = mperf >> FRAC_BITS;
-
cpu->last_sample_time = cpu->sample.time;
cpu->sample.time = ktime_get();
cpu->sample.aperf = aperf;
OpenPOWER on IntegriCloud