HP Jornada 6xx PCMCIA driver
kristoffer.ericson at gmail.com
Mon Nov 19 19:12:32 EST 2007
On Mon, 19 Nov 2007 23:25:47 +0100
Dominik Brodowski <linux at dominikbrodowski.net> wrote:
> On Mon, Nov 19, 2007 at 08:49:12PM +0100, Kristoffer Ericson wrote:
> > On Mon, 19 Nov 2007 09:49:41 +0100
> > Dominik Brodowski <linux at dominikbrodowski.net> wrote:
> > > Hi,
> > >
> > > On Mon, Nov 19, 2007 at 01:19:00AM -0800, Kristoffer Ericson wrote:
> > > > > Actually, why do you bother? The PCMCIA subsystem is capable of working with
> > > > > shared IRQs...
> > > > >
> > > > So I should have same interrupt for both? Isn't it important to know
> > > > where the IRQ came from? Thats what puzzles me.
> > >
> > > Well, each IRQ handler needs to check whether it is indeed the one which was
> > > called. So, inside hd6441_interrupt() you'd need to do the following
> > >
> > > cscr = inb(cscr_reg);
> > > if !(cscr & HD64461_PCCCSCR_IRQ)
> > > return IRQ_NONE;
> > >
> > > to avoid handling ("IRQ_HANDLED") an interrupt which wasn't caused by this
> > > device.
> > >
> > Oki, sounds logical. But do I need to setup io_irq "IRQ's" or does PCMCIA code register one for me? From what I've read so far
> > I believe I need to register the "slot IRQ" and handler, while pcmcia setups the pcmcia_card handler. Correct?
Oki I've removed the demux code and inserted whats needed inside the main IRQ chip struct.
However when I insert a card I only get a printk where it detected it, no powerup (leds lighting up) or anything. No driver is loaded that I can see.
I've checked so the IRQ gets aquired properly and also that pcmcia_register_socket returns an zero.
I suspect that my hardware settings fails to set all events that should generate an interrupt. But since I don't know exactly what kind of interrupts the pcmcia_card generates its hard to set them.
The only error message I get is "cs: pcmcia_socket0: time out after reset.". Only one such message though.
Basicly just looking for clues on where to continue.
More information about the linux-pcmcia