]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/staging/dt3155/dt3155_drv.c
Staging: DT3155: Use pci_get_device()
[karo-tx-linux.git] / drivers / staging / dt3155 / dt3155_drv.c
index 3efdeb9953ff6bb72b9fd414a276b7a57ebe7174..950956c08eda852d3254a224846277277fd4a99d 100644 (file)
@@ -963,7 +963,7 @@ static int find_PCI (void)
   unsigned long base;
   unsigned char irq;
 
-  while ((pci_dev = pci_find_device
+  while ((pci_dev = pci_get_device
          (DT3155_VENDORID, DT3155_DEVICEID, pci_dev)) != NULL)
     {
       pci_index ++;
@@ -983,7 +983,7 @@ static int find_PCI (void)
               "for %d devices\n"
               "DT3155: Please change MAXBOARDS in dt3155.h\n",
               pci_index, MAXBOARDS);
-       return DT_3155_FAILURE;
+       goto err;
       }
 
       /* Now, just go out and make sure that this/these device(s) is/are
@@ -992,7 +992,7 @@ static int find_PCI (void)
                                          (u_int *) &base)))
        {
          printk("DT3155: Was not able to find device \n");
-         return DT_3155_FAILURE;
+         goto err;
        }
 
       DT_3155_DEBUG_MSG("DT3155: Base address 0 for device is %lx \n", base);
@@ -1007,13 +1007,13 @@ static int find_PCI (void)
       if ( !dt3155_lbase[pci_index-1] )
        {
          printk("DT3155: Unable to remap control registers\n");
-         return DT_3155_FAILURE;
+         goto err;
        }
 
       if ( (error = pci_read_config_byte( pci_dev, PCI_INTERRUPT_LINE, &irq)) )
        {
          printk("DT3155: Was not able to find device \n");
-         return DT_3155_FAILURE;
+         goto err;
        }
 
       DT_3155_DEBUG_MSG("DT3155: IRQ is %d \n",irq);
@@ -1029,6 +1029,10 @@ static int find_PCI (void)
   ndevices = pci_index;
 
   return DT_3155_SUCCESS;
+
+err:
+  pci_dev_put(pci_dev);
+  return DT_3155_FAILURE;
 }
 
 u_long allocatorAddr = 0;