ISR

Hello,

Why does NDIS call my ISR more than once when the h/w asserts the
interrupt line? I check my h/w to see if it is my interrupt and since it
is,
I return TRUE for both Boolean variables (QueueMiniport,
InterruptRecognized). But I see another call right away… this continues
a lot until my deferred interrupt handler routine finally gets called.

I don’t expect to see another call to my MiniportISR since I mask all
interrupts on my h/w?

thanks
Ravi


Ravi Murty (503) 712 4477
LTG, Communication Architecture Lab
Mobility Group
Intel, Oregon

Just try to set InterruptRecognized to false.

I think it is going to work for you.

Good Luck,


>From: “Murty, Ravi”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: [ntdev] ISR
>Date: Wed, 13 Apr 2005 14:13:13 -0700
>
>Hello,
>
>Why does NDIS call my ISR more than once when the h/w asserts the
>interrupt line? I check my h/w to see if it is my interrupt and since it
>is,
>I return TRUE for both Boolean variables (QueueMiniport,
>InterruptRecognized). But I see another call right away… this continues
>a lot until my deferred interrupt handler routine finally gets called.
>
>I don’t expect to see another call to my MiniportISR since I mask all
>interrupts on my h/w?
>
>thanks
>Ravi
>
>
>____________________________
>Ravi Murty (503) 712 4477
>LTG, Communication Architecture Lab
>Mobility Group
>Intel, Oregon
>
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com

_________________________________________________________________
SEEK: Now with over 80,000 dream jobs! Click here:
http://ninemsn.seek.com.au?hotmail

Also, some hardware may need software-debouncing the interrupt
line in the ISR. I don’t know if that’s your case, but it may be
worth a shot.

Alberto.

----- Original Message -----
From: “yatindra vaishnav”
To: “Windows System Software Devs Interest List”

Sent: Thursday, April 14, 2005 4:28 AM
Subject: RE: [ntdev] ISR

> Just try to set InterruptRecognized to false.
>
> I think it is going to work for you.
>
> Good Luck,
>
>
>>From: “Murty, Ravi”
>>Reply-To: “Windows System Software Devs Interest List”
>>
>>To: “Windows System Software Devs Interest List”
>>
>>Subject: [ntdev] ISR
>>Date: Wed, 13 Apr 2005 14:13:13 -0700
>>
>>Hello,
>>
>>Why does NDIS call my ISR more than once when the h/w asserts
>>the
>>interrupt line? I check my h/w to see if it is my interrupt
>>and since it
>>is,
>>I return TRUE for both Boolean variables (QueueMiniport,
>>InterruptRecognized). But I see another call right away… this
>>continues
>>a lot until my deferred interrupt handler routine finally gets
>>called.
>>
>>I don’t expect to see another call to my MiniportISR since I
>>mask all
>>interrupts on my h/w?
>>
>>thanks
>>Ravi
>>
>>
>>____________________________
>>Ravi Murty (503) 712 4477
>>LTG, Communication Architecture Lab
>>Mobility Group
>>Intel, Oregon
>>
>>
>>
>>
>>—
>>Questions? First check the Kernel Driver FAQ at
>>http://www.osronline.com/article.cfm?id=256
>>
>>You are currently subscribed to ntdev as: unknown lmsubst tag
>>argument: ‘’
>>To unsubscribe send a blank email to
>>xxxxx@lists.osr.com
>
>_________________________________________________________________
> SEEK: Now with over 80,000 dream jobs! Click here:
> http://ninemsn.seek.com.au?hotmail
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@ieee.org
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com

Is the interrupt signal de-asserted when you exit your interrupt handler?
If not, then that’s your problem.

Assuming your device isn’t sharing with some other device, you should do
whatever necessary to de-assert the interrupt line in your interrupt
handler. How you do this depends on the hardware device you’ve got, but if
you can’t do that, there’s something broken in your device. A scope or
logical analyzer on the interrupt pin is usually a good idea at this point.

Since PCI interrupts are level triggered, the interrupt controller (APIC or
8259) will give the processor a new interrupt immediately as the processor
finishes the current interrupt if you have acknowledged the current
interrupt.

To fix this you’ll have to have make sure the source of the interrupt(s)
are all cleared. Also, other device(s) may ALSO use the same interrupt
line. Since the OS can’t know which device was causing the interrupt, it
will call all drivers that have registered for that interrupt.


Mats

xxxxx@lists.osr.com wrote on 04/13/2005 10:13:13 PM:

Hello,
Why does NDIS call my ISR more than once when the h/w asserts the
interrupt line? I check my h/w to see if it is my interrupt and since it
is,
I return TRUE for both Boolean variables (QueueMiniport,
InterruptRecognized).
But I see another call right away… this continues a lot until my
deferred interrupt handler routine finally gets called.
I don’t expect to see another call to my MiniportISR since I mask
all interrupts on my h/w?
thanks
Ravi


Ravi Murty (503) 712 4477
LTG, Communication Architecture Lab
Mobility Group
Intel, Oregon


Questions? First check the Kernel Driver FAQ at http://www.
osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com
ForwardSourceID:NT00010ABA