int pci_card_alloc(struct pcilst_struct *amcc, int master);
 int i_pci_card_free(struct pcilst_struct *amcc);
 int i_pci_card_data(struct pcilst_struct *amcc,
-                   resource_size_t *io_addr,
-                   unsigned int *irq);
+                   resource_size_t *io_addr);
 
 /****************************************************************************/
 
 /****************************************************************************/
 /* return all card information for driver */
 int i_pci_card_data(struct pcilst_struct *amcc,
-                   resource_size_t *io_addr,
-                   unsigned int *irq)
+                   resource_size_t *io_addr)
 {
        int i;
 
                return -1;
        for (i = 0; i < 5; i++)
                io_addr[i] = amcc->io_addr[i];
-       *irq = amcc->irq;
        return 0;
 }
 
 
        int ret, pages, i, n_subdevices;
        unsigned int dw_Dummy;
        resource_size_t io_addr[5];
-       unsigned int irq;
        resource_size_t iobase_a, iobase_main, iobase_addon, iobase_reserved;
        struct pcilst_struct *card = NULL;
        int i_Dma = 0;
 
        devpriv->allocated = 1;
 
-       if ((i_pci_card_data(card, &io_addr[0], &irq)) < 0) {
+       if ((i_pci_card_data(card, &io_addr[0])) < 0) {
                i_pci_card_free(card);
                return -EIO;
        }
 
        /* ## */
 
-       if (irq > 0) {
-               if (request_irq(irq, v_ADDI_Interrupt, IRQF_SHARED,
-                               this_board->pc_DriverName, dev) < 0) {
-                       irq = 0;        /* Can't use IRQ */
-               }
+       if (card->irq > 0) {
+               ret = request_irq(card->irq, v_ADDI_Interrupt, IRQF_SHARED,
+                                 this_board->pc_DriverName, dev);
+               if (ret == 0)
+                       dev->irq = card->irq;
        }
 
-       dev->irq = irq;
-
        /*  Read eepeom and fill addi_board Structure */
 
        if (this_board->i_PCIEeprom) {