diff options
Diffstat (limited to 'arch/arc/kernel/setup.c')
| -rw-r--r-- | arch/arc/kernel/setup.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c index 3093fa898a23..fa62404ba58f 100644 --- a/arch/arc/kernel/setup.c +++ b/arch/arc/kernel/setup.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <linux/fs.h> | 10 | #include <linux/fs.h> |
| 11 | #include <linux/delay.h> | 11 | #include <linux/delay.h> |
| 12 | #include <linux/root_dev.h> | 12 | #include <linux/root_dev.h> |
| 13 | #include <linux/clk.h> | ||
| 13 | #include <linux/clk-provider.h> | 14 | #include <linux/clk-provider.h> |
| 14 | #include <linux/clocksource.h> | 15 | #include <linux/clocksource.h> |
| 15 | #include <linux/console.h> | 16 | #include <linux/console.h> |
| @@ -488,8 +489,9 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
| 488 | { | 489 | { |
| 489 | char *str; | 490 | char *str; |
| 490 | int cpu_id = ptr_to_cpu(v); | 491 | int cpu_id = ptr_to_cpu(v); |
| 491 | struct device_node *core_clk = of_find_node_by_name(NULL, "core_clk"); | 492 | struct device *cpu_dev = get_cpu_device(cpu_id); |
| 492 | u32 freq = 0; | 493 | struct clk *cpu_clk; |
| 494 | unsigned long freq = 0; | ||
| 493 | 495 | ||
| 494 | if (!cpu_online(cpu_id)) { | 496 | if (!cpu_online(cpu_id)) { |
| 495 | seq_printf(m, "processor [%d]\t: Offline\n", cpu_id); | 497 | seq_printf(m, "processor [%d]\t: Offline\n", cpu_id); |
| @@ -502,9 +504,15 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
| 502 | 504 | ||
| 503 | seq_printf(m, arc_cpu_mumbojumbo(cpu_id, str, PAGE_SIZE)); | 505 | seq_printf(m, arc_cpu_mumbojumbo(cpu_id, str, PAGE_SIZE)); |
| 504 | 506 | ||
| 505 | of_property_read_u32(core_clk, "clock-frequency", &freq); | 507 | cpu_clk = clk_get(cpu_dev, NULL); |
| 508 | if (IS_ERR(cpu_clk)) { | ||
| 509 | seq_printf(m, "CPU speed \t: Cannot get clock for processor [%d]\n", | ||
| 510 | cpu_id); | ||
| 511 | } else { | ||
| 512 | freq = clk_get_rate(cpu_clk); | ||
| 513 | } | ||
| 506 | if (freq) | 514 | if (freq) |
| 507 | seq_printf(m, "CPU speed\t: %u.%02u Mhz\n", | 515 | seq_printf(m, "CPU speed\t: %lu.%02lu Mhz\n", |
| 508 | freq / 1000000, (freq / 10000) % 100); | 516 | freq / 1000000, (freq / 10000) % 100); |
| 509 | 517 | ||
| 510 | seq_printf(m, "Bogo MIPS\t: %lu.%02lu\n", | 518 | seq_printf(m, "Bogo MIPS\t: %lu.%02lu\n", |
