All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] Cargo cult cleanup in atomic drivers
@ 2018-01-17 21:55 Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 01/12] drm: arc: Don't set CRTC .mode_set and .mode_set_base handlers Laurent Pinchart
                   ` (14 more replies)
  0 siblings, 15 replies; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel
  Cc: Boris Brezillon, Alexey Brodkin, Liviu Dudau, Vincent Abriou,
	Mali DP Maintainers, Shawn Guo

Hello,

This patch series removes a few cargo-cult constructs from a set of atomic
drivers.

Patches 01/12 and 02/12 remove the unneeded .mode_set() and .mode_set_base()
CRTC handlers from the arc and atmel-hlcdc drivers.

Patches 03/12 to 12/12 then remove the use of drm_plane_helper_disable() from
the plane .destroy() handlers of atomic drivers, replacing them with the use
of drm_atomic_helper_shutdown() at removal time. Interleaved there are patches
04/12 and 06/12 that remove unnecessary cleanups in error paths, and patch
09/12 that adds missing cleanup.

All this has been compile-tested only.

Laurent Pinchart (12):
  drm: arc: Don't set CRTC .mode_set and .mode_set_base handlers
  drm: atmel-hlcdc: Don't set CRTC .mode_set and .mode_set_base handlers
  drm: arc: Use drm_atomic_helper_shutdown() to disable planes on
    removal
  drm: arm: hdlcd: Don't destroy plane manually in hdlcd_setup_crtc()
  drm: arm: hdlcd: Use drm_atomic_helper_shutdown() to disable planes on
    removal
  drm: arm: malidp: Don't destroy planes manually in error handlers
  drm: arm: malidp: Use drm_atomic_helper_shutdown() to disable planes
    on removal
  drm: msm: Use drm_atomic_helper_shutdown() to disable planes on
    removal
  drm: sti: Cleanup KMS objects on removal
  drm: sti: Use drm_atomic_helper_shutdown() to disable planes on
    removal
  drm: vc4: Use drm_atomic_helper_shutdown() to disable planes on
    removal
  drm: zte: Use drm_atomic_helper_shutdown() to disable planes on
    removal

 drivers/gpu/drm/arc/arcpgu_crtc.c              | 12 ++----------
 drivers/gpu/drm/arc/arcpgu_drv.c               |  1 +
 drivers/gpu/drm/arm/hdlcd_crtc.c               | 12 ++----------
 drivers/gpu/drm/arm/hdlcd_drv.c                |  1 +
 drivers/gpu/drm/arm/malidp_crtc.c              | 10 ++--------
 drivers/gpu/drm/arm/malidp_drv.c               |  2 +-
 drivers/gpu/drm/arm/malidp_drv.h               |  1 -
 drivers/gpu/drm/arm/malidp_planes.c            | 17 +----------------
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c |  2 --
 drivers/gpu/drm/msm/Kconfig                    |  1 -
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c      |  1 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c      |  1 -
 drivers/gpu/drm/msm/msm_drv.c                  |  1 +
 drivers/gpu/drm/sti/sti_cursor.c               | 10 +---------
 drivers/gpu/drm/sti/sti_drv.c                  |  2 ++
 drivers/gpu/drm/sti/sti_gdp.c                  | 10 +---------
 drivers/gpu/drm/sti/sti_hqvdp.c                | 10 +---------
 drivers/gpu/drm/vc4/Kconfig                    |  1 -
 drivers/gpu/drm/vc4/vc4_drv.c                  |  3 +++
 drivers/gpu/drm/vc4/vc4_plane.c                |  8 +-------
 drivers/gpu/drm/zte/Kconfig                    |  2 +-
 drivers/gpu/drm/zte/zx_drm_drv.c               |  1 +
 drivers/gpu/drm/zte/zx_plane.c                 |  8 +-------
 23 files changed, 23 insertions(+), 94 deletions(-)

-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 01/12] drm: arc: Don't set CRTC .mode_set and .mode_set_base handlers
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 02/12] drm: atmel-hlcdc: " Laurent Pinchart
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Alexey Brodkin

The .mode_set() and .mode_set_base() operation handlers are used by
legacy non-atomic helpers only. There's no need to set them for atomic
drivers.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/arc/arcpgu_crtc.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/gpu/drm/arc/arcpgu_crtc.c b/drivers/gpu/drm/arc/arcpgu_crtc.c
index 16903dc7fe0d..26f360ef7f91 100644
--- a/drivers/gpu/drm/arc/arcpgu_crtc.c
+++ b/drivers/gpu/drm/arc/arcpgu_crtc.c
@@ -161,8 +161,6 @@ static void arc_pgu_crtc_atomic_begin(struct drm_crtc *crtc,
 
 static const struct drm_crtc_helper_funcs arc_pgu_crtc_helper_funcs = {
 	.mode_valid	= arc_pgu_crtc_mode_valid,
-	.mode_set	= drm_helper_crtc_mode_set,
-	.mode_set_base	= drm_helper_crtc_mode_set_base,
 	.mode_set_nofb	= arc_pgu_crtc_mode_set_nofb,
 	.atomic_begin	= arc_pgu_crtc_atomic_begin,
 	.atomic_enable	= arc_pgu_crtc_atomic_enable,
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 02/12] drm: atmel-hlcdc: Don't set CRTC .mode_set and .mode_set_base handlers
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 01/12] drm: arc: Don't set CRTC .mode_set and .mode_set_base handlers Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-18  8:44   ` Boris Brezillon
  2018-01-17 21:55 ` [PATCH 03/12] drm: arc: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
                   ` (12 subsequent siblings)
  14 siblings, 1 reply; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Boris Brezillon

The .mode_set() and .mode_set_base() operation handlers are used by
legacy non-atomic helpers only. There's no need to set them for atomic
drivers.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
index d73281095fac..cbe18df06e95 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
@@ -318,9 +318,7 @@ static void atmel_hlcdc_crtc_atomic_flush(struct drm_crtc *crtc,
 
 static const struct drm_crtc_helper_funcs lcdc_crtc_helper_funcs = {
 	.mode_valid = atmel_hlcdc_crtc_mode_valid,
-	.mode_set = drm_helper_crtc_mode_set,
 	.mode_set_nofb = atmel_hlcdc_crtc_mode_set_nofb,
-	.mode_set_base = drm_helper_crtc_mode_set_base,
 	.atomic_check = atmel_hlcdc_crtc_atomic_check,
 	.atomic_begin = atmel_hlcdc_crtc_atomic_begin,
 	.atomic_flush = atmel_hlcdc_crtc_atomic_flush,
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 03/12] drm: arc: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 01/12] drm: arc: Don't set CRTC .mode_set and .mode_set_base handlers Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 02/12] drm: atmel-hlcdc: " Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 04/12] drm: arm: hdlcd: Don't destroy plane manually in hdlcd_setup_crtc() Laurent Pinchart
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Alexey Brodkin

The plane cleanup handler currently calls drm_plane_helper_disable(),
which is a legacy helper function. Replace it with a call to
drm_atomic_helper_shutdown() at removal time. The plane .destroy()
handler now consisting only of a call to drm_plane_cleanup(), replace it
with direct calls to that function.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/arc/arcpgu_crtc.c | 10 ++--------
 drivers/gpu/drm/arc/arcpgu_drv.c  |  1 +
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/arc/arcpgu_crtc.c b/drivers/gpu/drm/arc/arcpgu_crtc.c
index 26f360ef7f91..6e7036a5f6df 100644
--- a/drivers/gpu/drm/arc/arcpgu_crtc.c
+++ b/drivers/gpu/drm/arc/arcpgu_crtc.c
@@ -185,16 +185,10 @@ static const struct drm_plane_helper_funcs arc_pgu_plane_helper_funcs = {
 	.atomic_update = arc_pgu_plane_atomic_update,
 };
 
