xref: /openbmc/linux/arch/um/include/asm/delay.h (revision 03ab8e6297acd1bc0eedaa050e2a1635c576fd11)
10bc8fb4dSJohannes Berg /* SPDX-License-Identifier: GPL-2.0 */
20bc8fb4dSJohannes Berg #ifndef __UM_DELAY_H
30bc8fb4dSJohannes Berg #define __UM_DELAY_H
40bc8fb4dSJohannes Berg #include <asm-generic/delay.h>
50bc8fb4dSJohannes Berg #include <linux/time-internal.h>
60bc8fb4dSJohannes Berg 
um_ndelay(unsigned long nsecs)70bc8fb4dSJohannes Berg static inline void um_ndelay(unsigned long nsecs)
80bc8fb4dSJohannes Berg {
90bc8fb4dSJohannes Berg 	if (time_travel_mode == TT_MODE_INFCPU ||
100bc8fb4dSJohannes Berg 	    time_travel_mode == TT_MODE_EXTERNAL) {
110bc8fb4dSJohannes Berg 		time_travel_ndelay(nsecs);
120bc8fb4dSJohannes Berg 		return;
130bc8fb4dSJohannes Berg 	}
140bc8fb4dSJohannes Berg 	ndelay(nsecs);
150bc8fb4dSJohannes Berg }
160bc8fb4dSJohannes Berg #undef ndelay
17*5f8539e2SJohannes Berg #define ndelay(n) um_ndelay(n)
180bc8fb4dSJohannes Berg 
um_udelay(unsigned long usecs)190bc8fb4dSJohannes Berg static inline void um_udelay(unsigned long usecs)
200bc8fb4dSJohannes Berg {
210bc8fb4dSJohannes Berg 	if (time_travel_mode == TT_MODE_INFCPU ||
220bc8fb4dSJohannes Berg 	    time_travel_mode == TT_MODE_EXTERNAL) {
230bc8fb4dSJohannes Berg 		time_travel_ndelay(1000 * usecs);
240bc8fb4dSJohannes Berg 		return;
250bc8fb4dSJohannes Berg 	}
260bc8fb4dSJohannes Berg 	udelay(usecs);
270bc8fb4dSJohannes Berg }
280bc8fb4dSJohannes Berg #undef udelay
29*5f8539e2SJohannes Berg #define udelay(n) um_udelay(n)
300bc8fb4dSJohannes Berg #endif /* __UM_DELAY_H */
31