i2c: designware: Let PCI core to take care about interrupt vectors
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 19 Aug 2024 18:45:08 +0000 (21:45 +0300)
committerAndi Shyti <andi.shyti@kernel.org>
Mon, 9 Sep 2024 22:33:56 +0000 (00:33 +0200)
PCI core, after pcim_enable_device(), takes care about the allocated
IRQ vectors, no need to do it explicitly and break the cleaning up
order.

Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
drivers/i2c/busses/i2c-designware-pcidrv.c

index a1b379a1e9040127af7743e927baf49969cd88d9..507e114332cd7e09afe7d34824597b766ae0e83d 100644 (file)
@@ -295,10 +295,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
 
        if (controller->setup) {
                r = controller->setup(pdev, controller);
-               if (r) {
-                       pci_free_irq_vectors(pdev);
+               if (r)
                        return r;
-               }
        }
 
        i2c_dw_adjust_bus_speed(dev);
@@ -307,10 +305,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
                i2c_dw_acpi_configure(&pdev->dev);
 
        r = i2c_dw_validate_speed(dev);
-       if (r) {
-               pci_free_irq_vectors(pdev);
+       if (r)
                return r;
-       }
 
        i2c_dw_configure(dev);
 
@@ -330,10 +326,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
        adap->nr = controller->bus_num;
 
        r = i2c_dw_probe(dev);
-       if (r) {
-               pci_free_irq_vectors(pdev);
+       if (r)
                return r;
-       }
 
        if ((dev->flags & MODEL_MASK) == MODEL_AMD_NAVI_GPU) {
                dev->slave = i2c_new_ccgx_ucsi(&dev->adapter, dev->irq, &dgpu_node);
@@ -359,8 +353,6 @@ static void i2c_dw_pci_remove(struct pci_dev *pdev)
        pm_runtime_get_noresume(&pdev->dev);
 
        i2c_del_adapter(&dev->adapter);
-       devm_free_irq(&pdev->dev, dev->irq, dev);
-       pci_free_irq_vectors(pdev);
 }
 
 static const struct pci_device_id i2_designware_pci_ids[] = {