|
From: Cmmn Ml <cm...@ya...> - 2007-10-05 14:13:45
|
Hello Paul,
Thanks for pointing me where the problem is, I found my problem with the return value and got it fixed. Thanks again for your kind reply.
Cmmn Ml
Paul Mundt <le...@li...> wrote:
On Wed, Oct 03, 2007 at 07:32:39AM -0700, Cmmn Ml wrote:
> I'm working on SH 7705 Solution Engine board, my kernel is linux 2.6.16
> (after applying the SH linux stable patch relavant to this kernel
> version sh--stable--2.6.16). Currently I'm developing a driver which
> hanldes interrupt coming from IRQ0 processor pin. When I try to
> register the interrupt handler, I get an error message saying "irq
> event 32: bogus return value 7". The way I try to register the
> interrupt is
>
> When this code is executed, request_irq returns with 0 indicating
> success, but then it gives up the message ""irq event 32: bogus return
> value 7". When the interrupt comes, the execution goes into the
> interrupt handler as well.
>
There are a couple of reasons you might get this message, and it all
relates to your IRQ handler. Your IRQ handler needs to return one of
IRQ_NONE (if it's not handling it) or IRQ_HANDLED, this printk gets
triggered if either a) your irqreturn_t is some bogus value, or b) the
IRQ is stuck.
As you didn't post the backtrace after that printk, it's difficult to
determine what the originating call path was. In the event that the IRQ
is stuck (ie, "99,900 of the previous 100,000 interrupts have not been
handled"), this will also trigger. So you might also have an issue with
the IRQ not being acked properly.
---------------------------------
Check out the hottest 2008 models today at Yahoo! Autos. |