Re: [ARM][OMAP] TWL4030 IRQ

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Shilimkar, Santosh" <santosh.shilimkar@xxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux