1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * ARM simple delay routines 4 */ 5 6 #ifndef SELFTEST_KVM_ARM_DELAY_H 7 #define SELFTEST_KVM_ARM_DELAY_H 8 9 #include "arch_timer.h" 10 11 static inline void __delay(uint64_t cycles) 12 { 13 enum arch_timer timer = VIRTUAL; 14 uint64_t start = timer_get_cntct(timer); 15 16 while ((timer_get_cntct(timer) - start) < cycles) 17 cpu_relax(); 18 } 19 20 static inline void udelay(unsigned long usec) 21 { 22 __delay(usec_to_cycles(usec)); 23 } 24 25 #endif /* SELFTEST_KVM_ARM_DELAY_H */ 26