[PATCH] fix pcmcia_request_irq() for multifunction card
Daniel Ritz
daniel.ritz at gmx.ch
Wed Aug 17 16:54:46 EDT 2005
[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