rk2928: sram: fix loop use Thumb instruction set
author黄涛 <huangtao@rock-chips.com>
Thu, 16 Aug 2012 01:18:32 +0000 (09:18 +0800)
committer黄涛 <huangtao@rock-chips.com>
Thu, 16 Aug 2012 01:22:17 +0000 (09:22 +0800)
arch/arm/mach-rk2928/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 */