|
|
|
@ -162,7 +162,7 @@ static inline void __raw_writel(unsigned int v, volatile void __iomem *addr) |
|
|
|
|
* is actually performed (i.e. the data has come back) before we start |
|
|
|
|
* executing any following instructions. |
|
|
|
|
*/ |
|
|
|
|
static inline u8 in_8(const volatile unsigned char __iomem *addr) |
|
|
|
|
extern inline u8 in_8(const volatile unsigned char __iomem *addr) |
|
|
|
|
{ |
|
|
|
|
u8 ret; |
|
|
|
|
|
|
|
|
@ -173,7 +173,7 @@ static inline u8 in_8(const volatile unsigned char __iomem *addr) |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline void out_8(volatile unsigned char __iomem *addr, u8 val) |
|
|
|
|
extern inline void out_8(volatile unsigned char __iomem *addr, u8 val) |
|
|
|
|
{ |
|
|
|
|
__asm__ __volatile__("sync;\n" |
|
|
|
|
"stb%U0%X0 %1,%0;\n" |
|
|
|
@ -181,7 +181,7 @@ static inline void out_8(volatile unsigned char __iomem *addr, u8 val) |
|
|
|
|
: "r" (val)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline u16 in_le16(const volatile unsigned short __iomem *addr) |
|
|
|
|
extern inline u16 in_le16(const volatile unsigned short __iomem *addr) |
|
|
|
|
{ |
|
|
|
|
u16 ret; |
|
|
|
|
|
|
|
|
@ -192,7 +192,7 @@ static inline u16 in_le16(const volatile unsigned short __iomem *addr) |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline u16 in_be16(const volatile unsigned short __iomem *addr) |
|
|
|
|
extern inline u16 in_be16(const volatile unsigned short __iomem *addr) |
|
|
|
|
{ |
|
|
|
|
u16 ret; |
|
|
|
|
|
|
|
|
@ -202,18 +202,18 @@ static inline u16 in_be16(const volatile unsigned short __iomem *addr) |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline void out_le16(volatile unsigned short __iomem *addr, u16 val) |
|
|
|
|
extern inline void out_le16(volatile unsigned short __iomem *addr, u16 val) |
|
|
|
|
{ |
|
|
|
|
__asm__ __volatile__("sync; sthbrx %1,0,%2" : "=m" (*addr) : |
|
|
|
|
"r" (val), "r" (addr)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline void out_be16(volatile unsigned short __iomem *addr, u16 val) |
|
|
|
|
extern inline void out_be16(volatile unsigned short __iomem *addr, u16 val) |
|
|
|
|
{ |
|
|
|
|
__asm__ __volatile__("sync; sth%U0%X0 %1,%0" : "=m" (*addr) : "r" (val)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline u32 in_le32(const volatile unsigned __iomem *addr) |
|
|
|
|
extern inline u32 in_le32(const volatile unsigned __iomem *addr) |
|
|
|
|
{ |
|
|
|
|
u32 ret; |
|
|
|
|
|
|
|
|
@ -224,7 +224,7 @@ static inline u32 in_le32(const volatile unsigned __iomem *addr) |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline u32 in_be32(const volatile unsigned __iomem *addr) |
|
|
|
|
extern inline u32 in_be32(const volatile unsigned __iomem *addr) |
|
|
|
|
{ |
|
|
|
|
u32 ret; |
|
|
|
|
|
|
|
|
@ -234,13 +234,13 @@ static inline u32 in_be32(const volatile unsigned __iomem *addr) |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline void out_le32(volatile unsigned __iomem *addr, u32 val) |
|
|
|
|
extern inline void out_le32(volatile unsigned __iomem *addr, u32 val) |
|
|
|
|
{ |
|
|
|
|
__asm__ __volatile__("sync; stwbrx %1,0,%2" : "=m" (*addr) : |
|
|
|
|
"r" (val), "r" (addr)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline void out_be32(volatile unsigned __iomem *addr, u32 val) |
|
|
|
|
extern inline void out_be32(volatile unsigned __iomem *addr, u32 val) |
|
|
|
|
{ |
|
|
|
|
__asm__ __volatile__("sync; stw%U0%X0 %1,%0" : "=m" (*addr) : "r" (val)); |
|
|
|
|
} |
|
|
|
|