1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2f6d12eefSHelge Deller #ifndef _ASM_PARISC_DELAY_H 3f6d12eefSHelge Deller #define _ASM_PARISC_DELAY_H 4deae26bfSKyle McMartin __delay(unsigned long loops)5deae26bfSKyle McMartinstatic __inline__ void __delay(unsigned long loops) { 6deae26bfSKyle McMartin asm volatile( 7deae26bfSKyle McMartin " .balignl 64,0x34000034\n" 8deae26bfSKyle McMartin " addib,UV -1,%0,.\n" 9deae26bfSKyle McMartin " nop\n" 10deae26bfSKyle McMartin : "=r" (loops) : "0" (loops)); 11deae26bfSKyle McMartin } 12deae26bfSKyle McMartin 13f6d12eefSHelge Deller extern void __udelay(unsigned long usecs); 14f6d12eefSHelge Deller extern void __udelay_bad(unsigned long usecs); 15deae26bfSKyle McMartin udelay(unsigned long usecs)16f6d12eefSHelge Dellerstatic inline void udelay(unsigned long usecs) 17f6d12eefSHelge Deller { 18f6d12eefSHelge Deller if (__builtin_constant_p(usecs) && (usecs) > 20000) 19f6d12eefSHelge Deller __udelay_bad(usecs); 20f6d12eefSHelge Deller __udelay(usecs); 21deae26bfSKyle McMartin } 22deae26bfSKyle McMartin 23f6d12eefSHelge Deller #endif /* _ASM_PARISC_DELAY_H */ 24