aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2011-02-16 01:32:48 -0500
committerLen Brown <len.brown@intel.com>2011-02-17 17:08:48 -0500
commitbfb53ccf1c734b1907df7189eef4c08489827951 (patch)
tree7d93bac0a87b89c9e7f87c4bad2e43fcef6725f1
parent14796fca2bd22acc73dd0887248d003b0f441d08 (diff)
intel_idle: disable Atom/Lincroft HW C-state auto-demotion
Just as we had to disable auto-demotion for NHM/WSM, we need to do the same for Atom (Lincroft version). In particular, auto-demotion will prevent Lincroft from entering the S0i3 idle power saving state. https://bugzilla.kernel.org/show_bug.cgi?id=25252 Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--arch/x86/include/asm/msr-index.h1
-rw-r--r--drivers/idle/intel_idle.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index b75eeab2b1ea..43a18c77676d 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -39,6 +39,7 @@
39#define MSR_NHM_SNB_PKG_CST_CFG_CTL 0x000000e2 39#define MSR_NHM_SNB_PKG_CST_CFG_CTL 0x000000e2
40#define NHM_C3_AUTO_DEMOTE (1UL << 25) 40#define NHM_C3_AUTO_DEMOTE (1UL << 25)
41#define NHM_C1_AUTO_DEMOTE (1UL << 26) 41#define NHM_C1_AUTO_DEMOTE (1UL << 26)
42#define ATM_LNC_C6_AUTO_DEMOTE (1UL << 25)
42 43
43#define MSR_MTRRcap 0x000000fe 44#define MSR_MTRRcap 0x000000fe
44#define MSR_IA32_BBL_CR_CTL 0x00000119 45#define MSR_IA32_BBL_CR_CTL 0x00000119
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index 32b25bcaf865..4a5c4a44ffb1 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -345,8 +345,12 @@ static int intel_idle_probe(void)
345 break; 345 break;
346 346
347 case 0x1C: /* 28 - Atom Processor */ 347 case 0x1C: /* 28 - Atom Processor */
348 cpuidle_state_table = atom_cstates;
349 break;
350
348 case 0x26: /* 38 - Lincroft Atom Processor */ 351 case 0x26: /* 38 - Lincroft Atom Processor */
349 cpuidle_state_table = atom_cstates; 352 cpuidle_state_table = atom_cstates;
353 auto_demotion_disable_flags = ATM_LNC_C6_AUTO_DEMOTE;
350 break; 354 break;
351 355
352 case 0x2A: /* SNB */ 356 case 0x2A: /* SNB */