Question regarding IRQF_SHARED and pcmcia driver
stuge-linux-pcmcia at cdy.org
Thu Jan 10 19:08:46 EST 2008
On Wed, Jan 09, 2008 at 09:02:57PM -0800, Kristoffer Ericson wrote:
> Still debugging hd64461 pcmcia driver. My best guess is that it for
> some reason cannot register the pccard irq and therefore bugs out
> when socket IRQ returns IRQ_NONE.
Is this an "ISA" device? pccard=pcmcia or pccard=cardbus?
The socket itself has one interrupt, which will be used at least for
Cardbus cards, which are really just PCI devices AFAIK.
PCMCIA is more like ISA and it may not neccessarily be the same
interrupt that is used for them?
> More specificly I suspect it tries to request the pccard irq
> without IRQF_SHARED flag and therefore is unable to aquire it.
> Anyhow, short questions:
I'll speculate a bit, maybe it'll help.
> 1) purpose of socket->functions? I see its checked in
> pcmcia_request_irq and if > 1 it should set pccard IRQ to type
> I thought if socket.irq = pci.irq it would guess that its dealing
> with a shared interrupt.
I think socket.irq will always be = pci.irq since the socket is
pretty much the PCI device.
I don't know exactly how linux-pcmcia works, maybe socket->functions
is linux-pcmcia interrupt sharing for PCMCIA cards?
> 2) Best way to reserve pccard irq interrupt? And does the handler
> get replaced by the proper driver handler?
Again, do you mean cardbus or pcmcia? And what exactly is the hd64461
- card host or card?
> From what I can tell the socket interrupt is working fine
> (detecting changes properly) but everytime it pushes IRQ_NONE
> (interrupt ment for pccard interrupt) it oopses with "nobody
Because there is no driver that requested the irq I guess?
More information about the linux-pcmcia