From: 黄涛 Date: Thu, 16 Aug 2012 01:18:32 +0000 (+0800) Subject: rk2928: sram: fix loop use Thumb instruction set X-Git-Tag: firefly_0821_release~8912^2~1^2~4^2~2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7db28b5ce2007ca5440b4c03561f4493352671b1;p=firefly-linux-kernel-4.4.55.git rk2928: sram: fix loop use Thumb instruction set --- diff --git a/arch/arm/mach-rk2928/include/mach/sram.h b/arch/arm/mach-rk2928/include/mach/sram.h index eba76bccf64d..4dec061dfeca 100644 --- a/arch/arm/mach-rk2928/include/mach/sram.h +++ b/arch/arm/mach-rk2928/include/mach/sram.h @@ -4,7 +4,7 @@ #include #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 */