[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] why intr->ack() is null?
Yasushi SHOJI wrote:
> At Wed, 02 Jun 2004 16:30:02 +0900,
> やすし wrote:
>
>>At Wed, 02 Jun 2004 16:30:21 +1000,
>>John Williams wrote:
>>
>>>John Williams wrote:
>>>
>>as you said, this smells like a hack. I'll pound my head a bit more
>>about this ;)
>
> I've poked around 2.4 and 2.6 code and it seems like every arch with
> complex interrupts have some hack to work around this problem.
>
> ARM arch even has deferent type for irq_desc array; from arch/arm/kernel/irq.c:
>
[snip]
> so, if we really want to support edge and level interrupts in a clean
> way, should we follow the arm way?
To be honest, I'd rather Xilinx fix their interrupt controller to treat
level and edge sensitive interrupts consistently [1].
IMO if you mask (disable) the interrupt, then ack it, the interrupt
should be cleared, and stay that way, even if the device itself is still
frantically wiggling its interrupt pin (or holding the level high).
That's what masking means. Then, if the device is *still* wiggling or
asserting when you unmask the interrupt at the end of the handler, then
fine - it's a new interrupt event.
John
[1] You know you're in a different world when you can suggest with a
straight face that the hardware design be changed to suit the software!! :)
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/