|
@@ -21,6 +21,7 @@
|
|
|
#include <asm/hypervisor.h>
|
|
|
#include <asm/nmi.h>
|
|
|
#include <asm/x86_init.h>
|
|
|
+#include <asm/geode.h>
|
|
|
|
|
|
unsigned int __read_mostly cpu_khz; /* TSC clocks / usec, not used here */
|
|
|
EXPORT_SYMBOL(cpu_khz);
|
|
@@ -1015,15 +1016,17 @@ EXPORT_SYMBOL_GPL(mark_tsc_unstable);
|
|
|
|
|
|
static void __init check_system_tsc_reliable(void)
|
|
|
{
|
|
|
-#ifdef CONFIG_MGEODE_LX
|
|
|
- /* RTSC counts during suspend */
|
|
|
+#if defined(CONFIG_MGEODEGX1) || defined(CONFIG_MGEODE_LX) || defined(CONFIG_X86_GENERIC)
|
|
|
+ if (is_geode_lx()) {
|
|
|
+ /* RTSC counts during suspend */
|
|
|
#define RTSC_SUSP 0x100
|
|
|
- unsigned long res_low, res_high;
|
|
|
+ unsigned long res_low, res_high;
|
|
|
|
|
|
- rdmsr_safe(MSR_GEODE_BUSCONT_CONF0, &res_low, &res_high);
|
|
|
- /* Geode_LX - the OLPC CPU has a very reliable TSC */
|
|
|
- if (res_low & RTSC_SUSP)
|
|
|
- tsc_clocksource_reliable = 1;
|
|
|
+ rdmsr_safe(MSR_GEODE_BUSCONT_CONF0, &res_low, &res_high);
|
|
|
+ /* Geode_LX - the OLPC CPU has a very reliable TSC */
|
|
|
+ if (res_low & RTSC_SUSP)
|
|
|
+ tsc_clocksource_reliable = 1;
|
|
|
+ }
|
|
|
#endif
|
|
|
if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE))
|
|
|
tsc_clocksource_reliable = 1;
|