On 05/29/2012 04:06 AM, Gilles Chanteperdrix wrote:
On 05/29/2012 09:20 AM, Mitchell Tasman wrote:
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.

Sorry about my confusion. Assuming that I'm looking at the correct vector this time, in arch/arm/mach-omap2/irq.c for 2.6.38.8 as patched for I-Pipe:

static struct irq_chip omap_irq_chip = {
        .name           = "INTC",
        .irq_ack        = omap_mask_ack_irq,
        .irq_mask       = omap_mask_irq,
        .irq_mask_ack   = omap_mask_ack_irq,
        .irq_unmask     = omap_unmask_irq,
};

both halves of the former #ifndef block quoted above appear equivalent, and the parent irq is indeed masked. Likewise, for 3.0.13 with CONFIG_IPIPE defined, .irq_ack and .irq_mask_ack both appear to mask the parent irq.

Regarding your recent commits to ipipe-gch.git, I'm imagining that once the dust settles, the next step will be to cut new I-Pipe for ARM patch sets and update xenomai-2.6.git accordingly. I'm planning an additional round of testing soon thereafter.

Thanks much,
Mitch






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

Reply via email to