diff options
Diffstat (limited to 'arch/arm/mach-exynos/mct.c')
| -rw-r--r-- | arch/arm/mach-exynos/mct.c | 17 | 
1 files changed, 11 insertions, 6 deletions
diff --git a/arch/arm/mach-exynos/mct.c b/arch/arm/mach-exynos/mct.c index 897d9a9cf22..b601fb8a408 100644 --- a/arch/arm/mach-exynos/mct.c +++ b/arch/arm/mach-exynos/mct.c @@ -388,6 +388,7 @@ static int __cpuinit exynos4_local_timer_setup(struct clock_event_device *evt)  {  	struct mct_clock_event_device *mevt;  	unsigned int cpu = smp_processor_id(); +	int mct_lx_irq;  	mevt = this_cpu_ptr(&percpu_mct_tick);  	mevt->evt = evt; @@ -414,14 +415,18 @@ static int __cpuinit exynos4_local_timer_setup(struct clock_event_device *evt)  	if (mct_int_type == MCT_INT_SPI) {  		if (cpu == 0) { +			mct_lx_irq = soc_is_exynos4210() ? EXYNOS4_IRQ_MCT_L0 : +						EXYNOS5_IRQ_MCT_L0;  			mct_tick0_event_irq.dev_id = mevt; -			evt->irq = EXYNOS4_IRQ_MCT_L0; -			setup_irq(EXYNOS4_IRQ_MCT_L0, &mct_tick0_event_irq); +			evt->irq = mct_lx_irq; +			setup_irq(mct_lx_irq, &mct_tick0_event_irq);  		} else { +			mct_lx_irq = soc_is_exynos4210() ? EXYNOS4_IRQ_MCT_L1 : +						EXYNOS5_IRQ_MCT_L1;  			mct_tick1_event_irq.dev_id = mevt; -			evt->irq = EXYNOS4_IRQ_MCT_L1; -			setup_irq(EXYNOS4_IRQ_MCT_L1, &mct_tick1_event_irq); -			irq_set_affinity(EXYNOS4_IRQ_MCT_L1, cpumask_of(1)); +			evt->irq = mct_lx_irq; +			setup_irq(mct_lx_irq, &mct_tick1_event_irq); +			irq_set_affinity(mct_lx_irq, cpumask_of(1));  		}  	} else {  		enable_percpu_irq(EXYNOS_IRQ_MCT_LOCALTIMER, 0); @@ -473,7 +478,7 @@ static void __init exynos4_timer_resources(void)  static void __init exynos4_timer_init(void)  { -	if (soc_is_exynos4210()) +	if ((soc_is_exynos4210()) || (soc_is_exynos5250()))  		mct_int_type = MCT_INT_SPI;  	else  		mct_int_type = MCT_INT_PPI;  |