linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / media / dvb / b2c2 / flexcop-pci.c
index eb2e643..9bc40bd 100644 (file)
@@ -242,16 +242,19 @@ static int flexcop_pci_dma_init(struct flexcop_pci *fc_pci)
        if ((ret = flexcop_dma_allocate(fc_pci->pdev,&fc_pci->dma[0],FC_DEFAULT_DMA1_BUFSIZE)) != 0)
                return ret;
 
-       if ((ret = flexcop_dma_allocate(fc_pci->pdev,&fc_pci->dma[1],FC_DEFAULT_DMA2_BUFSIZE)) != 0) {
-               flexcop_dma_free(&fc_pci->dma[0]);
-               return ret;
-       }
+       if ((ret = flexcop_dma_allocate(fc_pci->pdev,&fc_pci->dma[1],FC_DEFAULT_DMA2_BUFSIZE)) != 0)
+               goto dma1_free;
 
        flexcop_sram_set_dest(fc_pci->fc_dev,FC_SRAM_DEST_MEDIA | FC_SRAM_DEST_NET, FC_SRAM_DEST_TARGET_DMA1);
        flexcop_sram_set_dest(fc_pci->fc_dev,FC_SRAM_DEST_CAO   | FC_SRAM_DEST_CAI, FC_SRAM_DEST_TARGET_DMA2);
 
        fc_pci->init_state |= FC_PCI_DMA_INIT;
 
+       goto success;
+dma1_free:
+       flexcop_dma_free(&fc_pci->dma[0]);
+
+success:
        return ret;
 }
 
@@ -294,13 +297,13 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci)
        pci_set_drvdata(fc_pci->pdev, fc_pci);
 
        if ((ret = request_irq(fc_pci->pdev->irq, flexcop_pci_isr,
-                                       IRQF_SHARED, DRIVER_NAME, fc_pci)) != 0)
+                                       SA_SHIRQ, DRIVER_NAME, fc_pci)) != 0)
                goto err_pci_iounmap;
 
        spin_lock_init(&fc_pci->irq_lock);
 
        fc_pci->init_state |= FC_PCI_INIT;
-       return ret;
+       goto success;
 
 err_pci_iounmap:
        pci_iounmap(fc_pci->pdev, fc_pci->io_mem);
@@ -309,6 +312,8 @@ err_pci_release_regions:
        pci_release_regions(fc_pci->pdev);
 err_pci_disable_device:
        pci_disable_device(fc_pci->pdev);
+
+success:
        return ret;
 }
 
@@ -373,14 +378,14 @@ static int flexcop_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
 
        INIT_WORK(&fc_pci->irq_check_work, flexcop_pci_irq_check_work, fc_pci);
 
-       return ret;
-
+       goto success;
 err_fc_exit:
        flexcop_device_exit(fc);
 err_pci_exit:
        flexcop_pci_exit(fc_pci);
 err_kfree:
        flexcop_device_kfree(fc);
+success:
        return ret;
 }