Skip to content

Commit

Permalink
MIPS: jz4740: Implement read_sched_clock
Browse files Browse the repository at this point in the history
Use jz4740 timer counter 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/9485/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Deng-Cheng Zhu authored and Ralf Baechle committed Apr 1, 2015
1 parent a6071af commit 944081a
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions arch/mips/jz4740/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#include <linux/time.h>

#include <linux/clockchips.h>
#include <linux/sched_clock.h>

#include <asm/mach-jz4740/irq.h>
#include <asm/mach-jz4740/timer.h>
Expand All @@ -43,6 +44,11 @@ static struct clocksource jz4740_clocksource = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};

static u64 notrace jz4740_read_sched_clock(void)
{
return jz4740_timer_get_count(TIMER_CLOCKSOURCE);
}

static irqreturn_t jz4740_clockevent_irq(int irq, void *devid)
{
struct clock_event_device *cd = devid;
Expand Down Expand Up @@ -126,6 +132,8 @@ void __init plat_time_init(void)
if (ret)
printk(KERN_ERR "Failed to register clocksource: %d\n", ret);

sched_clock_register(jz4740_read_sched_clock, 16, clk_rate);

setup_irq(JZ4740_IRQ_TCU0, &timer_irqaction);

ctrl = JZ_TIMER_CTRL_PRESCALE_16 | JZ_TIMER_CTRL_SRC_EXT;
Expand Down

0 comments on commit 944081a

Please sign in to comment.