Fwd: Missing interrupts?

From: no_spam@ntlworld.com
Date: Fri Jul 18 2003 - 10:57:32 EST


---------- Forwarded Message ----------

Content-Type: text/plain;
  charset="us-ascii"
From: SA <bullet.train@ntlworld.com>
To: linux-kernel@vger.kernel.org
Subject: Missing interrupts?
Date: Fri, 18 Jul 2003 16:51:21 +0100
User-Agent: KMail/1.4.3
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Message-Id: <200307181651.21730.bullet.train@ntlworld.com>
Status: RO
X-Status: S
Dear LK,

I am testing a new device driver and have found that one one machine it does
 not receive any interrupts. I am stumped by this problem and wonder if
 anyone had any advice before I start to take things apart blindly.

Machines test where everything worked: kernels 2.4.18-10 and 2.4.18-24.8.0
 on athlon based PCs

Machine where interrupts failed to appear: kernel 2.4.18-3 on a pentium 4.

I register the interrupt on open with
       
 err=request_irq(pi_stage.interrupt,pi_int_handler,SA_SHIRQ,PI_IRQ_ID,(void*)
&pi_stage);

My handler looks like

static void pi_int_handler(int irq, void *dev_id,struct pt_regs *regs){
u32 event;
        pi_stage.ints_all++;
        event=pi_read_control(PI_STAGE_INTEVENTSET);
        if(event & PI_STAGE_ALLINTS){
                pi_write_control(PI_STAGE_INTEVENTCLEAR,event
 &PI_STAGE_ALLINTS); if(event & PI_STAGE_INTGPIO3)
                        pi_stage.ints_io++;
                if(event & PI_STAGE_GPINT){
                        pi_stage.ints_axis++;
                        tasklet_schedule(&pi_tasklet);
                        }
                pi_stage.ints_board++;
                }
        }

On the dodgy machine I see the driver and card working fine except for the
 missing interrupts. The variable pi_stage.ints_all is never incremented and
 /proc/interrupts never reports any interrupts. On all machines the
 conditions that generate the interrupts do occur.

It looks like on this one machine that interrupts are never received by the
 system.

Is it possible that differences between the BIOSs on the machines could cause
 this? (ie my card is init'd differently so on the bad machine the ints are
 never generated or received).

Any suggestions?

Thanks SA

-------------------------------------------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Jul 23 2003 - 22:00:34 EST