diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-24 16:29:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-24 16:29:46 -0400 |
commit | c7523a7c88db637d66841018532cb4b3ab6ab0a8 (patch) | |
tree | cec08263a493831d43e17d4daa633e2a6b09480e /arch | |
parent | 2f78d8e249973f1eeb88315e6444e616c60177ae (diff) | |
parent | b80fe1015be4e3c926d8eb4cc6a340fdd22a43e1 (diff) |
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer updates from Thomas Gleixner.
Various trivial conflict fixups in arch Kconfig due to addition of
unrelated entries nearby. And one slightly more subtle one for sparc32
(new user of GENERIC_CLOCKEVENTS), fixed up as per Thomas.
* 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
timekeeping: Fix a few minor newline issues.
time: remove obsolete declaration
ntp: Fix a stale comment and a few stray newlines.
ntp: Correct TAI offset during leap second
timers: Fixup the Kconfig consolidation fallout
x86: Use generic time config
unicore32: Use generic time config
um: Use generic time config
tile: Use generic time config
sparc: Use: generic time config
sh: Use generic time config
score: Use generic time config
s390: Use generic time config
openrisc: Use generic time config
powerpc: Use generic time config
mn10300: Use generic time config
mips: Use generic time config
microblaze: Use generic time config
m68k: Use generic time config
m32r: Use generic time config
...
Diffstat (limited to 'arch')
-rw-r--r-- | arch/alpha/Kconfig | 4 | ||||
-rw-r--r-- | arch/arm/Kconfig | 20 | ||||
-rw-r--r-- | arch/avr32/Kconfig | 6 | ||||
-rw-r--r-- | arch/blackfin/Kconfig | 10 | ||||
-rw-r--r-- | arch/c6x/Kconfig | 8 | ||||
-rw-r--r-- | arch/cris/Kconfig | 7 | ||||
-rw-r--r-- | arch/h8300/Kconfig.cpu | 2 | ||||
-rw-r--r-- | arch/hexagon/Kconfig | 16 | ||||
-rw-r--r-- | arch/ia64/Kconfig | 9 | ||||
-rw-r--r-- | arch/m32r/Kconfig | 4 | ||||
-rw-r--r-- | arch/m68k/Kconfig | 11 | ||||
-rw-r--r-- | arch/microblaze/Kconfig | 9 | ||||
-rw-r--r-- | arch/mips/Kconfig | 15 | ||||
-rw-r--r-- | arch/mn10300/Kconfig | 8 | ||||
-rw-r--r-- | arch/openrisc/Kconfig | 5 | ||||
-rw-r--r-- | arch/powerpc/Kconfig | 13 | ||||
-rw-r--r-- | arch/s390/Kconfig | 14 | ||||
-rw-r--r-- | arch/score/Kconfig | 5 | ||||
-rw-r--r-- | arch/sh/Kconfig | 14 | ||||
-rw-r--r-- | arch/sparc/Kconfig | 12 | ||||
-rw-r--r-- | arch/tile/Kconfig | 6 | ||||
-rw-r--r-- | arch/um/Kconfig.common | 5 | ||||
-rw-r--r-- | arch/um/Kconfig.um | 1 | ||||
-rw-r--r-- | arch/unicore32/Kconfig | 5 | ||||
-rw-r--r-- | arch/x86/Kconfig | 33 | ||||
-rw-r--r-- | arch/x86/kernel/hpet.c | 66 |
26 files changed, 99 insertions, 209 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 0893f023efb8..3de74c9f9610 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
@@ -16,6 +16,7 @@ config ALPHA | |||
16 | select ARCH_WANT_OPTIONAL_GPIOLIB | 16 | select ARCH_WANT_OPTIONAL_GPIOLIB |
17 | select ARCH_HAVE_NMI_SAFE_CMPXCHG | 17 | select ARCH_HAVE_NMI_SAFE_CMPXCHG |
18 | select GENERIC_SMP_IDLE_THREAD | 18 | select GENERIC_SMP_IDLE_THREAD |
19 | select GENERIC_CMOS_UPDATE | ||
19 | help | 20 | help |
20 | The Alpha is a 64-bit general-purpose processor designed and | 21 | The Alpha is a 64-bit general-purpose processor designed and |
21 | marketed by the Digital Equipment Corporation of blessed memory, | 22 | marketed by the Digital Equipment Corporation of blessed memory, |
@@ -48,9 +49,6 @@ config GENERIC_CALIBRATE_DELAY | |||
48 | bool | 49 | bool |
49 | default y | 50 | default y |
50 | 51 | ||
51 | config GENERIC_CMOS_UPDATE | ||
52 | def_bool y | ||
53 | |||
54 | config GENERIC_GPIO | 52 | config GENERIC_GPIO |
55 | bool | 53 | bool |
56 | 54 | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4f4c8115d79b..312450941a1a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -40,6 +40,8 @@ config ARM | |||
40 | select GENERIC_PCI_IOMAP | 40 | select GENERIC_PCI_IOMAP |
41 | select HAVE_BPF_JIT | 41 | select HAVE_BPF_JIT |
42 | select GENERIC_SMP_IDLE_THREAD | 42 | select GENERIC_SMP_IDLE_THREAD |
43 | select KTIME_SCALAR | ||
44 | select GENERIC_CLOCKEVENTS_BROADCAST if SMP | ||
43 | help | 45 | help |
44 | The ARM series is a line of low-power-consumption RISC chip designs | 46 | The ARM series is a line of low-power-consumption RISC chip designs |
45 | licensed by ARM Ltd and targeted at embedded applications and | 47 | licensed by ARM Ltd and targeted at embedded applications and |
@@ -63,22 +65,6 @@ config SYS_SUPPORTS_APM_EMULATION | |||
63 | config GENERIC_GPIO | 65 | config GENERIC_GPIO |
64 | bool | 66 | bool |
65 | 67 | ||
66 | config ARCH_USES_GETTIMEOFFSET | ||
67 | bool | ||
68 | default n | ||
69 | |||
70 | config GENERIC_CLOCKEVENTS | ||
71 | bool | ||
72 | |||
73 | config GENERIC_CLOCKEVENTS_BROADCAST | ||
74 | bool | ||
75 | depends on GENERIC_CLOCKEVENTS | ||
76 | default y if SMP | ||
77 | |||
78 | config KTIME_SCALAR | ||
79 | bool | ||
80 | default y | ||
81 | |||
82 | config HAVE_TCM | 68 | config HAVE_TCM |
83 | bool | 69 | bool |
84 | select GENERIC_ALLOCATOR | 70 | select GENERIC_ALLOCATOR |
@@ -1438,8 +1424,6 @@ endmenu | |||
1438 | 1424 | ||
1439 | menu "Kernel Features" | 1425 | menu "Kernel Features" |
1440 | 1426 | ||
1441 | source "kernel/time/Kconfig" | ||
1442 | |||
1443 | config HAVE_SMP | 1427 | config HAVE_SMP |
1444 | bool | 1428 | bool |
1445 | help | 1429 | help |
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 3dea7231f637..f8bc2d27d148 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
@@ -12,6 +12,7 @@ config AVR32 | |||
12 | select HARDIRQS_SW_RESEND | 12 | select HARDIRQS_SW_RESEND |
13 | select GENERIC_IRQ_SHOW | 13 | select GENERIC_IRQ_SHOW |
14 | select ARCH_HAVE_NMI_SAFE_CMPXCHG | 14 | select ARCH_HAVE_NMI_SAFE_CMPXCHG |
15 | select GENERIC_CLOCKEVENTS | ||
15 | help | 16 | help |
16 | AVR32 is a high-performance 32-bit RISC microprocessor core, | 17 | AVR32 is a high-performance 32-bit RISC microprocessor core, |
17 | designed for cost-sensitive embedded applications, with particular | 18 | designed for cost-sensitive embedded applications, with particular |
@@ -35,9 +36,6 @@ config TRACE_IRQFLAGS_SUPPORT | |||
35 | config RWSEM_GENERIC_SPINLOCK | 36 | config RWSEM_GENERIC_SPINLOCK |
36 | def_bool y | 37 | def_bool y |
37 | 38 | ||
38 | config GENERIC_CLOCKEVENTS | ||
39 | def_bool y | ||
40 | |||
41 | config RWSEM_XCHGADD_ALGORITHM | 39 | config RWSEM_XCHGADD_ALGORITHM |
42 | def_bool n | 40 | def_bool n |
43 | 41 | ||
@@ -63,8 +61,6 @@ source "kernel/Kconfig.freezer" | |||
63 | 61 | ||
64 | menu "System Type and features" | 62 | menu "System Type and features" |
65 | 63 | ||
66 | source "kernel/time/Kconfig" | ||
67 | |||
68 | config SUBARCH_AVR32B | 64 | config SUBARCH_AVR32B |
69 | bool | 65 | bool |
70 | config MMU | 66 | config MMU |
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 79cfe2614bcc..04ec0d8fbbb5 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -38,6 +38,7 @@ config BLACKFIN | |||
38 | select IRQ_PER_CPU if SMP | 38 | select IRQ_PER_CPU if SMP |
39 | select HAVE_NMI_WATCHDOG if NMI_WATCHDOG | 39 | select HAVE_NMI_WATCHDOG if NMI_WATCHDOG |
40 | select GENERIC_SMP_IDLE_THREAD | 40 | select GENERIC_SMP_IDLE_THREAD |
41 | select ARCH_USES_GETTIMEOFFSET if !GENERIC_CLOCKEVENTS | ||
41 | 42 | ||
42 | config GENERIC_CSUM | 43 | config GENERIC_CSUM |
43 | def_bool y | 44 | def_bool y |
@@ -642,9 +643,10 @@ comment "Kernel Timer/Scheduler" | |||
642 | 643 | ||
643 | source kernel/Kconfig.hz | 644 | source kernel/Kconfig.hz |
644 | 645 | ||
645 | config GENERIC_CLOCKEVENTS | 646 | config SET_GENERIC_CLOCKEVENTS |
646 | bool "Generic clock events" | 647 | bool "Generic clock events" |
647 | default y | 648 | default y |
649 | select GENERIC_CLOCKEVENTS | ||
648 | 650 | ||
649 | menu "Clock event device" | 651 | menu "Clock event device" |
650 | depends on GENERIC_CLOCKEVENTS | 652 | depends on GENERIC_CLOCKEVENTS |
@@ -678,12 +680,6 @@ config GPTMR0_CLOCKSOURCE | |||
678 | depends on !TICKSOURCE_GPTMR0 | 680 | depends on !TICKSOURCE_GPTMR0 |
679 | endmenu | 681 | endmenu |
680 | 682 | ||
681 | config ARCH_USES_GETTIMEOFFSET | ||
682 | depends on !GENERIC_CLOCKEVENTS | ||
683 | def_bool y | ||
684 | |||
685 | source kernel/time/Kconfig | ||
686 | |||
687 | comment "Misc" | 683 | comment "Misc" |
688 | 684 | ||
689 | choice | 685 | choice |
diff --git a/arch/c6x/Kconfig b/arch/c6x/Kconfig index 1f15b88b537f..052f81a76239 100644 --- a/arch/c6x/Kconfig +++ b/arch/c6x/Kconfig | |||
@@ -15,6 +15,7 @@ config C6X | |||
15 | select IRQ_DOMAIN | 15 | select IRQ_DOMAIN |
16 | select OF | 16 | select OF |
17 | select OF_EARLY_FLATTREE | 17 | select OF_EARLY_FLATTREE |
18 | select GENERIC_CLOCKEVENTS | ||
18 | 19 | ||
19 | config MMU | 20 | config MMU |
20 | def_bool n | 21 | def_bool n |
@@ -31,12 +32,6 @@ config GENERIC_CALIBRATE_DELAY | |||
31 | config GENERIC_HWEIGHT | 32 | config GENERIC_HWEIGHT |
32 | def_bool y | 33 | def_bool y |
33 | 34 | ||
34 | config GENERIC_CLOCKEVENTS | ||
35 | def_bool y | ||
36 | |||
37 | config GENERIC_CLOCKEVENTS_BROADCAST | ||
38 | bool | ||
39 | |||
40 | config GENERIC_BUG | 35 | config GENERIC_BUG |
41 | def_bool y | 36 | def_bool y |
42 | 37 | ||
@@ -125,7 +120,6 @@ source "mm/Kconfig" | |||
125 | source "kernel/Kconfig.preempt" | 120 | source "kernel/Kconfig.preempt" |
126 | 121 | ||
127 | source "kernel/Kconfig.hz" | 122 | source "kernel/Kconfig.hz" |
128 | source "kernel/time/Kconfig" | ||
129 | 123 | ||
130 | endmenu | 124 | endmenu |
131 | 125 | ||
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 2995035812ec..22d34d64cc81 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -13,12 +13,6 @@ config RWSEM_GENERIC_SPINLOCK | |||
13 | config RWSEM_XCHGADD_ALGORITHM | 13 | config RWSEM_XCHGADD_ALGORITHM |
14 | bool | 14 | bool |
15 | 15 | ||
16 | config GENERIC_CMOS_UPDATE | ||
17 | def_bool y | ||
18 | |||
19 | config ARCH_USES_GETTIMEOFFSET | ||
20 | def_bool n | ||
21 | |||
22 | config ARCH_HAS_ILOG2_U32 | 16 | config ARCH_HAS_ILOG2_U32 |
23 | bool | 17 | bool |
24 | default n | 18 | default n |
@@ -50,6 +44,7 @@ config CRIS | |||
50 | select GENERIC_IRQ_SHOW | 44 | select GENERIC_IRQ_SHOW |
51 | select GENERIC_IOMAP | 45 | select GENERIC_IOMAP |
52 | select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32 | 46 | select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32 |
47 | select GENERIC_CMOS_UPDATE | ||
53 | 48 | ||
54 | config HZ | 49 | config HZ |
55 | int | 50 | int |
diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu index 15c22286ae79..321f3922728b 100644 --- a/arch/h8300/Kconfig.cpu +++ b/arch/h8300/Kconfig.cpu | |||
@@ -1,7 +1,5 @@ | |||
1 | menu "Processor type and features" | 1 | menu "Processor type and features" |
2 | 2 | ||
3 | source "kernel/time/Kconfig" | ||
4 | |||
5 | choice | 3 | choice |
6 | prompt "H8/300 platform" | 4 | prompt "H8/300 platform" |
7 | default H8300H_GENERIC | 5 | default H8300H_GENERIC |
diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig index bc979f770980..b2fdfb700f50 100644 --- a/arch/hexagon/Kconfig +++ b/arch/hexagon/Kconfig | |||
@@ -27,6 +27,9 @@ config HEXAGON | |||
27 | select GENERIC_IOMAP | 27 | select GENERIC_IOMAP |
28 | select GENERIC_SMP_IDLE_THREAD | 28 | select GENERIC_SMP_IDLE_THREAD |
29 | select STACKTRACE_SUPPORT | 29 | select STACKTRACE_SUPPORT |
30 | select KTIME_SCALAR | ||
31 | select GENERIC_CLOCKEVENTS | ||
32 | select GENERIC_CLOCKEVENTS_BROADCAST | ||
30 | ---help--- | 33 | ---help--- |
31 | Qualcomm Hexagon is a processor architecture designed for high | 34 | Qualcomm Hexagon is a processor architecture designed for high |
32 | performance and low power across a wide variety of applications. | 35 | performance and low power across a wide variety of applications. |
@@ -55,9 +58,6 @@ config PCI | |||
55 | config EARLY_PRINTK | 58 | config EARLY_PRINTK |
56 | def_bool y | 59 | def_bool y |
57 | 60 | ||
58 | config KTIME_SCALAR | ||
59 | def_bool y | ||
60 | |||
61 | config MMU | 61 | config MMU |
62 | def_bool y | 62 | def_bool y |
63 | 63 | ||
@@ -88,15 +88,6 @@ config GENERIC_FIND_NEXT_BIT | |||
88 | config GENERIC_HWEIGHT | 88 | config GENERIC_HWEIGHT |
89 | def_bool y | 89 | def_bool y |
90 | 90 | ||
91 | config GENERIC_TIME | ||
92 | def_bool y | ||
93 | |||
94 | config GENERIC_CLOCKEVENTS | ||
95 | def_bool y | ||
96 | |||
97 | config GENERIC_CLOCKEVENTS_BROADCAST | ||
98 | def_bool y | ||
99 | |||
100 | config STACKTRACE_SUPPORT | 91 | config STACKTRACE_SUPPORT |
101 | def_bool y | 92 | def_bool y |
102 | select STACKTRACE | 93 | select STACKTRACE |
@@ -179,7 +170,6 @@ endchoice | |||
179 | source "mm/Kconfig" | 170 | source "mm/Kconfig" |
180 | 171 | ||
181 | source "kernel/Kconfig.hz" | 172 | source "kernel/Kconfig.hz" |
182 | source "kernel/time/Kconfig" | ||
183 | 173 | ||
184 | config GENERIC_GPIO | 174 | config GENERIC_GPIO |
185 | def_bool n | 175 | def_bool n |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index ba667b60f32d..8186ec5ea151 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -37,6 +37,8 @@ config IA64 | |||
37 | select ARCH_INIT_TASK | 37 | select ARCH_INIT_TASK |
38 | select ARCH_TASK_STRUCT_ALLOCATOR | 38 | select ARCH_TASK_STRUCT_ALLOCATOR |
39 | select ARCH_THREAD_INFO_ALLOCATOR | 39 | select ARCH_THREAD_INFO_ALLOCATOR |
40 | select ARCH_CLOCKSOURCE_DATA | ||
41 | select GENERIC_TIME_VSYSCALL | ||
40 | default y | 42 | default y |
41 | help | 43 | help |
42 | The Itanium Processor Family is Intel's 64-bit successor to | 44 | The Itanium Processor Family is Intel's 64-bit successor to |
@@ -92,10 +94,6 @@ config GENERIC_CALIBRATE_DELAY | |||
92 | bool | 94 | bool |
93 | default y | 95 | default y |
94 | 96 | ||
95 | config GENERIC_TIME_VSYSCALL | ||
96 | bool | ||
97 | default y | ||
98 | |||
99 | config HAVE_SETUP_PER_CPU_AREA | 97 | config HAVE_SETUP_PER_CPU_AREA |
100 | def_bool y | 98 | def_bool y |
101 | 99 | ||
@@ -110,9 +108,6 @@ config EFI | |||
110 | bool | 108 | bool |
111 | default y | 109 | default y |
112 | 110 | ||
113 | config ARCH_CLOCKSOURCE_DATA | ||
114 | def_bool y | ||
115 | |||
116 | config SCHED_OMIT_FRAME_POINTER | 111 | config SCHED_OMIT_FRAME_POINTER |
117 | bool | 112 | bool |
118 | default y | 113 | default y |
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index ef80a6546ff2..b638d5bfa14d 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig | |||
@@ -11,6 +11,7 @@ config M32R | |||
11 | select GENERIC_IRQ_PROBE | 11 | select GENERIC_IRQ_PROBE |
12 | select GENERIC_IRQ_SHOW | 12 | select GENERIC_IRQ_SHOW |
13 | select GENERIC_ATOMIC64 | 13 | select GENERIC_ATOMIC64 |
14 | select ARCH_USES_GETTIMEOFFSET | ||
14 | 15 | ||
15 | config SBUS | 16 | config SBUS |
16 | bool | 17 | bool |
@@ -33,9 +34,6 @@ config HZ | |||
33 | int | 34 | int |
34 | default 100 | 35 | default 100 |
35 | 36 | ||
36 | config ARCH_USES_GETTIMEOFFSET | ||
37 | def_bool y | ||
38 | |||
39 | source "init/Kconfig" | 37 | source "init/Kconfig" |
40 | 38 | ||
41 | source "kernel/Kconfig.freezer" | 39 | source "kernel/Kconfig.freezer" |
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index d318c606c888..cac5b6be572a 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig | |||
@@ -8,6 +8,7 @@ config M68K | |||
8 | select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS | 8 | select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS |
9 | select GENERIC_CPU_DEVICES | 9 | select GENERIC_CPU_DEVICES |
10 | select FPU if MMU | 10 | select FPU if MMU |
11 | select ARCH_USES_GETTIMEOFFSET if MMU && !COLDFIRE | ||
11 | 12 | ||
12 | config RWSEM_GENERIC_SPINLOCK | 13 | config RWSEM_GENERIC_SPINLOCK |
13 | bool | 14 | bool |
@@ -22,9 +23,6 @@ config ARCH_HAS_ILOG2_U32 | |||
22 | config ARCH_HAS_ILOG2_U64 | 23 | config ARCH_HAS_ILOG2_U64 |
23 | bool | 24 | bool |
24 | 25 | ||
25 | config GENERIC_CLOCKEVENTS | ||
26 | bool | ||
27 | |||
28 | config GENERIC_GPIO | 26 | config GENERIC_GPIO |
29 | bool | 27 | bool |
30 | 28 | ||
@@ -43,9 +41,6 @@ config TIME_LOW_RES | |||
43 | bool | 41 | bool |
44 | default y | 42 | default y |
45 | 43 | ||
46 | config ARCH_USES_GETTIMEOFFSET | ||
47 | def_bool MMU && !COLDFIRE | ||
48 | |||
49 | config NO_IOPORT | 44 | config NO_IOPORT |
50 | def_bool y | 45 | def_bool y |
51 | 46 | ||
@@ -111,10 +106,6 @@ if COLDFIRE | |||
111 | source "kernel/Kconfig.preempt" | 106 | source "kernel/Kconfig.preempt" |
112 | endif | 107 | endif |
113 | 108 | ||
114 | if !MMU || COLDFIRE | ||
115 | source "kernel/time/Kconfig" | ||
116 | endif | ||
117 | |||
118 | source "mm/Kconfig" | 109 | source "mm/Kconfig" |
119 | 110 | ||
120 | endmenu | 111 | endmenu |
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index ac22dc7f4cab..83460468998d 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig | |||
@@ -22,6 +22,7 @@ config MICROBLAZE | |||
22 | select GENERIC_PCI_IOMAP | 22 | select GENERIC_PCI_IOMAP |
23 | select GENERIC_CPU_DEVICES | 23 | select GENERIC_CPU_DEVICES |
24 | select GENERIC_ATOMIC64 | 24 | select GENERIC_ATOMIC64 |
25 | select GENERIC_CLOCKEVENTS | ||
25 | 26 | ||
26 | config SWAP | 27 | config SWAP |
27 | def_bool n | 28 | def_bool n |
@@ -50,12 +51,6 @@ config GENERIC_HWEIGHT | |||
50 | config GENERIC_CALIBRATE_DELAY | 51 | config GENERIC_CALIBRATE_DELAY |
51 | def_bool y | 52 | def_bool y |
52 | 53 | ||
53 | config GENERIC_TIME_VSYSCALL | ||
54 | def_bool n | ||
55 | |||
56 | config GENERIC_CLOCKEVENTS | ||
57 | def_bool y | ||
58 | |||
59 | config GENERIC_GPIO | 54 | config GENERIC_GPIO |
60 | def_bool y | 55 | def_bool y |
61 | 56 | ||
@@ -79,8 +74,6 @@ source "arch/microblaze/platform/Kconfig.platform" | |||
79 | 74 | ||
80 | menu "Processor type and features" | 75 | menu "Processor type and features" |
81 | 76 | ||
82 | source "kernel/time/Kconfig" | ||
83 | |||
84 | source "kernel/Kconfig.preempt" | 77 | source "kernel/Kconfig.preempt" |
85 | 78 | ||
86 | source "kernel/Kconfig.hz" | 79 | source "kernel/Kconfig.hz" |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 85aad0321397..3aa826bcbf96 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -31,6 +31,8 @@ config MIPS | |||
31 | select ARCH_DISCARD_MEMBLOCK | 31 | select ARCH_DISCARD_MEMBLOCK |
32 | select GENERIC_SMP_IDLE_THREAD | 32 | select GENERIC_SMP_IDLE_THREAD |
33 | select BUILDTIME_EXTABLE_SORT | 33 | select BUILDTIME_EXTABLE_SORT |
34 | select GENERIC_CLOCKEVENTS | ||
35 | select GENERIC_CMOS_UPDATE | ||
34 | 36 | ||
35 | menu "Machine selection" | 37 | menu "Machine selection" |
36 | 38 | ||
@@ -858,14 +860,6 @@ config GENERIC_CALIBRATE_DELAY | |||
858 | bool | 860 | bool |
859 | default y | 861 | default y |
860 | 862 | ||
861 | config GENERIC_CLOCKEVENTS | ||
862 | bool | ||
863 | default y | ||
864 | |||
865 | config GENERIC_CMOS_UPDATE | ||
866 | bool | ||
867 | default y | ||
868 | |||
869 | config SCHED_OMIT_FRAME_POINTER | 863 | config SCHED_OMIT_FRAME_POINTER |
870 | bool | 864 | bool |
871 | default y | 865 | default y |
@@ -2052,9 +2046,6 @@ config CPU_HAS_SYNC | |||
2052 | depends on !CPU_R3000 | 2046 | depends on !CPU_R3000 |
2053 | default y | 2047 | default y |
2054 | 2048 | ||
2055 | config GENERIC_CLOCKEVENTS_BROADCAST | ||
2056 | bool | ||
2057 | |||
2058 | # | 2049 | # |
2059 | # CPU non-features | 2050 | # CPU non-features |
2060 | # | 2051 | # |
@@ -2216,8 +2207,6 @@ config NR_CPUS | |||
2216 | performance should round up your number of processors to the next | 2207 | performance should round up your number of processors to the next |
2217 | power of two. | 2208 | power of two. |
2218 | 2209 | ||
2219 | source "kernel/time/Kconfig" | ||
2220 | |||
2221 | # | 2210 | # |
2222 | # Timer Interrupt Frequency Configuration | 2211 | # Timer Interrupt Frequency Configuration |
2223 | # | 2212 | # |
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index 3aa3de017159..687f9b4a2ed6 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig | |||
@@ -6,6 +6,7 @@ config MN10300 | |||
6 | select HAVE_ARCH_TRACEHOOK | 6 | select HAVE_ARCH_TRACEHOOK |
7 | select HAVE_ARCH_KGDB | 7 | select HAVE_ARCH_KGDB |
8 | select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER | 8 | select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER |
9 | select GENERIC_CLOCKEVENTS | ||
9 | 10 | ||
10 | config AM33_2 | 11 | config AM33_2 |
11 | def_bool n | 12 | def_bool n |
@@ -42,15 +43,9 @@ config RWSEM_XCHGADD_ALGORITHM | |||
42 | config GENERIC_CALIBRATE_DELAY | 43 | config GENERIC_CALIBRATE_DELAY |
43 | def_bool y | 44 | def_bool y |
44 | 45 | ||
45 | config GENERIC_CMOS_UPDATE | ||
46 | def_bool n | ||
47 | |||
48 | config GENERIC_HWEIGHT | 46 | config GENERIC_HWEIGHT |
49 | def_bool y | 47 | def_bool y |
50 | 48 | ||
51 | config GENERIC_CLOCKEVENTS | ||
52 | def_bool y | ||
53 | |||
54 | config GENERIC_BUG | 49 | config GENERIC_BUG |
55 | def_bool y | 50 | def_bool y |
56 | 51 | ||
@@ -231,7 +226,6 @@ config MN10300_USING_JTAG | |||
231 | single-stepping, which are taken over completely by the JTAG unit. | 226 | single-stepping, which are taken over completely by the JTAG unit. |
232 | 227 | ||
233 | source "kernel/Kconfig.hz" | 228 | source "kernel/Kconfig.hz" |
234 | source "kernel/time/Kconfig" | ||
235 | 229 | ||
236 | config MN10300_RTC | 230 | config MN10300_RTC |
237 | bool "Using MN10300 RTC" | 231 | bool "Using MN10300 RTC" |
diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig index 297bd38f7c5d..4932247d078a 100644 --- a/arch/openrisc/Kconfig +++ b/arch/openrisc/Kconfig | |||
@@ -18,6 +18,7 @@ config OPENRISC | |||
18 | select GENERIC_IOMAP | 18 | select GENERIC_IOMAP |
19 | select GENERIC_CPU_DEVICES | 19 | select GENERIC_CPU_DEVICES |
20 | select GENERIC_ATOMIC64 | 20 | select GENERIC_ATOMIC64 |
21 | select GENERIC_CLOCKEVENTS | ||
21 | 22 | ||
22 | config MMU | 23 | config MMU |
23 | def_bool y | 24 | def_bool y |
@@ -47,9 +48,6 @@ config NO_IOPORT | |||
47 | config GENERIC_GPIO | 48 | config GENERIC_GPIO |
48 | def_bool y | 49 | def_bool y |
49 | 50 | ||
50 | config GENERIC_CLOCKEVENTS | ||
51 | def_bool y | ||
52 | |||
53 | config TRACE_IRQFLAGS_SUPPORT | 51 | config TRACE_IRQFLAGS_SUPPORT |
54 | def_bool y | 52 | def_bool y |
55 | 53 | ||
@@ -109,7 +107,6 @@ config OPENRISC_HAVE_INST_DIV | |||
109 | endmenu | 107 | endmenu |
110 | 108 | ||
111 | 109 | ||
112 | source "kernel/time/Kconfig" | ||
113 | source kernel/Kconfig.hz | 110 | source kernel/Kconfig.hz |
114 | source kernel/Kconfig.preempt | 111 | source kernel/Kconfig.preempt |
115 | source "mm/Kconfig" | 112 | source "mm/Kconfig" |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 0a947bd9c076..00b9874e2240 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -27,15 +27,6 @@ config MMU | |||
27 | bool | 27 | bool |
28 | default y | 28 | default y |
29 | 29 | ||
30 | config GENERIC_CMOS_UPDATE | ||
31 | def_bool y | ||
32 | |||
33 | config GENERIC_TIME_VSYSCALL | ||
34 | def_bool y | ||
35 | |||
36 | config GENERIC_CLOCKEVENTS | ||
37 | def_bool y | ||
38 | |||
39 | config HAVE_SETUP_PER_CPU_AREA | 30 | config HAVE_SETUP_PER_CPU_AREA |
40 | def_bool PPC64 | 31 | def_bool PPC64 |
41 | 32 | ||
@@ -141,6 +132,9 @@ config PPC | |||
141 | select HAVE_ARCH_JUMP_LABEL | 132 | select HAVE_ARCH_JUMP_LABEL |
142 | select ARCH_HAVE_NMI_SAFE_CMPXCHG | 133 | select ARCH_HAVE_NMI_SAFE_CMPXCHG |
143 | select GENERIC_SMP_IDLE_THREAD | 134 | select GENERIC_SMP_IDLE_THREAD |
135 | select GENERIC_CMOS_UPDATE | ||
136 | select GENERIC_TIME_VSYSCALL | ||
137 | select GENERIC_CLOCKEVENTS | ||
144 | 138 | ||
145 | config EARLY_PRINTK | 139 | config EARLY_PRINTK |
146 | bool | 140 | bool |
@@ -281,7 +275,6 @@ config HIGHMEM | |||
281 | bool "High memory support" | 275 | bool "High memory support" |
282 | depends on PPC32 | 276 | depends on PPC32 |
283 | 277 | ||
284 | source kernel/time/Kconfig | ||
285 | source kernel/Kconfig.hz | 278 | source kernel/Kconfig.hz |
286 | source kernel/Kconfig.preempt | 279 | source kernel/Kconfig.preempt |
287 | source "fs/Kconfig.binfmt" | 280 | source "fs/Kconfig.binfmt" |
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index e16390c0bca8..b403c533432c 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -28,12 +28,6 @@ config ARCH_HAS_ILOG2_U64 | |||
28 | config GENERIC_HWEIGHT | 28 | config GENERIC_HWEIGHT |
29 | def_bool y | 29 | def_bool y |
30 | 30 | ||
31 | config GENERIC_TIME_VSYSCALL | ||
32 | def_bool y | ||
33 | |||
34 | config GENERIC_CLOCKEVENTS | ||
35 | def_bool y | ||
36 | |||
37 | config GENERIC_BUG | 31 | config GENERIC_BUG |
38 | def_bool y if BUG | 32 | def_bool y if BUG |
39 | 33 | ||
@@ -123,6 +117,9 @@ config S390 | |||
123 | select ARCH_INLINE_WRITE_UNLOCK_IRQ | 117 | select ARCH_INLINE_WRITE_UNLOCK_IRQ |
124 | select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE | 118 | select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE |
125 | select GENERIC_SMP_IDLE_THREAD | 119 | select GENERIC_SMP_IDLE_THREAD |
120 | select GENERIC_TIME_VSYSCALL | ||
121 | select GENERIC_CLOCKEVENTS | ||
122 | select KTIME_SCALAR if 32BIT | ||
126 | 123 | ||
127 | config SCHED_OMIT_FRAME_POINTER | 124 | config SCHED_OMIT_FRAME_POINTER |
128 | def_bool y | 125 | def_bool y |
@@ -135,8 +132,6 @@ menu "Base setup" | |||
135 | 132 | ||
136 | comment "Processor type and features" | 133 | comment "Processor type and features" |
137 | 134 | ||
138 | source "kernel/time/Kconfig" | ||
139 | |||
140 | config 64BIT | 135 | config 64BIT |
141 | def_bool y | 136 | def_bool y |
142 | prompt "64 bit kernel" | 137 | prompt "64 bit kernel" |
@@ -147,9 +142,6 @@ config 64BIT | |||
147 | config 32BIT | 142 | config 32BIT |
148 | def_bool y if !64BIT | 143 | def_bool y if !64BIT |
149 | 144 | ||
150 | config KTIME_SCALAR | ||
151 | def_bool 32BIT | ||
152 | |||
153 | config SMP | 145 | config SMP |
154 | def_bool y | 146 | def_bool y |
155 | prompt "Symmetric multi-processing support" | 147 | prompt "Symmetric multi-processing support" |
diff --git a/arch/score/Kconfig b/arch/score/Kconfig index 4b285779ac05..ba0f412920be 100644 --- a/arch/score/Kconfig +++ b/arch/score/Kconfig | |||
@@ -9,6 +9,7 @@ config SCORE | |||
9 | select HAVE_MEMBLOCK_NODE_MAP | 9 | select HAVE_MEMBLOCK_NODE_MAP |
10 | select ARCH_DISCARD_MEMBLOCK | 10 | select ARCH_DISCARD_MEMBLOCK |
11 | select GENERIC_CPU_DEVICES | 11 | select GENERIC_CPU_DEVICES |
12 | select GENERIC_CLOCKEVENTS | ||
12 | 13 | ||
13 | choice | 14 | choice |
14 | prompt "System type" | 15 | prompt "System type" |
@@ -51,9 +52,6 @@ config GENERIC_HWEIGHT | |||
51 | config GENERIC_CALIBRATE_DELAY | 52 | config GENERIC_CALIBRATE_DELAY |
52 | def_bool y | 53 | def_bool y |
53 | 54 | ||
54 | config GENERIC_CLOCKEVENTS | ||
55 | def_bool y | ||
56 | |||
57 | menu "Kernel type" | 55 | menu "Kernel type" |
58 | 56 | ||
59 | config 32BIT | 57 | config 32BIT |
@@ -68,7 +66,6 @@ config MEMORY_START | |||
68 | hex | 66 | hex |
69 | default 0xa0000000 | 67 | default 0xa0000000 |
70 | 68 | ||
71 | source "kernel/time/Kconfig" | ||
72 | source "kernel/Kconfig.hz" | 69 | source "kernel/Kconfig.hz" |
73 | source "kernel/Kconfig.preempt" | 70 | source "kernel/Kconfig.preempt" |
74 | 71 | ||
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 3e723aaa5e18..5e05c0b445bb 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -29,6 +29,8 @@ config SUPERH | |||
29 | select GENERIC_ATOMIC64 | 29 | select GENERIC_ATOMIC64 |
30 | select GENERIC_IRQ_SHOW | 30 | select GENERIC_IRQ_SHOW |
31 | select GENERIC_SMP_IDLE_THREAD | 31 | select GENERIC_SMP_IDLE_THREAD |
32 | select GENERIC_CLOCKEVENTS | ||
33 | select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST | ||
32 | help | 34 | help |
33 | The SuperH is a RISC processor targeted for use in embedded systems | 35 | The SuperH is a RISC processor targeted for use in embedded systems |
34 | and consumer electronics; it was also used in the Sega Dreamcast | 36 | and consumer electronics; it was also used in the Sega Dreamcast |
@@ -87,16 +89,6 @@ config GENERIC_GPIO | |||
87 | config GENERIC_CALIBRATE_DELAY | 89 | config GENERIC_CALIBRATE_DELAY |
88 | bool | 90 | bool |
89 | 91 | ||
90 | config GENERIC_CLOCKEVENTS | ||
91 | def_bool y | ||
92 | |||
93 | config GENERIC_CLOCKEVENTS_BROADCAST | ||
94 | bool | ||
95 | |||
96 | config GENERIC_CMOS_UPDATE | ||
97 | def_bool y | ||
98 | depends on SH_SH03 || SH_DREAMCAST | ||
99 | |||
100 | config GENERIC_LOCKBREAK | 92 | config GENERIC_LOCKBREAK |
101 | def_bool y | 93 | def_bool y |
102 | depends on SMP && PREEMPT | 94 | depends on SMP && PREEMPT |
@@ -611,8 +603,6 @@ config SH_CLK_CPG_LEGACY | |||
611 | !CPU_SUBTYPE_SH7734 && !CPU_SUBTYPE_SH7264 && \ | 603 | !CPU_SUBTYPE_SH7734 && !CPU_SUBTYPE_SH7264 && \ |
612 | !CPU_SUBTYPE_SH7269 | 604 | !CPU_SUBTYPE_SH7269 |
613 | 605 | ||
614 | source "kernel/time/Kconfig" | ||
615 | |||
616 | endmenu | 606 | endmenu |
617 | 607 | ||
618 | menu "CPU Frequency scaling" | 608 | menu "CPU Frequency scaling" |
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 1ea3fd954756..2d493a3bdfe1 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
@@ -32,12 +32,15 @@ config SPARC | |||
32 | select HAVE_NMI_WATCHDOG if SPARC64 | 32 | select HAVE_NMI_WATCHDOG if SPARC64 |
33 | select HAVE_BPF_JIT | 33 | select HAVE_BPF_JIT |
34 | select GENERIC_SMP_IDLE_THREAD | 34 | select GENERIC_SMP_IDLE_THREAD |
35 | select GENERIC_CMOS_UPDATE | ||
36 | select GENERIC_CLOCKEVENTS | ||
35 | 37 | ||
36 | config SPARC32 | 38 | config SPARC32 |
37 | def_bool !64BIT | 39 | def_bool !64BIT |
38 | select GENERIC_ATOMIC64 | 40 | select GENERIC_ATOMIC64 |
39 | select CLZ_TAB | 41 | select CLZ_TAB |
40 | select ARCH_THREAD_INFO_ALLOCATOR | 42 | select ARCH_THREAD_INFO_ALLOCATOR |
43 | select ARCH_USES_GETTIMEOFFSET | ||
41 | 44 | ||
42 | config SPARC64 | 45 | config SPARC64 |
43 | def_bool 64BIT | 46 | def_bool 64BIT |
@@ -77,13 +80,6 @@ config BITS | |||
77 | default 32 if SPARC32 | 80 | default 32 if SPARC32 |
78 | default 64 if SPARC64 | 81 | default 64 if SPARC64 |
79 | 82 | ||
80 | config GENERIC_CMOS_UPDATE | ||
81 | bool | ||
82 | default y | ||
83 | |||
84 | config GENERIC_CLOCKEVENTS | ||
85 | def_bool y | ||
86 | |||
87 | config IOMMU_HELPER | 83 | config IOMMU_HELPER |
88 | bool | 84 | bool |
89 | default y if SPARC64 | 85 | default y if SPARC64 |
@@ -274,8 +270,6 @@ config HOTPLUG_CPU | |||
274 | can be controlled through /sys/devices/system/cpu/cpu#. | 270 | can be controlled through /sys/devices/system/cpu/cpu#. |
275 | Say N if you want to disable CPU hotplug. | 271 | Say N if you want to disable CPU hotplug. |
276 | 272 | ||
277 | source "kernel/time/Kconfig" | ||
278 | |||
279 | if SPARC64 | 273 | if SPARC64 |
280 | source "drivers/cpufreq/Kconfig" | 274 | source "drivers/cpufreq/Kconfig" |
281 | 275 | ||
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig index 74239dd77e06..6ad6219fc47e 100644 --- a/arch/tile/Kconfig +++ b/arch/tile/Kconfig | |||
@@ -14,6 +14,7 @@ config TILE | |||
14 | select HAVE_SYSCALL_WRAPPERS if TILEGX | 14 | select HAVE_SYSCALL_WRAPPERS if TILEGX |
15 | select SYS_HYPERVISOR | 15 | select SYS_HYPERVISOR |
16 | select ARCH_HAVE_NMI_SAFE_CMPXCHG | 16 | select ARCH_HAVE_NMI_SAFE_CMPXCHG |
17 | select GENERIC_CLOCKEVENTS | ||
17 | 18 | ||
18 | # FIXME: investigate whether we need/want these options. | 19 | # FIXME: investigate whether we need/want these options. |
19 | # select HAVE_IOREMAP_PROT | 20 | # select HAVE_IOREMAP_PROT |
@@ -47,9 +48,6 @@ config NEED_PER_CPU_PAGE_FIRST_CHUNK | |||
47 | config SYS_SUPPORTS_HUGETLBFS | 48 | config SYS_SUPPORTS_HUGETLBFS |
48 | def_bool y | 49 | def_bool y |
49 | 50 | ||
50 | config GENERIC_CLOCKEVENTS | ||
51 | def_bool y | ||
52 | |||
53 | # FIXME: tilegx can implement a more efficient rwsem. | 51 | # FIXME: tilegx can implement a more efficient rwsem. |
54 | config RWSEM_GENERIC_SPINLOCK | 52 | config RWSEM_GENERIC_SPINLOCK |
55 | def_bool y | 53 | def_bool y |
@@ -139,8 +137,6 @@ config NR_CPUS | |||
139 | smaller kernel memory footprint results from using a smaller | 137 | smaller kernel memory footprint results from using a smaller |
140 | value on chips with fewer tiles. | 138 | value on chips with fewer tiles. |
141 | 139 | ||
142 | source "kernel/time/Kconfig" | ||
143 | |||
144 | source "kernel/Kconfig.hz" | 140 | source "kernel/Kconfig.hz" |
145 | 141 | ||
146 | config KEXEC | 142 | config KEXEC |
diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common index 43ef890d292c..cb837c223922 100644 --- a/arch/um/Kconfig.common +++ b/arch/um/Kconfig.common | |||
@@ -10,6 +10,7 @@ config UML | |||
10 | select GENERIC_IRQ_SHOW | 10 | select GENERIC_IRQ_SHOW |
11 | select GENERIC_CPU_DEVICES | 11 | select GENERIC_CPU_DEVICES |
12 | select GENERIC_IO | 12 | select GENERIC_IO |
13 | select GENERIC_CLOCKEVENTS | ||
13 | 14 | ||
14 | config MMU | 15 | config MMU |
15 | bool | 16 | bool |
@@ -52,10 +53,6 @@ config GENERIC_BUG | |||
52 | default y | 53 | default y |
53 | depends on BUG | 54 | depends on BUG |
54 | 55 | ||
55 | config GENERIC_CLOCKEVENTS | ||
56 | bool | ||
57 | default y | ||
58 | |||
59 | config HZ | 56 | config HZ |
60 | int | 57 | int |
61 | default 100 | 58 | default 100 |
diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um index 70fd690964e4..bf87f25eb2de 100644 --- a/arch/um/Kconfig.um +++ b/arch/um/Kconfig.um | |||
@@ -10,7 +10,6 @@ config STATIC_LINK | |||
10 | 2.75G) for UML. | 10 | 2.75G) for UML. |
11 | 11 | ||
12 | source "mm/Kconfig" | 12 | source "mm/Kconfig" |
13 | source "kernel/time/Kconfig" | ||
14 | 13 | ||
15 | config LD_SCRIPT_STATIC | 14 | config LD_SCRIPT_STATIC |
16 | bool | 15 | bool |
diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig index eeb8054c7cd8..47ad5210606f 100644 --- a/arch/unicore32/Kconfig +++ b/arch/unicore32/Kconfig | |||
@@ -25,9 +25,6 @@ config HAVE_PWM | |||
25 | config GENERIC_GPIO | 25 | config GENERIC_GPIO |
26 | def_bool y | 26 | def_bool y |
27 | 27 | ||
28 | config GENERIC_CLOCKEVENTS | ||
29 | bool | ||
30 | |||
31 | config GENERIC_CSUM | 28 | config GENERIC_CSUM |
32 | def_bool y | 29 | def_bool y |
33 | 30 | ||
@@ -146,8 +143,6 @@ endmenu | |||
146 | 143 | ||
147 | menu "Kernel Features" | 144 | menu "Kernel Features" |
148 | 145 | ||
149 | source "kernel/time/Kconfig" | ||
150 | |||
151 | source "kernel/Kconfig.preempt" | 146 | source "kernel/Kconfig.preempt" |
152 | 147 | ||
153 | source "kernel/Kconfig.hz" | 148 | source "kernel/Kconfig.hz" |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 0b2d5f24c946..66cc380bebf0 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -85,6 +85,13 @@ config X86 | |||
85 | select GENERIC_SMP_IDLE_THREAD | 85 | select GENERIC_SMP_IDLE_THREAD |
86 | select HAVE_ARCH_SECCOMP_FILTER | 86 | select HAVE_ARCH_SECCOMP_FILTER |
87 | select BUILDTIME_EXTABLE_SORT | 87 | select BUILDTIME_EXTABLE_SORT |
88 | select GENERIC_CMOS_UPDATE | ||
89 | select CLOCKSOURCE_WATCHDOG | ||
90 | select GENERIC_CLOCKEVENTS | ||
91 | select ARCH_CLOCKSOURCE_DATA if X86_64 | ||
92 | select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC) | ||
93 | select GENERIC_TIME_VSYSCALL if X86_64 | ||
94 | select KTIME_SCALAR if X86_32 | ||
88 | 95 | ||
89 | config INSTRUCTION_DECODER | 96 | config INSTRUCTION_DECODER |
90 | def_bool (KPROBES || PERF_EVENTS || UPROBES) | 97 | def_bool (KPROBES || PERF_EVENTS || UPROBES) |
@@ -99,23 +106,6 @@ config ARCH_DEFCONFIG | |||
99 | default "arch/x86/configs/i386_defconfig" if X86_32 | 106 | default "arch/x86/configs/i386_defconfig" if X86_32 |
100 | default "arch/x86/configs/x86_64_defconfig" if X86_64 | 107 | default "arch/x86/configs/x86_64_defconfig" if X86_64 |
101 | 108 | ||
102 | config GENERIC_CMOS_UPDATE | ||
103 | def_bool y | ||
104 | |||
105 | config CLOCKSOURCE_WATCHDOG | ||
106 | def_bool y | ||
107 | |||
108 | config GENERIC_CLOCKEVENTS | ||
109 | def_bool y | ||
110 | |||
111 | config ARCH_CLOCKSOURCE_DATA | ||
112 | def_bool y | ||
113 | depends on X86_64 | ||
114 | |||
115 | config GENERIC_CLOCKEVENTS_BROADCAST | ||
116 | def_bool y | ||
117 | depends on X86_64 || (X86_32 && X86_LOCAL_APIC) | ||
118 | |||
119 | config LOCKDEP_SUPPORT | 109 | config LOCKDEP_SUPPORT |
120 | def_bool y | 110 | def_bool y |
121 | 111 | ||
@@ -166,10 +156,6 @@ config RWSEM_XCHGADD_ALGORITHM | |||
166 | config GENERIC_CALIBRATE_DELAY | 156 | config GENERIC_CALIBRATE_DELAY |
167 | def_bool y | 157 | def_bool y |
168 | 158 | ||
169 | config GENERIC_TIME_VSYSCALL | ||
170 | bool | ||
171 | default X86_64 | ||
172 | |||
173 | config ARCH_HAS_CPU_RELAX | 159 | config ARCH_HAS_CPU_RELAX |
174 | def_bool y | 160 | def_bool y |
175 | 161 | ||
@@ -236,9 +222,6 @@ config ARCH_HWEIGHT_CFLAGS | |||
236 | default "-fcall-saved-ecx -fcall-saved-edx" if X86_32 | 222 | default "-fcall-saved-ecx -fcall-saved-edx" if X86_32 |
237 | default "-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" if X86_64 | 223 | default "-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" if X86_64 |
238 | 224 | ||
239 | config KTIME_SCALAR | ||
240 | def_bool X86_32 | ||
241 | |||
242 | config ARCH_CPU_PROBE_RELEASE | 225 | config ARCH_CPU_PROBE_RELEASE |
243 | def_bool y | 226 | def_bool y |
244 | depends on HOTPLUG_CPU | 227 | depends on HOTPLUG_CPU |
@@ -261,8 +244,6 @@ config ZONE_DMA | |||
261 | 244 | ||
262 | If unsure, say Y. | 245 | If unsure, say Y. |
263 | 246 | ||
264 | source "kernel/time/Kconfig" | ||
265 | |||
266 | config SMP | 247 | config SMP |
267 | bool "Symmetric multi-processing support" | 248 | bool "Symmetric multi-processing support" |
268 | ---help--- | 249 | ---help--- |
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index ad0de0c2714e..9cc7b4392f7c 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c | |||
@@ -94,13 +94,18 @@ static int hpet_verbose; | |||
94 | 94 | ||
95 | static int __init hpet_setup(char *str) | 95 | static int __init hpet_setup(char *str) |
96 | { | 96 | { |
97 | if (str) { | 97 | while (str) { |
98 | char *next = strchr(str, ','); | ||
99 | |||
100 | if (next) | ||
101 | *next++ = 0; | ||
98 | if (!strncmp("disable", str, 7)) | 102 | if (!strncmp("disable", str, 7)) |
99 | boot_hpet_disable = 1; | 103 | boot_hpet_disable = 1; |
100 | if (!strncmp("force", str, 5)) | 104 | if (!strncmp("force", str, 5)) |
101 | hpet_force_user = 1; | 105 | hpet_force_user = 1; |
102 | if (!strncmp("verbose", str, 7)) | 106 | if (!strncmp("verbose", str, 7)) |
103 | hpet_verbose = 1; | 107 | hpet_verbose = 1; |
108 | str = next; | ||
104 | } | 109 | } |
105 | return 1; | 110 | return 1; |
106 | } | 111 | } |
@@ -319,8 +324,6 @@ static void hpet_set_mode(enum clock_event_mode mode, | |||
319 | now = hpet_readl(HPET_COUNTER); | 324 | now = hpet_readl(HPET_COUNTER); |
320 | cmp = now + (unsigned int) delta; | 325 | cmp = now + (unsigned int) delta; |
321 | cfg = hpet_readl(HPET_Tn_CFG(timer)); | 326 | cfg = hpet_readl(HPET_Tn_CFG(timer)); |
322 | /* Make sure we use edge triggered interrupts */ | ||
323 | cfg &= ~HPET_TN_LEVEL; | ||
324 | cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC | | 327 | cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC | |
325 | HPET_TN_SETVAL | HPET_TN_32BIT; | 328 | HPET_TN_SETVAL | HPET_TN_32BIT; |
326 | hpet_writel(cfg, HPET_Tn_CFG(timer)); | 329 | hpet_writel(cfg, HPET_Tn_CFG(timer)); |
@@ -787,15 +790,16 @@ static int hpet_clocksource_register(void) | |||
787 | return 0; | 790 | return 0; |
788 | } | 791 | } |
789 | 792 | ||
793 | static u32 *hpet_boot_cfg; | ||
794 | |||
790 | /** | 795 | /** |
791 | * hpet_enable - Try to setup the HPET timer. Returns 1 on success. | 796 | * hpet_enable - Try to setup the HPET timer. Returns 1 on success. |
792 | */ | 797 | */ |
793 | int __init hpet_enable(void) | 798 | int __init hpet_enable(void) |
794 | { | 799 | { |
795 | unsigned long hpet_period; | 800 | u32 hpet_period, cfg, id; |
796 | unsigned int id; | ||
797 | u64 freq; | 801 | u64 freq; |
798 | int i; | 802 | unsigned int i, last; |
799 | 803 | ||
800 | if (!is_hpet_capable()) | 804 | if (!is_hpet_capable()) |
801 | return 0; | 805 | return 0; |
@@ -847,15 +851,45 @@ int __init hpet_enable(void) | |||
847 | id = hpet_readl(HPET_ID); | 851 | id = hpet_readl(HPET_ID); |
848 | hpet_print_config(); | 852 | hpet_print_config(); |
849 | 853 | ||
854 | last = (id & HPET_ID_NUMBER) >> HPET_ID_NUMBER_SHIFT; | ||
855 | |||
850 | #ifdef CONFIG_HPET_EMULATE_RTC | 856 | #ifdef CONFIG_HPET_EMULATE_RTC |
851 | /* | 857 | /* |
852 | * The legacy routing mode needs at least two channels, tick timer | 858 | * The legacy routing mode needs at least two channels, tick timer |
853 | * and the rtc emulation channel. | 859 | * and the rtc emulation channel. |
854 | */ | 860 | */ |
855 | if (!(id & HPET_ID_NUMBER)) | 861 | if (!last) |
856 | goto out_nohpet; | 862 | goto out_nohpet; |
857 | #endif | 863 | #endif |
858 | 864 | ||
865 | cfg = hpet_readl(HPET_CFG); | ||
866 | hpet_boot_cfg = kmalloc((last + 2) * sizeof(*hpet_boot_cfg), | ||
867 | GFP_KERNEL); | ||
868 | if (hpet_boot_cfg) | ||
869 | *hpet_boot_cfg = cfg; | ||
870 | else | ||
871 | pr_warn("HPET initial state will not be saved\n"); | ||
872 | cfg &= ~(HPET_CFG_ENABLE | HPET_CFG_LEGACY); | ||
873 | hpet_writel(cfg, HPET_Tn_CFG(i)); | ||
874 | if (cfg) | ||
875 | pr_warn("HPET: Unrecognized bits %#x set in global cfg\n", | ||
876 | cfg); | ||
877 | |||
878 | for (i = 0; i <= last; ++i) { | ||
879 | cfg = hpet_readl(HPET_Tn_CFG(i)); | ||
880 | if (hpet_boot_cfg) | ||
881 | hpet_boot_cfg[i + 1] = cfg; | ||
882 | cfg &= ~(HPET_TN_ENABLE | HPET_TN_LEVEL | HPET_TN_FSB); | ||
883 | hpet_writel(cfg, HPET_Tn_CFG(i)); | ||
884 | cfg &= ~(HPET_TN_PERIODIC | HPET_TN_PERIODIC_CAP | ||
885 | | HPET_TN_64BIT_CAP | HPET_TN_32BIT | HPET_TN_ROUTE | ||
886 | | HPET_TN_FSB | HPET_TN_FSB_CAP); | ||
887 | if (cfg) | ||
888 | pr_warn("HPET: Unrecognized bits %#x set in cfg#%u\n", | ||
889 | cfg, i); | ||
890 | } | ||
891 | hpet_print_config(); | ||
892 | |||
859 | if (hpet_clocksource_register()) | 893 | if (hpet_clocksource_register()) |
860 | goto out_nohpet; | 894 | goto out_nohpet; |
861 | 895 | ||
@@ -923,14 +957,28 @@ fs_initcall(hpet_late_init); | |||
923 | void hpet_disable(void) | 957 | void hpet_disable(void) |
924 | { | 958 | { |
925 | if (is_hpet_capable() && hpet_virt_address) { | 959 | if (is_hpet_capable() && hpet_virt_address) { |
926 | unsigned int cfg = hpet_readl(HPET_CFG); | 960 | unsigned int cfg = hpet_readl(HPET_CFG), id, last; |
927 | 961 | ||
928 | if (hpet_legacy_int_enabled) { | 962 | if (hpet_boot_cfg) |
963 | cfg = *hpet_boot_cfg; | ||
964 | else if (hpet_legacy_int_enabled) { | ||
929 | cfg &= ~HPET_CFG_LEGACY; | 965 | cfg &= ~HPET_CFG_LEGACY; |
930 | hpet_legacy_int_enabled = 0; | 966 | hpet_legacy_int_enabled = 0; |
931 | } | 967 | } |
932 | cfg &= ~HPET_CFG_ENABLE; | 968 | cfg &= ~HPET_CFG_ENABLE; |
933 | hpet_writel(cfg, HPET_CFG); | 969 | hpet_writel(cfg, HPET_CFG); |
970 | |||
971 | if (!hpet_boot_cfg) | ||
972 | return; | ||
973 | |||
974 | id = hpet_readl(HPET_ID); | ||
975 | last = ((id & HPET_ID_NUMBER) >> HPET_ID_NUMBER_SHIFT); | ||
976 | |||
977 | for (id = 0; id <= last; ++id) | ||
978 | hpet_writel(hpet_boot_cfg[id + 1], HPET_Tn_CFG(id)); | ||
979 | |||
980 | if (*hpet_boot_cfg & HPET_CFG_ENABLE) | ||
981 | hpet_writel(*hpet_boot_cfg, HPET_CFG); | ||
934 | } | 982 | } |
935 | } | 983 | } |
936 | 984 | ||