diff options
Diffstat (limited to 'arch/arm/plat-omap/dmtimer.c')
| -rw-r--r-- | arch/arm/plat-omap/dmtimer.c | 18 | 
1 files changed, 10 insertions, 8 deletions
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index d325b54daeb..64f407ee0f4 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c @@ -38,7 +38,7 @@  #include <linux/io.h>  #include <linux/module.h>  #include <mach/hardware.h> -#include <mach/dmtimer.h> +#include <plat/dmtimer.h>  #include <mach/irqs.h>  /* register offsets */ @@ -742,16 +742,17 @@ EXPORT_SYMBOL_GPL(omap_dm_timers_active);  int __init omap_dm_timer_init(void)  {  	struct omap_dm_timer *timer; -	int i; +	int i, map_size = SZ_8K;	/* Module 4KB + L4 4KB except on omap1 */  	if (!(cpu_is_omap16xx() || cpu_class_is_omap2()))  		return -ENODEV;  	spin_lock_init(&dm_timer_lock); -	if (cpu_class_is_omap1()) +	if (cpu_class_is_omap1()) {  		dm_timers = omap1_dm_timers; -	else if (cpu_is_omap24xx()) { +		map_size = SZ_2K; +	} else if (cpu_is_omap24xx()) {  		dm_timers = omap2_dm_timers;  		dm_source_names = omap2_dm_source_names;  		dm_source_clocks = omap2_dm_source_clocks; @@ -774,10 +775,11 @@ int __init omap_dm_timer_init(void)  	for (i = 0; i < dm_timer_count; i++) {  		timer = &dm_timers[i]; -		if (cpu_class_is_omap1()) -			timer->io_base = OMAP1_IO_ADDRESS(timer->phys_base); -		else -			timer->io_base = OMAP2_IO_ADDRESS(timer->phys_base); + +		/* Static mapping, never released */ +		timer->io_base = ioremap(timer->phys_base, map_size); +		BUG_ON(!timer->io_base); +  #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \  					defined(CONFIG_ARCH_OMAP4)  		if (cpu_class_is_omap2()) {  |