Title: [7339] trunk/arch/blackfin/kernel/time-ts.c: - Common code already has cyc2ns() function.
Revision
7339
Author
adamliyi
Date
2009-09-15 04:55:47 -0400 (Tue, 15 Sep 2009)

Log Message

- Common code already has cyc2ns() function. It is not necessary to define again.
- Set bfin_cs_gptimer0.shift and bfin_cs_cycles.shift to CYC2NS_SCALE_FACTOR (i.e, 10), instead of 22 - for better precision.

Modified Paths

Diff

Modified: trunk/arch/blackfin/kernel/time-ts.c (7338 => 7339)


--- trunk/arch/blackfin/kernel/time-ts.c	2009-09-15 08:39:54 UTC (rev 7338)
+++ trunk/arch/blackfin/kernel/time-ts.c	2009-09-15 08:55:47 UTC (rev 7339)
@@ -46,20 +46,8 @@
 
 #define CYC2NS_SCALE_FACTOR 10 /* 2^10, carefully chosen */
 
-static inline unsigned long cyc2ns_scale(unsigned long cpu_khz)
-{
-	return (1000000 << CYC2NS_SCALE_FACTOR) / cpu_khz;
-}
-
-static inline unsigned long long cycles_2_ns(cycle_t cyc, unsigned long cyc2ns_scale)
-{
-	return (cyc * cyc2ns_scale) >> CYC2NS_SCALE_FACTOR;
-}
-
 #if defined(CONFIG_CYCLES_CLOCKSOURCE)
 
-static unsigned long cycles_cyc2ns_scale;
-
 static notrace cycle_t bfin_read_cycles(struct clocksource *cs)
 {
 	return __bfin_cycles_off + (get_cycles() << __bfin_cycles_mod);
@@ -70,19 +58,17 @@
 	.rating		= 400,
 	.read		= bfin_read_cycles,
 	.mask		= CLOCKSOURCE_MASK(64),
-	.shift		= 22,
+	.shift		= CYC2NS_SCALE_FACTOR,
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
 static inline unsigned long long bfin_cs_cycles_sched_clock(void)
 {
-	return cycles_2_ns(bfin_read_cycles(&bfin_cs_cycles), cycles_cyc2ns_scale);
+	return cyc2ns(&bfin_cs_cycles, bfin_read_cycles(&bfin_cs_cycles));
 }
 
 static int __init bfin_cs_cycles_init(void)
 {
-	cycles_cyc2ns_scale = cyc2ns_scale(get_cclk() / 1000);
-
 	bfin_cs_cycles.mult = \
 		clocksource_hz2mult(get_cclk(), bfin_cs_cycles.shift);
 
@@ -97,8 +83,6 @@
 
 #ifdef CONFIG_GPTMR0_CLOCKSOURCE
 
-unsigned long gptimer0_cyc2ns_scale;
-
 void __init setup_gptimer0(void)
 {
 	disable_gptimers(TIMER0bit);
@@ -121,19 +105,17 @@
 	.rating		= 350,
 	.read		= bfin_read_gptimer0,
 	.mask		= CLOCKSOURCE_MASK(32),
-	.shift		= 22,
+	.shift		= CYC2NS_SCALE_FACTOR,
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
 static inline unsigned long long bfin_cs_gptimer0_sched_clock(void)
 {
-	return cycles_2_ns(bfin_read_TIMER0_COUNTER(), gptimer0_cyc2ns_scale);
+	return cyc2ns(&bfin_cs_gptimer0, bfin_read_TIMER0_COUNTER());
 }
 
 static int __init bfin_cs_gptimer0_init(void)
 {
-	gptimer0_cyc2ns_scale = cyc2ns_scale(get_sclk() / 1000);
-
 	setup_gptimer0();
 
 	bfin_cs_gptimer0.mult = \
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to