diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-01-19 13:34:38 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-01-19 13:34:38 +0900 |
commit | d57d64080ddc0ff13fcffc898b6251074a482ba1 (patch) | |
tree | c38fd506a30d56de84a39285412ffc1b45cc8d33 /arch/sh/boards/board-sh7785lcr.c | |
parent | af1415314a4190b8ea06e53808d392fcf91555af (diff) | |
download | kernel_samsung_smdk4412-d57d64080ddc0ff13fcffc898b6251074a482ba1.tar.gz kernel_samsung_smdk4412-d57d64080ddc0ff13fcffc898b6251074a482ba1.tar.bz2 kernel_samsung_smdk4412-d57d64080ddc0ff13fcffc898b6251074a482ba1.zip |
sh: Prevent 64-bit pgprot clobbering across ioremap implementations.
Presently 'flags' gets passed around a lot between the various ioremap
helpers and implementations, which is only 32-bits. In the X2TLB case
we use 64-bit pgprots which presently results in the upper 32bits being
chopped off (which handily include our read/write/exec permissions).
As such, we convert everything internally to using pgprot_t directly and
simply convert over with pgprot_val() where needed. With this in place,
transparent fixmap utilization for early ioremap works as expected.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/boards/board-sh7785lcr.c')
-rw-r--r-- | arch/sh/boards/board-sh7785lcr.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c index 511de38d204..fe7e686c94a 100644 --- a/arch/sh/boards/board-sh7785lcr.c +++ b/arch/sh/boards/board-sh7785lcr.c @@ -21,6 +21,7 @@ #include <linux/i2c-algo-pca.h> #include <linux/usb/r8a66597.h> #include <linux/irq.h> +#include <linux/io.h> #include <linux/clk.h> #include <linux/errno.h> #include <mach/sh7785lcr.h> @@ -332,15 +333,14 @@ static void __init sh7785lcr_setup(char **cmdline_p) pm_power_off = sh7785lcr_power_off; /* sm501 DRAM configuration */ - sm501_reg = ioremap_fixed(SM107_REG_ADDR, SM501_DRAM_CONTROL, - PAGE_KERNEL); + sm501_reg = ioremap_nocache(SM107_REG_ADDR, SM501_DRAM_CONTROL); if (!sm501_reg) { printk(KERN_ERR "%s: ioremap error.\n", __func__); return; } writel(0x000307c2, sm501_reg + SM501_DRAM_CONTROL); - iounmap_fixed(sm501_reg); + iounmap(sm501_reg); } /* Return the board specific boot mode pin configuration */ |