浏览代码

powerpc: Move some calculations from xxx_calibrate_decr to time_init

Previously the individual xxx_calibrate_decr functions would each
print the timebase and cpu frequency and calculate several values
such as tb_to_us and tb_to_xs.  This moves those printks and
calculations into time_init just after the call to the platform's
calibrate_decr function.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Paul Mackerras 19 年之前
父节点
当前提交
374e99d450
共有 2 个文件被更改,包括 14 次插入27 次删除
  1. 12 15
      arch/powerpc/kernel/time.c
  2. 2 12
      arch/ppc64/kernel/pmac_time.c

+ 12 - 15
arch/powerpc/kernel/time.c

@@ -548,11 +548,9 @@ int do_settimeofday(struct timespec *tv)
 
 
 EXPORT_SYMBOL(do_settimeofday);
 EXPORT_SYMBOL(do_settimeofday);
 
 
-#if defined(CONFIG_PPC_PSERIES) || defined(CONFIG_PPC_MAPLE) || defined(CONFIG_PPC_BPA) || defined(CONFIG_PPC_ISERIES)
 void __init generic_calibrate_decr(void)
 void __init generic_calibrate_decr(void)
 {
 {
 	struct device_node *cpu;
 	struct device_node *cpu;
-	struct div_result divres;
 	unsigned int *fp;
 	unsigned int *fp;
 	int node_found;
 	int node_found;
 
 
@@ -591,20 +589,7 @@ void __init generic_calibrate_decr(void)
 				"(not found)\n");
 				"(not found)\n");
 
 
 	of_node_put(cpu);
 	of_node_put(cpu);
-
-	printk(KERN_INFO "time_init: decrementer frequency = %lu.%.6lu MHz\n",
-	       ppc_tb_freq/1000000, ppc_tb_freq%1000000);
-	printk(KERN_INFO "time_init: processor frequency   = %lu.%.6lu MHz\n",
-	       ppc_proc_freq/1000000, ppc_proc_freq%1000000);
-
-	tb_ticks_per_jiffy = ppc_tb_freq / HZ;
-	tb_ticks_per_sec = tb_ticks_per_jiffy * HZ;
-	tb_ticks_per_usec = ppc_tb_freq / 1000000;
-	tb_to_us = mulhwu_scale_factor(ppc_tb_freq, 1000000);
-	div128_by_32(1024*1024, 0, tb_ticks_per_sec, &divres);
-	tb_to_xs = divres.result_low;
 }
 }
-#endif
 
 
 unsigned long get_boot_time(void)
 unsigned long get_boot_time(void)
 {
 {
@@ -633,6 +618,18 @@ void __init time_init(void)
 
 
 	ppc_md.calibrate_decr();
 	ppc_md.calibrate_decr();
 
 
+	printk(KERN_INFO "time_init: decrementer frequency = %lu.%.6lu MHz\n",
+	       ppc_tb_freq / 1000000, ppc_tb_freq % 1000000);
+	printk(KERN_INFO "time_init: processor frequency   = %lu.%.6lu MHz\n",
+	       ppc_proc_freq / 1000000, ppc_proc_freq % 1000000);
+
+	tb_ticks_per_jiffy = ppc_tb_freq / HZ;
+	tb_ticks_per_sec = tb_ticks_per_jiffy * HZ;
+	tb_ticks_per_usec = ppc_tb_freq / 1000000;
+	tb_to_us = mulhwu_scale_factor(ppc_tb_freq, 1000000);
+	div128_by_32(1024*1024, 0, tb_ticks_per_sec, &res);
+	tb_to_xs = res.result_low;
+
 #ifdef CONFIG_PPC64
 #ifdef CONFIG_PPC64
 	get_paca()->default_decr = tb_ticks_per_jiffy;
 	get_paca()->default_decr = tb_ticks_per_jiffy;
 #endif
 #endif

+ 2 - 12
arch/ppc64/kernel/pmac_time.c

@@ -152,8 +152,7 @@ unsigned long __init pmac_get_boot_time(void)
 void __init pmac_calibrate_decr(void)
 void __init pmac_calibrate_decr(void)
 {
 {
 	struct device_node *cpu;
 	struct device_node *cpu;
-	unsigned int freq, *fp;
-	struct div_result divres;
+	unsigned int *fp;
 
 
 	/*
 	/*
 	 * The cpu node should have a timebase-frequency property
 	 * The cpu node should have a timebase-frequency property
@@ -165,16 +164,7 @@ void __init pmac_calibrate_decr(void)
 	fp = (unsigned int *) get_property(cpu, "timebase-frequency", NULL);
 	fp = (unsigned int *) get_property(cpu, "timebase-frequency", NULL);
 	if (fp == 0)
 	if (fp == 0)
 		panic("can't get cpu timebase frequency");
 		panic("can't get cpu timebase frequency");
-	freq = *fp;
-	printk("time_init: decrementer frequency = %u.%.6u MHz\n",
-	       freq/1000000, freq%1000000);
-	tb_ticks_per_jiffy = freq / HZ;
-	tb_ticks_per_sec = tb_ticks_per_jiffy * HZ;
-	tb_ticks_per_usec = freq / 1000000;
-	tb_to_us = mulhwu_scale_factor(freq, 1000000);
-	div128_by_32( 1024*1024, 0, tb_ticks_per_sec, &divres );
-	tb_to_xs = divres.result_low;
-	ppc_tb_freq = freq;
+	ppc_tb_freq = *fp;
 
 
 	fp = (unsigned int *)get_property(cpu, "clock-frequency", NULL);
 	fp = (unsigned int *)get_property(cpu, "clock-frequency", NULL);
 	if (fp == 0)
 	if (fp == 0)