[PATCH] powerpc: Show current speed in /proc/cpuinfo
Olof Johansson
olof at lixom.net
Fri Apr 27 18:41:18 EST 2007
On other architectures, the frequency in /proc/cpuinfo moves with cpufreq
changes. It makes sense to do the same on powerpc to keep users from
getting confused. Fall back to old ppc_proc_freq for non-cpufreq systems.
Also change the format to three decimals, having full Hz granularity is
silly these days.
Signed-off-by: Olof Johansson <olof at lixom.net>
Index: powerpc/arch/powerpc/kernel/setup-common.c
===================================================================
--- powerpc.orig/arch/powerpc/kernel/setup-common.c
+++ powerpc/arch/powerpc/kernel/setup-common.c
@@ -29,6 +29,7 @@
#include <linux/root_dev.h>
#include <linux/notifier.h>
#include <linux/cpu.h>
+#include <linux/cpufreq.h>
#include <linux/unistd.h>
#include <linux/serial.h>
#include <linux/serial_8250.h>
@@ -160,6 +161,7 @@ static int show_cpuinfo(struct seq_file
unsigned int pvr;
unsigned short maj;
unsigned short min;
+ unsigned int freq;
if (cpu_id == NR_CPUS) {
#if defined(CONFIG_SMP) && defined(CONFIG_PPC32)
@@ -226,13 +228,15 @@ static int show_cpuinfo(struct seq_file
}
#endif /* CONFIG_TAU */
- /*
- * Assume here that all clock rates are the same in a
- * smp system. -- Cort
- */
- if (ppc_proc_freq)
- seq_printf(m, "clock\t\t: %lu.%06luMHz\n",
- ppc_proc_freq / 1000000, ppc_proc_freq % 1000000);
+ /* cpufreq_speed_get() is in kHz */
+ freq = cpufreq_quick_get(cpu_id);
+
+ if (!freq)
+ /* ppc_proc_freq is in Hz */
+ freq = ppc_proc_freq / 1000;
+
+ if (freq)
+ seq_printf(m, "clock\t\t: %u.%03uMHz\n", freq / 1000, freq % 1000);
if (ppc_md.show_percpuinfo != NULL)
ppc_md.show_percpuinfo(m, cpu_id);
More information about the Linuxppc-dev
mailing list