-static void arc_pgu_plane_destroy(struct drm_plane *plane)
-{
-	drm_plane_helper_disable(plane);
-	drm_plane_cleanup(plane);
-}
-
 static const struct drm_plane_funcs arc_pgu_plane_funcs = {
 	.update_plane		= drm_atomic_helper_update_plane,
 	.disable_plane		= drm_atomic_helper_disable_plane,
-	.destroy		= arc_pgu_plane_destroy,
+	.destroy		= drm_plane_cleanup,
 	.reset			= drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_plane_destroy_state,
@@ -240,7 +234,7 @@ int arc_pgu_setup_crtc(struct drm_device *drm)
 	ret = drm_crtc_init_with_planes(drm, &arcpgu->crtc, primary, NULL,
 					&arc_pgu_crtc_funcs, NULL);
 	if (ret) {
-		arc_pgu_plane_destroy(primary);
+		drm_plane_cleanup(primary);
 		return ret;
 	}
 
diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
index f067de4e1e82..e85e3a349f24 100644
--- a/drivers/gpu/drm/arc/arcpgu_drv.c
+++ b/drivers/gpu/drm/arc/arcpgu_drv.c
@@ -134,6 +134,7 @@ static int arcpgu_unload(struct drm_device *drm)
 		arcpgu->fbdev = NULL;
 	}
 	drm_kms_helper_poll_fini(drm);
+	drm_atomic_helper_shutdown(drm);
 	drm_mode_config_cleanup(drm);
 
 	return 0;
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 04/12] drm: arm: hdlcd: Don't destroy plane manually in hdlcd_setup_crtc()
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (2 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 03/12] drm: arc: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 05/12] drm: arm: hdlcd: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Mali DP Maintainers, Liviu Dudau

The top-level error handler calls drm_mode_config_cleanup() which will
destroy all planes. There's no need to destroy them manually in lower
error handlers.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/arm/hdlcd_crtc.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c b/drivers/gpu/drm/arm/hdlcd_crtc.c
index 630721f429f7..f7e52ab622f3 100644
--- a/drivers/gpu/drm/arm/hdlcd_crtc.c
+++ b/drivers/gpu/drm/arm/hdlcd_crtc.c
@@ -338,10 +338,8 @@ int hdlcd_setup_crtc(struct drm_device *drm)
 
 	ret = drm_crtc_init_with_planes(drm, &hdlcd->crtc, primary, NULL,
 					&hdlcd_crtc_funcs, NULL);
-	if (ret) {
-		hdlcd_plane_destroy(primary);
+	if (ret)
 		return ret;
-	}
 
 	drm_crtc_helper_add(&hdlcd->crtc, &hdlcd_crtc_helper_funcs);
 	return 0;
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 05/12] drm: arm: hdlcd: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (3 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 04/12] drm: arm: hdlcd: Don't destroy plane manually in hdlcd_setup_crtc() Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 06/12] drm: arm: malidp: Don't destroy planes manually in error handlers Laurent Pinchart
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Mali DP Maintainers, Liviu Dudau

The plane cleanup handler currently calls drm_plane_helper_disable(),
which is a legacy helper function. Replace it with a call to
drm_atomic_helper_shutdown() at removal time. The plane .destroy()
handler now consisting only of a call to drm_plane_cleanup(), replace it
with direct calls to that function.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/arm/hdlcd_crtc.c | 8 +-------
 drivers/gpu/drm/arm/hdlcd_drv.c  | 1 +
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c b/drivers/gpu/drm/arm/hdlcd_crtc.c
index f7e52ab622f3..6a57f96c696f 100644
--- a/drivers/gpu/drm/arm/hdlcd_crtc.c
+++ b/drivers/gpu/drm/arm/hdlcd_crtc.c
@@ -284,16 +284,10 @@ static const struct drm_plane_helper_funcs hdlcd_plane_helper_funcs = {
 	.atomic_update = hdlcd_plane_atomic_update,
 };
 
-static void hdlcd_plane_destroy(struct drm_plane *plane)
-{
-	drm_plane_helper_disable(plane);
-	drm_plane_cleanup(plane);
-}
-
 static const struct drm_plane_funcs hdlcd_plane_funcs = {
 	.update_plane		= drm_atomic_helper_update_plane,
 	.disable_plane		= drm_atomic_helper_disable_plane,
-	.destroy		= hdlcd_plane_destroy,
+	.destroy		= drm_plane_cleanup,
 	.reset			= drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index feaa8bc3d7b7..e6a6bb119ea8 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -379,6 +379,7 @@ static void hdlcd_drm_unbind(struct device *dev)
 	pm_runtime_put_sync(drm->dev);
 	pm_runtime_disable(drm->dev);
 	of_reserved_mem_device_release(drm->dev);
+	drm_atomic_helper_shutdown(drm);
 	drm_mode_config_cleanup(drm);
 	drm_dev_put(drm);
 	drm->dev_private = NULL;
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 06/12] drm: arm: malidp: Don't destroy planes manually in error handlers
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (4 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 05/12] drm: arm: hdlcd: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 07/12] drm: arm: malidp: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Mali DP Maintainers, Liviu Dudau

The top-level error handler calls drm_mode_config_cleanup() which will
destroy all planes. There's no need to destroy them manually in lower
error handlers.

As plane cleanup is now handled entirely by drm_mode_config_cleanup(),
we must ensure that the plane .destroy() handler frees allocated memory
for the plane object that was freed by malidp_de_planes_destroy(). Do so
by replacing the call to devm_kfree() in the .destroy() handler by
kfree(). devm_kfree() is currently a no-op as the plane memory is
allocated with kzalloc(), not devm_kzalloc().

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/arm/malidp_crtc.c   | 10 ++--------
 drivers/gpu/drm/arm/malidp_drv.c    |  1 -
 drivers/gpu/drm/arm/malidp_drv.h    |  1 -
 drivers/gpu/drm/arm/malidp_planes.c | 13 +------------
 4 files changed, 3 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c
index 904fff80917b..f0fb2aa153a1 100644
--- a/drivers/gpu/drm/arm/malidp_crtc.c
+++ b/drivers/gpu/drm/arm/malidp_crtc.c
@@ -525,14 +525,13 @@ int malidp_crtc_init(struct drm_device *drm)
 
 	if (!primary) {
 		DRM_ERROR("no primary plane found\n");
-		ret = -EINVAL;
-		goto crtc_cleanup_planes;
+		return -EINVAL;
 	}
 
 	ret = drm_crtc_init_with_planes(drm, &malidp->crtc, primary, NULL,
 					&malidp_crtc_funcs, NULL);
 	if (ret)
-		goto crtc_cleanup_planes;
+		return ret;
 
 	drm_crtc_helper_add(&malidp->crtc, &malidp_crtc_helper_funcs);
 	drm_mode_crtc_set_gamma_size(&malidp->crtc, MALIDP_GAMMA_LUT_SIZE);
@@ -542,9 +541,4 @@ int malidp_crtc_init(struct drm_device *drm)
 	malidp_se_set_enh_coeffs(malidp->dev);
 
 	return 0;
-
-crtc_cleanup_planes:
-	malidp_de_planes_destroy(drm);
-
-	return ret;
 }
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 3d82712d8002..0711279e836f 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -276,7 +276,6 @@ static int malidp_init(struct drm_device *drm)
 
 static void malidp_fini(struct drm_device *drm)
 {
-	malidp_de_planes_destroy(drm);
 	drm_mode_config_cleanup(drm);
 }
 
