提交 8102f47a 编写于 作者: B Baruch Siach 提交者: Chris Zankel

xtensa: consolidate ccount access routines

Use get_ccount everywhere; remove xtensa_get_ccount.
Signed-off-by: NBaruch Siach <baruch@tkos.co.il>
Signed-off-by: NChris Zankel <chris@zankel.net>
上级 e504c4b6
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#ifndef _XTENSA_DELAY_H #ifndef _XTENSA_DELAY_H
#define _XTENSA_DELAY_H #define _XTENSA_DELAY_H
#include <asm/processor.h> #include <asm/timex.h>
#include <asm/param.h> #include <asm/param.h>
extern unsigned long loops_per_jiffy; extern unsigned long loops_per_jiffy;
...@@ -24,24 +24,17 @@ static inline void __delay(unsigned long loops) ...@@ -24,24 +24,17 @@ static inline void __delay(unsigned long loops)
: "=r" (loops) : "0" (loops)); : "=r" (loops) : "0" (loops));
} }
static __inline__ u32 xtensa_get_ccount(void)
{
u32 ccount;
asm volatile ("rsr %0, ccount\n" : "=r" (ccount));
return ccount;
}
/* For SMP/NUMA systems, change boot_cpu_data to something like /* For SMP/NUMA systems, change boot_cpu_data to something like
* local_cpu_data->... where local_cpu_data points to the current * local_cpu_data->... where local_cpu_data points to the current
* cpu. */ * cpu. */
static __inline__ void udelay (unsigned long usecs) static __inline__ void udelay (unsigned long usecs)
{ {
unsigned long start = xtensa_get_ccount(); unsigned long start = get_ccount();
unsigned long cycles = usecs * (loops_per_jiffy / (1000000UL / HZ)); unsigned long cycles = usecs * (loops_per_jiffy / (1000000UL / HZ));
/* Note: all variables are unsigned (can wrap around)! */ /* Note: all variables are unsigned (can wrap around)! */
while (((unsigned long)xtensa_get_ccount()) - start < cycles) while (((unsigned long)get_ccount()) - start < cycles)
; ;
} }
......
#include <asm/delay.h>
#include <asm/timex.h> #include <asm/timex.h>
#include <asm/io.h> #include <asm/io.h>
#include <variant/hardware.h> #include <variant/hardware.h>
...@@ -17,7 +16,7 @@ void platform_calibrate_ccount(void) ...@@ -17,7 +16,7 @@ void platform_calibrate_ccount(void)
"1: l32i %0, %2, 0 ;" "1: l32i %0, %2, 0 ;"
" beq %0, %1, 1b ;" " beq %0, %1, 1b ;"
: "=&a"(u) : "a"(t), "a"(tstamp)); : "=&a"(u) : "a"(t), "a"(tstamp));
b = xtensa_get_ccount(); b = get_ccount();
if (i == LOOPS) if (i == LOOPS)
a = b; a = b;
} while (--i >= 0); } while (--i >= 0);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册