#include <asm/barrier.h>
 #include <asm/errno.h>
+#include <asm/hwcap.h>
 #include <linux/clocksource.h>
 #include <linux/init.h>
 #include <linux/types.h>
        isb();
 }
 
+static inline void arch_timer_set_evtstrm_feature(void)
+{
+       elf_hwcap |= HWCAP_EVTSTRM;
+}
+
+static inline bool arch_timer_have_evtstrm_feature(void)
+{
+       return elf_hwcap & HWCAP_EVTSTRM;
+}
 #endif
 
 #endif
 
 #define __ASM_ARCH_TIMER_H
 
 #include <asm/barrier.h>
+#include <asm/hwcap.h>
 #include <asm/sysreg.h>
 
 #include <linux/bug.h>
        return 0;
 }
 
+static inline void arch_timer_set_evtstrm_feature(void)
+{
+       cpu_set_named_feature(EVTSTRM);
+#ifdef CONFIG_COMPAT
+       compat_elf_hwcap |= COMPAT_HWCAP_EVTSTRM;
+#endif
+}
+
+static inline bool arch_timer_have_evtstrm_feature(void)
+{
+       return cpu_have_named_feature(EVTSTRM);
+}
 #endif
 
        cntkctl |= (divider << ARCH_TIMER_EVT_TRIGGER_SHIFT)
                        | ARCH_TIMER_VIRT_EVT_EN;
        arch_timer_set_cntkctl(cntkctl);
-#ifdef CONFIG_ARM64
-       cpu_set_named_feature(EVTSTRM);
-#else
-       elf_hwcap |= HWCAP_EVTSTRM;
-#endif
-#ifdef CONFIG_COMPAT
-       compat_elf_hwcap |= COMPAT_HWCAP_EVTSTRM;
-#endif
+       arch_timer_set_evtstrm_feature();
        cpumask_set_cpu(smp_processor_id(), &evtstrm_available);
 }
 
        } else if (action == CPU_PM_ENTER_FAILED || action == CPU_PM_EXIT) {
                arch_timer_set_cntkctl(__this_cpu_read(saved_cntkctl));
 
-#ifdef CONFIG_ARM64
-               if (cpu_have_named_feature(EVTSTRM))
-#else
-               if (elf_hwcap & HWCAP_EVTSTRM)
-#endif
+               if (arch_timer_have_evtstrm_feature())
                        cpumask_set_cpu(smp_processor_id(), &evtstrm_available);
        }
        return NOTIFY_OK;