aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia/pcmcia_resource.c
diff options
context:
space:
mode:
authorDaniel Ritz <daniel.ritz@gmx.ch>2005-09-09 16:03:25 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-09 16:57:47 -0400
commitc181e0e00ff778623c7fda055fd404a06d2c7845 (patch)
tree4d105c0d9653ad575b66017c163ac437a1a2b793 /drivers/pcmcia/pcmcia_resource.c
parentbf4de6f2db79f3c396bd884f546cd2ea91a686f2 (diff)
[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@gmx.ch> Cc: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/pcmcia/pcmcia_resource.c')
-rw-r--r--drivers/pcmcia/pcmcia_resource.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index 599b116d9747..c0f4eb49177b 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -832,7 +832,8 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
832 } 832 }
833 } 833 }
834#endif 834#endif
835 if (ret) { 835 /* only assign PCI irq if no IRQ already assigned */
836 if (ret && !s->irq.AssignedIRQ) {
836 if (!s->pci_irq) 837 if (!s->pci_irq)
837 return ret; 838 return ret;
838 irq = s->pci_irq; 839 irq = s->pci_irq;