MIPS: csrc-r4k: Implement read_sched_clock

Use c0 count register for sched_clock source. This implementation will give
high resolution cputime accounting.

Signed-off-by: Deng-Cheng Zhu <dengcheng.zhu@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: macro@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9478/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Deng-Cheng Zhu 2015-03-07 10:30:24 -08:00 committed by Ralf Baechle
parent 929de4cc97
commit e9cef549c3
1 changed files with 8 additions and 0 deletions

View File

@ -7,6 +7,7 @@
*/ */
#include <linux/clocksource.h> #include <linux/clocksource.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sched_clock.h>
#include <asm/time.h> #include <asm/time.h>
@ -22,6 +23,11 @@ static struct clocksource clocksource_mips = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS, .flags = CLOCK_SOURCE_IS_CONTINUOUS,
}; };
static u64 notrace r4k_read_sched_clock(void)
{
return read_c0_count();
}
int __init init_r4k_clocksource(void) int __init init_r4k_clocksource(void)
{ {
if (!cpu_has_counter || !mips_hpt_frequency) if (!cpu_has_counter || !mips_hpt_frequency)
@ -32,5 +38,7 @@ int __init init_r4k_clocksource(void)
clocksource_register_hz(&clocksource_mips, mips_hpt_frequency); clocksource_register_hz(&clocksource_mips, mips_hpt_frequency);
sched_clock_register(r4k_read_sched_clock, 32, mips_hpt_frequency);
return 0; return 0;
} }