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. > + */ > + irq_set_percpu_devid(irq); > + irq_modify_status(irq, IRQ_NOAUTOEN, 0); Aside of that we have irq_clear_status_flags() for this. > + plat_init_IRQ(); > +} > +int __init get_hw_config_num_irq(void) How is that function used ? > +{ > + uint32_t val = read_aux_reg(ARC_REG_VECBASE_BCR); > + > + switch (val & 0x03) { > + case 0: > + return 16; > + case 1: > + return 32; > + case 2: > + return 8; > + default: > + return 0; > + } > + > + return 0; > +} Thanks, tglx -- 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