|
@@ -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;
|