linux-mips
[Top] [All Lists]

why irq -1 is being passed to do_IRQ..?

To: inux-mips@linux-mips.org
Subject: why irq -1 is being passed to do_IRQ..?
From: "ashish anand" <ashish_ibm@rediffmail.com>
Date: 4 Sep 2003 08:03:15 -0000
Original-recipient: rfc822;linux-mips@linux-mips.org
Reply-to: "ashish anand" <ashish_ibm@rediffmail.com>
Resent-date: Mon, 8 Sep 2003 20:45:20 +0100
Resent-from: root@ftp.linux-mips.org
Resent-to: linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
Hello,

I am writing to this list after a long back.

I have spurious interrupt problem in do_IRQ() in otherwise stable linux port on mips lexra board .problem happens if I use ISDN phones. but it doesn't happen essentially before or after ISDN card interrupt. we have tried writing FFh in ISDN card mask register then again restoring old mask in end of ISDN ISR as indicated in ISDN manual for interfacing with some interrupt controllers , but it didn't help much. so might be some minute problem in BSP.but i have a more fundamental question for now.

actually do_IRQ calls mask_irq and unmask_irq and there it prints
".......wrong irq number -1 pased.........."
if i see the code for file int-handler.S

In the first level interrupt handling code we jump to do_IRQ only when irq is >= 0 otherwise we just return as per the code piece below.

as per the code below do_IRQ() should always be passed a valid irq number.

lw a0,%lo(cpu_irq_nr-cpu_mask_tbl-PTRSIZE)(t1)
                 nop
                bgez    a0, handle_it           # irq_nr >= 0?
# irq_nr < 0: just exit
                 nop
                 j       return_
                 nop                            # delay slot

handle_it:      jal     do_IRQ
                 move   a1,sp
return_:        j       ret_from_irq
                 nop

                END(lx_handle_int)
#endif
I am litle confused why irq -1 is being passed to do_IRQ at all.
pls. cc the reply to me as well.

Best Regards,
Ashish
___________________________________________________
Meet your old school or college friends from
1 Million + database...
Click here to reunite www.batchmates.com/rediff.asp


<Prev in Thread] Current Thread [Next in Thread>
  • why irq -1 is being passed to do_IRQ..?, ashish anand <=