On 05/29/2012 09:20 AM, Mitchell Tasman wrote:
> Gilles,
> 
> On 05/25/2012 08:20 AM, Gilles Chanteperdrix wrote:
>> On 05/25/2012 11:18 AM, Mitchell Tasman wrote:
> 
>>> Thank you once again for your excellent support, and I very much look
>>> forward to the updated I-Pipe for ARM 2.6.38.8 patch set.
>>
>> You are welcome. The patch should be done during the week-end.
> 
> Hi.  I noticed that you made some commits on the for-ipipe-2.6.38-arm 
> branch of your ipipe-gch.git repository, and decided to take a quick 
> look, leading to a question.
> 
> In arch/arm/plat-omap/gpio.c, I found that you reverted-out some changes 
> relating to earlier fixes to handling of GPIO interrupts, bringing the 
> source closer to the vanilla linux 2.6.38.8 version.
> 
> One change that had been made along the way on the for-ipipe-2.6.38-arm 
> branch was to add a gpio_mask_ack_irq() function, and invoke it like so 
> from gpio_irq_handler(), instead of invoking gpio_ack_irq():
> 
> #ifndef CONFIG_IPIPE
>        desc->irq_data.chip->irq_ack(&desc->irq_data);
> #else /* CONFIG_IPIPE */
>        desc->irq_data.chip->irq_mask_ack(&desc->irq_data);
> #endif /* CONFIG_IPIPE */
> 
> With the latest commits, the gpio_mask_ack_irq() function remains, but 
> it is no longer invoked, with gpio_ack_irq() being called 
> unconditionally instead, as with the vanilla 2.6.38.8 source.

desc->irq_data.chip->irq_mask_ack is the "mask_ack" method of the parent
irq, not gpio_mask_ack_irq. gpio_mask_ack_irq is called normally when
acknowledging the gpio irq.

> 
> Looking at I-Pipe support for 3.0.13, I found that the inline function 
> chained_irq_enter() is called at the equivalent place in 
> gpio_irq_handler(), and that function appears to invoke 
> gpio_mask_ack_irq() when available (which it is for OMAP in your tree), 
> and otherwise calls gpio_ack_irq().
> 
> I just wanted to double-check with you that the vanilla 2.6.38.8 source 
> is indeed correct (or at least harmless) in its unconditional calling of 
> gpio_ack_irq() from gpio_irq_handler(), and that the apparent difference 
> in behavior between the 3.0.13 and 2.6.38.8 I-Pipe patch sets is fine as 
> well.

Everything happens with irqs off, so masking is not strictly necessary I
guess.

-- 
                                                                Gilles.

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to