x86: convert TSC disabling to generic cpuid disable bitmap
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / include / asm-x86 / tsc.h
CommitLineData
2272b0e0 1/*
2f0798a3 2 * x86 TSC related functions
2272b0e0 3 */
2f0798a3
TG
4#ifndef _ASM_X86_TSC_H
5#define _ASM_X86_TSC_H
2272b0e0
AS
6
7#include <asm/processor.h>
8
2f0798a3
TG
9#define NS_SCALE 10 /* 2^10, carefully chosen */
10#define US_SCALE 32 /* 2^32, arbitralrily chosen */
11
2272b0e0
AS
12/*
13 * Standard way to access the cycle counter.
14 */
15typedef unsigned long long cycles_t;
16
17extern unsigned int cpu_khz;
18extern unsigned int tsc_khz;
73018a66
GOC
19
20extern void disable_TSC(void);
2272b0e0
AS
21
22static inline cycles_t get_cycles(void)
23{
24 unsigned long long ret = 0;
25
26#ifndef CONFIG_X86_TSC
27 if (!cpu_has_tsc)
28 return 0;
29#endif
30
31#if defined(CONFIG_X86_GENERIC) || defined(CONFIG_X86_TSC)
32 rdtscll(ret);
33#endif
34 return ret;
35}
36
6d63de8d 37static inline cycles_t vget_cycles(void)
2272b0e0 38{
c5bcb563 39 /*
6d63de8d
AK
40 * We only do VDSOs on TSC capable CPUs, so this shouldnt
41 * access boot_cpu_data (which is not VDSO-safe):
c5bcb563 42 */
6d63de8d
AK
43#ifndef CONFIG_X86_TSC
44 if (!cpu_has_tsc)
45 return 0;
4e87173e 46#endif
92767af0 47 return (cycles_t) __native_read_tsc();
6d63de8d 48}
4e87173e 49
2272b0e0 50extern void tsc_init(void);
5a90cf20 51extern void mark_tsc_unstable(char *reason);
2272b0e0
AS
52extern int unsynchronized_tsc(void);
53extern void init_tsc_clocksource(void);
d7e28ffe 54int check_tsc_unstable(void);
2272b0e0
AS
55
56/*
57 * Boot-time check whether the TSCs are synchronized across
58 * all CPUs/cores:
59 */
60extern void check_tsc_sync_source(int cpu);
61extern void check_tsc_sync_target(void);
62
d371698e 63extern void tsc_calibrate(void);
80ca9c98 64extern int notsc_setup(char *);
d371698e 65
2272b0e0 66#endif