aboutsummaryrefslogtreecommitdiff
path: root/arch/arc/include/asm/delay.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arc/include/asm/delay.h')
-rw-r--r--arch/arc/include/asm/delay.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/arc/include/asm/delay.h b/arch/arc/include/asm/delay.h
index 08e7e2a16ac1..d5da2115d78a 100644
--- a/arch/arc/include/asm/delay.h
+++ b/arch/arc/include/asm/delay.h
@@ -22,10 +22,13 @@
static inline void __delay(unsigned long loops)
{
__asm__ __volatile__(
- " lp 1f \n"
- " nop \n"
- "1: \n"
- : "+l"(loops));
+ " mov lp_count, %0 \n"
+ " lp 1f \n"
+ " nop \n"
+ "1: \n"
+ :
+ : "r"(loops)
+ : "lp_count");
}
extern void __bad_udelay(void);