summaryrefslogtreecommitdiffstats
path: root/arch/mips
diff options
context:
space:
mode:
authorPaul Burton <paul.burton@imgtec.com>2016-05-26 14:49:33 +0100
committerDaniel Schwierzeck <daniel.schwierzeck@gmail.com>2016-05-31 09:38:11 +0200
commit2e4cc1c5d4fabee86fc2985fac18f9a2023e39f8 (patch)
tree8e0e26dcf9681deceb593cd18026bf8d86eeab34 /arch/mips
parente4a94ce4ac77396b181663c0493c50bc2d5b9143 (diff)
downloadtalos-obmc-uboot-2e4cc1c5d4fabee86fc2985fac18f9a2023e39f8.tar.gz
talos-obmc-uboot-2e4cc1c5d4fabee86fc2985fac18f9a2023e39f8.zip
MIPS: Use CPHYSADDR to implement mips32 virt_to_phys
Use CPHYSADDR to implement the virt_to_phys function for converting from a virtual to a physical address for MIPS32, much as is already done for MIPS64. This allows for virt_to_phys to work regardless of whether the address being translated is in kseg0 or kseg1, unlike the previous subtraction based approach which only worked for addresses in kseg0. This allows for drivers to provide an address to virt_to_phys without needing to manually ensure that kseg1 addresses are converted to equivalent kseg0 addresses first. This patch is equivalent to this Linux patch currently waiting to be reviewed & merged: https://patchwork.linux-mips.org/patch/12564/ Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Diffstat (limited to 'arch/mips')
-rw-r--r--arch/mips/include/asm/io.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index 723a60a199..5b86386bc1 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -92,11 +92,8 @@ static inline unsigned long virt_to_phys(volatile const void *address)
#ifdef CONFIG_64BIT
if (addr < CKSEG0)
return XPHYSADDR(addr);
-
- return CPHYSADDR(addr);
-#else
- return addr - PAGE_OFFSET + PHYS_OFFSET;
#endif
+ return CPHYSADDR(addr);
}
/*
OpenPOWER on IntegriCloud