diff options
33 files changed, 19 insertions, 159 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 2b2407d9a6d0..8abdfd7cb571 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -73,7 +73,6 @@ parameter is applicable: | |||
73 | MTD MTD (Memory Technology Device) support is enabled. | 73 | MTD MTD (Memory Technology Device) support is enabled. |
74 | NET Appropriate network support is enabled. | 74 | NET Appropriate network support is enabled. |
75 | NUMA NUMA support is enabled. | 75 | NUMA NUMA support is enabled. |
76 | GENERIC_TIME The generic timeofday code is enabled. | ||
77 | NFS Appropriate NFS support is enabled. | 76 | NFS Appropriate NFS support is enabled. |
78 | OSS OSS sound support is enabled. | 77 | OSS OSS sound support is enabled. |
79 | PV_OPS A paravirtualized kernel is enabled. | 78 | PV_OPS A paravirtualized kernel is enabled. |
@@ -468,7 +467,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
468 | clocksource is not available, it defaults to PIT. | 467 | clocksource is not available, it defaults to PIT. |
469 | Format: { pit | tsc | cyclone | pmtmr } | 468 | Format: { pit | tsc | cyclone | pmtmr } |
470 | 469 | ||
471 | clocksource= [GENERIC_TIME] Override the default clocksource | 470 | clocksource= Override the default clocksource |
472 | Format: <string> | 471 | Format: <string> |
473 | Override the default clocksource and use the clocksource | 472 | Override the default clocksource and use the clocksource |
474 | with the name specified. | 473 | with the name specified. |
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 3e2e540a0f2a..b9647bb66d13 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
@@ -47,10 +47,6 @@ config GENERIC_CALIBRATE_DELAY | |||
47 | bool | 47 | bool |
48 | default y | 48 | default y |
49 | 49 | ||
50 | config GENERIC_TIME | ||
51 | bool | ||
52 | default y | ||
53 | |||
54 | config GENERIC_CMOS_UPDATE | 50 | config GENERIC_CMOS_UPDATE |
55 | def_bool y | 51 | def_bool y |
56 | 52 | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 98922f7d2d12..655b4ae76314 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -41,10 +41,6 @@ config SYS_SUPPORTS_APM_EMULATION | |||
41 | config GENERIC_GPIO | 41 | config GENERIC_GPIO |
42 | bool | 42 | bool |
43 | 43 | ||
44 | config GENERIC_TIME | ||
45 | bool | ||
46 | default y | ||
47 | |||
48 | config ARCH_USES_GETTIMEOFFSET | 44 | config ARCH_USES_GETTIMEOFFSET |
49 | bool | 45 | bool |
50 | default n | 46 | default n |
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index f2b319333184..f51572772e21 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
@@ -45,9 +45,6 @@ config GENERIC_IRQ_PROBE | |||
45 | config RWSEM_GENERIC_SPINLOCK | 45 | config RWSEM_GENERIC_SPINLOCK |
46 | def_bool y | 46 | def_bool y |
47 | 47 | ||
48 | config GENERIC_TIME | ||
49 | def_bool y | ||
50 | |||
51 | config GENERIC_CLOCKEVENTS | 48 | config GENERIC_CLOCKEVENTS |
52 | def_bool y | 49 | def_bool y |
53 | 50 | ||
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index f66294b4f9d2..c88fd3584122 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -614,9 +614,6 @@ comment "Kernel Timer/Scheduler" | |||
614 | 614 | ||
615 | source kernel/Kconfig.hz | 615 | source kernel/Kconfig.hz |
616 | 616 | ||
617 | config GENERIC_TIME | ||
618 | def_bool y | ||
619 | |||
620 | config GENERIC_CLOCKEVENTS | 617 | config GENERIC_CLOCKEVENTS |
621 | bool "Generic clock events" | 618 | bool "Generic clock events" |
622 | default y | 619 | default y |
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index e25bf4440b51..887ef855be2a 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -20,9 +20,6 @@ config RWSEM_GENERIC_SPINLOCK | |||
20 | config RWSEM_XCHGADD_ALGORITHM | 20 | config RWSEM_XCHGADD_ALGORITHM |
21 | bool | 21 | bool |
22 | 22 | ||
23 | config GENERIC_TIME | ||
24 | def_bool y | ||
25 | |||
26 | config GENERIC_CMOS_UPDATE | 23 | config GENERIC_CMOS_UPDATE |
27 | def_bool y | 24 | def_bool y |
28 | 25 | ||
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index 4b5830bcbe2e..16399bd24993 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig | |||
@@ -40,10 +40,6 @@ config GENERIC_HARDIRQS_NO__DO_IRQ | |||
40 | bool | 40 | bool |
41 | default y | 41 | default y |
42 | 42 | ||
43 | config GENERIC_TIME | ||
44 | bool | ||
45 | default y | ||
46 | |||
47 | config TIME_LOW_RES | 43 | config TIME_LOW_RES |
48 | bool | 44 | bool |
49 | default y | 45 | default y |
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 53cc669e6d59..988b6ff34cc4 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig | |||
@@ -62,10 +62,6 @@ config GENERIC_CALIBRATE_DELAY | |||
62 | bool | 62 | bool |
63 | default y | 63 | default y |
64 | 64 | ||
65 | config GENERIC_TIME | ||
66 | bool | ||
67 | default y | ||
68 | |||
69 | config GENERIC_BUG | 65 | config GENERIC_BUG |
70 | bool | 66 | bool |
71 | depends on BUG | 67 | depends on BUG |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 95610820041e..8711d13cd79f 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -82,10 +82,6 @@ config GENERIC_CALIBRATE_DELAY | |||
82 | bool | 82 | bool |
83 | default y | 83 | default y |
84 | 84 | ||
85 | config GENERIC_TIME | ||
86 | bool | ||
87 | default y | ||
88 | |||
89 | config GENERIC_TIME_VSYSCALL | 85 | config GENERIC_TIME_VSYSCALL |
90 | bool | 86 | bool |
91 | default y | 87 | default y |
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index 3a9319f93e89..836abbbc9c04 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig | |||
@@ -44,9 +44,6 @@ config HZ | |||
44 | int | 44 | int |
45 | default 100 | 45 | default 100 |
46 | 46 | ||
47 | config GENERIC_TIME | ||
48 | def_bool y | ||
49 | |||
50 | config ARCH_USES_GETTIMEOFFSET | 47 | config ARCH_USES_GETTIMEOFFSET |
51 | def_bool y | 48 | def_bool y |
52 | 49 | ||
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 2e3737b92ffc..8030e2481d97 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig | |||
@@ -59,9 +59,6 @@ config HZ | |||
59 | int | 59 | int |
60 | default 100 | 60 | default 100 |
61 | 61 | ||
62 | config GENERIC_TIME | ||
63 | def_bool y | ||
64 | |||
65 | config ARCH_USES_GETTIMEOFFSET | 62 | config ARCH_USES_GETTIMEOFFSET |
66 | def_bool y | 63 | def_bool y |
67 | 64 | ||
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index efeb6033fc17..2609c394e1df 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig | |||
@@ -63,10 +63,6 @@ config GENERIC_CALIBRATE_DELAY | |||
63 | bool | 63 | bool |
64 | default y | 64 | default y |
65 | 65 | ||
66 | config GENERIC_TIME | ||
67 | bool | ||
68 | default y | ||
69 | |||
70 | config GENERIC_CMOS_UPDATE | 66 | config GENERIC_CMOS_UPDATE |
71 | bool | 67 | bool |
72 | default y | 68 | default y |
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index 505a08592423..14f03cea94a1 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig | |||
@@ -48,9 +48,6 @@ config GENERIC_IRQ_PROBE | |||
48 | config GENERIC_CALIBRATE_DELAY | 48 | config GENERIC_CALIBRATE_DELAY |
49 | def_bool y | 49 | def_bool y |
50 | 50 | ||
51 | config GENERIC_TIME | ||
52 | def_bool y | ||
53 | |||
54 | config GENERIC_TIME_VSYSCALL | 51 | config GENERIC_TIME_VSYSCALL |
55 | def_bool n | 52 | def_bool n |
56 | 53 | ||
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index cdaae942623d..01c44cbdf163 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -733,10 +733,6 @@ config GENERIC_CLOCKEVENTS | |||
733 | bool | 733 | bool |
734 | default y | 734 | default y |
735 | 735 | ||
736 | config GENERIC_TIME | ||
737 | bool | ||
738 | default y | ||
739 | |||
740 | config GENERIC_CMOS_UPDATE | 736 | config GENERIC_CMOS_UPDATE |
741 | bool | 737 | bool |
742 | default y | 738 | default y |
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index 1c4565a9102b..444b9f918fdf 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig | |||
@@ -46,9 +46,6 @@ config GENERIC_FIND_NEXT_BIT | |||
46 | config GENERIC_HWEIGHT | 46 | config GENERIC_HWEIGHT |
47 | def_bool y | 47 | def_bool y |
48 | 48 | ||
49 | config GENERIC_TIME | ||
50 | def_bool y | ||
51 | |||
52 | config GENERIC_BUG | 49 | config GENERIC_BUG |
53 | def_bool y | 50 | def_bool y |
54 | 51 | ||
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 05a366a5c4d5..907417d187e1 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
@@ -66,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY | |||
66 | bool | 66 | bool |
67 | default y | 67 | default y |
68 | 68 | ||
69 | config GENERIC_TIME | ||
70 | bool | ||
71 | default y | ||
72 | |||
73 | config TIME_LOW_RES | 69 | config TIME_LOW_RES |
74 | bool | 70 | bool |
75 | depends on SMP | 71 | depends on SMP |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 2031a2846865..25e6bf457457 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -29,9 +29,6 @@ config MMU | |||
29 | config GENERIC_CMOS_UPDATE | 29 | config GENERIC_CMOS_UPDATE |
30 | def_bool y | 30 | def_bool y |
31 | 31 | ||
32 | config GENERIC_TIME | ||
33 | def_bool y | ||
34 | |||
35 | config GENERIC_TIME_VSYSCALL | 32 | config GENERIC_TIME_VSYSCALL |
36 | def_bool y | 33 | def_bool y |
37 | 34 | ||
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index bee1c0f794cf..f0777a47e3a5 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -40,9 +40,6 @@ config ARCH_HAS_ILOG2_U64 | |||
40 | config GENERIC_HWEIGHT | 40 | config GENERIC_HWEIGHT |
41 | def_bool y | 41 | def_bool y |
42 | 42 | ||
43 | config GENERIC_TIME | ||
44 | def_bool y | ||
45 | |||
46 | config GENERIC_TIME_VSYSCALL | 43 | config GENERIC_TIME_VSYSCALL |
47 | def_bool y | 44 | def_bool y |
48 | 45 | ||
diff --git a/arch/score/Kconfig b/arch/score/Kconfig index 55d413e6dcf2..be4a15584751 100644 --- a/arch/score/Kconfig +++ b/arch/score/Kconfig | |||
@@ -55,9 +55,6 @@ config GENERIC_CALIBRATE_DELAY | |||
55 | config GENERIC_CLOCKEVENTS | 55 | config GENERIC_CLOCKEVENTS |
56 | def_bool y | 56 | def_bool y |
57 | 57 | ||
58 | config GENERIC_TIME | ||
59 | def_bool y | ||
60 | |||
61 | config SCHED_NO_NO_OMIT_FRAME_POINTER | 58 | config SCHED_NO_NO_OMIT_FRAME_POINTER |
62 | def_bool y | 59 | def_bool y |
63 | 60 | ||
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 82868fee21fd..33990fa95af0 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -98,9 +98,6 @@ config GENERIC_CALIBRATE_DELAY | |||
98 | config GENERIC_IOMAP | 98 | config GENERIC_IOMAP |
99 | bool | 99 | bool |
100 | 100 | ||
101 | config GENERIC_TIME | ||
102 | def_bool y | ||
103 | |||
104 | config GENERIC_CLOCKEVENTS | 101 | config GENERIC_CLOCKEVENTS |
105 | def_bool y | 102 | def_bool y |
106 | 103 | ||
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index c0015db247ba..1cd0d9d3c761 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
@@ -66,9 +66,6 @@ config BITS | |||
66 | default 32 if SPARC32 | 66 | default 32 if SPARC32 |
67 | default 64 if SPARC64 | 67 | default 64 if SPARC64 |
68 | 68 | ||
69 | config GENERIC_TIME | ||
70 | def_bool y | ||
71 | |||
72 | config ARCH_USES_GETTIMEOFFSET | 69 | config ARCH_USES_GETTIMEOFFSET |
73 | bool | 70 | bool |
74 | default y if SPARC32 | 71 | default y if SPARC32 |
diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common index 0d207e73a758..7c8e277f6d34 100644 --- a/arch/um/Kconfig.common +++ b/arch/um/Kconfig.common | |||
@@ -55,10 +55,6 @@ config GENERIC_BUG | |||
55 | default y | 55 | default y |
56 | depends on BUG | 56 | depends on BUG |
57 | 57 | ||
58 | config GENERIC_TIME | ||
59 | bool | ||
60 | default y | ||
61 | |||
62 | config GENERIC_CLOCKEVENTS | 58 | config GENERIC_CLOCKEVENTS |
63 | bool | 59 | bool |
64 | default y | 60 | default y |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index dcb0593b4a66..546b610ad71c 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -72,9 +72,6 @@ config ARCH_DEFCONFIG | |||
72 | default "arch/x86/configs/i386_defconfig" if X86_32 | 72 | default "arch/x86/configs/i386_defconfig" if X86_32 |
73 | default "arch/x86/configs/x86_64_defconfig" if X86_64 | 73 | default "arch/x86/configs/x86_64_defconfig" if X86_64 |
74 | 74 | ||
75 | config GENERIC_TIME | ||
76 | def_bool y | ||
77 | |||
78 | config GENERIC_CMOS_UPDATE | 75 | config GENERIC_CMOS_UPDATE |
79 | def_bool y | 76 | def_bool y |
80 | 77 | ||
@@ -2046,7 +2043,7 @@ config SCx200 | |||
2046 | 2043 | ||
2047 | config SCx200HR_TIMER | 2044 | config SCx200HR_TIMER |
2048 | tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" | 2045 | tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" |
2049 | depends on SCx200 && GENERIC_TIME | 2046 | depends on SCx200 |
2050 | default y | 2047 | default y |
2051 | ---help--- | 2048 | ---help--- |
2052 | This driver provides a clocksource built upon the on-chip | 2049 | This driver provides a clocksource built upon the on-chip |
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index ebe228d02b08..0859bfd8ae93 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig | |||
@@ -48,9 +48,6 @@ config HZ | |||
48 | int | 48 | int |
49 | default 100 | 49 | default 100 |
50 | 50 | ||
51 | config GENERIC_TIME | ||
52 | def_bool y | ||
53 | |||
54 | source "init/Kconfig" | 51 | source "init/Kconfig" |
55 | source "kernel/Kconfig.freezer" | 52 | source "kernel/Kconfig.freezer" |
56 | 53 | ||
diff --git a/drivers/Makefile b/drivers/Makefile index 91874e048552..ae473445ad6d 100644 --- a/drivers/Makefile +++ b/drivers/Makefile | |||
@@ -101,7 +101,9 @@ obj-y += firmware/ | |||
101 | obj-$(CONFIG_CRYPTO) += crypto/ | 101 | obj-$(CONFIG_CRYPTO) += crypto/ |
102 | obj-$(CONFIG_SUPERH) += sh/ | 102 | obj-$(CONFIG_SUPERH) += sh/ |
103 | obj-$(CONFIG_ARCH_SHMOBILE) += sh/ | 103 | obj-$(CONFIG_ARCH_SHMOBILE) += sh/ |
104 | obj-$(CONFIG_GENERIC_TIME) += clocksource/ | 104 | ifndef CONFIG_ARCH_USES_GETTIMEOFFSET |
105 | obj-y += clocksource/ | ||
106 | endif | ||
105 | obj-$(CONFIG_DMA_ENGINE) += dma/ | 107 | obj-$(CONFIG_DMA_ENGINE) += dma/ |
106 | obj-$(CONFIG_DCA) += dca/ | 108 | obj-$(CONFIG_DCA) += dca/ |
107 | obj-$(CONFIG_HID) += hid/ | 109 | obj-$(CONFIG_HID) += hid/ |
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c index 446aced33aff..b76848c80be3 100644 --- a/drivers/acpi/acpi_pad.c +++ b/drivers/acpi/acpi_pad.c | |||
@@ -77,7 +77,7 @@ static void power_saving_mwait_init(void) | |||
77 | power_saving_mwait_eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) | | 77 | power_saving_mwait_eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) | |
78 | (highest_subcstate - 1); | 78 | (highest_subcstate - 1); |
79 | 79 | ||
80 | #if defined(CONFIG_GENERIC_TIME) && defined(CONFIG_X86) | 80 | #if defined(CONFIG_X86) |
81 | switch (boot_cpu_data.x86_vendor) { | 81 | switch (boot_cpu_data.x86_vendor) { |
82 | case X86_VENDOR_AMD: | 82 | case X86_VENDOR_AMD: |
83 | case X86_VENDOR_INTEL: | 83 | case X86_VENDOR_INTEL: |
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index e9a8026d39f0..294e10b5480a 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -264,7 +264,7 @@ int acpi_processor_resume(struct acpi_device * device) | |||
264 | return 0; | 264 | return 0; |
265 | } | 265 | } |
266 | 266 | ||
267 | #if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86) | 267 | #if defined(CONFIG_X86) |
268 | static void tsc_check_state(int state) | 268 | static void tsc_check_state(int state) |
269 | { | 269 | { |
270 | switch (boot_cpu_data.x86_vendor) { | 270 | switch (boot_cpu_data.x86_vendor) { |
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 26386a92f5aa..5b9ba4834ce1 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig | |||
@@ -72,7 +72,7 @@ config ATMEL_TCLIB | |||
72 | 72 | ||
73 | config ATMEL_TCB_CLKSRC | 73 | config ATMEL_TCB_CLKSRC |
74 | bool "TC Block Clocksource" | 74 | bool "TC Block Clocksource" |
75 | depends on ATMEL_TCLIB && GENERIC_TIME | 75 | depends on ATMEL_TCLIB |
76 | default y | 76 | default y |
77 | help | 77 | help |
78 | Select this to get a high precision clocksource based on a | 78 | Select this to get a high precision clocksource based on a |
@@ -240,7 +240,7 @@ config CS5535_MFGPT_DEFAULT_IRQ | |||
240 | 240 | ||
241 | config CS5535_CLOCK_EVENT_SRC | 241 | config CS5535_CLOCK_EVENT_SRC |
242 | tristate "CS5535/CS5536 high-res timer (MFGPT) events" | 242 | tristate "CS5535/CS5536 high-res timer (MFGPT) events" |
243 | depends on GENERIC_TIME && GENERIC_CLOCKEVENTS && CS5535_MFGPT | 243 | depends on GENERIC_CLOCKEVENTS && CS5535_MFGPT |
244 | help | 244 | help |
245 | This driver provides a clock event source based on the MFGPT | 245 | This driver provides a clock event source based on the MFGPT |
246 | timer(s) in the CS5535 and CS5536 companion chips. | 246 | timer(s) in the CS5535 and CS5536 companion chips. |
diff --git a/kernel/time.c b/kernel/time.c index 848b1c2ab09a..ba9b338d1835 100644 --- a/kernel/time.c +++ b/kernel/time.c | |||
@@ -300,22 +300,6 @@ struct timespec timespec_trunc(struct timespec t, unsigned gran) | |||
300 | } | 300 | } |
301 | EXPORT_SYMBOL(timespec_trunc); | 301 | EXPORT_SYMBOL(timespec_trunc); |
302 | 302 | ||
303 | #ifndef CONFIG_GENERIC_TIME | ||
304 | /* | ||
305 | * Simulate gettimeofday using do_gettimeofday which only allows a timeval | ||
306 | * and therefore only yields usec accuracy | ||
307 | */ | ||
308 | void getnstimeofday(struct timespec *tv) | ||
309 | { | ||
310 | struct timeval x; | ||
311 | |||
312 | do_gettimeofday(&x); | ||
313 | tv->tv_sec = x.tv_sec; | ||
314 | tv->tv_nsec = x.tv_usec * NSEC_PER_USEC; | ||
315 | } | ||
316 | EXPORT_SYMBOL_GPL(getnstimeofday); | ||
317 | #endif | ||
318 | |||
319 | /* Converts Gregorian date to seconds since 1970-01-01 00:00:00. | 303 | /* Converts Gregorian date to seconds since 1970-01-01 00:00:00. |
320 | * Assumes input in normal date format, i.e. 1980-12-31 23:59:59 | 304 | * Assumes input in normal date format, i.e. 1980-12-31 23:59:59 |
321 | * => year=1980, mon=12, day=31, hour=23, min=59, sec=59. | 305 | * => year=1980, mon=12, day=31, hour=23, min=59, sec=59. |
diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index 95ed42951e0a..f06a8a365648 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig | |||
@@ -6,7 +6,7 @@ config TICK_ONESHOT | |||
6 | 6 | ||
7 | config NO_HZ | 7 | config NO_HZ |
8 | bool "Tickless System (Dynamic Ticks)" | 8 | bool "Tickless System (Dynamic Ticks)" |
9 | depends on GENERIC_TIME && GENERIC_CLOCKEVENTS | 9 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS |
10 | select TICK_ONESHOT | 10 | select TICK_ONESHOT |
11 | help | 11 | help |
12 | This option enables a tickless system: timer interrupts will | 12 | This option enables a tickless system: timer interrupts will |
@@ -15,7 +15,7 @@ config NO_HZ | |||
15 | 15 | ||
16 | config HIGH_RES_TIMERS | 16 | config HIGH_RES_TIMERS |
17 | bool "High Resolution Timer Support" | 17 | bool "High Resolution Timer Support" |
18 | depends on GENERIC_TIME && GENERIC_CLOCKEVENTS | 18 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS |
19 | select TICK_ONESHOT | 19 | select TICK_ONESHOT |
20 | help | 20 | help |
21 | This option enables high resolution timer support. If your | 21 | This option enables high resolution timer support. If your |
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c index f08e99c1d561..c543d21b4e54 100644 --- a/kernel/time/clocksource.c +++ b/kernel/time/clocksource.c | |||
@@ -531,7 +531,7 @@ static u64 clocksource_max_deferment(struct clocksource *cs) | |||
531 | return max_nsecs - (max_nsecs >> 5); | 531 | return max_nsecs - (max_nsecs >> 5); |
532 | } | 532 | } |
533 | 533 | ||
534 | #ifdef CONFIG_GENERIC_TIME | 534 | #ifndef CONFIG_ARCH_USES_GETTIMEOFFSET |
535 | 535 | ||
536 | /** | 536 | /** |
537 | * clocksource_select - Select the best clocksource available | 537 | * clocksource_select - Select the best clocksource available |
@@ -577,7 +577,7 @@ static void clocksource_select(void) | |||
577 | } | 577 | } |
578 | } | 578 | } |
579 | 579 | ||
580 | #else /* CONFIG_GENERIC_TIME */ | 580 | #else /* !CONFIG_ARCH_USES_GETTIMEOFFSET */ |
581 | 581 | ||
582 | static inline void clocksource_select(void) { } | 582 | static inline void clocksource_select(void) { } |
583 | 583 | ||
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 623fe3d504dc..73edd4074b50 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
@@ -173,8 +173,6 @@ void timekeeping_leap_insert(int leapsecond) | |||
173 | update_vsyscall(&xtime, timekeeper.clock, timekeeper.mult); | 173 | update_vsyscall(&xtime, timekeeper.clock, timekeeper.mult); |
174 | } | 174 | } |
175 | 175 | ||
176 | #ifdef CONFIG_GENERIC_TIME | ||
177 | |||
178 | /** | 176 | /** |
179 | * timekeeping_forward_now - update clock to the current time | 177 | * timekeeping_forward_now - update clock to the current time |
180 | * | 178 | * |
@@ -376,52 +374,6 @@ void timekeeping_notify(struct clocksource *clock) | |||
376 | tick_clock_notify(); | 374 | tick_clock_notify(); |
377 | } | 375 | } |
378 | 376 | ||
379 | #else /* GENERIC_TIME */ | ||
380 | |||
381 | static inline void timekeeping_forward_now(void) { } | ||
382 | |||
383 | /** | ||
384 | * ktime_get - get the monotonic time in ktime_t format | ||
385 | * | ||
386 | * returns the time in ktime_t format | ||
387 | */ | ||
388 | ktime_t ktime_get(void) | ||
389 | { | ||
390 | struct timespec now; | ||
391 | |||
392 | ktime_get_ts(&now); | ||
393 | |||
394 | return timespec_to_ktime(now); | ||
395 | } | ||
396 | EXPORT_SYMBOL_GPL(ktime_get); | ||
397 | |||
398 | /** | ||
399 | * ktime_get_ts - get the monotonic clock in timespec format | ||
400 | * @ts: pointer to timespec variable | ||
401 | * | ||
402 | * The function calculates the monotonic clock from the realtime | ||
403 | * clock and the wall_to_monotonic offset and stores the result | ||
404 | * in normalized timespec format in the variable pointed to by @ts. | ||
405 | */ | ||
406 | void ktime_get_ts(struct timespec *ts) | ||
407 | { | ||
408 | struct timespec tomono; | ||
409 | unsigned long seq; | ||
410 | |||
411 | do { | ||
412 | seq = read_seqbegin(&xtime_lock); | ||
413 | getnstimeofday(ts); | ||
414 | tomono = wall_to_monotonic; | ||
415 | |||
416 | } while (read_seqretry(&xtime_lock, seq)); | ||
417 | |||
418 | set_normalized_timespec(ts, ts->tv_sec + tomono.tv_sec, | ||
419 | ts->tv_nsec + tomono.tv_nsec); | ||
420 | } | ||
421 | EXPORT_SYMBOL_GPL(ktime_get_ts); | ||
422 | |||
423 | #endif /* !GENERIC_TIME */ | ||
424 | |||
425 | /** | 377 | /** |
426 | * ktime_get_real - get the real (wall-) time in ktime_t format | 378 | * ktime_get_real - get the real (wall-) time in ktime_t format |
427 | * | 379 | * |
@@ -784,10 +736,11 @@ void update_wall_time(void) | |||
784 | return; | 736 | return; |
785 | 737 | ||
786 | clock = timekeeper.clock; | 738 | clock = timekeeper.clock; |
787 | #ifdef CONFIG_GENERIC_TIME | 739 | |
788 | offset = (clock->read(clock) - clock->cycle_last) & clock->mask; | 740 | #ifdef CONFIG_ARCH_USES_GETTIMEOFFSET |
789 | #else | ||
790 | offset = timekeeper.cycle_interval; | 741 | offset = timekeeper.cycle_interval; |
742 | #else | ||
743 | offset = (clock->read(clock) - clock->cycle_last) & clock->mask; | ||
791 | #endif | 744 | #endif |
792 | timekeeper.xtime_nsec = (s64)xtime.tv_nsec << timekeeper.shift; | 745 | timekeeper.xtime_nsec = (s64)xtime.tv_nsec << timekeeper.shift; |
793 | 746 | ||
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 8b1797c4545b..7531ddaf3afe 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
@@ -153,7 +153,7 @@ config IRQSOFF_TRACER | |||
153 | bool "Interrupts-off Latency Tracer" | 153 | bool "Interrupts-off Latency Tracer" |
154 | default n | 154 | default n |
155 | depends on TRACE_IRQFLAGS_SUPPORT | 155 | depends on TRACE_IRQFLAGS_SUPPORT |
156 | depends on GENERIC_TIME | 156 | depends on !ARCH_USES_GETTIMEOFFSET |
157 | select TRACE_IRQFLAGS | 157 | select TRACE_IRQFLAGS |
158 | select GENERIC_TRACER | 158 | select GENERIC_TRACER |
159 | select TRACER_MAX_TRACE | 159 | select TRACER_MAX_TRACE |
@@ -175,7 +175,7 @@ config IRQSOFF_TRACER | |||
175 | config PREEMPT_TRACER | 175 | config PREEMPT_TRACER |
176 | bool "Preemption-off Latency Tracer" | 176 | bool "Preemption-off Latency Tracer" |
177 | default n | 177 | default n |
178 | depends on GENERIC_TIME | 178 | depends on !ARCH_USES_GETTIMEOFFSET |
179 | depends on PREEMPT | 179 | depends on PREEMPT |
180 | select GENERIC_TRACER | 180 | select GENERIC_TRACER |
181 | select TRACER_MAX_TRACE | 181 | select TRACER_MAX_TRACE |