"Shilimkar, Santosh" <[email protected]> writes:

>> And here it is - I've only build-tested it so far.
>> 
>>  drivers/mfd/twl4030-irq.c |   55 
>> ++++++++++++++++++--------------------------
>>  1 files changed, 23 insertions(+), 32 deletions(-)
>> 
>> diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c
>> index bae61b2..4bb1ea7 100644
>> --- a/drivers/mfd/twl4030-irq.c
>> +++ b/drivers/mfd/twl4030-irq.c
>> @@ -180,15 +180,9 @@ static struct completion irq_event;
>>  static int twl4030_irq_thread(void *data)
>>  {
>>      long irq = (long)data;
>> -    struct irq_desc *desc = irq_to_desc(irq);
>>      static unsigned i2c_errors;
>>      static const unsigned max_i2c_errors = 100;
>>  
>> -    if (!desc) {
>> -            pr_err("twl4030: Invalid IRQ: %ld\n", irq);
>> -            return -EINVAL;
>> -    }
>> -
>>      current->flags |= PF_NOFREEZE;
>>  
>>      while (!kthread_should_stop()) {
>> @@ -240,38 +234,25 @@ static int twl4030_irq_thread(void *data)
>>              }
>>              local_irq_enable();
>>  
>> -            desc->chip->unmask(irq);
>> +            enable_irq(irq);
>>      }
>>  
>>      return 0;
>>  }
> Russell,
> Just a question here.
>
> In the enable_irq(irq) and disable_irq(irq) call tree, internally there are 
> calls to 
> the interrupt controller chip.
>
> In disable_irq() path:
>       desc->chip->disable(irq);
> And in emable_irq() path:
>       desc->chip->enable(irq);

> But the in gic gic_chip, enable/disable fn are not populated.

And if you look at the OMAP's MPU irq_chip implementation, these are 
not populated either.  We rely on the default lazy enable via unmask
and the lazy disable.

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to