Merge remote-tracking branch 'asoc/fix/cirrus' into asoc-linus
[firefly-linux-kernel-4.4.55.git] / arch / mips / lib / delay.c
index 705cfb7c1a74e0843e40567219024882ab932ac9..21d27c6819a2fd813e56bde24924950abdcd9004 100644 (file)
@@ -11,7 +11,9 @@
 #include <linux/module.h>
 #include <linux/param.h>
 #include <linux/smp.h>
+#include <linux/stringify.h>
 
+#include <asm/asm.h>
 #include <asm/compiler.h>
 #include <asm/war.h>
 
@@ -27,11 +29,7 @@ void __delay(unsigned long loops)
        "       .set    noreorder                               \n"
        "       .align  3                                       \n"
        "1:     bnez    %0, 1b                                  \n"
-#if BITS_PER_LONG == 32
-       "       subu    %0, %1                                  \n"
-#else
-       "       dsubu   %0, %1                                  \n"
-#endif
+       "        " __stringify(LONG_SUBU) "     %0, %1          \n"
        "       .set    reorder                                 \n"
        : "=r" (loops)
        : GCC_DADDI_IMM_ASM() (1), "0" (loops));