]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mtd: rawnand: Use non-hybrid PCI devres API
authorPhilipp Stanner <phasta@kernel.org>
Thu, 17 Apr 2025 09:34:29 +0000 (11:34 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 29 Apr 2025 09:05:35 +0000 (11:05 +0200)
denali_pci.c enables a PCI device with pcim_enable_device(). This,
implicitly, switches the function pci_request_regions() into managed
mode, where it becomes a devres function.

The PCI subsystem wants to remove this hybrid nature from its
interfaces. To do so, users of the aforementioned combination of
functions must be ported to non-hybrid functions.

Moreover, since both functions are already managed in this driver, the
calls to pci_release_regions() are unnecessary.

Remove the calls to pci_release_regions().

Replace the call to sometimes-managed pci_request_regions() with one to
the always-managed pcim_request_regions().

Signed-off-by: Philipp Stanner <phasta@kernel.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/nand/raw/denali_pci.c

index e22094e39546e9a8dd2bdba78ccb63279f2855eb..97fa32d73441bb9d00b1502e06987f1146851773 100644 (file)
@@ -68,7 +68,7 @@ static int denali_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
        denali->clk_rate = 50000000;            /* 50 MHz */
        denali->clk_x_rate = 200000000;         /* 200 MHz */
 
-       ret = pci_request_regions(dev, DENALI_NAND_NAME);
+       ret = pcim_request_all_regions(dev, DENALI_NAND_NAME);
        if (ret) {
                dev_err(&dev->dev, "Spectra: Unable to request memory regions\n");
                return ret;
@@ -77,20 +77,18 @@ static int denali_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
        denali->reg = devm_ioremap(denali->dev, csr_base, csr_len);
        if (!denali->reg) {
                dev_err(&dev->dev, "Spectra: Unable to remap memory region\n");
-               ret = -ENOMEM;
-               goto regions_release;
+               return -ENOMEM;
        }
 
        denali->host = devm_ioremap(denali->dev, mem_base, mem_len);
        if (!denali->host) {
                dev_err(&dev->dev, "Spectra: ioremap failed!");
-               ret = -ENOMEM;
-               goto regions_release;
+               return -ENOMEM;
        }
 
        ret = denali_init(denali);
        if (ret)
-               goto regions_release;
+               return ret;
 
        nsels = denali->nbanks;
 
@@ -118,8 +116,6 @@ static int denali_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 
 out_remove_denali:
        denali_remove(denali);
-regions_release:
-       pci_release_regions(dev);
        return ret;
 }
 
@@ -127,7 +123,6 @@ static void denali_pci_remove(struct pci_dev *dev)
 {
        struct denali_controller *denali = pci_get_drvdata(dev);
 
-       pci_release_regions(dev);
        denali_remove(denali);
 }