parisc: Don't hardcode PSW values in gsc_*() functions
authorHelge Deller <deller@gmx.de>
Thu, 8 Jun 2017 20:09:18 +0000 (22:09 +0200)
committerHelge Deller <deller@gmx.de>
Fri, 9 Jun 2017 09:34:54 +0000 (11:34 +0200)
Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/include/asm/io.h

index 1a16f1d1075fc93a39bef3fad4c1c24096888d5d..af98254f7257083840a89236fc050e2077c41cac 100644 (file)
@@ -34,10 +34,10 @@ static inline unsigned char gsc_readb(unsigned long addr)
        unsigned char ret;
 
        __asm__ __volatile__(
-       "       rsm     2,%0\n"
+       "       rsm     %3,%0\n"
        "       ldbx    0(%2),%1\n"
        "       mtsm    %0\n"
-       : "=&r" (flags), "=r" (ret) : "r" (addr) );
+       : "=&r" (flags), "=r" (ret) : "r" (addr), "i" (PSW_SM_D) );
 
        return ret;
 }
@@ -48,10 +48,10 @@ static inline unsigned short gsc_readw(unsigned long addr)
        unsigned short ret;
 
        __asm__ __volatile__(
-       "       rsm     2,%0\n"
+       "       rsm     %3,%0\n"
        "       ldhx    0(%2),%1\n"
        "       mtsm    %0\n"
-       : "=&r" (flags), "=r" (ret) : "r" (addr) );
+       : "=&r" (flags), "=r" (ret) : "r" (addr), "i" (PSW_SM_D) );
 
        return ret;
 }
@@ -87,20 +87,20 @@ static inline void gsc_writeb(unsigned char val, unsigned long addr)
 {
        long flags;
        __asm__ __volatile__(
-       "       rsm     2,%0\n"
+       "       rsm     %3,%0\n"
        "       stbs    %1,0(%2)\n"
        "       mtsm    %0\n"
-       : "=&r" (flags) :  "r" (val), "r" (addr) );
+       : "=&r" (flags) :  "r" (val), "r" (addr), "i" (PSW_SM_D) );
 }
 
 static inline void gsc_writew(unsigned short val, unsigned long addr)
 {
        long flags;
        __asm__ __volatile__(
-       "       rsm     2,%0\n"
+       "       rsm     %3,%0\n"
        "       sths    %1,0(%2)\n"
        "       mtsm    %0\n"
-       : "=&r" (flags) :  "r" (val), "r" (addr) );
+       : "=&r" (flags) :  "r" (val), "r" (addr), "i" (PSW_SM_D) );
 }
 
 static inline void gsc_writel(unsigned int val, unsigned long addr)