diff --git a/arch/x86/kernel/cpu/cyrix.c b/arch/x86/kernel/cpu/cyrix.c index db5868c..d3323d1 100644 --- a/arch/x86/kernel/cpu/cyrix.c +++ b/arch/x86/kernel/cpu/cyrix.c @@ -155,7 +155,7 @@ static void __cpuinit set_cx86_inc(void) * Configure later MediaGX and/or Geode processor. */ -static void __cpuinit geode_configure(void) +static void __cpuinit geode_configure(unsigned char dir1) { unsigned long flags; u8 ccr3; @@ -174,7 +174,9 @@ static void __cpuinit geode_configure(void) set_cx86_memwb(); set_cx86_reorder(); - set_cx86_inc(); + /* GXm and GXLV don't have incrementors */ + if (dir1 >= 0x80) + set_cx86_inc(); local_irq_restore(flags); } @@ -295,7 +297,7 @@ static void __cpuinit init_cyrix(struct cpuinfo_x86 *c) * GX1 : 0x8x GX1 datasheet 56 */ if ((0x30 <= dir1 && dir1 <= 0x6f) || (0x80 <= dir1 && dir1 <= 0x8f)) - geode_configure(); + geode_configure(dir1); get_model_name(c); /* get CPU marketing name */ return; } else { /* MediaGX */