diff --git a/drivers/gpu/drm/arm/malidp_drv.h b/drivers/gpu/drm/arm/malidp_drv.h
index e0d12c9fc6b8..7f6ef0a040f7 100644
--- a/drivers/gpu/drm/arm/malidp_drv.h
+++ b/drivers/gpu/drm/arm/malidp_drv.h
@@ -59,7 +59,6 @@ struct malidp_crtc_state {
 #define to_malidp_crtc_state(x) container_of(x, struct malidp_crtc_state, base)
 
 int malidp_de_planes_init(struct drm_device *drm);
-void malidp_de_planes_destroy(struct drm_device *drm);
 int malidp_crtc_init(struct drm_device *drm);
 
 /* often used combination of rotational bits */
diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
index 33c5ef96ced0..d883d28d5d9d 100644
--- a/drivers/gpu/drm/arm/malidp_planes.c
+++ b/drivers/gpu/drm/arm/malidp_planes.c
@@ -61,7 +61,7 @@ static void malidp_de_plane_destroy(struct drm_plane *plane)
 
 	drm_plane_helper_disable(plane);
 	drm_plane_cleanup(plane);
-	devm_kfree(plane->dev->dev, mp);
+	kfree(mp);
 }
 
 /*
@@ -427,18 +427,7 @@ int malidp_de_planes_init(struct drm_device *drm)
 	return 0;
 
 cleanup:
-	malidp_de_planes_destroy(drm);
 	kfree(formats);
 
 	return ret;
 }
-
-void malidp_de_planes_destroy(struct drm_device *drm)
-{
-	struct drm_plane *p, *pt;
-
-	list_for_each_entry_safe(p, pt, &drm->mode_config.plane_list, head) {
-		drm_plane_cleanup(p);
-		kfree(p);
-	}
-}
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 07/12] drm: arm: malidp: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (5 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 06/12] drm: arm: malidp: Don't destroy planes manually in error handlers Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-19 15:48   ` Liviu Dudau
  2018-01-17 21:55 ` [PATCH 08/12] drm: msm: " Laurent Pinchart
                   ` (7 subsequent siblings)
  14 siblings, 1 reply; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Mali DP Maintainers, Liviu Dudau

The plane cleanup handler currently calls drm_plane_helper_disable(),
which is a legacy helper function. Replace it with a call to
drm_atomic_helper_shutdown() at removal time.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/arm/malidp_drv.c    | 1 +
 drivers/gpu/drm/arm/malidp_planes.c | 4 ----
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 0711279e836f..5d037ea576c7 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -276,6 +276,7 @@ static int malidp_init(struct drm_device *drm)
 
 static void malidp_fini(struct drm_device *drm)
 {
+	drm_atomic_helper_shutdown(drm);
 	drm_mode_config_cleanup(drm);
 }
 
diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
index d883d28d5d9d..2bc1264ec73a 100644
--- a/drivers/gpu/drm/arm/malidp_planes.c
+++ b/drivers/gpu/drm/arm/malidp_planes.c
@@ -56,10 +56,6 @@ static void malidp_de_plane_destroy(struct drm_plane *plane)
 {
 	struct malidp_plane *mp = to_malidp_plane(plane);
 
-	if (mp->base.fb)
-		drm_framebuffer_put(mp->base.fb);
-
-	drm_plane_helper_disable(plane);
 	drm_plane_cleanup(plane);
 	kfree(mp);
 }
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 08/12] drm: msm: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (6 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 07/12] drm: arm: malidp: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-19  4:51   ` Archit Taneja
  2018-01-17 21:55 ` [PATCH 09/12] drm: sti: Cleanup KMS objects " Laurent Pinchart
                   ` (6 subsequent siblings)
  14 siblings, 1 reply; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel

The plane cleanup handler currently calls drm_plane_helper_disable(),
which is a legacy helper function. Replace it with a call to
drm_atomic_helper_shutdown() at removal time.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 1 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 1 -
 drivers/gpu/drm/msm/msm_drv.c             | 1 +
 3 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
index 7a1ad3af08e3..db356d22ef15 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
@@ -68,7 +68,6 @@ static void mdp4_plane_destroy(struct drm_plane *plane)
 {
 	struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane);
 
-	drm_plane_helper_disable(plane);
 	drm_plane_cleanup(plane);
 
 	kfree(mdp4_plane);
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
index 29678876fc09..986684e33a03 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
@@ -46,7 +46,6 @@ static void mdp5_plane_destroy(struct drm_plane *plane)
 {
 	struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
 
-	drm_plane_helper_disable(plane);
 	drm_plane_cleanup(plane);
 
 	kfree(mdp5_plane);
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index d90ef1d78a1b..4ba48e5acbe9 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -233,6 +233,7 @@ static int msm_drm_uninit(struct device *dev)
 	if (fbdev && priv->fbdev)
 		msm_fbdev_free(ddev);
 #endif
+	drm_atomic_helper_shutdown(ddev);
 	drm_mode_config_cleanup(ddev);
 
 	pm_runtime_get_sync(dev);
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 09/12] drm: sti: Cleanup KMS objects on removal
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (7 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 08/12] drm: msm: " Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 10/12] drm: sti: Use drm_atomic_helper_shutdown() to disable planes " Laurent Pinchart
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Vincent Abriou

Call the drm_mode_config_cleanup() function on removal to ensure that
all KMS objects are properly cleaned up and destroyed.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/sti/sti_drv.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index 55b6967d27e1..9c3a000fab5e 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -276,6 +276,7 @@ static void sti_unbind(struct device *dev)
 	struct drm_device *ddev = dev_get_drvdata(dev);
 
 	drm_dev_unregister(ddev);
+	drm_mode_config_cleanup(ddev);
 	sti_cleanup(ddev);
 	drm_dev_unref(ddev);
 }
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 10/12] drm: sti: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (8 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 09/12] drm: sti: Cleanup KMS objects " Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-17 21:55 ` [PATCH 11/12] drm: vc4: " Laurent Pinchart
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Vincent Abriou

The plane cleanup handlers currently call drm_plane_helper_disable(),
which is a legacy helper function. Replace it with a call to
drm_atomic_helper_shutdown() at removal time. The plane .destroy()
handlers now consisting only of a call to drm_plane_cleanup(), replace
them with direct calls to that function.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/sti/sti_cursor.c | 10 +---------
 drivers/gpu/drm/sti/sti_drv.c    |  1 +
 drivers/gpu/drm/sti/sti_gdp.c    | 10 +---------
 drivers/gpu/drm/sti/sti_hqvdp.c  | 10 +---------
 4 files changed, 4 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
index df0a282b9615..e1ba253055c7 100644
--- a/drivers/gpu/drm/sti/sti_cursor.c
+++ b/drivers/gpu/drm/sti/sti_cursor.c
@@ -328,14 +328,6 @@ static const struct drm_plane_helper_funcs sti_cursor_helpers_funcs = {
 	.atomic_disable = sti_cursor_atomic_disable,
 };
 
-static void sti_cursor_destroy(struct drm_plane *drm_plane)
-{
-	DRM_DEBUG_DRIVER("\n");
-
-	drm_plane_helper_disable(drm_plane);
-	drm_plane_cleanup(drm_plane);
-}
-
 static int sti_cursor_late_register(struct drm_plane *drm_plane)
 {
 	struct sti_plane *plane = to_sti_plane(drm_plane);
@@ -347,7 +339,7 @@ static int sti_cursor_late_register(struct drm_plane *drm_plane)
 static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.destroy = sti_cursor_destroy,
+	.destroy = drm_plane_cleanup,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index 9c3a000fab5e..711ea09f5754 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -276,6 +276,7 @@ static void sti_unbind(struct device *dev)
 	struct drm_device *ddev = dev_get_drvdata(dev);
 
 	drm_dev_unregister(ddev);
+	drm_atomic_helper_shutdown(ddev);
 	drm_mode_config_cleanup(ddev);
 	sti_cleanup(ddev);
 	drm_dev_unref(ddev);
diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
index 9b2c47051b51..73b5c8985998 100644
--- a/drivers/gpu/drm/sti/sti_gdp.c
+++ b/drivers/gpu/drm/sti/sti_gdp.c
@@ -875,14 +875,6 @@ static const struct drm_plane_helper_funcs sti_gdp_helpers_funcs = {
 	.atomic_disable = sti_gdp_atomic_disable,
 };
 
-static void sti_gdp_destroy(struct drm_plane *drm_plane)
-{
-	DRM_DEBUG_DRIVER("\n");
-
-	drm_plane_helper_disable(drm_plane);
-	drm_plane_cleanup(drm_plane);
-}
-
 static int sti_gdp_late_register(struct drm_plane *drm_plane)
 {
 	struct sti_plane *plane = to_sti_plane(drm_plane);
@@ -894,7 +886,7 @@ static int sti_gdp_late_register(struct drm_plane *drm_plane)
 static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.destroy = sti_gdp_destroy,
+	.destroy = drm_plane_cleanup,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
index 106be8c4e58b..065a5b08a702 100644
--- a/drivers/gpu/drm/sti/sti_hqvdp.c
+++ b/drivers/gpu/drm/sti/sti_hqvdp.c
@@ -1256,14 +1256,6 @@ static const struct drm_plane_helper_funcs sti_hqvdp_helpers_funcs = {
 	.atomic_disable = sti_hqvdp_atomic_disable,
 };
 
-static void sti_hqvdp_destroy(struct drm_plane *drm_plane)
-{
-	DRM_DEBUG_DRIVER("\n");
-
-	drm_plane_helper_disable(drm_plane);
-	drm_plane_cleanup(drm_plane);
-}
-
 static int sti_hqvdp_late_register(struct drm_plane *drm_plane)
 {
 	struct sti_plane *plane = to_sti_plane(drm_plane);
@@ -1275,7 +1267,7 @@ static int sti_hqvdp_late_register(struct drm_plane *drm_plane)
 static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.destroy = sti_hqvdp_destroy,
+	.destroy = drm_plane_cleanup,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 11/12] drm: vc4: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (9 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 10/12] drm: sti: Use drm_atomic_helper_shutdown() to disable planes " Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-01-18  5:44   ` Eric Anholt
                     ` (2 more replies)
  2018-01-17 21:55 ` [PATCH 12/12] drm: zte: " Laurent Pinchart
                   ` (3 subsequent siblings)
  14 siblings, 3 replies; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel

The plane cleanup handler currently calls drm_plane_helper_disable(),
which is a legacy helper function. Replace it with a call to
drm_atomic_helper_shutdown() at removal time. The plane .destroy()
handler now consisting only of a call to drm_plane_cleanup(), replace it
with direct calls to that function.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/msm/Kconfig     | 1 -
 drivers/gpu/drm/vc4/Kconfig     | 1 -
 drivers/gpu/drm/vc4/vc4_drv.c   | 3 +++
 drivers/gpu/drm/vc4/vc4_plane.c | 8 +-------
 drivers/gpu/drm/zte/Kconfig     | 2 +-
 5 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
index 99d39b2aefa6..d6b0685ca129 100644
--- a/drivers/gpu/drm/msm/Kconfig
+++ b/drivers/gpu/drm/msm/Kconfig
@@ -2,7 +2,6 @@
 config DRM_MSM
 	tristate "MSM DRM"
 	depends on DRM
-	depends on ARCH_QCOM || (ARM && COMPILE_TEST)
 	depends on OF && COMMON_CLK
 	depends on MMU
 	select QCOM_MDT_LOADER if ARCH_QCOM
diff --git a/drivers/gpu/drm/vc4/Kconfig b/drivers/gpu/drm/vc4/Kconfig
index fdae18aeab4f..412d7a06f0db 100644
--- a/drivers/gpu/drm/vc4/Kconfig
+++ b/drivers/gpu/drm/vc4/Kconfig
@@ -1,6 +1,5 @@
 config DRM_VC4
 	tristate "Broadcom VC4 Graphics"
-	depends on ARCH_BCM || ARCH_BCM2835 || COMPILE_TEST
 	depends on DRM
 	depends on SND && SND_SOC
 	depends on COMMON_CLK
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index ceb385fd69c5..ed2c1c233c39 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -31,6 +31,7 @@
 #include <linux/of_platform.h>
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
+#include <drm/drm_atomic_helper.h>
 #include <drm/drm_fb_cma_helper.h>
 #include <drm/drm_fb_helper.h>
 
@@ -299,6 +300,8 @@ static void vc4_drm_unbind(struct device *dev)
 
 	drm_fb_cma_fbdev_fini(drm);
 
+	drm_atomic_helper_shutdown(drm);
+
 	drm_mode_config_cleanup(drm);
 
 	drm_dev_unref(drm);
diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
index 515f97997624..9fcc55078ff7 100644
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -825,12 +825,6 @@ static const struct drm_plane_helper_funcs vc4_plane_helper_funcs = {
 	.cleanup_fb = vc4_cleanup_fb,
 };
 
-static void vc4_plane_destroy(struct drm_plane *plane)
-{
-	drm_plane_helper_disable(plane);
-	drm_plane_cleanup(plane);
-}
-
 /* Implements immediate (non-vblank-synced) updates of the cursor
  * position, or falls back to the atomic helper otherwise.
  */
