Re: [Adeos-main] gpio irq always set to level sensitive with Xenomai on Blackfin
any update? On Tue, Aug 30, 2011 at 6:59 PM, realmz6 wrote: > Hi Philippe, > > Thanks for your quick response. I have a few questions. > > On Tue, Aug 30, 2011 at 6:07 PM, Philippe Gerum 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
Re: [Adeos-main] gpio irq always set to level sensitive with Xenomai on Blackfin
Hi Philippe, Thanks for your quick response. I have a few questions. On Tue, Aug 30, 2011 at 6:07 PM, Philippe Gerum 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
Re: [Adeos-main] gpio irq always set to level sensitive with Xenomai on Blackfin
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 > > #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