]> git.baikalelectronics.ru Git - kernel.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)
commit69db044da885bd764fbe82bb4e35db98c1d91ac6
tree7829e15ad3cd4dbdbdd1121f4d7649bf008f6481
parent39abdd8e6b7ff22fae752a313d2ef810cc9723ee
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