mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-11 06:00:55 -04:00
ASoC: intel: atom: Use pure devres PCI
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>
This commit is contained in:
committed by
Mark Brown
parent
58fa9c629e
commit
938cabc603
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user