CE 5.0 PCMCIA ISR issue

Tech-Archive recommends: Fix windows errors by optimizing your registry



I have been working on a performance issue with our CE 5.0 platform. There
is a problem I am having with the PCMCIA driver and the ISR (client/data IRQ
not status IRQ or CD IRQ). What is happening is no matter what "NoISR" is
set to under "HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCC_MAINSTONEII0" the
installable ISR is being loaded. What this does is causes the actual
hardware IRQ from the PCMCIA card to be ignored thus clobbering anything else
that might be occuring throughout the system when an I/O transfer occurs
to/from the PCMCIA card. The goal is to priortize the IRQs via the 270
interrupt controller but I cannot due to the current issue.

The problem appears to be in the CPcmcia::PcmciaCardRequestIRQ() routine
located at \PUBLIC\COMMON\OAK\DRIVERS\PCCARD\PCMCIA\pcmcia.cpp. The CPcmcia
class inherits from CRegistryEdit helper class to deal with registry access.
When CPcmcia is initialized it passes the current active key path loaded in
the registry. The "NoISR" flag in the registry that controls is being looked
at based on the active registry path, which is not correct. This causes in
all cases for the installable ISR to be loaded and run no matter how "NoISR"
is set.

I can force the "NoISR" flag through the debugger, and when doing so the
code behaves as I expect it to. The ATADisk ISR is called when a hardware
IRQ is recieved from the PCMCIA card, does some I/O, waits for another IRQ,
etc. as it should.

Am I placing the "NoISR" in the wrong location, and if so, where does the
flag need to be placed for it to appear in the active registry key when the
driver is loaded? Since the "Active" key is dynamic based on what drivers
are loaded/unloaded I didn't think there was a way to pass it a static value
such as "NoISR".

Any insight is appreciated.

Thanks.
.



Relevant Pages

  • RE: CE 5.0 PCMCIA ISR issue
    ... PCMCIA driver uses the real hardware IRQ, none of which is very obvious from ... to do), no matter how "NoISR" is set, this will cause the installable ISR to ... class inherits from CRegistryEdit helper class to deal with registry access. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: CE 5.0 PCMCIA ISR issue
    ... set to the user defined SYSINTR value, which should be mapped to the IRQ ... to do), no matter how "NoISR" is set, this will cause the installable ISR ... class inherits from CRegistryEdit helper class to deal with registry ...
    (microsoft.public.windowsce.platbuilder)
  • Re: CE 5.0 PCMCIA ISR issue
    ... set to the user defined SYSINTR value, which should be mapped to the IRQ ... to do), no matter how "NoISR" is set, this will cause the installable ISR ... class inherits from CRegistryEdit helper class to deal with registry ...
    (microsoft.public.windowsce.platbuilder)
  • Re: PCMCIA WLAN card initialization error
    ... Feb 19 08:59:39 bonsai pccard: PCMCIA card inserted into slot 0 ... Feb 19 08:59:39 bonsai pcmcia: the driver needs updating to supported shared IRQ lines. ... attach the card to one of the empty PCI slots. ...
    (Linux-Kernel)
  • Re: CE 5.0 PCMCIA ISR issue
    ... PCMCIA driver uses the real hardware IRQ, none of which is very obvious ... set to the user defined SYSINTR value, which should be mapped to the IRQ ... to do), no matter how "NoISR" is set, this will cause the installable ISR ...
    (microsoft.public.windowsce.platbuilder)