diff options
author | Kevin Hilman <khilman@linaro.org> | 2015-11-04 09:14:16 -0800 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2015-11-04 09:14:16 -0800 |
commit | 9ce0d731981a1489331e12bb7f94907438515622 (patch) | |
tree | dbaf88cffe4c6207b21fc39061fae46f38b6fb2c /arch/x86/kernel/tsc.c | |
parent | c1fa16368f309a6f636ad193a47cde9253db97a7 (diff) | |
parent | b12403044336e7d567f309eb443aa9acf76380af (diff) |
Merge tag 'v3.18.24' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into linux-linaro-lsk-v3.18
Linux 3.18.24
# gpg: Signature made Sat Oct 31 13:44:30 2015 PDT using RSA key ID 97772CDC
# gpg: Can't check signature: public key not found
* tag 'v3.18.24' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (234 commits)
Linux 3.18.24
tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c
Revert "tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c"
Linux 3.18.23
x86: Init per-cpu shadow copy of CR4 on 32-bit CPUs too
3w-9xxx: don't unmap bounce buffered commands
fib_rules: Fix dump_rules() not to exit early
vfs: Test for and handle paths that are unreachable from their mnt_root
md: flush ->event_work before stopping array.
x86/nmi/64: Fix a paravirt stack-clobbering bug in the NMI code
Revert "iio: bmg160: IIO_BUFFER and IIO_TRIGGERED_BUFFER are required"
net: Fix skb_set_peeked use-after-free bug
mm: check if section present during memory block registering
hpfs: update ctime and mtime on directory modification
drivercore: Fix unregistration path of platform devices
ARM: OMAP2+: DRA7: clockdomain: change l4per2_7xx_clkdm to SW_WKUP
of/address: Don't loop forever in of_find_matching_node_by_address().
auxdisplay: ks0108: fix refcount
Doc: ABI: testing: configfs-usb-gadget-sourcesink
Doc: ABI: testing: configfs-usb-gadget-loopback
...
Diffstat (limited to 'arch/x86/kernel/tsc.c')
-rw-r--r-- | arch/x86/kernel/tsc.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c index 505449700e0c..21187ebee7d0 100644 --- a/arch/x86/kernel/tsc.c +++ b/arch/x86/kernel/tsc.c @@ -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); @@ -1004,15 +1005,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; |