rk30: sram: fix loop use Thumb instruction set
author黄涛 <huangtao@rock-chips.com>
Wed, 29 Aug 2012 11:51:33 +0000 (19:51 +0800)
committer黄涛 <huangtao@rock-chips.com>
Wed, 29 Aug 2012 11:53:38 +0000 (19:53 +0800)
arch/arm/mach-rk30/include/mach/sram.h

index eba76bccf64d002029ed26345aa3f2e03b224197..4dec061dfeca927328577517fbae0564442e1e29 100644 (file)
@@ -4,7 +4,7 @@
 #include <plat/sram.h>
 
 #define SRAM_LOOPS_PER_USEC    24
-#define SRAM_LOOP(loops)       do { unsigned int i = (loops); if (i < 7) i = 7; barrier(); while (--i) barrier(); } while (0)
+#define SRAM_LOOP(loops)       do { unsigned int i = (loops); if (i < 7) i = 7; barrier(); asm volatile(".align 4; 1: subs %0, %0, #1; bne 1b;" : "+r" (i)); } while (0)
 /* delay on slow mode */
 #define sram_udelay(usecs)     SRAM_LOOP((usecs)*SRAM_LOOPS_PER_USEC)
 /* delay on deep slow mode */