From: Paul M. <le...@li...> - 2007-10-04 07:49:04
|
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. |