Re: RT_PREEMPT problem with cascaded irqchip
From: Yann . LEPROVOST
Date: Tue May 30 2006 - 10:50:13 EST
Well, in fact the issue doesn't come neither from the mask/unmask procedure
nor from the set_irq calls.
Correct gpio mask/unmask are called before the gpio_irq_handler.
However, there is an issue in gpio_irq_handler (specific to generic_irq and
AT91RM9200, i think) concerning desc->chip->chip_data.
The following change has to be applied :
-- pio = (void __force __iomem *) desc->chip->chip_data;
++ pio = (void __force __iomem *) desc->chip_data;
Moreover, I think that the call to redirect_hardirq have to be insered in
gpio_irq_handler but I don't know how to do that.
Regards
Yann Leprovost
Thomas Gleixner
<tglx@linutronix.
de> To
Sent by: Yann.LEPROVOST@xxxxxxxxxx
linux-kernel-owne cc
r@xxxxxxxxxxxxxxx Daniel Walker <dwalker@xxxxxxxxxx>,
linux-kernel@xxxxxxxxxxxxxxx,
linux-kernel-owner@xxxxxxxxxxxxxxx,
30/05/2006 13:22 Ingo Molnar <mingo@xxxxxxx>, Steven
Rostedt <rostedt@xxxxxxxxxxx>,
Esben Nielsen <simlo@xxxxxxxxxx>,
Please respond to Sven-Thorsten Dietrich
tglx@xxxxxxxxxxxx <sven@xxxxxxxxxx>
e Subject
Re: RT_PREEMPT problem with
cascaded irqchip
On Tue, 2006-05-30 at 12:26 +0200, Yann.LEPROVOST@xxxxxxxxxx wrote:
> Of course, here is the file arch/arm/mach-at91rm9200/gpio.c with my
> modified gpio_irq_handler.
> for (i = 0; i < 32; i++, pin++) {
> set_irq_chip(pin, &gpio_irqchip);
> printk(KERN_ERR "GPIO SET_IRQ_CHIP\n");
> set_irq_handler(pin, do_simple_IRQ);
-----------------------------------------^^^^^^^^^^^^^^^
Care to look into the implementation of this ? As the name says, its
simple. It does no ack/mask whatever. Use the level resp. the edge
handler instead.
tglx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/