On Tuesday 13 November 2012 01:38 AM, Thomas Gleixner wrote: > On Wed, 7 Nov 2012, Vineet Gupta wrote: >> +void __init init_IRQ(void) >> +{ >> + const int irq = TIMER0_IRQ; >> + >> + /* >> + * Each CPU needs to register irq of it's private TIMER0. >> + * The APIs request_percpu_irq()/enable_percpu_irq() will not be >> + * functional, if we don't "prep" the generic IRQ sub-system with >> + * the following: >> + * -Ensure that devid passed to request_percpu_irq() is indeed per cpu >> + * -disable NOAUTOEN, w/o which the device handler never gets called > > What sets NOAUTOEN in the first place? The core code definitely does > not. So this is based off of my orig 3.2 port and I can see similar flow even in 3.7 (1) start_kernel early_irq_initd desc_set_defaults irqd_set(IRQD_IRQ_DISAB) (2) For setting up IRQ dev to be per-cpu irq_set_percpu_devid irq_set_percpu_devid_flags irq_set_status_flags(IRQ_NOAUTOEN | ....) <---- Am I missing/overlooking something ? > >> + */ >> + irq_set_percpu_devid(irq); >> + irq_modify_status(irq, IRQ_NOAUTOEN, 0); > > Aside of that we have irq_clear_status_flags() for this. OK ! I can use that. > >> + plat_init_IRQ(); >> +} > >> +int __init get_hw_config_num_irq(void) > > How is that function used ? This is used in the SMP port patch to verify that number of IRQs have been configured properly in hardware. This is again in mini-series #2 of v1 patchset https://lkml.org/lkml/2012/11/12/160 Thx, -Vineet -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html