ARC: Abstract out ISA specific SLEEP args
authorVineet Gupta <vgupta@synopsys.com>
Mon, 16 Nov 2015 08:22:07 +0000 (13:52 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Mon, 16 Nov 2015 08:47:02 +0000 (14:17 +0530)
No semantical changes, prepares for ARCv2 specific change in next commit

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/include/asm/irqflags-arcv2.h
arch/arc/include/asm/irqflags-compact.h
arch/arc/kernel/process.c

index ad481c2..f7c8d3c 100644 (file)
@@ -37,6 +37,8 @@
 #define ISA_INIT_STATUS_BITS   (STATUS_IE_MASK | STATUS_AD_MASK | \
                                        (ARCV2_IRQ_DEF_PRIO << 1))
 
+#define ISA_SLEEP_ARG          0x10
+
 #ifndef __ASSEMBLY__
 
 /*
index d8c6081..c1d3645 100644 (file)
@@ -43,6 +43,8 @@
 
 #define ISA_INIT_STATUS_BITS   STATUS_IE_MASK
 
+#define ISA_SLEEP_ARG          0x3
+
 #ifndef __ASSEMBLY__
 
 /******************************************************************
index 91d5a0f..a3f750e 100644 (file)
@@ -44,11 +44,10 @@ SYSCALL_DEFINE0(arc_gettls)
 void arch_cpu_idle(void)
 {
        /* sleep, but enable all interrupts before committing */
-       if (is_isa_arcompact()) {
-               __asm__("sleep 0x3");
-       } else {
-               __asm__("sleep 0x10");
-       }
+       __asm__ __volatile__(
+               "sleep %0       \n"
+               :
+               :"I"(ISA_SLEEP_ARG)); /* can't be "r" has to be embedded const */
 }
 
 asmlinkage void ret_from_fork(void);