@@ -910,7 +904,7 @@ vc4_update_plane(struct drm_plane *plane,
 static const struct drm_plane_funcs vc4_plane_funcs = {
 	.update_plane = vc4_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.destroy = vc4_plane_destroy,
+	.destroy = drm_plane_cleanup,
 	.set_property = NULL,
 	.reset = vc4_plane_reset,
 	.atomic_duplicate_state = vc4_plane_duplicate_state,
diff --git a/drivers/gpu/drm/zte/Kconfig b/drivers/gpu/drm/zte/Kconfig
index 5b36421ef3e5..76d63bcc5c3a 100644
--- a/drivers/gpu/drm/zte/Kconfig
+++ b/drivers/gpu/drm/zte/Kconfig
@@ -1,6 +1,6 @@
 config DRM_ZTE
 	tristate "DRM Support for ZTE SoCs"
-	depends on DRM && ARCH_ZX
+	depends on DRM
 	select DRM_KMS_CMA_HELPER
 	select DRM_KMS_FB_HELPER
 	select DRM_KMS_HELPER
-- 
Regards,

Laurent Pinchart

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

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

* [PATCH 12/12] drm: zte: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (10 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 11/12] drm: vc4: " Laurent Pinchart
@ 2018-01-17 21:55 ` Laurent Pinchart
  2018-02-02  7:48   ` Shawn Guo
  2018-01-18 17:32 ` [PATCH 00/12] Cargo cult cleanup in atomic drivers Liviu Dudau
                   ` (2 subsequent siblings)
  14 siblings, 1 reply; 23+ messages in thread
From: Laurent Pinchart @ 2018-01-17 21:55 UTC (permalink / raw)
  To: dri-devel; +Cc: Shawn Guo

The plane cleanup handler currently calls drm_plane_helper_disable(),
which is a legacy helper function. Replace it with a call to
drm_atomic_helper_shutdown() at removal time. The plane .destroy()
handler now consisting only of a call to drm_plane_cleanup(), replace it
with direct calls to that function.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/zte/zx_drm_drv.c | 1 +
 drivers/gpu/drm/zte/zx_plane.c   | 8 +-------
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/zte/zx_drm_drv.c b/drivers/gpu/drm/zte/zx_drm_drv.c
index 6f4205e80378..380c41d7dd9a 100644
--- a/drivers/gpu/drm/zte/zx_drm_drv.c
+++ b/drivers/gpu/drm/zte/zx_drm_drv.c
@@ -133,6 +133,7 @@ static void zx_drm_unbind(struct device *dev)
 	drm_dev_unregister(drm);
 	drm_fb_cma_fbdev_fini(drm);
 	drm_kms_helper_poll_fini(drm);
+	drm_atomic_helper_shutdown(drm);
 	drm_mode_config_cleanup(drm);
 	component_unbind_all(dev, drm);
 	dev_set_drvdata(dev, NULL);
diff --git a/drivers/gpu/drm/zte/zx_plane.c b/drivers/gpu/drm/zte/zx_plane.c
index 68fd2e2dc78a..9d2aed9d7e2e 100644
--- a/drivers/gpu/drm/zte/zx_plane.c
+++ b/drivers/gpu/drm/zte/zx_plane.c
@@ -457,16 +457,10 @@ static const struct drm_plane_helper_funcs zx_gl_plane_helper_funcs = {
 	.atomic_disable = zx_plane_atomic_disable,
 };
 
-static void zx_plane_destroy(struct drm_plane *plane)
-{
-	drm_plane_helper_disable(plane);
-	drm_plane_cleanup(plane);
-}
-
 static const struct drm_plane_funcs zx_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.destroy = zx_plane_destroy,
+	.destroy = drm_plane_cleanup,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
-- 
Regards,

Laurent Pinchart

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

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

* Re: [PATCH 11/12] drm: vc4: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 ` [PATCH 11/12] drm: vc4: " Laurent Pinchart
@ 2018-01-18  5:44   ` Eric Anholt
  2018-01-20 11:54   ` kbuild test robot
  2018-01-20 12:03   ` kbuild test robot
  2 siblings, 0 replies; 23+ messages in thread
From: Eric Anholt @ 2018-01-18  5:44 UTC (permalink / raw)
  To: Laurent Pinchart, dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 566 bytes --]

Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> writes:

> The plane cleanup handler currently calls drm_plane_helper_disable(),
> which is a legacy helper function. Replace it with a call to
> drm_atomic_helper_shutdown() at removal time. The plane .destroy()
> handler now consisting only of a call to drm_plane_cleanup(), replace it
> with direct calls to that function.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

Looks like debug changes to Kconfigs slipped in.  Other than that, the
actual change sounds good.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

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

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

* Re: [PATCH 02/12] drm: atmel-hlcdc: Don't set CRTC .mode_set and .mode_set_base handlers
  2018-01-17 21:55 ` [PATCH 02/12] drm: atmel-hlcdc: " Laurent Pinchart
@ 2018-01-18  8:44   ` Boris Brezillon
  0 siblings, 0 replies; 23+ messages in thread
From: Boris Brezillon @ 2018-01-18  8:44 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: dri-devel

On Wed, 17 Jan 2018 23:55:25 +0200
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> wrote:

> The .mode_set() and .mode_set_base() operation handlers are used by
> legacy non-atomic helpers only. There's no need to set them for atomic
> drivers.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>

> ---
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> index d73281095fac..cbe18df06e95 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> @@ -318,9 +318,7 @@ static void atmel_hlcdc_crtc_atomic_flush(struct drm_crtc *crtc,
>  
>  static const struct drm_crtc_helper_funcs lcdc_crtc_helper_funcs = {
>  	.mode_valid = atmel_hlcdc_crtc_mode_valid,
> -	.mode_set = drm_helper_crtc_mode_set,
>  	.mode_set_nofb = atmel_hlcdc_crtc_mode_set_nofb,
> -	.mode_set_base = drm_helper_crtc_mode_set_base,
>  	.atomic_check = atmel_hlcdc_crtc_atomic_check,
>  	.atomic_begin = atmel_hlcdc_crtc_atomic_begin,
>  	.atomic_flush = atmel_hlcdc_crtc_atomic_flush,

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

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

* Re: [PATCH 00/12] Cargo cult cleanup in atomic drivers
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (11 preceding siblings ...)
  2018-01-17 21:55 ` [PATCH 12/12] drm: zte: " Laurent Pinchart
@ 2018-01-18 17:32 ` Liviu Dudau
  2018-01-18 18:00 ` Alexey Brodkin
  2018-01-19 15:00 ` Benjamin Gaignard
  14 siblings, 0 replies; 23+ messages in thread
From: Liviu Dudau @ 2018-01-18 17:32 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Boris Brezillon, Vincent Abriou, Alexey Brodkin, dri-devel,
	Mali DP Maintainers, Shawn Guo

On Wed, Jan 17, 2018 at 11:55:23PM +0200, Laurent Pinchart wrote:
> Hello,

Hi Laurent,

> 
> This patch series removes a few cargo-cult constructs from a set of atomic
> drivers.
> 
> Patches 01/12 and 02/12 remove the unneeded .mode_set() and .mode_set_base()
> CRTC handlers from the arc and atmel-hlcdc drivers.
> 
> Patches 03/12 to 12/12 then remove the use of drm_plane_helper_disable() from
> the plane .destroy() handlers of atomic drivers, replacing them with the use
> of drm_atomic_helper_shutdown() at removal time. Interleaved there are patches
> 04/12 and 06/12 that remove unnecessary cleanups in error paths, and patch
> 09/12 that adds missing cleanup.

Thanks for the cleanup!

> 
> All this has been compile-tested only.

And I was trying to test the patches today but I've made the foolish
decision to update the firmware on my Juno board first :( I hope to
finish the testing tomorrow.

> 
> Laurent Pinchart (12):
>   drm: arc: Don't set CRTC .mode_set and .mode_set_base handlers
>   drm: atmel-hlcdc: Don't set CRTC .mode_set and .mode_set_base handlers
>   drm: arc: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: arm: hdlcd: Don't destroy plane manually in hdlcd_setup_crtc()
>   drm: arm: hdlcd: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: arm: malidp: Don't destroy planes manually in error handlers
>   drm: arm: malidp: Use drm_atomic_helper_shutdown() to disable planes
>     on removal
>   drm: msm: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: sti: Cleanup KMS objects on removal
>   drm: sti: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: vc4: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: zte: Use drm_atomic_helper_shutdown() to disable planes on
>     removal

Anyway, for the hdlcd and malidp patches in the series:

Acked-by: Liviu Dudau <liviu.dudau@arm.com>

If you need me to get the driver patches into my trees let me know.

Best regards,
Liviu

> 
>  drivers/gpu/drm/arc/arcpgu_crtc.c              | 12 ++----------
>  drivers/gpu/drm/arc/arcpgu_drv.c               |  1 +
>  drivers/gpu/drm/arm/hdlcd_crtc.c               | 12 ++----------
>  drivers/gpu/drm/arm/hdlcd_drv.c                |  1 +
>  drivers/gpu/drm/arm/malidp_crtc.c              | 10 ++--------
>  drivers/gpu/drm/arm/malidp_drv.c               |  2 +-
>  drivers/gpu/drm/arm/malidp_drv.h               |  1 -
>  drivers/gpu/drm/arm/malidp_planes.c            | 17 +----------------
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c |  2 --
>  drivers/gpu/drm/msm/Kconfig                    |  1 -
>  drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c      |  1 -
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c      |  1 -
>  drivers/gpu/drm/msm/msm_drv.c                  |  1 +
>  drivers/gpu/drm/sti/sti_cursor.c               | 10 +---------
>  drivers/gpu/drm/sti/sti_drv.c                  |  2 ++
>  drivers/gpu/drm/sti/sti_gdp.c                  | 10 +---------
>  drivers/gpu/drm/sti/sti_hqvdp.c                | 10 +---------
>  drivers/gpu/drm/vc4/Kconfig                    |  1 -
>  drivers/gpu/drm/vc4/vc4_drv.c                  |  3 +++
>  drivers/gpu/drm/vc4/vc4_plane.c                |  8 +-------
>  drivers/gpu/drm/zte/Kconfig                    |  2 +-
>  drivers/gpu/drm/zte/zx_drm_drv.c               |  1 +
>  drivers/gpu/drm/zte/zx_plane.c                 |  8 +-------
>  23 files changed, 23 insertions(+), 94 deletions(-)
> 
> -- 
> Regards,
> 
> Laurent Pinchart
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 00/12] Cargo cult cleanup in atomic drivers
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (12 preceding siblings ...)
  2018-01-18 17:32 ` [PATCH 00/12] Cargo cult cleanup in atomic drivers Liviu Dudau
@ 2018-01-18 18:00 ` Alexey Brodkin
  2018-01-19 15:00 ` Benjamin Gaignard
  14 siblings, 0 replies; 23+ messages in thread
From: Alexey Brodkin @ 2018-01-18 18:00 UTC (permalink / raw)
  To: laurent.pinchart+renesas
  Cc: boris.brezillon, shawnguo, liviu.dudau, dri-devel, malidp,
	vincent.abriou

Hi Laurent,

On Wed, 2018-01-17 at 23:55 +0200, Laurent Pinchart wrote:
> Hello,
> 
> This patch series removes a few cargo-cult constructs from a set of atomic
> drivers.
> 
> Patches 01/12 and 02/12 remove the unneeded .mode_set() and .mode_set_base()
> CRTC handlers from the arc and atmel-hlcdc drivers.
> 
> Patches 03/12 to 12/12 then remove the use of drm_plane_helper_disable() from
> the plane .destroy() handlers of atomic drivers, replacing them with the use
> of drm_atomic_helper_shutdown() at removal time. Interleaved there are patches
> 04/12 and 06/12 that remove unnecessary cleanups in error paths, and patch
> 09/12 that adds missing cleanup.
> 
> All this has been compile-tested only.

I'd like to test it on ARC boards and so wondering if there's a git tree
with these patches so I'm not missing any prerequisites or maybe you may
specify what should be used as a base for the series?

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

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

* Re: [PATCH 08/12] drm: msm: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 ` [PATCH 08/12] drm: msm: " Laurent Pinchart
@ 2018-01-19  4:51   ` Archit Taneja
  0 siblings, 0 replies; 23+ messages in thread
From: Archit Taneja @ 2018-01-19  4:51 UTC (permalink / raw)
  To: Laurent Pinchart, dri-devel



On 01/18/2018 03:25 AM, Laurent Pinchart wrote:
> The plane cleanup handler currently calls drm_plane_helper_disable(),
> which is a legacy helper function. Replace it with a call to
> drm_atomic_helper_shutdown() at removal time.

Reviewed-by: Archit Taneja <architt@codeaurora.org>

> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---
>   drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 1 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 1 -
>   drivers/gpu/drm/msm/msm_drv.c             | 1 +
>   3 files changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
> index 7a1ad3af08e3..db356d22ef15 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
> @@ -68,7 +68,6 @@ static void mdp4_plane_destroy(struct drm_plane *plane)
>   {
>   	struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane);
>   
> -	drm_plane_helper_disable(plane);
>   	drm_plane_cleanup(plane);
>   
>   	kfree(mdp4_plane);
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index 29678876fc09..986684e33a03 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -46,7 +46,6 @@ static void mdp5_plane_destroy(struct drm_plane *plane)
>   {
>   	struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
>   
> -	drm_plane_helper_disable(plane);
>   	drm_plane_cleanup(plane);
>   
>   	kfree(mdp5_plane);
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index d90ef1d78a1b..4ba48e5acbe9 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -233,6 +233,7 @@ static int msm_drm_uninit(struct device *dev)
>   	if (fbdev && priv->fbdev)
>   		msm_fbdev_free(ddev);
>   #endif
> +	drm_atomic_helper_shutdown(ddev);
>   	drm_mode_config_cleanup(ddev);
>   
>   	pm_runtime_get_sync(dev);
> 

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 00/12] Cargo cult cleanup in atomic drivers
  2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
                   ` (13 preceding siblings ...)
  2018-01-18 18:00 ` Alexey Brodkin
@ 2018-01-19 15:00 ` Benjamin Gaignard
  14 siblings, 0 replies; 23+ messages in thread
From: Benjamin Gaignard @ 2018-01-19 15:00 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Boris Brezillon, Alexey Brodkin, Liviu Dudau, dri-devel,
	Vincent Abriou, Mali DP Maintainers, Shawn Guo

2018-01-17 22:55 GMT+01:00 Laurent Pinchart
<laurent.pinchart+renesas@ideasonboard.com>:
> Hello,
>
> This patch series removes a few cargo-cult constructs from a set of atomic
> drivers.
>
> Patches 01/12 and 02/12 remove the unneeded .mode_set() and .mode_set_base()
> CRTC handlers from the arc and atmel-hlcdc drivers.
>
> Patches 03/12 to 12/12 then remove the use of drm_plane_helper_disable() from
> the plane .destroy() handlers of atomic drivers, replacing them with the use
> of drm_atomic_helper_shutdown() at removal time. Interleaved there are patches
> 04/12 and 06/12 that remove unnecessary cleanups in error paths, and patch
> 09/12 that adds missing cleanup.
>
> All this has been compile-tested only.

Sorry but sti patches make the platform crash when removing display module.

Benjamin

>
> Laurent Pinchart (12):
>   drm: arc: Don't set CRTC .mode_set and .mode_set_base handlers
>   drm: atmel-hlcdc: Don't set CRTC .mode_set and .mode_set_base handlers
>   drm: arc: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: arm: hdlcd: Don't destroy plane manually in hdlcd_setup_crtc()
>   drm: arm: hdlcd: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: arm: malidp: Don't destroy planes manually in error handlers
>   drm: arm: malidp: Use drm_atomic_helper_shutdown() to disable planes
>     on removal
>   drm: msm: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: sti: Cleanup KMS objects on removal
>   drm: sti: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: vc4: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>   drm: zte: Use drm_atomic_helper_shutdown() to disable planes on
>     removal
>
>  drivers/gpu/drm/arc/arcpgu_crtc.c              | 12 ++----------
>  drivers/gpu/drm/arc/arcpgu_drv.c               |  1 +
>  drivers/gpu/drm/arm/hdlcd_crtc.c               | 12 ++----------
>  drivers/gpu/drm/arm/hdlcd_drv.c                |  1 +
>  drivers/gpu/drm/arm/malidp_crtc.c              | 10 ++--------
>  drivers/gpu/drm/arm/malidp_drv.c               |  2 +-
>  drivers/gpu/drm/arm/malidp_drv.h               |  1 -
>  drivers/gpu/drm/arm/malidp_planes.c            | 17 +----------------
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c |  2 --
>  drivers/gpu/drm/msm/Kconfig                    |  1 -
>  drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c      |  1 -
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c      |  1 -
>  drivers/gpu/drm/msm/msm_drv.c                  |  1 +
>  drivers/gpu/drm/sti/sti_cursor.c               | 10 +---------
>  drivers/gpu/drm/sti/sti_drv.c                  |  2 ++
>  drivers/gpu/drm/sti/sti_gdp.c                  | 10 +---------
>  drivers/gpu/drm/sti/sti_hqvdp.c                | 10 +---------
>  drivers/gpu/drm/vc4/Kconfig                    |  1 -
>  drivers/gpu/drm/vc4/vc4_drv.c                  |  3 +++
>  drivers/gpu/drm/vc4/vc4_plane.c                |  8 +-------
>  drivers/gpu/drm/zte/Kconfig                    |  2 +-
>  drivers/gpu/drm/zte/zx_drm_drv.c               |  1 +
>  drivers/gpu/drm/zte/zx_plane.c                 |  8 +-------
>  23 files changed, 23 insertions(+), 94 deletions(-)
>
> --
> Regards,
>
> Laurent Pinchart
>



-- 
Benjamin Gaignard

Graphic Study Group

Linaro.org │ Open source software for ARM SoCs

Follow Linaro: Facebook | Twitter | Blog
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 07/12] drm: arm: malidp: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 ` [PATCH 07/12] drm: arm: malidp: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
@ 2018-01-19 15:48   ` Liviu Dudau
  0 siblings, 0 replies; 23+ messages in thread
From: Liviu Dudau @ 2018-01-19 15:48 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: Mali DP Maintainers, dri-devel

Hi Laurent,

On Wed, Jan 17, 2018 at 11:55:30PM +0200, Laurent Pinchart wrote:
> The plane cleanup handler currently calls drm_plane_helper_disable(),
> which is a legacy helper function. Replace it with a call to
> drm_atomic_helper_shutdown() at removal time.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---
>  drivers/gpu/drm/arm/malidp_drv.c    | 1 +
>  drivers/gpu/drm/arm/malidp_planes.c | 4 ----
>  2 files changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 0711279e836f..5d037ea576c7 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -276,6 +276,7 @@ static int malidp_init(struct drm_device *drm)
>  
>  static void malidp_fini(struct drm_device *drm)
>  {
> +	drm_atomic_helper_shutdown(drm);
>  	drm_mode_config_cleanup(drm);
>  }
>  
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index d883d28d5d9d..2bc1264ec73a 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -56,10 +56,6 @@ static void malidp_de_plane_destroy(struct drm_plane *plane)
>  {
>  	struct malidp_plane *mp = to_malidp_plane(plane);
>  
> -	if (mp->base.fb)
> -		drm_framebuffer_put(mp->base.fb);
> -
> -	drm_plane_helper_disable(plane);
>  	drm_plane_cleanup(plane);
>  	kfree(mp);
>  }

With this change in place I'm getting

[drm:drm_atomic_helper_shutdown [drm_kms_helper]] *ERROR* Disabling all crtc's during unload failed with -22

when trying to remove the mali-dp module.

Echoing 0x3f into /sys/module/drm/parameters/debug I get this:

[  332.072080] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4386, diff=1, hw=0 hw_last=0
[  332.091326] [drm:drm_sysfs_connector_remove [drm]] removing "HDMI-A-1" from sysfs
[  332.101255] Console: switching to colour dummy device 80x25
[  332.105506] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4387, diff=1, hw=0 hw_last=0
[  332.117772] [drm:drm_atomic_state_init [drm]] Allocated atomic state 0000000035c85576
[  332.125710] [drm:drm_mode_object_get [drm]] OBJ ID: 62 (3)
[  332.131302] [drm:drm_atomic_get_plane_state [drm]] Added [PLANE:28:plane-0] 000000002713c919 state to 0000000035c85576
[  332.139069] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4388, diff=1, hw=0 hw_last=0
[  332.152827] [drm:drm_mode_object_get [drm]] OBJ ID: 45 (1)
[  332.158558] [drm:drm_atomic_get_crtc_state [drm]] Added [CRTC:35:crtc-0] 00000000da10cba0 state to 0000000035c85576
[  332.169169] [drm:drm_atomic_set_fb_for_plane [drm]] Set [NOFB] for plane state 000000002713c919
[  332.178051] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4389, diff=1, hw=0 hw_last=0
[  332.188836] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 62 (4)
[  332.195145] [drm:drm_atomic_set_crtc_for_plane [drm]] Link plane state 000000002713c919 to [NOCRTC]
[  332.204373] [drm:drm_atomic_check_only [drm]] checking 0000000035c85576
[  332.211182] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4390, diff=1, hw=0 hw_last=0
[  332.221968] [drm:drm_atomic_commit [drm]] committing 0000000035c85576
[  332.228617] [drm:drm_calc_timestamping_constants [drm]] crtc 35: hwmode: htotal 2200, vtotal 562, vdisplay 540
[  332.238787] [drm:drm_calc_timestamping_constants [drm]] crtc 35: clock 74250 kHz framedur 8325925 linedur 29629
[  332.249039] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4391, diff=1, hw=0 hw_last=0
[  332.272706] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4392, diff=1, hw=0 hw_last=0
[  332.306160] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4393, diff=1, hw=0 hw_last=0
[  332.317030] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 62 (3)
[  332.323327] [drm:drm_atomic_state_default_clear [drm]] Clearing atomic state 0000000035c85576
[  332.332041] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 45 (2)
[  332.338331] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 62 (2)
[  332.339680] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4394, diff=1, hw=0 hw_last=0
[  332.355181] [drm:__drm_atomic_state_free [drm]] Freeing atomic state 0000000035c85576
[  332.363204] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 62 (1)
[  332.373126] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4395, diff=1, hw=0 hw_last=0
[  332.395308] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 37 (4)
[  332.401599] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 37 (3)
[  332.406566] [drm:drm_update_vblank_count [drm]] updating vblank count on crtc 0: current=4396, diff=1, hw=0 hw_last=0
[  332.418489] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 0 (2)
[  332.432903] [drm:drm_atomic_state_init [drm]] Allocated atomic state 00000000af12a943
[  332.440934] [drm:drm_mode_object_get [drm]] OBJ ID: 45 (1)
[  332.446635] [drm:drm_atomic_get_crtc_state [drm]] Added [CRTC:35:crtc-0] 000000006a7e1466 state to 00000000af12a943
[  332.457242] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 45 (2)
[  332.463529] [drm:drm_atomic_set_mode_prop_for_crtc [drm]] Set [NOMODE] for CRTC state 000000006a7e1466
[  332.473014] [drm:drm_atomic_add_affected_connectors [drm]] Adding all current connectors for [CRTC:35:crtc-0] to 00000000af12a943
[  332.484819] [drm:drm_atomic_check_only [drm]] checking 00000000af12a943
[  332.491537] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:35:crtc-0] mode changed
[  332.500391] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:35:crtc-0] enable changed
[  332.509419] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:35:crtc-0] active changed
[  332.518442] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:35:crtc-0] enabled/connectors mismatch
[  332.528700] [drm:drm_atomic_state_default_clear [drm]] Clearing atomic state 00000000af12a943
[  332.537399] [drm:__drm_atomic_state_free [drm]] Freeing atomic state 00000000af12a943
[  332.551046] [drm:drm_atomic_helper_shutdown [drm_kms_helper]] *ERROR* Disabling all crtc's during unload failed with -22
[  332.562153] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 45 (1)
[  332.568444] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 63 (1)

