* [PATCH v2 1/11] drm: logicvc: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 2/11] drm: hdlcd: " Mukesh Ojha
` (9 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Switch to devm_of_reserved_mem_device_init() so the reserved memory
region is released automatically on probe failure or device unbind.
Replace all error paths that jumped to error_reserved_mem: with
error_early: since the manual cleanup label is no longer needed, and
remove the explicit of_reserved_mem_device_release() call in the remove
function.
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
Acked-by: Paul Kocialkowski <paulk@sys-base.io>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/logicvc/logicvc_drm.c | 21 ++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/logicvc/logicvc_drm.c b/drivers/gpu/drm/logicvc/logicvc_drm.c
index bbebf4fc7f51..d6dbe52ff0a9 100644
--- a/drivers/gpu/drm/logicvc/logicvc_drm.c
+++ b/drivers/gpu/drm/logicvc/logicvc_drm.c
@@ -306,7 +306,7 @@ static int logicvc_drm_probe(struct platform_device *pdev)
int irq;
int ret;
- ret = of_reserved_mem_device_init(dev);
+ ret = devm_of_reserved_mem_device_init(dev);
if (ret && ret != -ENODEV) {
dev_err(dev, "Failed to init memory region\n");
goto error_early;
@@ -327,14 +327,14 @@ static int logicvc_drm_probe(struct platform_device *pdev)
ret = of_address_to_resource(of_node, 0, &res);
if (ret) {
dev_err(dev, "Failed to get resource from address\n");
- goto error_reserved_mem;
+ goto error_early;
}
base = devm_ioremap_resource(dev, &res);
if (IS_ERR(base)) {
dev_err(dev, "Failed to map I/O base\n");
ret = PTR_ERR(base);
- goto error_reserved_mem;
+ goto error_early;
}
logicvc_drm_regmap_config.max_register = resource_size(&res) -
@@ -345,21 +345,21 @@ static int logicvc_drm_probe(struct platform_device *pdev)
if (IS_ERR(regmap)) {
dev_err(dev, "Failed to create regmap for I/O\n");
ret = PTR_ERR(regmap);
- goto error_reserved_mem;
+ goto error_early;
}
}
irq = platform_get_irq(pdev, 0);
if (irq < 0) {
ret = -ENODEV;
- goto error_reserved_mem;
+ goto error_early;
}
logicvc = devm_drm_dev_alloc(dev, &logicvc_drm_driver,
struct logicvc_drm, drm_dev);
if (IS_ERR(logicvc)) {
ret = PTR_ERR(logicvc);
- goto error_reserved_mem;
+ goto error_early;
}
platform_set_drvdata(pdev, logicvc);
@@ -371,7 +371,7 @@ static int logicvc_drm_probe(struct platform_device *pdev)
caps = logicvc_drm_caps_match(logicvc);
if (!caps) {
ret = -EINVAL;
- goto error_reserved_mem;
+ goto error_early;
}
logicvc->caps = caps;
@@ -382,7 +382,7 @@ static int logicvc_drm_probe(struct platform_device *pdev)
ret = logicvc_clocks_prepare(logicvc);
if (ret) {
drm_err(drm_dev, "Failed to prepare clocks\n");
- goto error_reserved_mem;
+ goto error_early;
}
ret = devm_request_irq(dev, irq, logicvc_drm_irq_handler, 0,
@@ -450,9 +450,6 @@ static int logicvc_drm_probe(struct platform_device *pdev)
error_clocks:
logicvc_clocks_unprepare(logicvc);
-error_reserved_mem:
- of_reserved_mem_device_release(dev);
-
error_early:
return ret;
}
@@ -469,8 +466,6 @@ static void logicvc_drm_remove(struct platform_device *pdev)
logicvc_mode_fini(logicvc);
logicvc_clocks_unprepare(logicvc);
-
- of_reserved_mem_device_release(dev);
}
static void logicvc_drm_shutdown(struct platform_device *pdev)
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 2/11] drm: hdlcd: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 1/11] drm: logicvc: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 3/11] drm: pl111: " Mukesh Ojha
` (8 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Switch to devm_of_reserved_mem_device_init() so the reserved memory
region is released automatically on probe failure or device unbind.
Remove the three explicit of_reserved_mem_device_release() calls in
the setup_fail error path, the bind error path, and hdlcd_drm_unbind().
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/arm/hdlcd_drv.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index 81d45f2dd6a7..67466fd441d5 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -134,7 +134,7 @@ static int hdlcd_load(struct drm_device *drm, unsigned long flags)
version & HDLCD_VERSION_MINOR_MASK);
/* Get the optional framebuffer memory resource */
- ret = of_reserved_mem_device_init(drm->dev);
+ ret = devm_of_reserved_mem_device_init(drm->dev);
if (ret && ret != -ENODEV)
return ret;
@@ -164,8 +164,6 @@ static int hdlcd_load(struct drm_device *drm, unsigned long flags)
irq_fail:
drm_crtc_cleanup(&hdlcd->crtc);
setup_fail:
- of_reserved_mem_device_release(drm->dev);
-
return ret;
}
@@ -316,7 +314,6 @@ static int hdlcd_drm_bind(struct device *dev)
of_node_put(hdlcd->crtc.port);
hdlcd->crtc.port = NULL;
hdlcd_irq_uninstall(hdlcd);
- of_reserved_mem_device_release(drm->dev);
err_free:
dev_set_drvdata(dev, NULL);
return ret;
@@ -338,7 +335,6 @@ static void hdlcd_drm_unbind(struct device *dev)
pm_runtime_put(dev);
if (pm_runtime_enabled(dev))
pm_runtime_disable(dev);
- of_reserved_mem_device_release(dev);
dev_set_drvdata(dev, NULL);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 3/11] drm: pl111: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 1/11] drm: logicvc: " Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 2/11] drm: hdlcd: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 4/11] drm: komeda: " Mukesh Ojha
` (7 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Switch to devm_of_reserved_mem_device_init() so the reserved memory
region is released automatically on probe failure or device removal.
Remove the explicit of_reserved_mem_device_release() calls in the
dev_put error path and pl111_amba_remove().
Reviewed-by: Linus Walleij <linusw@kernel.org>
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/pl111/pl111_drv.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/pl111/pl111_drv.c b/drivers/gpu/drm/pl111/pl111_drv.c
index 8ec659b3c08e..a07b17261961 100644
--- a/drivers/gpu/drm/pl111/pl111_drv.c
+++ b/drivers/gpu/drm/pl111/pl111_drv.c
@@ -255,7 +255,7 @@ static int pl111_amba_probe(struct amba_device *amba_dev,
drm->dev_private = priv;
priv->variant = variant;
- ret = of_reserved_mem_device_init(dev);
+ ret = devm_of_reserved_mem_device_init(dev);
if (!ret) {
drm_info(drm, "using device-specific reserved memory\n");
priv->use_device_memory = true;
@@ -314,7 +314,6 @@ static int pl111_amba_probe(struct amba_device *amba_dev,
dev_put:
drm_dev_put(drm);
- of_reserved_mem_device_release(dev);
return ret;
}
@@ -330,7 +329,6 @@ static void pl111_amba_remove(struct amba_device *amba_dev)
if (priv->panel)
drm_panel_bridge_remove(priv->bridge);
drm_dev_put(drm);
- of_reserved_mem_device_release(dev);
}
static void pl111_amba_shutdown(struct amba_device *amba_dev)
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 4/11] drm: komeda: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
` (2 preceding siblings ...)
2026-09-02 20:16 ` [PATCH v2 3/11] drm: pl111: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 5/11] drm: malidp: " Mukesh Ojha
` (6 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Use the devres-managed devm_of_reserved_mem_device_init() instead of
the manual of_reserved_mem_device_init()/of_reserved_mem_device_release()
pair, letting the device resource manager handle cleanup automatically.
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/arm/display/komeda/komeda_dev.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_dev.c b/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
index 9aad1d1d28ec..8016f5a68cba 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
@@ -145,7 +145,7 @@ static int komeda_parse_dt(struct device *dev, struct komeda_dev *mdev)
}
/* Get the optional framebuffer memory resource */
- ret = of_reserved_mem_device_init(dev);
+ ret = devm_of_reserved_mem_device_init(dev);
if (ret && ret != -ENODEV)
return ret;
@@ -292,8 +292,6 @@ void komeda_dev_destroy(struct komeda_dev *mdev)
mdev->n_pipelines = 0;
- of_reserved_mem_device_release(dev);
-
if (funcs && funcs->cleanup)
funcs->cleanup(mdev);
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 5/11] drm: malidp: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
` (3 preceding siblings ...)
2026-09-02 20:16 ` [PATCH v2 4/11] drm: komeda: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 6/11] drm: ingenic: " Mukesh Ojha
` (5 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Use the devres-managed devm_of_reserved_mem_device_init() instead of
the manual of_reserved_mem_device_init()/of_reserved_mem_device_release()
pair, letting the device resource manager handle cleanup automatically.
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/arm/malidp_drv.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 23fa942ae4bb..3e17513c3114 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -758,7 +758,7 @@ static int malidp_bind(struct device *dev)
return PTR_ERR(hwdev->pxlclk);
/* Get the optional framebuffer memory resource */
- ret = of_reserved_mem_device_init(dev);
+ ret = devm_of_reserved_mem_device_init(dev);
if (ret && ret != -ENODEV)
return ret;
@@ -887,7 +887,6 @@ static int malidp_bind(struct device *dev)
else
malidp_runtime_pm_suspend(dev);
dev_set_drvdata(dev, NULL);
- of_reserved_mem_device_release(dev);
return ret;
}
@@ -913,7 +912,6 @@ static void malidp_unbind(struct device *dev)
else
malidp_runtime_pm_suspend(dev);
dev_set_drvdata(dev, NULL);
- of_reserved_mem_device_release(dev);
}
static const struct component_master_ops malidp_master_ops = {
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 6/11] drm: ingenic: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
` (4 preceding siblings ...)
2026-09-02 20:16 ` [PATCH v2 5/11] drm: malidp: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 7/11] drm: kmb: " Mukesh Ojha
` (4 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Replace the hand-rolled devm wrapper (ingenic_drm_release_rmem +
devm_add_action_or_reset) with the standard
devm_of_reserved_mem_device_init(), letting the device resource
manager handle cleanup automatically.
Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
index 738a80b2550f..2c4dd6ed2d41 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
@@ -1060,11 +1060,6 @@ static void ingenic_drm_unbind_all(void *d)
component_unbind_all(priv->dev, &priv->drm);
}
-static void __maybe_unused ingenic_drm_release_rmem(void *d)
-{
- of_reserved_mem_device_release(d);
-}
-
static void ingenic_drm_configure_hwdesc(struct ingenic_drm *priv,
unsigned int hwdesc,
unsigned int next_hwdesc, u32 id)
@@ -1127,16 +1122,10 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)
}
if (IS_ENABLED(CONFIG_OF_RESERVED_MEM)) {
- ret = of_reserved_mem_device_init(dev);
+ ret = devm_of_reserved_mem_device_init(dev);
if (ret && ret != -ENODEV)
dev_warn(dev, "Failed to get reserved memory: %d\n", ret);
-
- if (!ret) {
- ret = devm_add_action_or_reset(dev, ingenic_drm_release_rmem, dev);
- if (ret)
- return ret;
- }
}
priv = devm_drm_dev_alloc(dev, &ingenic_drm_driver_data,
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 7/11] drm: kmb: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
` (5 preceding siblings ...)
2026-09-02 20:16 ` [PATCH v2 6/11] drm: ingenic: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 8/11] drm: sun4i: " Mukesh Ojha
` (3 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Use the devres-managed devm_of_reserved_mem_device_init() instead of
the manual of_reserved_mem_device_init()/of_reserved_mem_device_release()
pair, letting the device resource manager handle cleanup automatically.
Also simplify the IRQ error path since the release before init was a no-op.
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/kmb/kmb_drv.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/kmb/kmb_drv.c b/drivers/gpu/drm/kmb/kmb_drv.c
index 7c2eb1152fc2..88fe377940f3 100644
--- a/drivers/gpu/drm/kmb/kmb_drv.c
+++ b/drivers/gpu/drm/kmb/kmb_drv.c
@@ -140,13 +140,12 @@ static int kmb_hw_init(struct drm_device *drm, unsigned long flags)
/* Allocate LCD interrupt resources */
irq_lcd = platform_get_irq(pdev, 0);
if (irq_lcd < 0) {
- ret = irq_lcd;
drm_err(&kmb->drm, "irq_lcd not found");
- goto setup_fail;
+ return irq_lcd;
}
/* Get the optional framebuffer memory resource */
- ret = of_reserved_mem_device_init(drm->dev);
+ ret = devm_of_reserved_mem_device_init(drm->dev);
if (ret && ret != -ENODEV)
return ret;
@@ -155,11 +154,6 @@ static int kmb_hw_init(struct drm_device *drm, unsigned long flags)
kmb->irq_lcd = irq_lcd;
return 0;
-
- setup_fail:
- of_reserved_mem_device_release(drm->dev);
-
- return ret;
}
static const struct drm_mode_config_funcs kmb_mode_config_funcs = {
@@ -465,8 +459,6 @@ static void kmb_remove(struct platform_device *pdev)
pm_runtime_put_sync(drm->dev);
pm_runtime_disable(drm->dev);
- of_reserved_mem_device_release(drm->dev);
-
/* Release clks */
kmb_display_clk_disable(kmb);
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 8/11] drm: sun4i: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
` (6 preceding siblings ...)
2026-09-02 20:16 ` [PATCH v2 7/11] drm: kmb: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 9/11] drm: xlnx: zynqmp_dpsub: " Mukesh Ojha
` (2 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Use the devres-managed devm_of_reserved_mem_device_init() instead of
the manual of_reserved_mem_device_init()/of_reserved_mem_device_release()
pair, letting the device resource manager handle cleanup automatically.
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/sun4i/sun4i_drv.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
index e9baca360160..c24f96bdd135 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -80,7 +80,7 @@ static int sun4i_drv_bind(struct device *dev)
INIT_LIST_HEAD(&drv->engine_list);
INIT_LIST_HEAD(&drv->tcon_list);
- ret = of_reserved_mem_device_init(dev);
+ ret = devm_of_reserved_mem_device_init(dev);
if (ret && ret != -ENODEV) {
dev_err(drm->dev, "Couldn't claim our memory region\n");
goto free_drm;
@@ -125,7 +125,6 @@ static int sun4i_drv_bind(struct device *dev)
component_unbind_all(dev, NULL);
cleanup_mode_config:
drm_mode_config_cleanup(drm);
- of_reserved_mem_device_release(dev);
free_drm:
drm_dev_put(drm);
return ret;
@@ -142,7 +141,6 @@ static void sun4i_drv_unbind(struct device *dev)
drm_mode_config_cleanup(drm);
component_unbind_all(dev, NULL);
- of_reserved_mem_device_release(dev);
drm_dev_put(drm);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 9/11] drm: xlnx: zynqmp_dpsub: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
` (7 preceding siblings ...)
2026-09-02 20:16 ` [PATCH v2 8/11] drm: sun4i: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:55 ` Laurent Pinchart
2026-09-02 20:16 ` [PATCH v2 10/11] drm: aspeed: " Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 11/11] drm: arcpgu: " Mukesh Ojha
10 siblings, 1 reply; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha,
Radhey Shyam Pandey
Use the devres-managed devm_of_reserved_mem_device_init() instead of
the manual of_reserved_mem_device_init()/of_reserved_mem_device_release()
pair, letting the device resource manager handle cleanup automatically.
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
index 53ab1a2a5aaf..e93a7a299b52 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
@@ -203,7 +203,7 @@ static int zynqmp_dpsub_probe(struct platform_device *pdev)
dma_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
/* Try the reserved memory. Proceed if there's none. */
- of_reserved_mem_device_init(&pdev->dev);
+ devm_of_reserved_mem_device_init(&pdev->dev);
ret = zynqmp_dpsub_init_clocks(dpsub);
if (ret < 0)
@@ -255,7 +255,6 @@ static int zynqmp_dpsub_probe(struct platform_device *pdev)
pm_runtime_disable(&pdev->dev);
clk_disable_unprepare(dpsub->apb_clk);
err_mem:
- of_reserved_mem_device_release(&pdev->dev);
if (!dpsub->drm)
zynqmp_dpsub_release(dpsub);
return ret;
@@ -276,7 +275,6 @@ static void zynqmp_dpsub_remove(struct platform_device *pdev)
pm_runtime_disable(&pdev->dev);
clk_disable_unprepare(dpsub->apb_clk);
- of_reserved_mem_device_release(&pdev->dev);
if (!dpsub->drm)
zynqmp_dpsub_release(dpsub);
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH v2 9/11] drm: xlnx: zynqmp_dpsub: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 ` [PATCH v2 9/11] drm: xlnx: zynqmp_dpsub: " Mukesh Ojha
@ 2026-09-02 20:55 ` Laurent Pinchart
0 siblings, 0 replies; 13+ messages in thread
From: Laurent Pinchart @ 2026-09-02 20:55 UTC (permalink / raw)
To: Mukesh Ojha
Cc: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Tomi Valkeinen, Michal Simek, Ryan Chen,
Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Radhey Shyam Pandey
On Thu, Sep 03, 2026 at 01:46:38AM +0530, Mukesh Ojha wrote:
> Use the devres-managed devm_of_reserved_mem_device_init() instead of
> the manual of_reserved_mem_device_init()/of_reserved_mem_device_release()
> pair, letting the device resource manager handle cleanup automatically.
>
> Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
> index 53ab1a2a5aaf..e93a7a299b52 100644
> --- a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
> +++ b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
> @@ -203,7 +203,7 @@ static int zynqmp_dpsub_probe(struct platform_device *pdev)
> dma_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
>
> /* Try the reserved memory. Proceed if there's none. */
> - of_reserved_mem_device_init(&pdev->dev);
> + devm_of_reserved_mem_device_init(&pdev->dev);
>
> ret = zynqmp_dpsub_init_clocks(dpsub);
> if (ret < 0)
> @@ -255,7 +255,6 @@ static int zynqmp_dpsub_probe(struct platform_device *pdev)
> pm_runtime_disable(&pdev->dev);
> clk_disable_unprepare(dpsub->apb_clk);
> err_mem:
> - of_reserved_mem_device_release(&pdev->dev);
> if (!dpsub->drm)
> zynqmp_dpsub_release(dpsub);
> return ret;
> @@ -276,7 +275,6 @@ static void zynqmp_dpsub_remove(struct platform_device *pdev)
>
> pm_runtime_disable(&pdev->dev);
> clk_disable_unprepare(dpsub->apb_clk);
> - of_reserved_mem_device_release(&pdev->dev);
>
> if (!dpsub->drm)
> zynqmp_dpsub_release(dpsub);
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 10/11] drm: aspeed: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
` (8 preceding siblings ...)
2026-09-02 20:16 ` [PATCH v2 9/11] drm: xlnx: zynqmp_dpsub: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
2026-09-02 20:16 ` [PATCH v2 11/11] drm: arcpgu: " Mukesh Ojha
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Use the devres-managed devm_of_reserved_mem_device_init() to ensure
the reserved memory region is released on device removal, fixing a
missing cleanup in the original code.
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c b/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
index d4577663a1f0..2c7e54fc35d9 100644
--- a/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
+++ b/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
@@ -168,7 +168,7 @@ static int aspeed_gfx_load(struct drm_device *drm)
}
}
- ret = of_reserved_mem_device_init(drm->dev);
+ ret = devm_of_reserved_mem_device_init(drm->dev);
if (ret) {
dev_err(&pdev->dev,
"failed to initialize reserved mem: %d\n", ret);
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 11/11] drm: arcpgu: Use devm_of_reserved_mem_device_init()
2026-09-02 20:16 [PATCH v2 0/11] drm: Use devm_of_reserved_mem_device_init() Mukesh Ojha
` (9 preceding siblings ...)
2026-09-02 20:16 ` [PATCH v2 10/11] drm: aspeed: " Mukesh Ojha
@ 2026-09-02 20:16 ` Mukesh Ojha
10 siblings, 0 replies; 13+ messages in thread
From: Mukesh Ojha @ 2026-09-02 20:16 UTC (permalink / raw)
To: Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Joel Stanley, Andrew Jeffery,
Paul Cercueil, Anitha Chrisanthus, Paul Kocialkowski,
Linus Walleij, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Alexey Brodkin, Laurent Pinchart, Tomi Valkeinen, Michal Simek
Cc: Ryan Chen, Billy Tsai, dri-devel, linux-kernel, linux-aspeed,
linux-arm-kernel, linux-mips, linux-sunxi, Mukesh Ojha
Use the devres-managed devm_of_reserved_mem_device_init() to ensure
the optional reserved memory region is released on device removal,
fixing a missing cleanup in the original code.
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
drivers/gpu/drm/tiny/arcpgu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/arcpgu.c b/drivers/gpu/drm/tiny/arcpgu.c
index c93d61ac0bb7..fa01407570a8 100644
--- a/drivers/gpu/drm/tiny/arcpgu.c
+++ b/drivers/gpu/drm/tiny/arcpgu.c
@@ -278,7 +278,7 @@ static int arcpgu_load(struct arcpgu_drm_private *arcpgu)
arc_pgu_read(arcpgu, ARCPGU_REG_ID));
/* Get the optional framebuffer memory resource */
- ret = of_reserved_mem_device_init(drm->dev);
+ ret = devm_of_reserved_mem_device_init(drm->dev);
if (ret && ret != -ENODEV)
return ret;
--
2.55.0
^ permalink raw reply related [flat|nested] 13+ messages in thread