This fixes the IRQ routing on PCMCIA devices.
With this patch the card will finally be able to receive IRQs.

Signed-off-by: Michael Buesch <[EMAIL PROTECTED]>

---

Please queue for 2.6.25

Index: wireless-testing/drivers/net/wireless/b43/pcmcia.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43/pcmcia.c     2008-03-28 
11:35:25.000000000 +0100
+++ wireless-testing/drivers/net/wireless/b43/pcmcia.c  2008-03-28 
11:38:14.000000000 +0100
@@ -88,12 +88,14 @@ static int __devinit b43_pcmcia_probe(st
        res = pcmcia_parse_tuple(dev, &tuple, &parse);
        if (res != CS_SUCCESS)
                goto err_kfree_ssb;
 
        dev->conf.ConfigBase = parse.config.base;
        dev->conf.Present = parse.config.rmask[0];
+       dev->conf.Attributes = CONF_ENABLE_IRQ;
+       dev->conf.IntType = INT_MEMORY_AND_IO;
 
        dev->io.BasePort2 = 0;
        dev->io.NumPorts2 = 0;
        dev->io.Attributes2 = 0;
 
        win.Attributes = WIN_ADDR_SPACE_MEM | WIN_MEMORY_TYPE_CM |
@@ -109,14 +111,14 @@ static int __devinit b43_pcmcia_probe(st
        mem.CardOffset = 0;
        mem.Page = 0;
        res = pcmcia_map_mem_page(dev->win, &mem);
        if (res != CS_SUCCESS)
                goto err_disable;
 
-       dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_FIRST_SHARED;
-       dev->irq.IRQInfo1 = IRQ_LEVEL_ID | IRQ_SHARE_ID;
+       dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
+       dev->irq.IRQInfo1 = IRQ_LEVEL_ID;
        dev->irq.Handler = NULL; /* The handler is registered later. */
        dev->irq.Instance = NULL;
        res = pcmcia_request_irq(dev, &dev->irq);
        if (res != CS_SUCCESS)
                goto err_disable;
 
_______________________________________________
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to