
From: <pluto@pld-linux.org>

Attached patch fix/add several cpu features.

refs:

[1] Intel Processor Identification and the CPUID instruction
    Application Note 485.
    http://developer.intel.ru/download/design/Xeon/applnots/24161826.pdf

[2] http://www.sandpile.org/ia32/cpuid.htm

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/i386/kernel/cpu/proc.c     |    4 ++--
 25-akpm/arch/x86_64/kernel/setup.c      |    4 ++--
 25-akpm/include/asm-i386/cpufeature.h   |    8 ++++++--
 25-akpm/include/asm-x86_64/cpufeature.h |    8 +++++++-
 4 files changed, 17 insertions(+), 7 deletions(-)

diff -puN arch/i386/kernel/cpu/proc.c~ix86x86_64-cpu-features arch/i386/kernel/cpu/proc.c
--- 25/arch/i386/kernel/cpu/proc.c~ix86x86_64-cpu-features	2004-08-15 15:26:36.993753304 -0700
+++ 25-akpm/arch/i386/kernel/cpu/proc.c	2004-08-15 15:26:37.000752240 -0700
@@ -44,8 +44,8 @@ static int show_cpuinfo(struct seq_file 
 		NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 
 		/* Intel-defined (#2) */
-		"pni", NULL, NULL, "monitor", "ds_cpl", NULL, NULL, "tm2",
-		"est", NULL, "cid", NULL, NULL, NULL, NULL, NULL,
+		"sse3", NULL, NULL, "monitor", "ds_cpl", NULL, NULL, "est",
+		"tm2", NULL, "cid", NULL, NULL, NULL, "xtpr", NULL,
 		NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 		NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 
diff -puN arch/x86_64/kernel/setup.c~ix86x86_64-cpu-features arch/x86_64/kernel/setup.c
--- 25/arch/x86_64/kernel/setup.c~ix86x86_64-cpu-features	2004-08-15 15:26:36.994753152 -0700
+++ 25-akpm/arch/x86_64/kernel/setup.c	2004-08-15 15:26:37.001752088 -0700
@@ -1062,8 +1062,8 @@ static int show_cpuinfo(struct seq_file 
 		NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 
 		/* Intel-defined (#2) */
-		"pni", NULL, NULL, "monitor", "ds_cpl", NULL, NULL, "tm2",
-		"est", NULL, "cid", NULL, NULL, "cmpxchg16b", NULL, NULL,
+		"sse3", NULL, NULL, "monitor", "ds_cpl", NULL, NULL, "est",
+		"tm2", NULL, "cid", NULL, NULL, "cx16", "xtpr", NULL,
 		NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 		NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	};
diff -puN include/asm-i386/cpufeature.h~ix86x86_64-cpu-features include/asm-i386/cpufeature.h
--- 25/include/asm-i386/cpufeature.h~ix86x86_64-cpu-features	2004-08-15 15:26:36.996752848 -0700
+++ 25-akpm/include/asm-i386/cpufeature.h	2004-08-15 15:26:37.002751936 -0700
@@ -71,9 +71,13 @@
 #define X86_FEATURE_P4		(3*32+ 7) /* P4 */
 
 /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
-#define X86_FEATURE_EST		(4*32+ 7) /* Enhanced SpeedStep */
+#define X86_FEATURE_XMM3	(4*32+ 0) /* Streaming SIMD Extensions-3 */
 #define X86_FEATURE_MWAIT	(4*32+ 3) /* Monitor/Mwait support */
-
+#define X86_FEATURE_DSCPL	(4*32+ 4) /* CPL Qualified Debug Store */
+#define X86_FEATURE_EST		(4*32+ 7) /* Enhanced SpeedStep */
+#define X86_FEATURE_TM2		(4*32+ 8) /* Thermal Monitor 2 */
+#define X86_FEATURE_CID		(4*32+10) /* Context ID */
+#define X86_FEATURE_XTPR	(4*32+14) /* Send Task Priority Messages */
 
 /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */
 #define X86_FEATURE_XSTORE	(5*32+ 2) /* on-CPU RNG present (xstore insn) */
diff -puN include/asm-x86_64/cpufeature.h~ix86x86_64-cpu-features include/asm-x86_64/cpufeature.h
--- 25/include/asm-x86_64/cpufeature.h~ix86x86_64-cpu-features	2004-08-15 15:26:36.997752696 -0700
+++ 25-akpm/include/asm-x86_64/cpufeature.h	2004-08-15 15:26:37.002751936 -0700
@@ -63,8 +63,14 @@
 #define X86_FEATURE_K8_C	(3*32+ 4) /* C stepping K8 */
 
 /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
-#define X86_FEATURE_EST		(4*32+ 7) /* Enhanced SpeedStep */
+#define X86_FEATURE_XMM3	(4*32+ 0) /* Streaming SIMD Extensions-3 */
 #define X86_FEATURE_MWAIT	(4*32+ 3) /* Monitor/Mwait support */
+#define X86_FEATURE_DSCPL	(4*32+ 4) /* CPL Qualified Debug Store */
+#define X86_FEATURE_EST		(4*32+ 7) /* Enhanced SpeedStep */
+#define X86_FEATURE_TM2		(4*32+ 8) /* Thermal Monitor 2 */
+#define X86_FEATURE_CID		(4*32+10) /* Context ID */
+#define X86_FEATURE_CX16	(4*32+13) /* CMPXCHG16B */
+#define X86_FEATURE_XTPR	(4*32+14) /* Send Task Priority Messages */
 
 #define cpu_has(c, bit)                test_bit(bit, (c)->x86_capability)
 #define boot_cpu_has(bit)      test_bit(bit, boot_cpu_data.x86_capability)
_
