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-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to