diff options
author | Mike Frysinger <vapier.adi@gmail.com> | 2008-04-24 05:07:29 +0800 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2008-04-24 05:07:29 +0800 |
commit | 764cb81cdc0620711d2cef5d06e9ef03c9d84184 (patch) | |
tree | 2a42b808807ed8690bb7b106b428744349ed54ce | |
parent | 8cab0288c6376b9c00155b0802cbe84118d1ba89 (diff) | |
download | linux-764cb81cdc0620711d2cef5d06e9ef03c9d84184.tar.bz2 |
[Blackfin] arch: actually implement get_cycles function
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
-rw-r--r-- | arch/blackfin/kernel/time-ts.c | 5 | ||||
-rw-r--r-- | include/asm-blackfin/timex.h | 17 |
2 files changed, 13 insertions, 9 deletions
diff --git a/arch/blackfin/kernel/time-ts.c b/arch/blackfin/kernel/time-ts.c index 3aad6d710726..1ce8cb1e4982 100644 --- a/arch/blackfin/kernel/time-ts.c +++ b/arch/blackfin/kernel/time-ts.c @@ -12,6 +12,7 @@ #include <linux/profile.h> #include <linux/interrupt.h> #include <linux/time.h> +#include <linux/timex.h> #include <linux/irq.h> #include <linux/clocksource.h> #include <linux/clockchips.h> @@ -35,9 +36,7 @@ static inline unsigned long long cycles_2_ns(cycle_t cyc) static cycle_t read_cycles(void) { - unsigned long tmp, tmp2; - asm("%0 = cycles; %1 = cycles2;" : "=d"(tmp), "=d"(tmp2)); - return tmp | ((cycle_t)tmp2 << 32); + return get_cycles(); } unsigned long long sched_clock(void) diff --git a/include/asm-blackfin/timex.h b/include/asm-blackfin/timex.h index 828590117f51..22b0806161bb 100644 --- a/include/asm-blackfin/timex.h +++ b/include/asm-blackfin/timex.h @@ -1,18 +1,23 @@ -/* blackfin architecture timex specifications: Lineo Inc. 2001 +/* + * asm-blackfin/timex.h: cpu cycles! * - * Based on: include/asm-m68knommu/timex.h + * Copyright 2004-2008 Analog Devices Inc. + * + * Licensed under the GPL-2 or later. */ -#ifndef _ASMBLACKFIN_TIMEX_H -#define _ASMBLACKFIN_TIMEX_H +#ifndef _ASM_BLACKFIN_TIMEX_H +#define _ASM_BLACKFIN_TIMEX_H #define CLOCK_TICK_RATE 1000000 /* Underlying HZ */ -typedef unsigned long cycles_t; +typedef unsigned long long cycles_t; static inline cycles_t get_cycles(void) { - return 0; + unsigned long tmp, tmp2; + __asm__("%0 = cycles; %1 = cycles2;" : "=d"(tmp), "=d"(tmp2)); + return tmp | ((cycles_t)tmp2 << 32); } #endif |