diff options
Diffstat (limited to 'drivers/clocksource/exynos_mct.c')
| -rw-r--r-- | drivers/clocksource/exynos_mct.c | 12 | 
1 files changed, 3 insertions, 9 deletions
| diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c index a6ee6d7cd63f..acf5a329d538 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -416,8 +416,6 @@ static int exynos4_local_timer_setup(struct clock_event_device *evt)  	evt->set_mode = exynos4_tick_set_mode;  	evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT;  	evt->rating = 450; -	clockevents_config_and_register(evt, clk_rate / (TICK_BASE_CNT + 1), -					0xf, 0x7fffffff);  	exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET); @@ -430,9 +428,12 @@ static int exynos4_local_timer_setup(struct clock_event_device *evt)  				evt->irq);  			return -EIO;  		} +		irq_force_affinity(mct_irqs[MCT_L0_IRQ + cpu], cpumask_of(cpu));  	} else {  		enable_percpu_irq(mct_irqs[MCT_L0_IRQ], 0);  	} +	clockevents_config_and_register(evt, clk_rate / (TICK_BASE_CNT + 1), +					0xf, 0x7fffffff);  	return 0;  } @@ -450,7 +451,6 @@ static int exynos4_mct_cpu_notify(struct notifier_block *self,  					   unsigned long action, void *hcpu)  {  	struct mct_clock_event_device *mevt; -	unsigned int cpu;  	/*  	 * Grab cpu pointer in each case to avoid spurious @@ -461,12 +461,6 @@ static int exynos4_mct_cpu_notify(struct notifier_block *self,  		mevt = this_cpu_ptr(&percpu_mct_tick);  		exynos4_local_timer_setup(&mevt->evt);  		break; -	case CPU_ONLINE: -		cpu = (unsigned long)hcpu; -		if (mct_int_type == MCT_INT_SPI) -			irq_set_affinity(mct_irqs[MCT_L0_IRQ + cpu], -						cpumask_of(cpu)); -		break;  	case CPU_DYING:  		mevt = this_cpu_ptr(&percpu_mct_tick);  		exynos4_local_timer_stop(&mevt->evt); | 

