Xircom pcmcia CEM56 eth/modem combo works on thinkpad 390 but
not 600
Daniel Ritz
daniel.ritz-ml at swissonline.ch
Tue Oct 11 17:00:10 EDT 2005
[since my free mail provider GMX made it once again the the DSBL blacklist,
nobody can receive my mails. got sick of it, created a new address...]
---------- Forwarded Message ----------
hi
could you please also post the following data from both laptops:
- full dmesg
- cat /proc/interrupts with card inserted
since this is multifunciton card i would guess that the attached patch
could fix the problem. it's already merged in 2.6.14-rc. i guess that one
would be a -stable candidate anyway..
rgds
-daniel
------------
[PATCH] fix pcmcia_request_irq() for multifunction card
multifunction cards need to have the same irq assigned to both functions.
the code tries that but fails because ret is still set to CS_IN_USE
which results in the function having the CB irq assigned. yenta_set_socket
then just changes the irq routing to use the PCI interrupt but the first
functions irq handler is registered on an ISA interrupt. boom.
Signed-off-by: Daniel Ritz <daniel.ritz at gmx.ch>
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -831,7 +831,8 @@ int pcmcia_request_irq(struct pcmcia_dev
}
}
#endif
- if (ret) {
+ /* only assign PCI irq if no IRQ already assigned */
+ if (ret && !s->irq.AssignedIRQ) {
if (!s->pci_irq)
return ret;
irq = s->pci_irq;
-------------------------------------------------------
More information about the linux-pcmcia
mailing list