diff -u -r linux/arch/i386/config.in linux-2.3.99/arch/i386/config.in --- linux/arch/i386/config.in Sun Mar 12 22:49:24 2000 +++ linux-2.3.99/arch/i386/config.in Wed Mar 22 12:50:32 2000 @@ -33,6 +33,10 @@ define_bool CONFIG_X86_BSWAP y define_bool CONFIG_X86_POPAD_OK y fi +if [ "$CONFIG_M386" = "y" -o "$CONFIG_M486" = "y" -o "$CONFIG_M586" = "y" ]; then + bool 'AMD ELAN (SC300/SC310/SC400/SC410/SC520) support' CONFIG_AMD_ELAN +fi + if [ "$CONFIG_M686" = "y" -o "$CONFIG_M586TSC" = "y" ]; then define_bool CONFIG_X86_TSC y fi diff -u -r linux/include/asm-i386/timex.h linux-2.3.99/include/asm-i386/timex.h --- linux/include/asm-i386/timex.h Sat Mar 18 15:10:59 2000 +++ linux-2.3.99/include/asm-i386/timex.h Wed Mar 22 12:53:22 2000 @@ -9,7 +9,18 @@ #include #include -#define CLOCK_TICK_RATE 1193180 /* Underlying HZ */ +#ifdef CONFIG_AMD_ELAN + +#ifndef CONFIG_M586 +#define CLOCK_TICK_RATE 1189200 /* Underlying HZ on AMD SC300/310/400/410 */ +#else +#define CLOCK_TICK_RATE 1188200 /* Underlying HZ on AMD SC520 */ +#endif + +#else +#define CLOCK_TICK_RATE 1193180 /* Underlying HZ */ +#endif + #define CLOCK_TICK_FACTOR 20 /* Factor of both 1000000 and CLOCK_TICK_RATE */ #define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * \ (1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) \