[PATCH] EDAC/xgene: use devm_platform_ioremap_resource in probe

From: Rosen Penev

Date: Sun Jul 19 2026 - 17:12:02 EST


Replace the open-coded platform_get_resource() +
devm_ioremap_resource() pair in xgene_edac_probe() with the single
helper devm_platform_ioremap_resource(), fetching the PCP CSR mapping up
front and assigning it to edac->pcp_csr after the edac context is
allocated. The redundant struct resource and the late re-ioremap are
dropped.

Built for arm64 (CONFIG_EDAC_XGENE) with LLVM=1;
drivers/edac/xgene_edac.o compiles cleanly and passes checkpatch
--strict.

Assisted-by: opencode:hy3-free
Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
---
drivers/edac/xgene_edac.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/edac/xgene_edac.c b/drivers/edac/xgene_edac.c
index 9955396c9a52..92d1f15bdf30 100644
--- a/drivers/edac/xgene_edac.c
+++ b/drivers/edac/xgene_edac.c
@@ -1844,9 +1844,13 @@ static int xgene_edac_probe(struct platform_device *pdev)
{
struct xgene_edac *edac;
struct device_node *child;
- struct resource *res;
+ void __iomem *pcp_csr;
int rc;

+ pcp_csr = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(pcp_csr))
+ return PTR_ERR(pcp_csr);
+
edac = devm_kzalloc(&pdev->dev, sizeof(*edac), GFP_KERNEL);
if (!edac)
return -ENOMEM;
@@ -1902,13 +1906,7 @@ static int xgene_edac_probe(struct platform_device *pdev)
edac->rb_map = NULL;
}

- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- edac->pcp_csr = devm_ioremap_resource(&pdev->dev, res);
- if (IS_ERR(edac->pcp_csr)) {
- dev_err(&pdev->dev, "no PCP resource address\n");
- rc = PTR_ERR(edac->pcp_csr);
- goto out_err;
- }
+ edac->pcp_csr = pcp_csr;

if (edac_op_state == EDAC_OPSTATE_INT) {
int irq;
--
2.55.0