diff options
| author | Amin GATTOUT <amin.gattout@gmail.com> | 2026-03-04 18:10:42 +0100 |
|---|---|---|
| committer | Helge Deller <deller@gmx.de> | 2026-03-09 13:06:48 +0100 |
| commit | f630c79accf67ad3e0f74fdc7c705f5401bf8658 (patch) | |
| tree | 5dff4a7c618549a958ecfad968b1b4d7e399d98e | |
| parent | 8d10dd8907e1c0e619d5e785365875bb758d43ce (diff) | |
| download | lwn-f630c79accf67ad3e0f74fdc7c705f5401bf8658.tar.gz lwn-f630c79accf67ad3e0f74fdc7c705f5401bf8658.zip | |
fbdev: wmt_ge_rops: use devm_platform_ioremap_resource()
Replace the open-coded platform_get_resource() + ioremap() pair with
devm_platform_ioremap_resource(), which requests the memory region and
maps it in a single call, with automatic cleanup on device removal.
Also reset regbase to NULL in remove() so that the single-instance
guard in probe() works correctly if the device is re-probed.
Signed-off-by: Amin GATTOUT <amin.gattout@gmail.com>
Signed-off-by: Helge Deller <deller@gmx.de>
| -rw-r--r-- | drivers/video/fbdev/wmt_ge_rops.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/drivers/video/fbdev/wmt_ge_rops.c b/drivers/video/fbdev/wmt_ge_rops.c index 2bd26bfb2b46..0cf78bcadfa6 100644 --- a/drivers/video/fbdev/wmt_ge_rops.c +++ b/drivers/video/fbdev/wmt_ge_rops.c @@ -148,25 +148,15 @@ EXPORT_SYMBOL_GPL(wmt_ge_sync); static int wmt_ge_rops_probe(struct platform_device *pdev) { - struct resource *res; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (res == NULL) { - dev_err(&pdev->dev, "no I/O memory resource defined\n"); - return -ENODEV; - } - /* Only one ROP engine is presently supported. */ if (unlikely(regbase)) { WARN_ON(1); return -EBUSY; } - regbase = ioremap(res->start, resource_size(res)); - if (regbase == NULL) { - dev_err(&pdev->dev, "failed to map I/O memory\n"); - return -EBUSY; - } + regbase = devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(regbase)) + return PTR_ERR(regbase); writel(1, regbase + GE_ENABLE_OFF); printk(KERN_INFO "Enabled support for WMT GE raster acceleration\n"); @@ -176,7 +166,7 @@ static int wmt_ge_rops_probe(struct platform_device *pdev) static void wmt_ge_rops_remove(struct platform_device *pdev) { - iounmap(regbase); + regbase = NULL; } static const struct of_device_id wmt_dt_ids[] = { |