It looks like drm_atomic_helper_check_modeset is being tripped by the final drm_atomic_commit()
that happens in the drm_atomic_helper_disable_all() function as called by drm_atomic_helper_shutdown().

Not sure why the new_crtc_state->connector_mask is not zero when drm_atomic_helper_check_modeset()
gets called. Any suggestions?

Best regards,
Liviu


> -- 
> Regards,
> 
> Laurent Pinchart
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 11/12] drm: vc4: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 ` [PATCH 11/12] drm: vc4: " Laurent Pinchart
  2018-01-18  5:44   ` Eric Anholt
@ 2018-01-20 11:54   ` kbuild test robot
  2018-01-20 12:03   ` kbuild test robot
  2 siblings, 0 replies; 23+ messages in thread
From: kbuild test robot @ 2018-01-20 11:54 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: kbuild-all, dri-devel

[-- Attachment #1: Type: text/plain, Size: 2542 bytes --]

Hi Laurent,

I love your patch! Yet something to improve:

[auto build test ERROR on drm/drm-next]
[also build test ERROR on v4.15-rc8 next-20180119]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Laurent-Pinchart/Cargo-cult-cleanup-in-atomic-drivers/20180120-183018
base:   git://people.freedesktop.org/~airlied/linux.git drm-next
config: i386-randconfig-n0-201802 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   In file included from drivers/gpu/drm/msm/msm_gpu.h:24:0,
                    from drivers/gpu/drm/msm/adreno/adreno_gpu.h:25,
                    from drivers/gpu/drm/msm/adreno/adreno_device.c:21:
>> drivers/gpu/drm/msm/msm_drv.h:35:10: fatal error: asm/sizes.h: No such file or directory
    #include <asm/sizes.h>
             ^~~~~~~~~~~~~
   compilation terminated.

vim +35 drivers/gpu/drm/msm/msm_drv.h

c8afe684 Rob Clark     2013-06-26  20  
c8afe684 Rob Clark     2013-06-26  21  #include <linux/kernel.h>
c8afe684 Rob Clark     2013-06-26  22  #include <linux/clk.h>
c8afe684 Rob Clark     2013-06-26  23  #include <linux/cpufreq.h>
c8afe684 Rob Clark     2013-06-26  24  #include <linux/module.h>
060530f1 Rob Clark     2014-03-03  25  #include <linux/component.h>
c8afe684 Rob Clark     2013-06-26  26  #include <linux/platform_device.h>
c8afe684 Rob Clark     2013-06-26  27  #include <linux/pm.h>
c8afe684 Rob Clark     2013-06-26  28  #include <linux/pm_runtime.h>
c8afe684 Rob Clark     2013-06-26  29  #include <linux/slab.h>
c8afe684 Rob Clark     2013-06-26  30  #include <linux/list.h>
c8afe684 Rob Clark     2013-06-26  31  #include <linux/iommu.h>
c8afe684 Rob Clark     2013-06-26  32  #include <linux/types.h>
3d6df062 Archit Taneja 2015-06-09  33  #include <linux/of_graph.h>
e9fbdaf2 Archit Taneja 2015-11-18  34  #include <linux/of_device.h>
c8afe684 Rob Clark     2013-06-26 @35  #include <asm/sizes.h>
c8afe684 Rob Clark     2013-06-26  36  

:::::: The code at line 35 was first introduced by commit
:::::: c8afe684c95cd17cf4f273d81af369a0fdfa5a74 drm/msm: basic KMS driver for snapdragon

:::::: TO: Rob Clark <robdclark@gmail.com>
:::::: CC: Rob Clark <robdclark@gmail.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 33577 bytes --]

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

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

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

