From 2448a5573afb56352c7601ac3ff7487e68528fc3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Sat, 30 Jul 2011 15:56:49 +0800 Subject: [PATCH] Revert "clocksource: Provide a generic mult/shift factor calculation" This reverts commit cfc80b68293040b1f06c1fb388d3bd448721aa7b. --- include/linux/clockchips.h | 7 ----- include/linux/clocksource.h | 10 ------- kernel/time/clocksource.c | 53 ------------------------------------- 3 files changed, 70 deletions(-) diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h index b7905462043c..3a1dbba4d3ae 100644 --- a/include/linux/clockchips.h +++ b/include/linux/clockchips.h @@ -130,13 +130,6 @@ extern int clockevents_program_event(struct clock_event_device *dev, extern void clockevents_handle_noop(struct clock_event_device *dev); -static inline void -clockevents_calc_mult_shift(struct clock_event_device *ce, u32 freq, u32 minsec) -{ - return clocks_calc_mult_shift(&ce->mult, &ce->shift, NSEC_PER_SEC, - freq, minsec); -} - #ifdef CONFIG_GENERIC_CLOCKEVENTS extern void clockevents_notify(unsigned long reason, void *arg); #else diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index 8a4a130cc196..f73bc1b68c10 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h @@ -281,16 +281,6 @@ extern void clocksource_resume(void); extern struct clocksource * __init __weak clocksource_default_clock(void); extern void clocksource_mark_unstable(struct clocksource *cs); -extern void -clocks_calc_mult_shift(u32 *mult, u32 *shift, u32 from, u32 to, u32 minsec); - -static inline void -clocksource_calc_mult_shift(struct clocksource *cs, u32 freq, u32 minsec) -{ - return clocks_calc_mult_shift(&cs->mult, &cs->shift, freq, - NSEC_PER_SEC, minsec); -} - #ifdef CONFIG_GENERIC_TIME_VSYSCALL extern void update_vsyscall(struct timespec *ts, struct clocksource *c, u32 mult); diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c index 6d7c7fe5396a..bf4fe98bcba8 100644 --- a/kernel/time/clocksource.c +++ b/kernel/time/clocksource.c @@ -107,59 +107,6 @@ u64 timecounter_cyc2time(struct timecounter *tc, } EXPORT_SYMBOL(timecounter_cyc2time); -/** - * clocks_calc_mult_shift - calculate mult/shift factors for scaled math of clocks - * @mult: pointer to mult variable - * @shift: pointer to shift variable - * @from: frequency to convert from - * @to: frequency to convert to - * @minsec: guaranteed runtime conversion range in seconds - * - * The function evaluates the shift/mult pair for the scaled math - * operations of clocksources and clockevents. - * - * @to and @from are frequency values in HZ. For clock sources @to is - * NSEC_PER_SEC == 1GHz and @from is the counter frequency. For clock - * event @to is the counter frequency and @from is NSEC_PER_SEC. - * - * The @minsec conversion range argument controls the time frame in - * seconds which must be covered by the runtime conversion with the - * calculated mult and shift factors. This guarantees that no 64bit - * overflow happens when the input value of the conversion is - * multiplied with the calculated mult factor. Larger ranges may - * reduce the conversion accuracy by chosing smaller mult and shift - * factors. - */ -void -clocks_calc_mult_shift(u32 *mult, u32 *shift, u32 from, u32 to, u32 minsec) -{ - u64 tmp; - u32 sft, sftacc= 32; - - /* - * Calculate the shift factor which is limiting the conversion - * range: - */ - tmp = ((u64)minsec * from) >> 32; - while (tmp) { - tmp >>=1; - sftacc--; - } - - /* - * Find the conversion shift/mult pair which has the best - * accuracy and fits the maxsec conversion range: - */ - for (sft = 32; sft > 0; sft--) { - tmp = (u64) to << sft; - do_div(tmp, from); - if ((tmp >> sftacc) == 0) - break; - } - *mult = tmp; - *shift = sft; -} - /*[Clocksource internal variables]--------- * curr_clocksource: * currently selected clocksource. -- 2.34.1