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>
This commit is contained in:
parent
0458060c1c
commit
374e99d450
|
@ -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
|
||||||
|
|
|
@ -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;
|
unsigned int *fp;
|
||||||
struct div_result divres;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 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;
|
ppc_tb_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;
|
|
||||||
|
|
||||||
fp = (unsigned int *)get_property(cpu, "clock-frequency", NULL);
|
fp = (unsigned int *)get_property(cpu, "clock-frequency", NULL);
|
||||||
if (fp == 0)
|
if (fp == 0)
|
||||||
|
|
Loading…
Reference in New Issue