* Re: [PATCH 11/12] drm: vc4: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 ` [PATCH 11/12] drm: vc4: " Laurent Pinchart
  2018-01-18  5:44   ` Eric Anholt
  2018-01-20 11:54   ` kbuild test robot
@ 2018-01-20 12:03   ` kbuild test robot
  2 siblings, 0 replies; 23+ messages in thread
From: kbuild test robot @ 2018-01-20 12:03 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: kbuild-all, dri-devel

[-- Attachment #1: Type: text/plain, Size: 1032 bytes --]

Hi Laurent,

I love your patch! Perhaps something to improve:

[auto build test WARNING on drm/drm-next]
[also build test WARNING on v4.15-rc8 next-20180119]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Laurent-Pinchart/Cargo-cult-cleanup-in-atomic-drivers/20180120-183018
base:   git://people.freedesktop.org/~airlied/linux.git drm-next
config: i386-randconfig-x002-201802 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

warning: (VIDEO_QCOM_VENUS && DRM_MSM && QCOM_ADSP_PIL && QCOM_Q6V5_PIL && QCOM_WCNSS_PIL && QCOM_MDT_LOADER && QCOM_PM) selects QCOM_SCM which has unmet direct dependencies (ARM || ARM64)

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 34194 bytes --]

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

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

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

