From: Jan Glauber Date: Sun, 30 Oct 2011 14:17:04 +0000 (+0100) Subject: [S390] Introduce get_clock_fast() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=80376f347d70ce5fcfb98105d83624518e0911d6;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [S390] Introduce get_clock_fast() Add get_clock_fast() which uses the slightly faster stckf if available. If stckf is not available fall back to stck, which has the same width. Signed-off-by: Jan Glauber Signed-off-by: Martin Schwidefsky --- diff --git a/arch/s390/include/asm/timex.h b/arch/s390/include/asm/timex.h index 88829a40af6f..d610bef9c5e9 100644 --- a/arch/s390/include/asm/timex.h +++ b/arch/s390/include/asm/timex.h @@ -86,6 +86,17 @@ static inline void get_clock_ext(char *clk) asm volatile("stcke %0" : "=Q" (*clk) : : "cc"); } +static inline unsigned long long get_clock_fast(void) +{ + unsigned long long clk; + + if (test_facility(25)) + asm volatile(".insn s,0xb27c0000,%0" : "=Q" (clk) : : "cc"); + else + clk = get_clock(); + return clk; +} + static inline unsigned long long get_clock_xt(void) { unsigned char clk[16];