]> git.hungrycats.org Git - linux/commitdiff
[PATCH] Fix up Centaur CPU feature enabling.
authorDave Jones <davej@redhat.com>
Mon, 30 Aug 2004 10:15:58 +0000 (03:15 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Mon, 30 Aug 2004 10:15:58 +0000 (03:15 -0700)
Nehemiah wasn't having the CX8 bit enabled before.
In fixing it up, I rewrote the code to be a little clearer.

Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/cpu/centaur.c

index e85f4827e5eca70ab52cdb6dc360967773d4f5a2..394814e576720998c19573afcf23707695836e72 100644 (file)
@@ -286,23 +286,20 @@ static void __init init_c3(struct cpuinfo_x86 *c)
                c->x86_capability[5] = cpuid_edx(0xC0000001);
        }
 
-       switch (c->x86_model) {
-               case 6 ... 8:           /* Cyrix III family */
-                       rdmsr (MSR_VIA_FCR, lo, hi);
-                       lo |= (1<<1 | 1<<7);    /* Report CX8 & enable PGE */
-                       wrmsr (MSR_VIA_FCR, lo, hi);
-
-                       set_bit(X86_FEATURE_CX8, c->x86_capability);
-                       set_bit(X86_FEATURE_3DNOW, c->x86_capability);
+       /* Cyrix III family needs CX8 & PGE explicity enabled. */
+       if (c->x86_model >=6 && c->x86_model <= 9) {
+               rdmsr (MSR_VIA_FCR, lo, hi);
+               lo |= (1<<1 | 1<<7);
+               wrmsr (MSR_VIA_FCR, lo, hi);
+               set_bit(X86_FEATURE_CX8, c->x86_capability);
+       }
 
-                       /* fall through */
+       /* Before Nehemiah, the C3's had 3dNOW! */
+       if (c->x86_model >=6 && c->x86_model <9)
+               set_bit(X86_FEATURE_3DNOW, c->x86_capability);
 
-               case 9: /* Nehemiah */
-               default:
-                       get_model_name(c);
-                       display_cacheinfo(c);
-                       break;
-       }
+       get_model_name(c);
+       display_cacheinfo(c);
 }
 
 static void __init init_centaur(struct cpuinfo_x86 *c)