| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _ASM_PARISC_DELAY_H |
| #define _ASM_PARISC_DELAY_H |
| |
| static __inline__ void __delay(unsigned long loops) { |
| asm volatile( |
| " .balignl 64,0x34000034\n" |
| " addib,UV -1,%0,.\n" |
| " nop\n" |
| : "=r" (loops) : "0" (loops)); |
| } |
| |
| extern void __udelay(unsigned long usecs); |
| extern void __udelay_bad(unsigned long usecs); |
| |
| static inline void udelay(unsigned long usecs) |
| { |
| if (__builtin_constant_p(usecs) && (usecs) > 20000) |
| __udelay_bad(usecs); |
| __udelay(usecs); |
| } |
| |
| #endif /* _ASM_PARISC_DELAY_H */ |