Re: [Adeos-main] gpio irq always set to level sensitive with Xenomai on Blackfin

2011-08-31 Thread realmz6
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

2011-08-30 Thread realmz6
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

2011-08-30 Thread Philippe Gerum
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