* Re: [PATCH 12/12] drm: zte: Use drm_atomic_helper_shutdown() to disable planes on removal
  2018-01-17 21:55 ` [PATCH 12/12] drm: zte: " Laurent Pinchart
@ 2018-02-02  7:48   ` Shawn Guo
  0 siblings, 0 replies; 23+ messages in thread
From: Shawn Guo @ 2018-02-02  7:48 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: dri-devel

On Wed, Jan 17, 2018 at 11:55:35PM +0200, Laurent Pinchart wrote:
> The plane cleanup handler currently calls drm_plane_helper_disable(),
> which is a legacy helper function. Replace it with a call to
> drm_atomic_helper_shutdown() at removal time. The plane .destroy()
> handler now consisting only of a call to drm_plane_cleanup(), replace it
> with direct calls to that function.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

Acked-by: Shawn Guo <shawnguo@kernel.org>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

end of thread, other threads:[~2018-02-02  7:48 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-17 21:55 [PATCH 00/12] Cargo cult cleanup in atomic drivers Laurent Pinchart
2018-01-17 21:55 ` [PATCH 01/12] drm: arc: Don't set CRTC .mode_set and .mode_set_base handlers Laurent Pinchart
2018-01-17 21:55 ` [PATCH 02/12] drm: atmel-hlcdc: " Laurent Pinchart
2018-01-18  8:44   ` Boris Brezillon
2018-01-17 21:55 ` [PATCH 03/12] drm: arc: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
2018-01-17 21:55 ` [PATCH 04/12] drm: arm: hdlcd: Don't destroy plane manually in hdlcd_setup_crtc() Laurent Pinchart
2018-01-17 21:55 ` [PATCH 05/12] drm: arm: hdlcd: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
2018-01-17 21:55 ` [PATCH 06/12] drm: arm: malidp: Don't destroy planes manually in error handlers Laurent Pinchart
2018-01-17 21:55 ` [PATCH 07/12] drm: arm: malidp: Use drm_atomic_helper_shutdown() to disable planes on removal Laurent Pinchart
2018-01-19 15:48   ` Liviu Dudau
2018-01-17 21:55 ` [PATCH 08/12] drm: msm: " Laurent Pinchart
2018-01-19  4:51   ` Archit Taneja
2018-01-17 21:55 ` [PATCH 09/12] drm: sti: Cleanup KMS objects " Laurent Pinchart
2018-01-17 21:55 ` [PATCH 10/12] drm: sti: Use drm_atomic_helper_shutdown() to disable planes " Laurent Pinchart
2018-01-17 21:55 ` [PATCH 11/12] drm: vc4: " Laurent Pinchart
2018-01-18  5:44   ` Eric Anholt
2018-01-20 11:54   ` kbuild test robot
2018-01-20 12:03   ` kbuild test robot
2018-01-17 21:55 ` [PATCH 12/12] drm: zte: " Laurent Pinchart
2018-02-02  7:48   ` Shawn Guo
2018-01-18 17:32 ` [PATCH 00/12] Cargo cult cleanup in atomic drivers Liviu Dudau
2018-01-18 18:00 ` Alexey Brodkin
2018-01-19 15:00 ` Benjamin Gaignard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.