aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-powerpc/time.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-powerpc/time.h')
-rw-r--r--include/asm-powerpc/time.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/include/asm-powerpc/time.h b/include/asm-powerpc/time.h
index 99bfe3281768..410e795f7d43 100644
--- a/include/asm-powerpc/time.h
+++ b/include/asm-powerpc/time.h
@@ -30,7 +30,8 @@ extern unsigned long tb_ticks_per_usec;
30extern unsigned long tb_ticks_per_sec; 30extern unsigned long tb_ticks_per_sec;
31extern u64 tb_to_xs; 31extern u64 tb_to_xs;
32extern unsigned tb_to_us; 32extern unsigned tb_to_us;
33extern u64 tb_last_stamp; 33extern unsigned long tb_last_stamp;
34extern u64 tb_last_jiffy;
34 35
35DECLARE_PER_CPU(unsigned long, last_jiffy); 36DECLARE_PER_CPU(unsigned long, last_jiffy);
36 37
@@ -113,6 +114,17 @@ static inline unsigned int get_rtcl(void)
113 return rtcl; 114 return rtcl;
114} 115}
115 116
117static inline u64 get_rtc(void)
118{
119 unsigned int hi, lo, hi2;
120
121 do {
122 asm volatile("mfrtcu %0; mfrtcl %1; mfrtcu %2"
123 : "=r" (hi), "=r" (lo), "=r" (hi2));
124 } while (hi2 != hi);
125 return (u64)hi * 1000000000 + lo;
126}
127
116#ifdef CONFIG_PPC64 128#ifdef CONFIG_PPC64
117static inline u64 get_tb(void) 129static inline u64 get_tb(void)
118{ 130{