Messages in this thread | | | Date | Thu, 22 Apr 2010 11:51:06 +0100 | Subject | Re: Threaded irq handler question | From | Will Newton <> |
| |
On Thu, Apr 22, 2010 at 2:37 AM, Yong Zhang <yong.zhang@windriver.com> wrote: > On Wed, Apr 21, 2010 at 05:35:32PM +0100, Will Newton wrote: >> Hi all, >> My problem is that this structure does not work, because once I call >> disable_irq_nosync() on the irq in the check handler the thread will >> no longer run because the irq is disabled. However if I don't call >> disable_irq_nosync() I will get endless irqs because the line is >> level-triggered and will not be deasserted until the thread has run. >> >> Could someone tell me what I'm doing wrong here? > > Does IRQF_ONESHOT meet your need?
Almost I think, but I believe if my check handler does not wake the thread then I don't get another interrupt ever. I can fix this by making my check handler always return WAKE_THREAD, which is slightly sub-optimal, but not a big problem.
Thank you for your help!
| |