]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoC: intel: atom: Use pure devres PCI
authorPhilipp Stanner <phasta@kernel.org>
Fri, 25 Apr 2025 08:17:42 +0000 (10:17 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 5 May 2025 10:32:12 +0000 (19:32 +0900)
pci_request_regions() is a hybrid function which becomes managed if
pcim_enable_device() was called before. This hybrid nature is deprecated
and should not be used anymore.

Replace pci_request_regions() with the always-managed function
pcim_request_all_regions().

Remove the call to pci_release_regions(), since pcim_ functions do
cleanup automatically.

Pass 0 as length parameter to pcim_iomap(), which is the standard way
for ioremapping an entire BAR.

Signed-off-by: Philipp Stanner <phasta@kernel.org>
Link: https://patch.msgid.link/20250425081742.61623-5-phasta@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/atom/sst/sst_pci.c

index d1e64c3500be1783aab50cc9abcb33dec6646db3..bf2330e6f5a4220830b06e627a3b97a72c9a60bd 100644 (file)
@@ -26,7 +26,7 @@ static int sst_platform_get_resources(struct intel_sst_drv *ctx)
        int ddr_base, ret = 0;
        struct pci_dev *pci = ctx->pci;
 
-       ret = pci_request_regions(pci, SST_DRV_NAME);
+       ret = pcim_request_all_regions(pci, SST_DRV_NAME);
        if (ret)
                return ret;
 
@@ -38,67 +38,57 @@ static int sst_platform_get_resources(struct intel_sst_drv *ctx)
                ddr_base = relocate_imr_addr_mrfld(ctx->ddr_base);
                if (!ctx->pdata->lib_info) {
                        dev_err(ctx->dev, "lib_info pointer NULL\n");
-                       ret = -EINVAL;
-                       goto do_release_regions;
+                       return -EINVAL;
                }
                if (ddr_base != ctx->pdata->lib_info->mod_base) {
                        dev_err(ctx->dev,
                                        "FW LSP DDR BASE does not match with IFWI\n");
-                       ret = -EINVAL;
-                       goto do_release_regions;
+                       return -EINVAL;
                }
                ctx->ddr_end = pci_resource_end(pci, 0);
 
-               ctx->ddr = pcim_iomap(pci, 0,
-                                       pci_resource_len(pci, 0));
-               if (!ctx->ddr) {
-                       ret = -EINVAL;
-                       goto do_release_regions;
-               }
+               ctx->ddr = pcim_iomap(pci, 0, 0);
+               if (!ctx->ddr)
+                       return -EINVAL;
+
                dev_dbg(ctx->dev, "sst: DDR Ptr %p\n", ctx->ddr);
        } else {
                ctx->ddr = NULL;
        }
        /* SHIM */
        ctx->shim_phy_add = pci_resource_start(pci, 1);
-       ctx->shim = pcim_iomap(pci, 1, pci_resource_len(pci, 1));
-       if (!ctx->shim) {
-               ret = -EINVAL;
-               goto do_release_regions;
-       }
+       ctx->shim = pcim_iomap(pci, 1, 0);
+       if (!ctx->shim)
+               return -EINVAL;
+
        dev_dbg(ctx->dev, "SST Shim Ptr %p\n", ctx->shim);
 
        /* Shared SRAM */
        ctx->mailbox_add = pci_resource_start(pci, 2);
-       ctx->mailbox = pcim_iomap(pci, 2, pci_resource_len(pci, 2));
-       if (!ctx->mailbox) {
-               ret = -EINVAL;
-               goto do_release_regions;
-       }
+       ctx->mailbox = pcim_iomap(pci, 2, 0);
+       if (!ctx->mailbox)
+               return -EINVAL;
+
        dev_dbg(ctx->dev, "SRAM Ptr %p\n", ctx->mailbox);
 
        /* IRAM */
        ctx->iram_end = pci_resource_end(pci, 3);
        ctx->iram_base = pci_resource_start(pci, 3);
-       ctx->iram = pcim_iomap(pci, 3, pci_resource_len(pci, 3));
-       if (!ctx->iram) {
-               ret = -EINVAL;
-               goto do_release_regions;
-       }
+       ctx->iram = pcim_iomap(pci, 3, 0);
+       if (!ctx->iram)
+               return -EINVAL;
+
        dev_dbg(ctx->dev, "IRAM Ptr %p\n", ctx->iram);
 
        /* DRAM */
        ctx->dram_end = pci_resource_end(pci, 4);
        ctx->dram_base = pci_resource_start(pci, 4);
-       ctx->dram = pcim_iomap(pci, 4, pci_resource_len(pci, 4));
-       if (!ctx->dram) {
-               ret = -EINVAL;
-               goto do_release_regions;
-       }
+       ctx->dram = pcim_iomap(pci, 4, 0);
+       if (!ctx->dram)
+               return -EINVAL;
+
        dev_dbg(ctx->dev, "DRAM Ptr %p\n", ctx->dram);
-do_release_regions:
-       pci_release_regions(pci);
-       return ret;
+       return 0;
 }
 
 /*
@@ -167,7 +157,6 @@ static void intel_sst_remove(struct pci_dev *pci)
 
        sst_context_cleanup(sst_drv_ctx);
        pci_dev_put(sst_drv_ctx->pci);
-       pci_release_regions(pci);
        pci_set_drvdata(pci, NULL);
 }