diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-15 16:58:50 -0500 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-05 06:16:00 -0500 |
| commit | 0af85dda39d9b673aca8c0ebae004ea70f3efc93 (patch) | |
| tree | a3fad536f3c5cb4e91291efeb26eca93c2f37fd2 | |
| parent | 1da0c89c66753860ccfe81eb327c25db46c2a24a (diff) | |
ARM: vexpress: add sched_clock() for Versatile Express
Add a sched_clock() implementation to Versatile Express using the new
sched_clock() infrastructure for extending 32bit counters to full
64-bit nanoseconds.
Tested-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| -rw-r--r-- | arch/arm/Kconfig | 1 | ||||
| -rw-r--r-- | arch/arm/mach-vexpress/v2m.c | 4 | ||||
| -rw-r--r-- | arch/arm/plat-versatile/Makefile | 5 |
3 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 34311f40d713..17b5ff0db1dc 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -268,6 +268,7 @@ config ARCH_VEXPRESS | |||
| 268 | select COMMON_CLKDEV | 268 | select COMMON_CLKDEV |
| 269 | select GENERIC_CLOCKEVENTS | 269 | select GENERIC_CLOCKEVENTS |
| 270 | select HAVE_CLK | 270 | select HAVE_CLK |
| 271 | select HAVE_SCHED_CLOCK | ||
| 271 | select ICST | 272 | select ICST |
| 272 | select PLAT_VERSATILE | 273 | select PLAT_VERSATILE |
| 273 | help | 274 | help |
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index 7eaa232180a5..8c283100a9a0 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c | |||
| @@ -22,6 +22,8 @@ | |||
| 22 | #include <mach/clkdev.h> | 22 | #include <mach/clkdev.h> |
| 23 | #include <mach/motherboard.h> | 23 | #include <mach/motherboard.h> |
| 24 | 24 | ||
| 25 | #include <plat/sched_clock.h> | ||
| 26 | |||
| 25 | #include <plat/timer-sp.h> | 27 | #include <plat/timer-sp.h> |
| 26 | 28 | ||
| 27 | #include "core.h" | 29 | #include "core.h" |
| @@ -50,6 +52,8 @@ void __init v2m_map_io(struct map_desc *tile, size_t num) | |||
| 50 | 52 | ||
| 51 | static void __init v2m_timer_init(void) | 53 | static void __init v2m_timer_init(void) |
| 52 | { | 54 | { |
| 55 | versatile_sched_clock_init(MMIO_P2V(V2M_SYS_24MHZ), 24000000); | ||
| 56 | |||
| 53 | writel(0, MMIO_P2V(V2M_TIMER0) + TIMER_CTRL); | 57 | writel(0, MMIO_P2V(V2M_TIMER0) + TIMER_CTRL); |
| 54 | writel(0, MMIO_P2V(V2M_TIMER1) + TIMER_CTRL); | 58 | writel(0, MMIO_P2V(V2M_TIMER1) + TIMER_CTRL); |
| 55 | 59 | ||
diff --git a/arch/arm/plat-versatile/Makefile b/arch/arm/plat-versatile/Makefile index 5cf88e8427b1..8bb6ba6d3572 100644 --- a/arch/arm/plat-versatile/Makefile +++ b/arch/arm/plat-versatile/Makefile | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | obj-y := clock.o | 1 | obj-y := clock.o |
| 2 | obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o | 2 | obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o |
| 3 | obj-$(CONFIG_ARCH_REALVIEW) += sched-clock.o | 3 | ifneq ($(CONFIG_ARCH_INTEGRATOR),y) |
| 4 | obj-$(CONFIG_ARCH_VERSATILE) += sched-clock.o | 4 | obj-y += sched-clock.o |
| 5 | endif | ||
| 5 | ifeq ($(CONFIG_LEDS_CLASS),y) | 6 | ifeq ($(CONFIG_LEDS_CLASS),y) |
| 6 | obj-$(CONFIG_ARCH_REALVIEW) += leds.o | 7 | obj-$(CONFIG_ARCH_REALVIEW) += leds.o |
| 7 | obj-$(CONFIG_ARCH_VERSATILE) += leds.o | 8 | obj-$(CONFIG_ARCH_VERSATILE) += leds.o |
