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 Bergstatic 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 Bergstatic 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