Hi Arnd, Today's linux-next merge of the arm-soc tree got a conflict in arch/arm/mach-exynos4/mct.c between commit 28af690a284d ("ARM: gic, local timers: use the request_percpu_irq() interface") from the arm tree and commit 3a0622811292 ("ARM: EXYNOS4: Add support MCT PPI for EXYNOS4212") from the arm-soc tree. I hacked it up (probably incorrectly - see below and dropping the local_timer_ack() change from the latter, since the former removed that function). -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc arch/arm/mach-exynos4/mct.c index 582b874,eb182f2..0000000 --- a/arch/arm/mach-exynos4/mct.c +++ b/arch/arm/mach-exynos4/mct.c @@@ -384,15 -400,17 +400,19 @@@ static void exynos4_mct_tick_init(struc exynos4_mct_write(0x1, mct_tick[cpu].base + MCT_L_TCNTB_OFFSET); - if (cpu == 0) { - mct_tick0_event_irq.dev_id = &mct_tick[cpu]; - evt->irq = IRQ_MCT_L0; - setup_irq(IRQ_MCT_L0, &mct_tick0_event_irq); + if (mct_int_type == MCT_INT_SPI) { + if (cpu == 0) { + mct_tick0_event_irq.dev_id = &mct_tick[cpu]; ++ evt->irq = IRQ_MCT_L0; + setup_irq(IRQ_MCT_L0, &mct_tick0_event_irq); + } else { + mct_tick1_event_irq.dev_id = &mct_tick[cpu]; ++ evt->irq = IRQ_MCT_L1; + setup_irq(IRQ_MCT_L1, &mct_tick1_event_irq); + irq_set_affinity(IRQ_MCT_L1, cpumask_of(1)); + } } else { - mct_tick1_event_irq.dev_id = &mct_tick[cpu]; - evt->irq = IRQ_MCT_L1; - setup_irq(IRQ_MCT_L1, &mct_tick1_event_irq); - irq_set_affinity(IRQ_MCT_L1, cpumask_of(1)); + gic_enable_ppi(IRQ_MCT_LOCALTIMER); } }
Attachment:
pgpRb3ehe1FuW.pgp
Description: PGP signature