#ifndef _ASM_CRIS_ARCH_DELAY_H #define _ASM_CRIS_ARCH_DELAY_H extern void cris_delay10ns(u32 n10ns); #define udelay(u) cris_delay10ns((u)*100) #define ndelay(n) cris_delay10ns(((n)+9)/10) /* * Not used anymore for udelay or ndelay. Referenced by * e.g. init/calibrate.c. All other references are likely bugs; * should be replaced by mdelay, udelay or ndelay. */ static inline void __delay(int loops) { __asm__ __volatile__ ( "move.d %0, $r9\n\t" "beq 2f\n\t" "subq 1, $r9\n\t" "1:\n\t" "bne 1b\n\t" "subq 1, $r9\n" "2:" : : "g" (loops) : "r9"); } #endif /* _ASM_CRIS_ARCH_DELAY_H */