[MIPS] Use generic NTP code for all MIPS platforms
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
4680576ede
commit
f5ff0a2802
3 changed files with 8 additions and 38 deletions
|
@ -670,6 +670,10 @@ config GENERIC_TIME
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config GENERIC_CMOS_UPDATE
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
config SCHED_NO_NO_OMIT_FRAME_POINTER
|
config SCHED_NO_NO_OMIT_FRAME_POINTER
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -67,6 +67,10 @@ unsigned long (*rtc_mips_get_time)(void) = null_rtc_get_time;
|
||||||
int (*rtc_mips_set_time)(unsigned long) = null_rtc_set_time;
|
int (*rtc_mips_set_time)(unsigned long) = null_rtc_set_time;
|
||||||
int (*rtc_mips_set_mmss)(unsigned long);
|
int (*rtc_mips_set_mmss)(unsigned long);
|
||||||
|
|
||||||
|
int update_persistent_clock(struct timespec now)
|
||||||
|
{
|
||||||
|
return rtc_mips_set_mmss(now.tv_sec);
|
||||||
|
}
|
||||||
|
|
||||||
/* how many counter cycles in a jiffy */
|
/* how many counter cycles in a jiffy */
|
||||||
static unsigned long cycles_per_jiffy __read_mostly;
|
static unsigned long cycles_per_jiffy __read_mostly;
|
||||||
|
@ -125,9 +129,6 @@ static void __init c0_hpt_timer_init(void)
|
||||||
int (*mips_timer_state)(void);
|
int (*mips_timer_state)(void);
|
||||||
void (*mips_timer_ack)(void);
|
void (*mips_timer_ack)(void);
|
||||||
|
|
||||||
/* last time when xtime and rtc are sync'ed up */
|
|
||||||
static long last_rtc_update;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* local_timer_interrupt() does profiling and process accounting
|
* local_timer_interrupt() does profiling and process accounting
|
||||||
* on a per-CPU basis.
|
* on a per-CPU basis.
|
||||||
|
@ -159,23 +160,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id)
|
||||||
*/
|
*/
|
||||||
do_timer(1);
|
do_timer(1);
|
||||||
|
|
||||||
/*
|
|
||||||
* If we have an externally synchronized Linux clock, then update
|
|
||||||
* CMOS clock accordingly every ~11 minutes. rtc_mips_set_time() has to be
|
|
||||||
* called as close as possible to 500 ms before the new second starts.
|
|
||||||
*/
|
|
||||||
if (ntp_synced() &&
|
|
||||||
xtime.tv_sec > last_rtc_update + 660 &&
|
|
||||||
(xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 &&
|
|
||||||
(xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) {
|
|
||||||
if (rtc_mips_set_mmss(xtime.tv_sec) == 0) {
|
|
||||||
last_rtc_update = xtime.tv_sec;
|
|
||||||
} else {
|
|
||||||
/* do it again in 60 s */
|
|
||||||
last_rtc_update = xtime.tv_sec - 600;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
write_sequnlock(&xtime_lock);
|
write_sequnlock(&xtime_lock);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -40,7 +40,6 @@
|
||||||
#define TICK_SIZE (tick_nsec / 1000)
|
#define TICK_SIZE (tick_nsec / 1000)
|
||||||
|
|
||||||
static unsigned long ct_cur[NR_CPUS]; /* What counter should be at next timer irq */
|
static unsigned long ct_cur[NR_CPUS]; /* What counter should be at next timer irq */
|
||||||
static long last_rtc_update; /* Last time the rtc clock got updated */
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static int set_rtc_mmss(unsigned long nowtime)
|
static int set_rtc_mmss(unsigned long nowtime)
|
||||||
|
@ -113,23 +112,6 @@ void ip27_rt_timer_interrupt(void)
|
||||||
|
|
||||||
update_process_times(user_mode(get_irq_regs()));
|
update_process_times(user_mode(get_irq_regs()));
|
||||||
|
|
||||||
/*
|
|
||||||
* If we have an externally synchronized Linux clock, then update
|
|
||||||
* RTC clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
|
|
||||||
* called as close as possible to when a second starts.
|
|
||||||
*/
|
|
||||||
if (ntp_synced() &&
|
|
||||||
xtime.tv_sec > last_rtc_update + 660 &&
|
|
||||||
(xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 &&
|
|
||||||
(xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) {
|
|
||||||
if (rtc_mips_set_time(xtime.tv_sec) == 0) {
|
|
||||||
last_rtc_update = xtime.tv_sec;
|
|
||||||
} else {
|
|
||||||
last_rtc_update = xtime.tv_sec - 600;
|
|
||||||
/* do it again in 60 s */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
write_sequnlock(&xtime_lock);
|
write_sequnlock(&xtime_lock);
|
||||||
irq_exit();
|
irq_exit();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue