On Thu, 2011-08-18 at 12:59 +0200, Kolja Waschk wrote:
> > This IRQ storm is very likely what bites you. The GPIO IRQ does not seem
> > to be properly masked upon arrival, or maybe re-enabled too early,
>
> Hi, thanks for the helpful explanation. Together with hint from
>
> > http://blackfin.uclinux.org/gf/forummessage/96808
>
> this lead me to comment out the check for the interrupt trigger type in
> mach-common/ints_priority.c:bfin_gpio_mask_ack_irq so that
> set_gpio_data(gpionr, 0) is called in any case.
>
> At least, that helps so that my system doesn't freeze and I can read
> "keyboard" events generated by gpio-keys from /dev/input/event0
>
Your fix is correct, good catch. I'll send this upstream:
diff --git a/arch/blackfin/mach-common/ints-priority.c
b/arch/blackfin/mach-common/ints-priority.c
index da7e3c6..42ce04f 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -565,7 +565,9 @@ static void bfin_gpio_mask_ack_irq(unsigned int irq)
struct irq_desc *desc = irq_desc + irq;
u32 gpionr = irq_to_gpio(irq);
+#ifndef CONFIG_IPIPE
if (desc->handle_irq == handle_edge_irq)
+#endif
set_gpio_data(gpionr, 0);
set_gpio_maska(gpionr, 0);
> Kolja
>
> _______________________________________________
> Xenomai-help mailing list
> [email protected]
> https://mail.gna.org/listinfo/xenomai-help
--
Philippe.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help