mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
timekeeping: Add CONFIG_HAS_PERSISTENT_CLOCK option
Make the persistent clock check a kernel config option, so that some platform can explicitely select it, also make CONFIG_RTC_HCTOSYS and RTC_SYSTOHC depend on its non-existence, which could prevent the persistent clock and RTC code from doing similar thing twice during system's init/suspend/resume phases. If the CONFIG_HAS_PERSISTENT_CLOCK=n, then no change happens for kernel which still does the persistent clock check in timekeeping_init(). Cc: Thomas Gleixner <tglx@linutronix.de> Suggested-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Feng Tang <feng.tang@intel.com> [jstultz: Added dependency for RTC_SYSTOHC as well] Signed-off-by: John Stultz <john.stultz@linaro.org>
This commit is contained in:
parent
9ecf37eb7a
commit
05ad717c77
@ -20,6 +20,7 @@ if RTC_CLASS
|
|||||||
config RTC_HCTOSYS
|
config RTC_HCTOSYS
|
||||||
bool "Set system time from RTC on startup and resume"
|
bool "Set system time from RTC on startup and resume"
|
||||||
default y
|
default y
|
||||||
|
depends on !HAS_PERSISTENT_CLOCK
|
||||||
help
|
help
|
||||||
If you say yes here, the system time (wall clock) will be set using
|
If you say yes here, the system time (wall clock) will be set using
|
||||||
the value read from a specified RTC device. This is useful to avoid
|
the value read from a specified RTC device. This is useful to avoid
|
||||||
@ -28,6 +29,7 @@ config RTC_HCTOSYS
|
|||||||
config RTC_SYSTOHC
|
config RTC_SYSTOHC
|
||||||
bool "Set the RTC time based on NTP synchronization"
|
bool "Set the RTC time based on NTP synchronization"
|
||||||
default y
|
default y
|
||||||
|
depends on !HAS_PERSISTENT_CLOCK
|
||||||
help
|
help
|
||||||
If you say yes here, the system time (wall clock) will be stored
|
If you say yes here, the system time (wall clock) will be stored
|
||||||
in the RTC specified by RTC_HCTOSYS_DEVICE approximately every 11
|
in the RTC specified by RTC_HCTOSYS_DEVICE approximately every 11
|
||||||
|
@ -116,10 +116,15 @@ static inline bool timespec_valid_strict(const struct timespec *ts)
|
|||||||
}
|
}
|
||||||
|
|
||||||
extern bool persistent_clock_exist;
|
extern bool persistent_clock_exist;
|
||||||
|
|
||||||
|
#ifdef CONFIG_HAS_PERSISTENT_CLOCK
|
||||||
|
#define has_persistent_clock() true
|
||||||
|
#else
|
||||||
static inline bool has_persistent_clock(void)
|
static inline bool has_persistent_clock(void)
|
||||||
{
|
{
|
||||||
return persistent_clock_exist;
|
return persistent_clock_exist;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
extern void read_persistent_clock(struct timespec *ts);
|
extern void read_persistent_clock(struct timespec *ts);
|
||||||
extern void read_boot_clock(struct timespec *ts);
|
extern void read_boot_clock(struct timespec *ts);
|
||||||
|
@ -12,6 +12,11 @@ config CLOCKSOURCE_WATCHDOG
|
|||||||
config ARCH_CLOCKSOURCE_DATA
|
config ARCH_CLOCKSOURCE_DATA
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
# Platforms has a persistent clock
|
||||||
|
config HAS_PERSISTENT_CLOCK
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
|
||||||
# Timekeeping vsyscall support
|
# Timekeeping vsyscall support
|
||||||
config GENERIC_TIME_VSYSCALL
|
config GENERIC_TIME_VSYSCALL
|
||||||
bool
|
bool
|
||||||
|
Loading…
x
Reference in New Issue
Block a user