Commit b657a628 authored by Paul Burton's avatar Paul Burton Committed by Ralf Baechle

MIPS: Allow read64 GCR accessors to work on MIPS32 kernels

If we run a MIPS32 kernel on a system using CM3 we may still need to
access 64 bit GCRs, as will be done in later patches. Allow this by
having the read64_gcr_* accessor functions perform 2 x 32 bit reads on
those systems.
Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Markos Chandras <markos.chandras@imgtec.com>
Patchwork: https://patchwork.linux-mips.org/patch/11188/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent f88e6324
...@@ -125,7 +125,17 @@ static inline u32 read32_gcr_##name(void) \ ...@@ -125,7 +125,17 @@ static inline u32 read32_gcr_##name(void) \
\ \
static inline u64 read64_gcr_##name(void) \ static inline u64 read64_gcr_##name(void) \
{ \ { \
return __raw_readq(addr_gcr_##name()); \ void __iomem *addr = addr_gcr_##name(); \
u64 ret; \
\
if (mips_cm_is64) { \
ret = __raw_readq(addr); \
} else { \
ret = __raw_readl(addr); \
ret |= (u64)__raw_readl(addr + 0x4) << 32; \
} \
\
return ret; \
} \ } \
\ \
static inline unsigned long read_gcr_##name(void) \ static inline unsigned long read_gcr_##name(void) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment