mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-16 05:26:07 +00:00
Blackfin: drop per-cpu loops_per_jiffy tracking
On Blackfin SMP, a per-cpu loops_per_jiffy is pointless since both cores always run at the same CCLK. In addition, the current implementation has flaws since the main consumer for loops_per_jiffy (asm/delay.h) uses the global kernel loops_per_jiffy and not the per_cpu one. So punt all of the per-cpu handling and go back to the global shared one. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
c03c2a8734
commit
c70c754ff9
@ -32,7 +32,6 @@ struct blackfin_cpudata {
|
|||||||
struct task_struct *idle;
|
struct task_struct *idle;
|
||||||
unsigned int imemctl;
|
unsigned int imemctl;
|
||||||
unsigned int dmemctl;
|
unsigned int dmemctl;
|
||||||
unsigned long loops_per_jiffy;
|
|
||||||
unsigned long dcache_invld_count;
|
unsigned long dcache_invld_count;
|
||||||
unsigned long icache_invld_count;
|
unsigned long icache_invld_count;
|
||||||
};
|
};
|
||||||
|
@ -168,7 +168,6 @@ void __cpuinit bfin_setup_cpudata(unsigned int cpu)
|
|||||||
struct blackfin_cpudata *cpudata = &per_cpu(cpu_data, cpu);
|
struct blackfin_cpudata *cpudata = &per_cpu(cpu_data, cpu);
|
||||||
|
|
||||||
cpudata->idle = current;
|
cpudata->idle = current;
|
||||||
cpudata->loops_per_jiffy = loops_per_jiffy;
|
|
||||||
cpudata->imemctl = bfin_read_IMEM_CONTROL();
|
cpudata->imemctl = bfin_read_IMEM_CONTROL();
|
||||||
cpudata->dmemctl = bfin_read_DMEM_CONTROL();
|
cpudata->dmemctl = bfin_read_DMEM_CONTROL();
|
||||||
}
|
}
|
||||||
@ -1159,9 +1158,9 @@ static int show_cpuinfo(struct seq_file *m, void *v)
|
|||||||
sclk/1000000, sclk%1000000);
|
sclk/1000000, sclk%1000000);
|
||||||
seq_printf(m, "bogomips\t: %lu.%02lu\n"
|
seq_printf(m, "bogomips\t: %lu.%02lu\n"
|
||||||
"Calibration\t: %lu loops\n",
|
"Calibration\t: %lu loops\n",
|
||||||
(cpudata->loops_per_jiffy * HZ) / 500000,
|
(loops_per_jiffy * HZ) / 500000,
|
||||||
((cpudata->loops_per_jiffy * HZ) / 5000) % 100,
|
((loops_per_jiffy * HZ) / 5000) % 100,
|
||||||
(cpudata->loops_per_jiffy * HZ));
|
(loops_per_jiffy * HZ));
|
||||||
|
|
||||||
/* Check Cache configutation */
|
/* Check Cache configutation */
|
||||||
switch (cpudata->dmemctl & (1 << DMC0_P | 1 << DMC1_P)) {
|
switch (cpudata->dmemctl & (1 << DMC0_P | 1 << DMC1_P)) {
|
||||||
|
@ -450,7 +450,7 @@ void __init smp_cpus_done(unsigned int max_cpus)
|
|||||||
unsigned int cpu;
|
unsigned int cpu;
|
||||||
|
|
||||||
for_each_online_cpu(cpu)
|
for_each_online_cpu(cpu)
|
||||||
bogosum += per_cpu(cpu_data, cpu).loops_per_jiffy;
|
bogosum += loops_per_jiffy;
|
||||||
|
|
||||||
printk(KERN_INFO "SMP: Total of %d processors activated "
|
printk(KERN_INFO "SMP: Total of %d processors activated "
|
||||||
"(%lu.%02lu BogoMIPS).\n",
|
"(%lu.%02lu BogoMIPS).\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user