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: Paul 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: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
f88e632480
commit
b657a62866
|
@ -125,7 +125,17 @@ static inline u32 read32_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) \
|
||||
|
|
Loading…
Reference in New Issue