]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/scsi/pcmcia/qlogic_stub.c
pcmcia: re-work pcmcia_request_irq()
[net-next-2.6.git] / drivers / scsi / pcmcia / qlogic_stub.c
index f85f094870b4bf95a9de3a779767218762016728..c3a4428dbcffa321fa48c71cb0290e4d74457cb2 100644 (file)
@@ -161,7 +161,6 @@ static int qlogic_probe(struct pcmcia_device *link)
        link->io.NumPorts1 = 16;
        link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
        link->io.IOAddrLines = 10;
-       link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
        link->conf.Attributes = CONF_ENABLE_IRQ;
        link->conf.IntType = INT_MEMORY_AND_IO;
        link->conf.Present = PRESENT_OPTION;
@@ -209,8 +208,7 @@ static int qlogic_config(struct pcmcia_device * link)
        if (ret)
                goto failed;
 
-       ret = pcmcia_request_irq(link, &link->irq);
-       if (ret)
+       if (!link->irq)
                goto failed;
 
        ret = pcmcia_request_configuration(link, &link->conf);
@@ -227,10 +225,10 @@ static int qlogic_config(struct pcmcia_device * link)
        /* The KXL-810AN has a bigger IO port window */
        if (link->io.NumPorts1 == 32)
                host = qlogic_detect(&qlogicfas_driver_template, link,
-                       link->io.BasePort1 + 16, link->irq.AssignedIRQ);
+                       link->io.BasePort1 + 16, link->irq);
        else
                host = qlogic_detect(&qlogicfas_driver_template, link,
-                       link->io.BasePort1, link->irq.AssignedIRQ);
+                       link->io.BasePort1, link->irq);
        
        if (!host) {
                printk(KERN_INFO "%s: no SCSI devices found\n", qlogic_name);
@@ -258,7 +256,7 @@ static void qlogic_release(struct pcmcia_device *link)
 
        scsi_remove_host(info->host);
 
-       free_irq(link->irq.AssignedIRQ, info->host);
+       free_irq(link->irq, info->host);
        pcmcia_disable_device(link);
 
        scsi_host_put(info->host);