Skip to content

Commit 938cabc

Browse files
Philipp Stannerbroonie
authored andcommitted
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 <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 58fa9c6 commit 938cabc

File tree

1 file changed

+24
-35
lines changed

1 file changed

+24
-35
lines changed

sound/soc/intel/atom/sst/sst_pci.c

Lines changed: 24 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ static int sst_platform_get_resources(struct intel_sst_drv *ctx)
2626
int ddr_base, ret = 0;
2727
struct pci_dev *pci = ctx->pci;
2828

29-
ret = pci_request_regions(pci, SST_DRV_NAME);
29+
ret = pcim_request_all_regions(pci, SST_DRV_NAME);
3030
if (ret)
3131
return ret;
3232

@@ -38,67 +38,57 @@ static int sst_platform_get_resources(struct intel_sst_drv *ctx)
3838
ddr_base = relocate_imr_addr_mrfld(ctx->ddr_base);
3939
if (!ctx->pdata->lib_info) {
4040
dev_err(ctx->dev, "lib_info pointer NULL\n");
41-
ret = -EINVAL;
42-
goto do_release_regions;
41+
return -EINVAL;
4342
}
4443
if (ddr_base != ctx->pdata->lib_info->mod_base) {
4544
dev_err(ctx->dev,
4645
"FW LSP DDR BASE does not match with IFWI\n");
47-
ret = -EINVAL;
48-
goto do_release_regions;
46+
return -EINVAL;
4947
}
5048
ctx->ddr_end = pci_resource_end(pci, 0);
5149

52-
ctx->ddr = pcim_iomap(pci, 0,
53-
pci_resource_len(pci, 0));
54-
if (!ctx->ddr) {
55-
ret = -EINVAL;
56-
goto do_release_regions;
57-
}
50+
ctx->ddr = pcim_iomap(pci, 0, 0);
51+
if (!ctx->ddr)
52+
return -EINVAL;
53+
5854
dev_dbg(ctx->dev, "sst: DDR Ptr %p\n", ctx->ddr);
5955
} else {
6056
ctx->ddr = NULL;
6157
}
6258
/* SHIM */
6359
ctx->shim_phy_add = pci_resource_start(pci, 1);
64-
ctx->shim = pcim_iomap(pci, 1, pci_resource_len(pci, 1));
65-
if (!ctx->shim) {
66-
ret = -EINVAL;
67-
goto do_release_regions;
68-
}
60+
ctx->shim = pcim_iomap(pci, 1, 0);
61+
if (!ctx->shim)
62+
return -EINVAL;
63+
6964
dev_dbg(ctx->dev, "SST Shim Ptr %p\n", ctx->shim);
7065

7166
/* Shared SRAM */
7267
ctx->mailbox_add = pci_resource_start(pci, 2);
73-
ctx->mailbox = pcim_iomap(pci, 2, pci_resource_len(pci, 2));
74-
if (!ctx->mailbox) {
75-
ret = -EINVAL;
76-
goto do_release_regions;
77-
}
68+
ctx->mailbox = pcim_iomap(pci, 2, 0);
69+
if (!ctx->mailbox)
70+
return -EINVAL;
71+
7872
dev_dbg(ctx->dev, "SRAM Ptr %p\n", ctx->mailbox);
7973

8074
/* IRAM */
8175
ctx->iram_end = pci_resource_end(pci, 3);
8276
ctx->iram_base = pci_resource_start(pci, 3);
83-
ctx->iram = pcim_iomap(pci, 3, pci_resource_len(pci, 3));
84-
if (!ctx->iram) {
85-
ret = -EINVAL;
86-
goto do_release_regions;
87-
}
77+
ctx->iram = pcim_iomap(pci, 3, 0);
78+
if (!ctx->iram)
79+
return -EINVAL;
80+
8881
dev_dbg(ctx->dev, "IRAM Ptr %p\n", ctx->iram);
8982

9083
/* DRAM */
9184
ctx->dram_end = pci_resource_end(pci, 4);
9285
ctx->dram_base = pci_resource_start(pci, 4);
93-
ctx->dram = pcim_iomap(pci, 4, pci_resource_len(pci, 4));
94-
if (!ctx->dram) {
95-
ret = -EINVAL;
96-
goto do_release_regions;
97-
}
86+
ctx->dram = pcim_iomap(pci, 4, 0);
87+
if (!ctx->dram)
88+
return -EINVAL;
89+
9890
dev_dbg(ctx->dev, "DRAM Ptr %p\n", ctx->dram);
99-
do_release_regions:
100-
pci_release_regions(pci);
101-
return ret;
91+
return 0;
10292
}
10393

10494
/*
@@ -167,7 +157,6 @@ static void intel_sst_remove(struct pci_dev *pci)
167157

168158
sst_context_cleanup(sst_drv_ctx);
169159
pci_dev_put(sst_drv_ctx->pci);
170-
pci_release_regions(pci);
171160
pci_set_drvdata(pci, NULL);
172161
}
173162

0 commit comments

Comments
 (0)