From 6034ee94a2f286294eac990af878869d8610f3eb Mon Sep 17 00:00:00 2001 From: milek7 Date: Mon, 11 Mar 2024 20:58:27 +0100 Subject: [PATCH] arm64: Use WFI for idling Change-Id: I00f17c1db7c032879da59d17c67c13c24e0b9ef8 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7519 Reviewed-by: Fredrik Holmqvist Tested-by: Commit checker robot Reviewed-by: David Karoly --- headers/private/kernel/arch/arm64/arch_cpu.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/headers/private/kernel/arch/arm64/arch_cpu.h b/headers/private/kernel/arch/arm64/arch_cpu.h index 3d661901a8..302489f43a 100644 --- a/headers/private/kernel/arch/arm64/arch_cpu.h +++ b/headers/private/kernel/arch/arm64/arch_cpu.h @@ -25,6 +25,7 @@ #define arm64_dmb() __asm__ __volatile__("dmb" : : : "memory") #define arm64_isb() __asm__ __volatile__("isb" : : : "memory") #define arm64_nop() __asm__ __volatile__("nop" : : : "memory") +#define arm64_wfi() __asm__ __volatile__("wfi" : : : "memory") #define arm64_yield() __asm__ __volatile__("yield" : : : "memory") /* Extract CPU affinity levels 0-3 */ @@ -170,7 +171,7 @@ static inline void arch_cpu_pause(void) static inline void arch_cpu_idle(void) { - arm64_yield(); + arm64_wfi(); }