delay.h (481B)
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 11static 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 20static inline void udelay(unsigned long usec) 21{ 22 __delay(usec_to_cycles(usec)); 23} 24 25#endif /* SELFTEST_KVM_ARM_DELAY_H */