b43: properly request pcmcia IRQ
authorMichael Buesch <mb@bu3sch.de>
Wed, 7 Nov 2007 18:08:26 +0000 (19:08 +0100)
committerJeff Garzik <jeff@garzik.org>
Sat, 10 Nov 2007 09:25:13 +0000 (04:25 -0500)
PCMCIA needs an additional step to request the IRQ.

No need to add code to release the IRQ here, as that's done
automatically in pcmcia_disable_device().

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/pcmcia.c

index 4b6648f0efcd6f7a4b90b8bb41b863d8ef6989f4..b79a6bd5396d8a050d3f69f4fe8a215e0376825c 100644 (file)
@@ -112,6 +112,14 @@ static int __devinit b43_pcmcia_probe(struct pcmcia_device *dev)
        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.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;
+
        res = pcmcia_request_configuration(dev, &dev->conf);
        if (res != CS_SUCCESS)
                goto err_disable;