|
@@ -299,6 +299,21 @@ static void __arch_timer_setup(unsigned type,
|
|
|
clockevents_config_and_register(clk, arch_timer_rate, 0xf, 0x7fffffff);
|
|
|
}
|
|
|
|
|
|
+static void arch_timer_evtstrm_enable(int divider)
|
|
|
+{
|
|
|
+ u32 cntkctl = arch_timer_get_cntkctl();
|
|
|
+
|
|
|
+ cntkctl &= ~ARCH_TIMER_EVT_TRIGGER_MASK;
|
|
|
+ /* Set the divider and enable virtual event stream */
|
|
|
+ cntkctl |= (divider << ARCH_TIMER_EVT_TRIGGER_SHIFT)
|
|
|
+ | ARCH_TIMER_VIRT_EVT_EN;
|
|
|
+ arch_timer_set_cntkctl(cntkctl);
|
|
|
+ elf_hwcap |= HWCAP_EVTSTRM;
|
|
|
+#ifdef CONFIG_COMPAT
|
|
|
+ compat_elf_hwcap |= COMPAT_HWCAP_EVTSTRM;
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
static void arch_timer_configure_evtstream(void)
|
|
|
{
|
|
|
int evt_stream_div, pos;
|