mirror of https://gitee.com/openkylin/linux.git
MN10300: Use clockevents_calc_mult_shift()
Use clockevents_calc_mult_shift() instead of the homebrewn function in mn10300/kernel/time.c. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: John Stultz <johnstul@us.ibm.com> Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com> Cc: Mark Salter <msalter@redhat.com> Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
parent
817890ba15
commit
dc7daf3362
|
@ -89,9 +89,10 @@ int __init init_clockevents(void)
|
|||
cd->name = "Timestamp";
|
||||
cd->features = CLOCK_EVT_FEAT_ONESHOT;
|
||||
|
||||
/* Calculate the min / max delta */
|
||||
clockevent_set_clock(cd, MN10300_JCCLK);
|
||||
/* Calculate shift/mult. We want to spawn at least 1 second */
|
||||
clockevents_calc_mult_shift(cd, MN10300_JCCLK, 1);
|
||||
|
||||
/* Calculate the min / max delta */
|
||||
cd->max_delta_ns = clockevent_delta2ns(TMJCBR_MAX, cd);
|
||||
cd->min_delta_ns = clockevent_delta2ns(100, cd);
|
||||
|
||||
|
|
|
@ -33,10 +33,3 @@ extern void mn10300_low_ipi_handler(void);
|
|||
* time.c
|
||||
*/
|
||||
extern irqreturn_t local_timer_interrupt(void);
|
||||
|
||||
/*
|
||||
* time.c
|
||||
*/
|
||||
#ifdef CONFIG_CSRC_MN10300
|
||||
extern void clocksource_set_clock(struct clocksource *, unsigned int);
|
||||
#endif
|
||||
|
|
|
@ -93,23 +93,6 @@ irqreturn_t local_timer_interrupt(void)
|
|||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
void __cpuinit clockevent_set_clock(struct clock_event_device *cd,
|
||||
unsigned int clock)
|
||||
{
|
||||
u64 temp;
|
||||
u32 shift;
|
||||
|
||||
/* Find a shift value */
|
||||
for (shift = 32; shift > 0; shift--) {
|
||||
temp = (u64) clock << shift;
|
||||
do_div(temp, NSEC_PER_SEC);
|
||||
if ((temp >> 32) == 0)
|
||||
break;
|
||||
}
|
||||
cd->shift = shift;
|
||||
cd->mult = (u32) temp;
|
||||
}
|
||||
|
||||
/*
|
||||
* initialise the various timers used by the main part of the kernel
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue