Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b12e9ba5 authored by Rob Herring's avatar Rob Herring
Browse files

ARM: msm: use runtime ioremap hook



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: default avatarRob Herring <rob.herring@calxeda.com>
Tested-by: default avatarDavid Brown <davidb@codeaurora.org>
Acked-by: default avatarDavid Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
parent c177aa98
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -68,6 +68,11 @@ static struct platform_device *devices[] __initdata = {


extern struct sys_timer msm_timer;
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)
static void __init halibut_init_irq(void)
{
{
	msm_init_irq();
	msm_init_irq();
@@ -96,6 +101,7 @@ MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)")
	.atag_offset	= 0x100,
	.atag_offset	= 0x100,
	.fixup		= halibut_fixup,
	.fixup		= halibut_fixup,
	.map_io		= halibut_map_io,
	.map_io		= halibut_map_io,
	.init_early	= halibut_init_early,
	.init_irq	= halibut_init_irq,
	.init_irq	= halibut_init_irq,
	.init_machine	= halibut_init,
	.init_machine	= halibut_init,
	.timer		= &msm_timer,
	.timer		= &msm_timer,
+6 −0
Original line number Original line Diff line number Diff line
@@ -43,6 +43,11 @@ static struct platform_device *devices[] __initdata = {


extern struct sys_timer msm_timer;
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)
static void __init trout_init_irq(void)
{
{
	msm_init_irq();
	msm_init_irq();
@@ -96,6 +101,7 @@ MACHINE_START(TROUT, "HTC Dream")
	.atag_offset	= 0x100,
	.atag_offset	= 0x100,
	.fixup		= trout_fixup,
	.fixup		= trout_fixup,
	.map_io		= trout_map_io,
	.map_io		= trout_map_io,
	.init_early	= trout_init_early,
	.init_irq	= trout_init_irq,
	.init_irq	= trout_init_irq,
	.init_machine	= trout_init,
	.init_machine	= trout_init,
	.timer		= &msm_timer,
	.timer		= &msm_timer,
+0 −5
Original line number Original line Diff line number Diff line
@@ -18,11 +18,6 @@


#define IO_SPACE_LIMIT 0xffffffff
#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 __io(a)		__typesafe_io(a)
#define __mem_pci(a)    (a)
#define __mem_pci(a)    (a)


+6 −0
Original line number Original line Diff line number Diff line
@@ -111,5 +111,11 @@
#define MSM_AD5_PHYS          0xAC000000
#define MSM_AD5_PHYS          0xAC000000
#define MSM_AD5_SIZE          (SZ_1M*13)
#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
#endif
+3 −5
Original line number Original line Diff line number Diff line
@@ -172,8 +172,8 @@ void __init msm_map_msm7x30_io(void)
}
}
#endif /* CONFIG_ARCH_MSM7X30 */
#endif /* CONFIG_ARCH_MSM7X30 */


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


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