From 8266891e252f35dcb189c3f2371cfa588f8a8818 Mon Sep 17 00:00:00 2001 From: Marc Zyngier Date: Thu, 10 Jan 2013 11:13:07 +0000 Subject: [PATCH] ARM: arch_timers: switch to physical timers if HYP mode is available If we're booted in HYP mode, it is possible that we'll run some kind of virtualized environment. In this case, it is a better to switch to the physical timers, and leave the virtual timers to guests. Signed-off-by: Marc Zyngier Signed-off-by: Mark Rutland Acked-by: Catalin Marinas --- drivers/clocksource/arm_arch_timer.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c index ec30a7331587..d7ad425ab9b3 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c @@ -19,6 +19,7 @@ #include #include +#include #include @@ -364,10 +365,14 @@ int __init arch_timer_init(void) of_node_put(np); /* + * If HYP mode is available, we know that the physical timer + * has been configured to be accessible from PL1. Use it, so + * that a guest can use the virtual timer instead. + * * If no interrupt provided for virtual timer, we'll have to * stick to the physical timer. It'd better be accessible... */ - if (!arch_timer_ppi[VIRT_PPI]) { + if (is_hyp_mode_available() || !arch_timer_ppi[VIRT_PPI]) { arch_timer_use_virtual = false; if (!arch_timer_ppi[PHYS_SECURE_PPI] || -- 2.20.1