Hi Philippe, Thanks for your quick response. I have a few questions.
On Tue, Aug 30, 2011 at 6:07 PM, Philippe Gerum <r...@xenomai.org> wrote: > On Tue, 2011-08-30 at 16:40 +0800, realmz6 wrote: >> Hi Guys, >> >> in adeos patch bfin_set_irq_handler(), this will set irq handle to >> handle_level_irq even it is a edge gpio irq, is it true? >> >> #ifdef CONFIG_IPIPE >> - _set_irq_handler(irq, handle_level_irq); >> -#else >> - struct irq_desc *desc = irq_desc + irq; >> + handle = __fixup_irq_handler(desc, handle_level_irq, 0); >> +#endif >> >> should it like the follows, it just fixup original handle and will not >> always set it to handle_level_irq. > > No, this code is correct Adeos-wise. See there for an explanation, and a > pending fix for a related issue: > https://mail.gna.org/public/xenomai-help/2011-08/msg00081.html why adeos is designed to use handle_level_irq for all interrupts even it is a edge interrupt in hardware? you means it should be fixed in the ipipe fixup_handler for handle_level_irq to deal with a edge interrupt. on blackfin edge irq need a ack to clear sticky but level irq needn't, if i fixed it in ipipe_ack_level_irq maybe the level irq will be broken. > >> >> #ifdef CONFIG_IPIPE >> - _set_irq_handler(irq, handle_level_irq); >> -#else >> - struct irq_desc *desc = irq_desc + irq; >> + handle = __fixup_irq_handler(desc, handle, 0); >> +#endif >> >> -steven >> >> _______________________________________________ >> Adeos-main mailing list >> Adeos-main@gna.org >> https://mail.gna.org/listinfo/adeos-main > > -- > Philippe. > > > _______________________________________________ Adeos-main mailing list Adeos-main@gna.org https://mail.gna.org/listinfo/adeos-main