diff mbox series

[19/23] drm/i915: Add debugfs dumping for bigjoiner, v3.

Message ID 20201113220358.24794-20-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: Big bigjoiner series | expand

Commit Message

Ville Syrjälä Nov. 13, 2020, 10:03 p.m. UTC
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

Dump debugfs and planar links as well, this will make it easier to debug
when things go wrong.

v4:
* Rebase
Changes since v1:
- Report planar slaves as such, now that we have the plane_state switch.
Changes since v2:
- Rebase on top of the new plane format dumping

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
---
 .../drm/i915/display/intel_display_debugfs.c  | 25 ++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

Comments

Manna, Animesh Nov. 17, 2020, 11:07 a.m. UTC | #1
> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Saturday, November 14, 2020 3:34 AM
> To: intel-gfx@lists.freedesktop.org
> Subject: [Intel-gfx] [PATCH 19/23] drm/i915: Add debugfs dumping for bigjoiner,
> v3.
> 
> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> 
> Dump debugfs and planar links as well, this will make it easier to debug when
> things go wrong.
> 
> v4:
> * Rebase
> Changes since v1:
> - Report planar slaves as such, now that we have the plane_state switch.
> Changes since v2:
> - Rebase on top of the new plane format dumping
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>

Reviewed-by: Animesh Manna <animesh.manna@intel.com>

> ---
>  .../drm/i915/display/intel_display_debugfs.c  | 25 ++++++++++++++++++-
>  1 file changed, 24 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> index 00b79593bcef..ca41e8c00ad7 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> @@ -755,6 +755,17 @@ static void plane_rotation(char *buf, size_t bufsize,
> unsigned int rotation)
>  		 rotation);
>  }
> 
> +static const char *plane_visibility(const struct intel_plane_state
> +*plane_state) {
> +	if (plane_state->uapi.visible)
> +		return "visible";
> +
> +	if (plane_state->planar_slave)
> +		return "planar-slave";
> +
> +	return "hidden";
> +}
> +
>  static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)  {
>  	const struct intel_plane_state *plane_state = @@ -773,13 +784,19 @@
> static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
>  	plane_rotation(rot_str, sizeof(rot_str),
>  		       plane_state->uapi.rotation);
> 
> -	seq_printf(m, "\t\tuapi: [FB:%d] %s,0x%llx,%dx%d, src="
> DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> +	seq_printf(m, "\t\tuapi: [FB:%d] %s,0x%llx,%dx%d, visible=%s, src="
> +DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
>  		   fb ? fb->base.id : 0, fb ? format_name.str : "n/a",
>  		   fb ? fb->modifier : 0,
>  		   fb ? fb->width : 0, fb ? fb->height : 0,
> +		   plane_visibility(plane_state),
>  		   DRM_RECT_FP_ARG(&src),
>  		   DRM_RECT_ARG(&dst),
>  		   rot_str);
> +
> +	if (plane_state->planar_linked_plane)
> +		seq_printf(m, "\t\tplanar: Linked to [PLANE:%d:%s] as a %s\n",
> +			   plane_state->planar_linked_plane->base.base.id,
> plane_state->planar_linked_plane->base.name,
> +			   plane_state->planar_slave ? "slave" : "master");
>  }
> 
>  static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
> @@ -875,6 +892,12 @@ static void intel_crtc_info(struct seq_file *m, struct
> intel_crtc *crtc)
>  		intel_scaler_info(m, crtc);
>  	}
> 
> +	if (crtc_state->bigjoiner)
> +		seq_printf(m, "\tLinked to [CRTC:%d:%s] as a %s\n",
> +			   crtc_state->bigjoiner_linked_crtc->base.base.id,
> +			   crtc_state->bigjoiner_linked_crtc->base.name,
> +			   crtc_state->bigjoiner_slave ? "slave" : "master");
> +
>  	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
>  				    crtc_state->uapi.encoder_mask)
>  		intel_encoder_info(m, crtc, encoder);
> --
> 2.26.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index 00b79593bcef..ca41e8c00ad7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -755,6 +755,17 @@  static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
 		 rotation);
 }
 
+static const char *plane_visibility(const struct intel_plane_state *plane_state)
+{
+	if (plane_state->uapi.visible)
+		return "visible";
+
+	if (plane_state->planar_slave)
+		return "planar-slave";
+
+	return "hidden";
+}
+
 static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
 {
 	const struct intel_plane_state *plane_state =
@@ -773,13 +784,19 @@  static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
 	plane_rotation(rot_str, sizeof(rot_str),
 		       plane_state->uapi.rotation);
 
-	seq_printf(m, "\t\tuapi: [FB:%d] %s,0x%llx,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
+	seq_printf(m, "\t\tuapi: [FB:%d] %s,0x%llx,%dx%d, visible=%s, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
 		   fb ? fb->base.id : 0, fb ? format_name.str : "n/a",
 		   fb ? fb->modifier : 0,
 		   fb ? fb->width : 0, fb ? fb->height : 0,
+		   plane_visibility(plane_state),
 		   DRM_RECT_FP_ARG(&src),
 		   DRM_RECT_ARG(&dst),
 		   rot_str);
+
+	if (plane_state->planar_linked_plane)
+		seq_printf(m, "\t\tplanar: Linked to [PLANE:%d:%s] as a %s\n",
+			   plane_state->planar_linked_plane->base.base.id, plane_state->planar_linked_plane->base.name,
+			   plane_state->planar_slave ? "slave" : "master");
 }
 
 static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
@@ -875,6 +892,12 @@  static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 		intel_scaler_info(m, crtc);
 	}
 
+	if (crtc_state->bigjoiner)
+		seq_printf(m, "\tLinked to [CRTC:%d:%s] as a %s\n",
+			   crtc_state->bigjoiner_linked_crtc->base.base.id,
+			   crtc_state->bigjoiner_linked_crtc->base.name,
+			   crtc_state->bigjoiner_slave ? "slave" : "master");
+
 	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
 				    crtc_state->uapi.encoder_mask)
 		intel_encoder_info(m, crtc, encoder);