Skip to content

Commit

Permalink
ARM: msm: use runtime ioremap hook
Browse files Browse the repository at this point in the history
Convert msm platforms to use run-time ioremap hook instead of the compile
time hook.

According to David Brown, only the msm7201 needed the ioremap hook.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Tested-by: David Brown <davidb@codeaurora.org>
Acked-by: David Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
  • Loading branch information
Rob Herring committed Mar 7, 2012
1 parent c177aa9 commit b12e9ba
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 10 deletions.
6 changes: 6 additions & 0 deletions arch/arm/mach-msm/board-halibut.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ static struct platform_device *devices[] __initdata = {

extern struct sys_timer msm_timer;

static void __init halibut_init_early(void)
{
arch_ioremap_caller = __msm_ioremap_caller;
}

static void __init halibut_init_irq(void)
{
msm_init_irq();
Expand Down Expand Up @@ -96,6 +101,7 @@ MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)")
.atag_offset = 0x100,
.fixup = halibut_fixup,
.map_io = halibut_map_io,
.init_early = halibut_init_early,
.init_irq = halibut_init_irq,
.init_machine = halibut_init,
.timer = &msm_timer,
Expand Down
6 changes: 6 additions & 0 deletions arch/arm/mach-msm/board-trout.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ static struct platform_device *devices[] __initdata = {

extern struct sys_timer msm_timer;

static void __init trout_init_early(void)
{
arch_ioremap_caller = __msm_ioremap_caller;
}

static void __init trout_init_irq(void)
{
msm_init_irq();
Expand Down Expand Up @@ -96,6 +101,7 @@ MACHINE_START(TROUT, "HTC Dream")
.atag_offset = 0x100,
.fixup = trout_fixup,
.map_io = trout_map_io,
.init_early = trout_init_early,
.init_irq = trout_init_irq,
.init_machine = trout_init,
.timer = &msm_timer,
Expand Down
5 changes: 0 additions & 5 deletions arch/arm/mach-msm/include/mach/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,6 @@

#define IO_SPACE_LIMIT 0xffffffff

#define __arch_ioremap __msm_ioremap
#define __arch_iounmap __iounmap

void __iomem *__msm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype);

#define __io(a) __typesafe_io(a)
#define __mem_pci(a) (a)

Expand Down
6 changes: 6 additions & 0 deletions arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,5 +111,11 @@
#define MSM_AD5_PHYS 0xAC000000
#define MSM_AD5_SIZE (SZ_1M*13)

#ifndef __ASSEMBLY__

extern void __iomem *__msm_ioremap_caller(unsigned long phys_addr, size_t size,
unsigned int mtype, void *caller);

#endif

#endif
8 changes: 3 additions & 5 deletions arch/arm/mach-msm/io.c
Original file line number Diff line number Diff line change
Expand Up @@ -172,8 +172,8 @@ void __init msm_map_msm7x30_io(void)
}
#endif /* CONFIG_ARCH_MSM7X30 */

void __iomem *
__msm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype)
void __iomem *__msm_ioremap_caller(unsigned long phys_addr, size_t size,
unsigned int mtype, void *caller)
{
if (mtype == MT_DEVICE) {
/* The peripherals in the 88000000 - D0000000 range
Expand All @@ -184,7 +184,5 @@ __msm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype)
mtype = MT_DEVICE_NONSHARED;
}

return __arm_ioremap_caller(phys_addr, size, mtype,
__builtin_return_address(0));
return __arm_ioremap_caller(phys_addr, size, mtype, caller);
}
EXPORT_SYMBOL(__msm_ioremap);

0 comments on commit b12e9ba

Please sign in to comment.