]> err.no Git - linux-2.6/commitdiff
[PATCH] i4l make PCMCIA for all cards working with shared IRQ
authorKarsten Keil <kkeil@suse.de>
Thu, 29 Jun 2006 11:14:51 +0000 (13:14 +0200)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 29 Jun 2006 18:59:14 +0000 (11:59 -0700)
most current laptops do not work without allowing shared cardbus IRQs.
This patch enables IRQ sharing, so these cards work again.
This was tested with shared and none shared cardbus IRQs on different laptops
without problems.

Signed-off-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/isdn/hardware/avm/b1pcmcia.c
drivers/isdn/hisax/sedlbauer_cs.c
drivers/isdn/hisax/teles3.c

index 9746cc5ffff8d0d7c73dc987372d33f952eb3156..ad5025155b4e9bf7999c84e92ffa76ec39213b95 100644 (file)
@@ -82,7 +82,7 @@ static int b1pcmcia_add_card(unsigned int port, unsigned irq,
        card->irq = irq;
        card->cardtype = cardtype;
 
-       retval = request_irq(card->irq, b1_interrupt, 0, card->name, card);
+       retval = request_irq(card->irq, b1_interrupt, SA_SHIRQ, card->name, card);
        if (retval) {
                printk(KERN_ERR "b1pcmcia: unable to get IRQ %d.\n",
                       card->irq);
index 9bb18f3f78298f25dcea5302e5b8278e75956d6b..f9c14a2970bc1a502692edaf19b17a88ffb320a3 100644 (file)
@@ -164,7 +164,7 @@ static int sedlbauer_probe(struct pcmcia_device *link)
     link->priv = local;
 
     /* Interrupt setup */
-    link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
+    link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING|IRQ_FIRST_SHARED;
     link->irq.IRQInfo1 = IRQ_LEVEL_ID;
     link->irq.Handler = NULL;
 
index a3eaf4d6570733d3b714425d967ff7e018fb495f..090abd16b4bcb93317109ebc2977538fc447b4c8 100644 (file)
@@ -369,6 +369,7 @@ setup_teles3(struct IsdnCard *card)
                               cs->hw.teles3.hscx[1] + 96);
                        return (0);
                }
+               cs->irq_flags |= SA_SHIRQ; /* cardbus can share */
        } else {
                if (cs->hw.teles3.cfg_reg) {
                        if (cs->typ == ISDN_CTYPE_COMPAQ_ISA) {