Browse Source

xtensa: ccount based sched_clock

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Chris Zankel <chris@zankel.net>
Baruch Siach 12 years ago
parent
commit
e3f432919f
2 changed files with 9 additions and 0 deletions
  1. 1 0
      arch/xtensa/Kconfig
  2. 8 0
      arch/xtensa/kernel/time.c

+ 1 - 0
arch/xtensa/Kconfig

@@ -11,6 +11,7 @@ config XTENSA
 	select VIRT_TO_BUS
 	select GENERIC_IRQ_SHOW
 	select GENERIC_CPU_DEVICES
+	select GENERIC_SCHED_CLOCK
 	select MODULES_USE_ELF_RELA
 	select GENERIC_PCI_IOMAP
 	select ARCH_WANT_IPC_PARSE_VERSION

+ 8 - 0
arch/xtensa/kernel/time.c

@@ -24,6 +24,7 @@
 #include <linux/profile.h>
 #include <linux/delay.h>
 #include <linux/irqdomain.h>
+#include <linux/sched_clock.h>
 
 #include <asm/timex.h>
 #include <asm/platform.h>
@@ -37,6 +38,11 @@ static cycle_t ccount_read(struct clocksource *cs)
 	return (cycle_t)get_ccount();
 }
 
+static u32 notrace ccount_sched_clock_read(void)
+{
+	return get_ccount();
+}
+
 static struct clocksource ccount_clocksource = {
 	.name = "ccount",
 	.rating = 200,
@@ -134,6 +140,8 @@ void __init time_init(void)
 			0xffffffff);
 	setup_irq(ccount_timer.evt.irq, &timer_irqaction);
 	ccount_timer.irq_enabled = 1;
+
+	setup_sched_clock(ccount_sched_clock_read, 32, ccount_freq);
 }
 
 /*