| Date | Mon, 12 Nov 2012 21:08:08 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [RFC PATCH v1 12/31] ARC: Interrupt Handling |
| |
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
|