dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/18] drm/armada: Use devm_drm_dev_alloc
@ 2020-07-17  9:04 Daniel Vetter
  2020-07-17  9:04 ` [PATCH 02/18] drm/armada: Don't use drm_device->dev_private Daniel Vetter
                   ` (16 more replies)
  0 siblings, 17 replies; 19+ messages in thread
From: Daniel Vetter @ 2020-07-17  9:04 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Russell King, Daniel Vetter

Also remove the now no longer needed build bug on since that's already
not needed anymore with drmm_add_final_kfree. Conversion to managed
drm_device cleanup is easy, the final drm_dev_put() is already the
last thing in both the bind unbind as in the unbind flow.

Also, this relies on component.c correctly wrapping bind&unbind in
separate devres groups, which it does.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Russell King <linux@armlinux.org.uk>
---
 drivers/gpu/drm/armada/armada_drv.c | 26 ++++++--------------------
 1 file changed, 6 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
index 5fc25c3f445c..a8d5908b3922 100644
--- a/drivers/gpu/drm/armada/armada_drv.c
+++ b/drivers/gpu/drm/armada/armada_drv.c
@@ -87,24 +87,13 @@ static int armada_drm_bind(struct device *dev)
 				     "armada-drm"))
 		return -EBUSY;
 
-	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
-	if (!priv)
-		return -ENOMEM;
-
-	/*
-	 * The drm_device structure must be at the start of
-	 * armada_private for drm_dev_put() to work correctly.
-	 */
-	BUILD_BUG_ON(offsetof(struct armada_private, drm) != 0);
-
-	ret = drm_dev_init(&priv->drm, &armada_drm_driver, dev);
-	if (ret) {
-		dev_err(dev, "[" DRM_NAME ":%s] drm_dev_init failed: %d\n",
-			__func__, ret);
-		kfree(priv);
-		return ret;
+	priv = devm_drm_dev_alloc(dev, &armada_drm_driver,
+				  struct armada_private, drm);
+	if (IS_ERR(priv)) {
+		dev_err(dev, "[" DRM_NAME ":%s] devm_drm_dev_alloc failed: %li\n",
+			__func__, PTR_ERR(priv));
+		return PTR_ERR(priv);
 	}
-	drmm_add_final_kfree(&priv->drm, priv);
 
 	/* Remove early framebuffers */
 	ret = drm_fb_helper_remove_conflicting_framebuffers(NULL,
@@ -174,7 +163,6 @@ static int armada_drm_bind(struct device *dev)
  err_kms:
 	drm_mode_config_cleanup(&priv->drm);
 	drm_mm_takedown(&priv->linear);
-	drm_dev_put(&priv->drm);
 	return ret;
 }
 
@@ -194,8 +182,6 @@ static void armada_drm_unbind(struct device *dev)
 
 	drm_mode_config_cleanup(&priv->drm);
 	drm_mm_takedown(&priv->linear);
-
-	drm_dev_put(&priv->drm);
 }
 
 static int compare_of(struct device *dev, void *data)
-- 
2.27.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2020-07-18  0:33 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-17  9:04 [PATCH 01/18] drm/armada: Use devm_drm_dev_alloc Daniel Vetter
2020-07-17  9:04 ` [PATCH 02/18] drm/armada: Don't use drm_device->dev_private Daniel Vetter
2020-07-17  9:04 ` [PATCH 03/18] drm/arc: Switch to devm_drm_dev_alloc Daniel Vetter
2020-07-17  9:04 ` [PATCH 04/18] drm/arc: Stop using drm_device->dev_private Daniel Vetter
2020-07-17  9:04 ` [PATCH 05/18] drm/arc: Delete arcpgu_priv->fb Daniel Vetter
2020-07-17  9:04 ` [PATCH 06/18] drm/arc: Embedded a drm_simple_display_pipe Daniel Vetter
2020-07-17  9:04 ` [PATCH 07/18] drm/arc: Embedd a drm_connector for sim case Daniel Vetter
2020-07-17  9:04 ` [PATCH 08/18] drm/arc: Drop surplus connector registration Daniel Vetter
2020-07-17  9:04 ` [PATCH 09/18] drm/arc: Use drmm_mode_config_cleanup Daniel Vetter
2020-07-17  9:04 ` [PATCH 10/18] drm/arc: Align with simple pipe helpers Daniel Vetter
2020-07-17  9:04 ` [PATCH 11/18] drm/arc: Convert to drm_simple_kms_pipe_helper Daniel Vetter
2020-07-17  9:04 ` [PATCH 12/18] drm/arc: Drop crtc check in arc_pgu_update Daniel Vetter
2020-07-17  9:04 ` [PATCH 13/18] drm/arc: Inline arcpgu_crtc.c Daniel Vetter
2020-07-17  9:04 ` [PATCH 14/18] drm/arc: Inline arcpgu_drm_hdmi_init Daniel Vetter
2020-07-17  9:04 ` [PATCH 15/18] drm/arc: Inline remaining files Daniel Vetter
2020-07-17  9:04 ` [PATCH 16/18] drm/arc: Initialize sim connector before display pipe Daniel Vetter
2020-07-17  9:04 ` [PATCH 17/18] drm/arc: Move to drm/tiny Daniel Vetter
2020-07-18  0:33   ` kernel test robot
2020-07-17  9:04 ` [PATCH 18/18] drm/aspeed: Use managed drmm_mode_config_cleanup Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).