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

Reply via email to