]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
intel_pstate: don't touch turbo bit if turbo disabled or unavailable.
authorDirk Brandewie <dirk.j.brandewie@intel.com>
Fri, 20 Jun 2014 14:27:59 +0000 (07:27 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 6 Jul 2014 23:22:19 +0000 (01:22 +0200)
commitdd5fbf70f96dbfd7ee432096a1f979b2b3267856
tree7829e15ad3cd4dbdbdd1121f4d7649bf008f6481
parentc16ed06024a6e699c332831dd50d8276744e3de8
intel_pstate: don't touch turbo bit if turbo disabled or unavailable.

If turbo is disabled in the BIOS bit 38 should be set in
MSR_IA32_MISC_ENABLE register per section 14.3.2.1 of the SDM Vol 3
document 325384-050US Feb 2014.  If this bit is set do *not* attempt
to disable trubo via the MSR_IA32_PERF_CTL register.  On some systems
trying to disable turbo via MSR_IA32_PERF_CTL will cause subsequent
writes to MSR_IA32_PERF_CTL not take affect, in fact reading
MSR_IA32_PERF_CTL will not show the IDA/Turbo DISENGAGE bit(32) as
set. A write of bit 32 to zero returns to normal operation.

Also deal with the case where the processor does not support
turbo and the BIOS does not report the fact in MSR_IA32_MISC_ENABLE
but does report the max and turbo P states as the same value.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=64251
Cc: 3.13+ <stable@vger.kernel.org> # 3.13+
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/intel_pstate.c