All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/9] drm/i915: i915_display_info cleanup
@ 2019-11-29 18:54 ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Now that igt no longer parses the display_info from debugfs we can
actually make it a bit more sane. I already posted the first five
patches once, but I added a bit more on top for the hw vs. uapi
split (now we try to dump both). And I also took the opportunity to
start wearing down the legacy encoder->crtc and connector->encoder
pointers.

Ville Syrjälä (9):
  drm/i915: Use drm_rect to simplify plane {crtc,src}_{x,y,w,h} printing
  drm/i915: Switch to intel_ types in debugfs display_info
  drm/i915: Reorganize plane/fb dump in debugfs
  drm/i915: Refactor debugfs display info code
  drm/i915: Dump the mode for the crtc just the once
  drm/i915: Use drm_modeset_lock_all() in debugfs display info
  drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in
    i915_display_info
  drm/i915: Dump both the uapi and hw states for crtcs and planes
  drm/i915: Stop using connector->encoder and encoder->crtc links in
    i915_display_info

 drivers/gpu/drm/i915/display/intel_display.h |   7 +
 drivers/gpu/drm/i915/i915_debugfs.c          | 282 ++++++++++---------
 2 files changed, 150 insertions(+), 139 deletions(-)

-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 0/9] drm/i915: i915_display_info cleanup
@ 2019-11-29 18:54 ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Now that igt no longer parses the display_info from debugfs we can
actually make it a bit more sane. I already posted the first five
patches once, but I added a bit more on top for the hw vs. uapi
split (now we try to dump both). And I also took the opportunity to
start wearing down the legacy encoder->crtc and connector->encoder
pointers.

Ville Syrjälä (9):
  drm/i915: Use drm_rect to simplify plane {crtc,src}_{x,y,w,h} printing
  drm/i915: Switch to intel_ types in debugfs display_info
  drm/i915: Reorganize plane/fb dump in debugfs
  drm/i915: Refactor debugfs display info code
  drm/i915: Dump the mode for the crtc just the once
  drm/i915: Use drm_modeset_lock_all() in debugfs display info
  drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in
    i915_display_info
  drm/i915: Dump both the uapi and hw states for crtcs and planes
  drm/i915: Stop using connector->encoder and encoder->crtc links in
    i915_display_info

 drivers/gpu/drm/i915/display/intel_display.h |   7 +
 drivers/gpu/drm/i915/i915_debugfs.c          | 282 ++++++++++---------
 2 files changed, 150 insertions(+), 139 deletions(-)

-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v2 1/9] drm/i915: Use drm_rect to simplify plane {crtc, src}_{x, y, w, h} printing
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Use DRM_RECT_FMT & co. to simpify the code.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index cab632791f73..3f54e66ab762 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2599,6 +2599,7 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
 		struct drm_plane_state *state;
 		struct drm_plane *plane = &intel_plane->base;
 		struct drm_format_name_buf format_name;
+		struct drm_rect src, dst;
 		char rot_str[48];
 
 		if (!plane->state) {
@@ -2608,6 +2609,9 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
 
 		state = plane->state;
 
+		src = drm_plane_state_src(state);
+		dst = drm_plane_state_dest(state);
+
 		if (state->fb) {
 			drm_get_format_name(state->fb->format->format,
 					    &format_name);
@@ -2617,19 +2621,11 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
 
 		plane_rotation(rot_str, sizeof(rot_str), state->rotation);
 
-		seq_printf(m, "\t--Plane id %d: type=%s, crtc_pos=%4dx%4d, crtc_size=%4dx%4d, src_pos=%d.%04ux%d.%04u, src_size=%d.%04ux%d.%04u, format=%s, rotation=%s\n",
+		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
 			   plane->base.id,
 			   plane_type(intel_plane->base.type),
-			   state->crtc_x, state->crtc_y,
-			   state->crtc_w, state->crtc_h,
-			   (state->src_x >> 16),
-			   ((state->src_x & 0xffff) * 15625) >> 10,
-			   (state->src_y >> 16),
-			   ((state->src_y & 0xffff) * 15625) >> 10,
-			   (state->src_w >> 16),
-			   ((state->src_w & 0xffff) * 15625) >> 10,
-			   (state->src_h >> 16),
-			   ((state->src_h & 0xffff) * 15625) >> 10,
+			   DRM_RECT_ARG(&dst),
+			   DRM_RECT_FP_ARG(&src),
 			   format_name.str,
 			   rot_str);
 	}
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 1/9] drm/i915: Use drm_rect to simplify plane {crtc, src}_{x, y, w, h} printing
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Use DRM_RECT_FMT & co. to simpify the code.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index cab632791f73..3f54e66ab762 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2599,6 +2599,7 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
 		struct drm_plane_state *state;
 		struct drm_plane *plane = &intel_plane->base;
 		struct drm_format_name_buf format_name;
+		struct drm_rect src, dst;
 		char rot_str[48];
 
 		if (!plane->state) {
@@ -2608,6 +2609,9 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
 
 		state = plane->state;
 
+		src = drm_plane_state_src(state);
+		dst = drm_plane_state_dest(state);
+
 		if (state->fb) {
 			drm_get_format_name(state->fb->format->format,
 					    &format_name);
@@ -2617,19 +2621,11 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
 
 		plane_rotation(rot_str, sizeof(rot_str), state->rotation);
 
-		seq_printf(m, "\t--Plane id %d: type=%s, crtc_pos=%4dx%4d, crtc_size=%4dx%4d, src_pos=%d.%04ux%d.%04u, src_size=%d.%04ux%d.%04u, format=%s, rotation=%s\n",
+		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
 			   plane->base.id,
 			   plane_type(intel_plane->base.type),
-			   state->crtc_x, state->crtc_y,
-			   state->crtc_w, state->crtc_h,
-			   (state->src_x >> 16),
-			   ((state->src_x & 0xffff) * 15625) >> 10,
-			   (state->src_y >> 16),
-			   ((state->src_y & 0xffff) * 15625) >> 10,
-			   (state->src_w >> 16),
-			   ((state->src_w & 0xffff) * 15625) >> 10,
-			   (state->src_h >> 16),
-			   ((state->src_h & 0xffff) * 15625) >> 10,
+			   DRM_RECT_ARG(&dst),
+			   DRM_RECT_FP_ARG(&src),
 			   format_name.str,
 			   rot_str);
 	}
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v2 2/9] drm/i915: Switch to intel_ types in debugfs display_info
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Switch to using intel_ types in the  debugfs display_info code.
Should make it easier to handle bigjoiner etc. in the future.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 119 ++++++++++++++--------------
 1 file changed, 59 insertions(+), 60 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 3f54e66ab762..16d3c273a453 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2367,7 +2367,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused)
 }
 
 static void intel_seq_print_mode(struct seq_file *m, int tabs,
-				 struct drm_display_mode *mode)
+				 const struct drm_display_mode *mode)
 {
 	int i;
 
@@ -2378,51 +2378,52 @@ static void intel_seq_print_mode(struct seq_file *m, int tabs,
 }
 
 static void intel_encoder_info(struct seq_file *m,
-			       struct intel_crtc *intel_crtc,
-			       struct intel_encoder *intel_encoder)
+			       struct intel_crtc *crtc,
+			       struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
 	struct drm_device *dev = &dev_priv->drm;
-	struct drm_crtc *crtc = &intel_crtc->base;
-	struct intel_connector *intel_connector;
-	struct drm_encoder *encoder;
+	struct intel_connector *connector;
 
-	encoder = &intel_encoder->base;
 	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
-		   encoder->base.id, encoder->name);
-	for_each_connector_on_encoder(dev, encoder, intel_connector) {
-		struct drm_connector *connector = &intel_connector->base;
+		   encoder->base.base.id, encoder->base.name);
+
+	for_each_connector_on_encoder(dev, &encoder->base, connector) {
 		seq_printf(m, "\t\tconnector %d: type: %s, status: %s",
-			   connector->base.id,
-			   connector->name,
-			   drm_get_connector_status_name(connector->status));
-		if (connector->status == connector_status_connected) {
-			struct drm_display_mode *mode = &crtc->mode;
+			   connector->base.base.id, connector->base.name,
+			   drm_get_connector_status_name(connector->base.status));
+
+		if (connector->base.status == connector_status_connected) {
+			const struct intel_crtc_state *crtc_state =
+				to_intel_crtc_state(crtc->base.state);
+
 			seq_printf(m, ", mode:\n");
-			intel_seq_print_mode(m, 2, mode);
+			intel_seq_print_mode(m, 2, &crtc_state->hw.mode);
 		} else {
 			seq_putc(m, '\n');
 		}
 	}
 }
 
-static void intel_crtc_info(struct seq_file *m, struct intel_crtc *intel_crtc)
+static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
 	struct drm_device *dev = &dev_priv->drm;
-	struct drm_crtc *crtc = &intel_crtc->base;
-	struct intel_encoder *intel_encoder;
-	struct drm_plane_state *plane_state = crtc->primary->state;
-	struct drm_framebuffer *fb = plane_state->fb;
+	struct intel_encoder *encoder;
+	struct intel_plane *plane = to_intel_plane(crtc->base.primary);
+	const struct intel_plane_state *plane_state =
+		to_intel_plane_state(plane->base.state);
+	const struct drm_framebuffer *fb = plane_state->uapi.fb;
 
 	if (fb)
 		seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n",
-			   fb->base.id, plane_state->src_x >> 16,
-			   plane_state->src_y >> 16, fb->width, fb->height);
+			   fb->base.id, plane_state->uapi.src_x >> 16,
+			   plane_state->uapi.src_y >> 16,
+			   fb->width, fb->height);
 	else
 		seq_puts(m, "\tprimary plane disabled\n");
-	for_each_encoder_on_crtc(dev, crtc, intel_encoder)
-		intel_encoder_info(m, intel_crtc, intel_encoder);
+	for_each_encoder_on_crtc(dev, &crtc->base, encoder)
+		intel_encoder_info(m, crtc, encoder);
 }
 
 static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
@@ -2589,66 +2590,63 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
 		 rotation);
 }
 
-static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
+static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
 	struct drm_device *dev = &dev_priv->drm;
-	struct intel_plane *intel_plane;
+	struct intel_plane *plane;
 
-	for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
-		struct drm_plane_state *state;
-		struct drm_plane *plane = &intel_plane->base;
+	for_each_intel_plane_on_crtc(dev, crtc, plane) {
+		const struct intel_plane_state *plane_state =
+			to_intel_plane_state(plane->base.state);
+		const struct drm_framebuffer *fb;
 		struct drm_format_name_buf format_name;
 		struct drm_rect src, dst;
 		char rot_str[48];
 
-		if (!plane->state) {
+		if (!plane_state) {
 			seq_puts(m, "plane->state is NULL!\n");
 			continue;
 		}
 
-		state = plane->state;
+		src = drm_plane_state_src(&plane_state->uapi);
+		dst = drm_plane_state_dest(&plane_state->uapi);
+		fb = plane_state->uapi.fb;
 
-		src = drm_plane_state_src(state);
-		dst = drm_plane_state_dest(state);
-
-		if (state->fb) {
-			drm_get_format_name(state->fb->format->format,
-					    &format_name);
-		} else {
+		if (fb)
+			drm_get_format_name(fb->format->format, &format_name);
+		else
 			sprintf(format_name.str, "N/A");
-		}
 
-		plane_rotation(rot_str, sizeof(rot_str), state->rotation);
+		plane_rotation(rot_str, sizeof(rot_str),
+			       plane_state->uapi.rotation);
 
 		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
-			   plane->base.id,
-			   plane_type(intel_plane->base.type),
+			   plane->base.base.id,
+			   plane_type(plane->base.type),
 			   DRM_RECT_ARG(&dst),
 			   DRM_RECT_FP_ARG(&src),
-			   format_name.str,
-			   rot_str);
+			   format_name.str, rot_str);
 	}
 }
 
-static void intel_scaler_info(struct seq_file *m, struct intel_crtc *intel_crtc)
+static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
 {
-	struct intel_crtc_state *pipe_config;
-	int num_scalers = intel_crtc->num_scalers;
+	const struct intel_crtc_state *crtc_state =
+		to_intel_crtc_state(crtc->base.state);
+	int num_scalers = crtc->num_scalers;
 	int i;
 
-	pipe_config = to_intel_crtc_state(intel_crtc->base.state);
-
 	/* Not all platformas have a scaler */
 	if (num_scalers) {
 		seq_printf(m, "\tnum_scalers=%d, scaler_users=%x scaler_id=%d",
 			   num_scalers,
-			   pipe_config->scaler_state.scaler_users,
-			   pipe_config->scaler_state.scaler_id);
+			   crtc_state->scaler_state.scaler_users,
+			   crtc_state->scaler_state.scaler_id);
 
 		for (i = 0; i < num_scalers; i++) {
-			struct intel_scaler *sc =
-					&pipe_config->scaler_state.scalers[i];
+			const struct intel_scaler *sc =
+				&crtc_state->scaler_state.scalers[i];
 
 			seq_printf(m, ", scalers[%d]: use=%s, mode=%x",
 				   i, yesno(sc->in_use), sc->mode);
@@ -2673,18 +2671,19 @@ static int i915_display_info(struct seq_file *m, void *unused)
 	seq_printf(m, "CRTC info\n");
 	seq_printf(m, "---------\n");
 	for_each_intel_crtc(dev, crtc) {
-		struct intel_crtc_state *pipe_config;
+		const struct intel_crtc_state *crtc_state;
 
 		drm_modeset_lock(&crtc->base.mutex, NULL);
-		pipe_config = to_intel_crtc_state(crtc->base.state);
+
+		crtc_state = to_intel_crtc_state(crtc->base.state);
 
 		seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
 			   crtc->base.base.id, pipe_name(crtc->pipe),
-			   yesno(pipe_config->hw.active),
-			   pipe_config->pipe_src_w, pipe_config->pipe_src_h,
-			   yesno(pipe_config->dither), pipe_config->pipe_bpp);
+			   yesno(crtc_state->hw.active),
+			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
+			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
-		if (pipe_config->hw.active) {
+		if (crtc_state->hw.active) {
 			struct intel_plane *cursor =
 				to_intel_plane(crtc->base.cursor);
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 2/9] drm/i915: Switch to intel_ types in debugfs display_info
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Switch to using intel_ types in the  debugfs display_info code.
Should make it easier to handle bigjoiner etc. in the future.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 119 ++++++++++++++--------------
 1 file changed, 59 insertions(+), 60 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 3f54e66ab762..16d3c273a453 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2367,7 +2367,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused)
 }
 
 static void intel_seq_print_mode(struct seq_file *m, int tabs,
-				 struct drm_display_mode *mode)
+				 const struct drm_display_mode *mode)
 {
 	int i;
 
@@ -2378,51 +2378,52 @@ static void intel_seq_print_mode(struct seq_file *m, int tabs,
 }
 
 static void intel_encoder_info(struct seq_file *m,
-			       struct intel_crtc *intel_crtc,
-			       struct intel_encoder *intel_encoder)
+			       struct intel_crtc *crtc,
+			       struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
 	struct drm_device *dev = &dev_priv->drm;
-	struct drm_crtc *crtc = &intel_crtc->base;
-	struct intel_connector *intel_connector;
-	struct drm_encoder *encoder;
+	struct intel_connector *connector;
 
-	encoder = &intel_encoder->base;
 	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
-		   encoder->base.id, encoder->name);
-	for_each_connector_on_encoder(dev, encoder, intel_connector) {
-		struct drm_connector *connector = &intel_connector->base;
+		   encoder->base.base.id, encoder->base.name);
+
+	for_each_connector_on_encoder(dev, &encoder->base, connector) {
 		seq_printf(m, "\t\tconnector %d: type: %s, status: %s",
-			   connector->base.id,
-			   connector->name,
-			   drm_get_connector_status_name(connector->status));
-		if (connector->status == connector_status_connected) {
-			struct drm_display_mode *mode = &crtc->mode;
+			   connector->base.base.id, connector->base.name,
+			   drm_get_connector_status_name(connector->base.status));
+
+		if (connector->base.status == connector_status_connected) {
+			const struct intel_crtc_state *crtc_state =
+				to_intel_crtc_state(crtc->base.state);
+
 			seq_printf(m, ", mode:\n");
-			intel_seq_print_mode(m, 2, mode);
+			intel_seq_print_mode(m, 2, &crtc_state->hw.mode);
 		} else {
 			seq_putc(m, '\n');
 		}
 	}
 }
 
-static void intel_crtc_info(struct seq_file *m, struct intel_crtc *intel_crtc)
+static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
 	struct drm_device *dev = &dev_priv->drm;
-	struct drm_crtc *crtc = &intel_crtc->base;
-	struct intel_encoder *intel_encoder;
-	struct drm_plane_state *plane_state = crtc->primary->state;
-	struct drm_framebuffer *fb = plane_state->fb;
+	struct intel_encoder *encoder;
+	struct intel_plane *plane = to_intel_plane(crtc->base.primary);
+	const struct intel_plane_state *plane_state =
+		to_intel_plane_state(plane->base.state);
+	const struct drm_framebuffer *fb = plane_state->uapi.fb;
 
 	if (fb)
 		seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n",
-			   fb->base.id, plane_state->src_x >> 16,
-			   plane_state->src_y >> 16, fb->width, fb->height);
+			   fb->base.id, plane_state->uapi.src_x >> 16,
+			   plane_state->uapi.src_y >> 16,
+			   fb->width, fb->height);
 	else
 		seq_puts(m, "\tprimary plane disabled\n");
-	for_each_encoder_on_crtc(dev, crtc, intel_encoder)
-		intel_encoder_info(m, intel_crtc, intel_encoder);
+	for_each_encoder_on_crtc(dev, &crtc->base, encoder)
+		intel_encoder_info(m, crtc, encoder);
 }
 
 static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
@@ -2589,66 +2590,63 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
 		 rotation);
 }
 
-static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
+static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
 	struct drm_device *dev = &dev_priv->drm;
-	struct intel_plane *intel_plane;
+	struct intel_plane *plane;
 
-	for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
-		struct drm_plane_state *state;
-		struct drm_plane *plane = &intel_plane->base;
+	for_each_intel_plane_on_crtc(dev, crtc, plane) {
+		const struct intel_plane_state *plane_state =
+			to_intel_plane_state(plane->base.state);
+		const struct drm_framebuffer *fb;
 		struct drm_format_name_buf format_name;
 		struct drm_rect src, dst;
 		char rot_str[48];
 
-		if (!plane->state) {
+		if (!plane_state) {
 			seq_puts(m, "plane->state is NULL!\n");
 			continue;
 		}
 
-		state = plane->state;
+		src = drm_plane_state_src(&plane_state->uapi);
+		dst = drm_plane_state_dest(&plane_state->uapi);
+		fb = plane_state->uapi.fb;
 
-		src = drm_plane_state_src(state);
-		dst = drm_plane_state_dest(state);
-
-		if (state->fb) {
-			drm_get_format_name(state->fb->format->format,
-					    &format_name);
-		} else {
+		if (fb)
+			drm_get_format_name(fb->format->format, &format_name);
+		else
 			sprintf(format_name.str, "N/A");
-		}
 
-		plane_rotation(rot_str, sizeof(rot_str), state->rotation);
+		plane_rotation(rot_str, sizeof(rot_str),
+			       plane_state->uapi.rotation);
 
 		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
-			   plane->base.id,
-			   plane_type(intel_plane->base.type),
+			   plane->base.base.id,
+			   plane_type(plane->base.type),
 			   DRM_RECT_ARG(&dst),
 			   DRM_RECT_FP_ARG(&src),
-			   format_name.str,
-			   rot_str);
+			   format_name.str, rot_str);
 	}
 }
 
-static void intel_scaler_info(struct seq_file *m, struct intel_crtc *intel_crtc)
+static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
 {
-	struct intel_crtc_state *pipe_config;
-	int num_scalers = intel_crtc->num_scalers;
+	const struct intel_crtc_state *crtc_state =
+		to_intel_crtc_state(crtc->base.state);
+	int num_scalers = crtc->num_scalers;
 	int i;
 
-	pipe_config = to_intel_crtc_state(intel_crtc->base.state);
-
 	/* Not all platformas have a scaler */
 	if (num_scalers) {
 		seq_printf(m, "\tnum_scalers=%d, scaler_users=%x scaler_id=%d",
 			   num_scalers,
-			   pipe_config->scaler_state.scaler_users,
-			   pipe_config->scaler_state.scaler_id);
+			   crtc_state->scaler_state.scaler_users,
+			   crtc_state->scaler_state.scaler_id);
 
 		for (i = 0; i < num_scalers; i++) {
-			struct intel_scaler *sc =
-					&pipe_config->scaler_state.scalers[i];
+			const struct intel_scaler *sc =
+				&crtc_state->scaler_state.scalers[i];
 
 			seq_printf(m, ", scalers[%d]: use=%s, mode=%x",
 				   i, yesno(sc->in_use), sc->mode);
@@ -2673,18 +2671,19 @@ static int i915_display_info(struct seq_file *m, void *unused)
 	seq_printf(m, "CRTC info\n");
 	seq_printf(m, "---------\n");
 	for_each_intel_crtc(dev, crtc) {
-		struct intel_crtc_state *pipe_config;
+		const struct intel_crtc_state *crtc_state;
 
 		drm_modeset_lock(&crtc->base.mutex, NULL);
-		pipe_config = to_intel_crtc_state(crtc->base.state);
+
+		crtc_state = to_intel_crtc_state(crtc->base.state);
 
 		seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
 			   crtc->base.base.id, pipe_name(crtc->pipe),
-			   yesno(pipe_config->hw.active),
-			   pipe_config->pipe_src_w, pipe_config->pipe_src_h,
-			   yesno(pipe_config->dither), pipe_config->pipe_bpp);
+			   yesno(crtc_state->hw.active),
+			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
+			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
-		if (pipe_config->hw.active) {
+		if (crtc_state->hw.active) {
 			struct intel_plane *cursor =
 				to_intel_plane(crtc->base.cursor);
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v2 3/9] drm/i915: Reorganize plane/fb dump in debugfs
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Eliminate the special cases for the primary and cursor planes and just
dump all the information consistently for all the planes.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 48 +++++++----------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 16d3c273a453..b4fffcce2d12 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2405,27 +2405,6 @@ static void intel_encoder_info(struct seq_file *m,
 	}
 }
 
-static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
-{
-	struct drm_i915_private *dev_priv = node_to_i915(m->private);
-	struct drm_device *dev = &dev_priv->drm;
-	struct intel_encoder *encoder;
-	struct intel_plane *plane = to_intel_plane(crtc->base.primary);
-	const struct intel_plane_state *plane_state =
-		to_intel_plane_state(plane->base.state);
-	const struct drm_framebuffer *fb = plane_state->uapi.fb;
-
-	if (fb)
-		seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n",
-			   fb->base.id, plane_state->uapi.src_x >> 16,
-			   plane_state->uapi.src_y >> 16,
-			   fb->width, fb->height);
-	else
-		seq_puts(m, "\tprimary plane disabled\n");
-	for_each_encoder_on_crtc(dev, &crtc->base, encoder)
-		intel_encoder_info(m, crtc, encoder);
-}
-
 static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
 {
 	struct drm_display_mode *mode = panel->fixed_mode;
@@ -2611,22 +2590,24 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
 
 		src = drm_plane_state_src(&plane_state->uapi);
 		dst = drm_plane_state_dest(&plane_state->uapi);
+
 		fb = plane_state->uapi.fb;
-
 		if (fb)
 			drm_get_format_name(fb->format->format, &format_name);
-		else
-			sprintf(format_name.str, "N/A");
 
 		plane_rotation(rot_str, sizeof(rot_str),
 			       plane_state->uapi.rotation);
 
-		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
+		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
 			   plane->base.base.id,
 			   plane_type(plane->base.type),
-			   DRM_RECT_ARG(&dst),
+			   fb ? fb->base.id : 0,
+			   fb ? format_name.str : "n/a",
+			   fb ? fb->width : 0,
+			   fb ? fb->height : 0,
 			   DRM_RECT_FP_ARG(&src),
-			   format_name.str, rot_str);
+			   DRM_RECT_ARG(&dst),
+			   rot_str);
 	}
 }
 
@@ -2684,18 +2665,11 @@ static int i915_display_info(struct seq_file *m, void *unused)
 			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
 		if (crtc_state->hw.active) {
-			struct intel_plane *cursor =
-				to_intel_plane(crtc->base.cursor);
+			struct intel_encoder *encoder;
 
-			intel_crtc_info(m, crtc);
+			for_each_encoder_on_crtc(dev, &crtc->base, encoder)
+				intel_encoder_info(m, crtc, encoder);
 
-			seq_printf(m, "\tcursor visible? %s, position (%d, %d), size %dx%d, addr 0x%08x\n",
-				   yesno(cursor->base.state->visible),
-				   cursor->base.state->crtc_x,
-				   cursor->base.state->crtc_y,
-				   cursor->base.state->crtc_w,
-				   cursor->base.state->crtc_h,
-				   cursor->cursor.base);
 			intel_scaler_info(m, crtc);
 			intel_plane_info(m, crtc);
 		}
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 3/9] drm/i915: Reorganize plane/fb dump in debugfs
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Eliminate the special cases for the primary and cursor planes and just
dump all the information consistently for all the planes.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 48 +++++++----------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 16d3c273a453..b4fffcce2d12 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2405,27 +2405,6 @@ static void intel_encoder_info(struct seq_file *m,
 	}
 }
 
-static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
-{
-	struct drm_i915_private *dev_priv = node_to_i915(m->private);
-	struct drm_device *dev = &dev_priv->drm;
-	struct intel_encoder *encoder;
-	struct intel_plane *plane = to_intel_plane(crtc->base.primary);
-	const struct intel_plane_state *plane_state =
-		to_intel_plane_state(plane->base.state);
-	const struct drm_framebuffer *fb = plane_state->uapi.fb;
-
-	if (fb)
-		seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n",
-			   fb->base.id, plane_state->uapi.src_x >> 16,
-			   plane_state->uapi.src_y >> 16,
-			   fb->width, fb->height);
-	else
-		seq_puts(m, "\tprimary plane disabled\n");
-	for_each_encoder_on_crtc(dev, &crtc->base, encoder)
-		intel_encoder_info(m, crtc, encoder);
-}
-
 static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
 {
 	struct drm_display_mode *mode = panel->fixed_mode;
@@ -2611,22 +2590,24 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
 
 		src = drm_plane_state_src(&plane_state->uapi);
 		dst = drm_plane_state_dest(&plane_state->uapi);
+
 		fb = plane_state->uapi.fb;
-
 		if (fb)
 			drm_get_format_name(fb->format->format, &format_name);
-		else
-			sprintf(format_name.str, "N/A");
 
 		plane_rotation(rot_str, sizeof(rot_str),
 			       plane_state->uapi.rotation);
 
-		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
+		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
 			   plane->base.base.id,
 			   plane_type(plane->base.type),
-			   DRM_RECT_ARG(&dst),
+			   fb ? fb->base.id : 0,
+			   fb ? format_name.str : "n/a",
+			   fb ? fb->width : 0,
+			   fb ? fb->height : 0,
 			   DRM_RECT_FP_ARG(&src),
-			   format_name.str, rot_str);
+			   DRM_RECT_ARG(&dst),
+			   rot_str);
 	}
 }
 
@@ -2684,18 +2665,11 @@ static int i915_display_info(struct seq_file *m, void *unused)
 			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
 		if (crtc_state->hw.active) {
-			struct intel_plane *cursor =
-				to_intel_plane(crtc->base.cursor);
+			struct intel_encoder *encoder;
 
-			intel_crtc_info(m, crtc);
+			for_each_encoder_on_crtc(dev, &crtc->base, encoder)
+				intel_encoder_info(m, crtc, encoder);
 
-			seq_printf(m, "\tcursor visible? %s, position (%d, %d), size %dx%d, addr 0x%08x\n",
-				   yesno(cursor->base.state->visible),
-				   cursor->base.state->crtc_x,
-				   cursor->base.state->crtc_y,
-				   cursor->base.state->crtc_w,
-				   cursor->base.state->crtc_h,
-				   cursor->cursor.base);
 			intel_scaler_info(m, crtc);
 			intel_plane_info(m, crtc);
 		}
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v2 4/9] drm/i915: Refactor debugfs display info code
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Pull the crtc dumping stuff into a nice function so the
loop over the crtcs doesn't look like crap.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 52 ++++++++++++++++-------------
 1 file changed, 28 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index b4fffcce2d12..28f45f25cfc0 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2638,6 +2638,33 @@ static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
 	}
 }
 
+static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
+{
+	struct drm_i915_private *dev_priv = node_to_i915(m->private);
+	const struct intel_crtc_state *crtc_state =
+		to_intel_crtc_state(crtc->base.state);
+
+	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
+		   crtc->base.base.id, pipe_name(crtc->pipe),
+		   yesno(crtc_state->hw.active),
+		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
+		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
+
+	if (crtc_state->hw.active) {
+		struct intel_encoder *encoder;
+
+		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
+			intel_encoder_info(m, crtc, encoder);
+
+		intel_scaler_info(m, crtc);
+		intel_plane_info(m, crtc);
+	}
+
+	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
+		   yesno(!crtc->cpu_fifo_underrun_disabled),
+		   yesno(!crtc->pch_fifo_underrun_disabled));
+}
+
 static int i915_display_info(struct seq_file *m, void *unused)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
@@ -2652,31 +2679,8 @@ static int i915_display_info(struct seq_file *m, void *unused)
 	seq_printf(m, "CRTC info\n");
 	seq_printf(m, "---------\n");
 	for_each_intel_crtc(dev, crtc) {
-		const struct intel_crtc_state *crtc_state;
-
 		drm_modeset_lock(&crtc->base.mutex, NULL);
-
-		crtc_state = to_intel_crtc_state(crtc->base.state);
-
-		seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
-			   crtc->base.base.id, pipe_name(crtc->pipe),
-			   yesno(crtc_state->hw.active),
-			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
-			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
-
-		if (crtc_state->hw.active) {
-			struct intel_encoder *encoder;
-
-			for_each_encoder_on_crtc(dev, &crtc->base, encoder)
-				intel_encoder_info(m, crtc, encoder);
-
-			intel_scaler_info(m, crtc);
-			intel_plane_info(m, crtc);
-		}
-
-		seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s \n",
-			   yesno(!crtc->cpu_fifo_underrun_disabled),
-			   yesno(!crtc->pch_fifo_underrun_disabled));
+		intel_crtc_info(m, crtc);
 		drm_modeset_unlock(&crtc->base.mutex);
 	}
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 4/9] drm/i915: Refactor debugfs display info code
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Pull the crtc dumping stuff into a nice function so the
loop over the crtcs doesn't look like crap.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 52 ++++++++++++++++-------------
 1 file changed, 28 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index b4fffcce2d12..28f45f25cfc0 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2638,6 +2638,33 @@ static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
 	}
 }
 
+static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
+{
+	struct drm_i915_private *dev_priv = node_to_i915(m->private);
+	const struct intel_crtc_state *crtc_state =
+		to_intel_crtc_state(crtc->base.state);
+
+	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
+		   crtc->base.base.id, pipe_name(crtc->pipe),
+		   yesno(crtc_state->hw.active),
+		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
+		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
+
+	if (crtc_state->hw.active) {
+		struct intel_encoder *encoder;
+
+		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
+			intel_encoder_info(m, crtc, encoder);
+
+		intel_scaler_info(m, crtc);
+		intel_plane_info(m, crtc);
+	}
+
+	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
+		   yesno(!crtc->cpu_fifo_underrun_disabled),
+		   yesno(!crtc->pch_fifo_underrun_disabled));
+}
+
 static int i915_display_info(struct seq_file *m, void *unused)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
@@ -2652,31 +2679,8 @@ static int i915_display_info(struct seq_file *m, void *unused)
 	seq_printf(m, "CRTC info\n");
 	seq_printf(m, "---------\n");
 	for_each_intel_crtc(dev, crtc) {
-		const struct intel_crtc_state *crtc_state;
-
 		drm_modeset_lock(&crtc->base.mutex, NULL);
-
-		crtc_state = to_intel_crtc_state(crtc->base.state);
-
-		seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
-			   crtc->base.base.id, pipe_name(crtc->pipe),
-			   yesno(crtc_state->hw.active),
-			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
-			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
-
-		if (crtc_state->hw.active) {
-			struct intel_encoder *encoder;
-
-			for_each_encoder_on_crtc(dev, &crtc->base, encoder)
-				intel_encoder_info(m, crtc, encoder);
-
-			intel_scaler_info(m, crtc);
-			intel_plane_info(m, crtc);
-		}
-
-		seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s \n",
-			   yesno(!crtc->cpu_fifo_underrun_disabled),
-			   yesno(!crtc->pch_fifo_underrun_disabled));
+		intel_crtc_info(m, crtc);
 		drm_modeset_unlock(&crtc->base.mutex);
 	}
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v2 5/9] drm/i915: Dump the mode for the crtc just the once
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

No point in repeating the crtc mode for each cloned encoder.
Just print it once, and avoid using multiple lines for it.
And while at let's polish the fixed mode print to fit on
one line as well.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 27 +++++++++------------------
 1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 28f45f25cfc0..11f3f91befb9 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2388,29 +2388,16 @@ static void intel_encoder_info(struct seq_file *m,
 	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
 		   encoder->base.base.id, encoder->base.name);
 
-	for_each_connector_on_encoder(dev, &encoder->base, connector) {
-		seq_printf(m, "\t\tconnector %d: type: %s, status: %s",
-			   connector->base.base.id, connector->base.name,
-			   drm_get_connector_status_name(connector->base.status));
-
-		if (connector->base.status == connector_status_connected) {
-			const struct intel_crtc_state *crtc_state =
-				to_intel_crtc_state(crtc->base.state);
-
-			seq_printf(m, ", mode:\n");
-			intel_seq_print_mode(m, 2, &crtc_state->hw.mode);
-		} else {
-			seq_putc(m, '\n');
-		}
-	}
+	for_each_connector_on_encoder(dev, &encoder->base, connector)
+		seq_printf(m, "\t\tconnector %d: type: %s\n",
+			   connector->base.base.id, connector->base.name);
 }
 
 static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
 {
-	struct drm_display_mode *mode = panel->fixed_mode;
+	const struct drm_display_mode *mode = panel->fixed_mode;
 
-	seq_printf(m, "\tfixed mode:\n");
-	intel_seq_print_mode(m, 2, mode);
+	seq_printf(m, "\tfixed mode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
 }
 
 static void intel_hdcp_info(struct seq_file *m,
@@ -2651,8 +2638,12 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
 	if (crtc_state->hw.active) {
+		const struct drm_display_mode *mode =
+			&crtc_state->hw.mode;
 		struct intel_encoder *encoder;
 
+		seq_printf(m, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
+
 		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
 			intel_encoder_info(m, crtc, encoder);
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 5/9] drm/i915: Dump the mode for the crtc just the once
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

No point in repeating the crtc mode for each cloned encoder.
Just print it once, and avoid using multiple lines for it.
And while at let's polish the fixed mode print to fit on
one line as well.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 27 +++++++++------------------
 1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 28f45f25cfc0..11f3f91befb9 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2388,29 +2388,16 @@ static void intel_encoder_info(struct seq_file *m,
 	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
 		   encoder->base.base.id, encoder->base.name);
 
-	for_each_connector_on_encoder(dev, &encoder->base, connector) {
-		seq_printf(m, "\t\tconnector %d: type: %s, status: %s",
-			   connector->base.base.id, connector->base.name,
-			   drm_get_connector_status_name(connector->base.status));
-
-		if (connector->base.status == connector_status_connected) {
-			const struct intel_crtc_state *crtc_state =
-				to_intel_crtc_state(crtc->base.state);
-
-			seq_printf(m, ", mode:\n");
-			intel_seq_print_mode(m, 2, &crtc_state->hw.mode);
-		} else {
-			seq_putc(m, '\n');
-		}
-	}
+	for_each_connector_on_encoder(dev, &encoder->base, connector)
+		seq_printf(m, "\t\tconnector %d: type: %s\n",
+			   connector->base.base.id, connector->base.name);
 }
 
 static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
 {
-	struct drm_display_mode *mode = panel->fixed_mode;
+	const struct drm_display_mode *mode = panel->fixed_mode;
 
-	seq_printf(m, "\tfixed mode:\n");
-	intel_seq_print_mode(m, 2, mode);
+	seq_printf(m, "\tfixed mode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
 }
 
 static void intel_hdcp_info(struct seq_file *m,
@@ -2651,8 +2638,12 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
 	if (crtc_state->hw.active) {
+		const struct drm_display_mode *mode =
+			&crtc_state->hw.mode;
 		struct intel_encoder *encoder;
 
+		seq_printf(m, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
+
 		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
 			intel_encoder_info(m, crtc, encoder);
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v2 6/9] drm/i915: Use drm_modeset_lock_all() in debugfs display info
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Make out life easier by just grabbing all modeset locks around
the display_info dump.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 11f3f91befb9..3bf7d4e2f940 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2667,23 +2667,22 @@ static int i915_display_info(struct seq_file *m, void *unused)
 
 	wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
 
+	drm_modeset_lock_all(dev);
+
 	seq_printf(m, "CRTC info\n");
 	seq_printf(m, "---------\n");
-	for_each_intel_crtc(dev, crtc) {
-		drm_modeset_lock(&crtc->base.mutex, NULL);
+	for_each_intel_crtc(dev, crtc)
 		intel_crtc_info(m, crtc);
-		drm_modeset_unlock(&crtc->base.mutex);
-	}
 
 	seq_printf(m, "\n");
 	seq_printf(m, "Connector info\n");
 	seq_printf(m, "--------------\n");
-	mutex_lock(&dev->mode_config.mutex);
 	drm_connector_list_iter_begin(dev, &conn_iter);
 	drm_for_each_connector_iter(connector, &conn_iter)
 		intel_connector_info(m, connector);
 	drm_connector_list_iter_end(&conn_iter);
-	mutex_unlock(&dev->mode_config.mutex);
+
+	drm_modeset_unlock_all(dev);
 
 	intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref);
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 6/9] drm/i915: Use drm_modeset_lock_all() in debugfs display info
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Make out life easier by just grabbing all modeset locks around
the display_info dump.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 11f3f91befb9..3bf7d4e2f940 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2667,23 +2667,22 @@ static int i915_display_info(struct seq_file *m, void *unused)
 
 	wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
 
+	drm_modeset_lock_all(dev);
+
 	seq_printf(m, "CRTC info\n");
 	seq_printf(m, "---------\n");
-	for_each_intel_crtc(dev, crtc) {
-		drm_modeset_lock(&crtc->base.mutex, NULL);
+	for_each_intel_crtc(dev, crtc)
 		intel_crtc_info(m, crtc);
-		drm_modeset_unlock(&crtc->base.mutex);
-	}
 
 	seq_printf(m, "\n");
 	seq_printf(m, "Connector info\n");
 	seq_printf(m, "--------------\n");
-	mutex_lock(&dev->mode_config.mutex);
 	drm_connector_list_iter_begin(dev, &conn_iter);
 	drm_for_each_connector_iter(connector, &conn_iter)
 		intel_connector_info(m, connector);
 	drm_connector_list_iter_end(&conn_iter);
-	mutex_unlock(&dev->mode_config.mutex);
+
+	drm_modeset_unlock_all(dev);
 
 	intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref);
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v2 7/9] drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Use the canonicalt "[CRTC:%d:%s]" format for the obj id/name
in the debugfs display_info dump. Everyone should already be
familiar with the format since it's used in the debug logs
extensively.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 3bf7d4e2f940..4dffbff1b8bd 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2385,11 +2385,11 @@ static void intel_encoder_info(struct seq_file *m,
 	struct drm_device *dev = &dev_priv->drm;
 	struct intel_connector *connector;
 
-	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
+	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
 		   encoder->base.base.id, encoder->base.name);
 
 	for_each_connector_on_encoder(dev, &encoder->base, connector)
-		seq_printf(m, "\t\tconnector %d: type: %s\n",
+		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
 			   connector->base.base.id, connector->base.name);
 }
 
@@ -2478,7 +2478,7 @@ static void intel_connector_info(struct seq_file *m,
 	struct intel_encoder *intel_encoder = intel_connector->encoder;
 	struct drm_display_mode *mode;
 
-	seq_printf(m, "connector %d: type %s, status: %s\n",
+	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
 		   connector->base.id, connector->name,
 		   drm_get_connector_status_name(connector->status));
 
@@ -2585,8 +2585,8 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
 		plane_rotation(rot_str, sizeof(rot_str),
 			       plane_state->uapi.rotation);
 
-		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
-			   plane->base.base.id,
+		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
+			   plane->base.base.id, plane->base.name,
 			   plane_type(plane->base.type),
 			   fb ? fb->base.id : 0,
 			   fb ? format_name.str : "n/a",
@@ -2631,8 +2631,8 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 	const struct intel_crtc_state *crtc_state =
 		to_intel_crtc_state(crtc->base.state);
 
-	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
-		   crtc->base.base.id, pipe_name(crtc->pipe),
+	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
+		   crtc->base.base.id, crtc->base.name,
 		   yesno(crtc_state->hw.active),
 		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
 		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 7/9] drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Use the canonicalt "[CRTC:%d:%s]" format for the obj id/name
in the debugfs display_info dump. Everyone should already be
familiar with the format since it's used in the debug logs
extensively.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 3bf7d4e2f940..4dffbff1b8bd 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2385,11 +2385,11 @@ static void intel_encoder_info(struct seq_file *m,
 	struct drm_device *dev = &dev_priv->drm;
 	struct intel_connector *connector;
 
-	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
+	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
 		   encoder->base.base.id, encoder->base.name);
 
 	for_each_connector_on_encoder(dev, &encoder->base, connector)
-		seq_printf(m, "\t\tconnector %d: type: %s\n",
+		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
 			   connector->base.base.id, connector->base.name);
 }
 
@@ -2478,7 +2478,7 @@ static void intel_connector_info(struct seq_file *m,
 	struct intel_encoder *intel_encoder = intel_connector->encoder;
 	struct drm_display_mode *mode;
 
-	seq_printf(m, "connector %d: type %s, status: %s\n",
+	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
 		   connector->base.id, connector->name,
 		   drm_get_connector_status_name(connector->status));
 
@@ -2585,8 +2585,8 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
 		plane_rotation(rot_str, sizeof(rot_str),
 			       plane_state->uapi.rotation);
 
-		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
-			   plane->base.base.id,
+		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
+			   plane->base.base.id, plane->base.name,
 			   plane_type(plane->base.type),
 			   fb ? fb->base.id : 0,
 			   fb ? format_name.str : "n/a",
@@ -2631,8 +2631,8 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 	const struct intel_crtc_state *crtc_state =
 		to_intel_crtc_state(crtc->base.state);
 
-	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
-		   crtc->base.base.id, pipe_name(crtc->pipe),
+	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
+		   crtc->base.base.id, crtc->base.name,
 		   yesno(crtc_state->hw.active),
 		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
 		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v2 8/9] drm/i915: Dump both the uapi and hw states for crtcs and planes
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Let's make the display info more useful by dumping both
the uapi and hw states for each crtc/plane.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 116 +++++++++++++++++-----------
 1 file changed, 73 insertions(+), 43 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 4dffbff1b8bd..414da0a542d6 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2556,45 +2556,68 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
 		 rotation);
 }
 
+static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
+{
+	const struct intel_plane_state *plane_state =
+		to_intel_plane_state(plane->base.state);
+	const struct drm_framebuffer *fb = plane_state->uapi.fb;
+	struct drm_format_name_buf format_name;
+	struct drm_rect src, dst;
+	char rot_str[48];
+
+	src = drm_plane_state_src(&plane_state->uapi);
+	dst = drm_plane_state_dest(&plane_state->uapi);
+
+	if (fb)
+		drm_get_format_name(fb->format->format, &format_name);
+
+	plane_rotation(rot_str, sizeof(rot_str),
+		       plane_state->uapi.rotation);
+
+	seq_printf(m, "\t\tuapi: fb=%d,%s,%dx%d, 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->width : 0, fb ? fb->height : 0,
+		   DRM_RECT_FP_ARG(&src),
+		   DRM_RECT_ARG(&dst),
+		   rot_str);
+}
+
+static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
+{
+	const struct intel_plane_state *plane_state =
+		to_intel_plane_state(plane->base.state);
+	const struct drm_framebuffer *fb = plane_state->hw.fb;
+	struct drm_format_name_buf format_name;
+	char rot_str[48];
+
+	if (!fb)
+		return;
+
+	drm_get_format_name(fb->format->format, &format_name);
+
+	plane_rotation(rot_str, sizeof(rot_str),
+		       plane_state->hw.rotation);
+
+	seq_printf(m, "\t\thw: fb=%d,%s,%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->width : 0, fb ? fb->height : 0,
+		   yesno(plane_state->uapi.visible),
+		   DRM_RECT_FP_ARG(&plane_state->uapi.src),
+		   DRM_RECT_ARG(&plane_state->uapi.dst),
+		   rot_str);
+}
+
 static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
-	struct drm_device *dev = &dev_priv->drm;
 	struct intel_plane *plane;
 
-	for_each_intel_plane_on_crtc(dev, crtc, plane) {
-		const struct intel_plane_state *plane_state =
-			to_intel_plane_state(plane->base.state);
-		const struct drm_framebuffer *fb;
-		struct drm_format_name_buf format_name;
-		struct drm_rect src, dst;
-		char rot_str[48];
-
-		if (!plane_state) {
-			seq_puts(m, "plane->state is NULL!\n");
-			continue;
-		}
-
-		src = drm_plane_state_src(&plane_state->uapi);
-		dst = drm_plane_state_dest(&plane_state->uapi);
-
-		fb = plane_state->uapi.fb;
-		if (fb)
-			drm_get_format_name(fb->format->format, &format_name);
-
-		plane_rotation(rot_str, sizeof(rot_str),
-			       plane_state->uapi.rotation);
-
-		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
+	for_each_intel_plane_on_crtc(&dev_priv->drm, crtc, plane) {
+		seq_printf(m, "\t[PLANE:%d:%s]: type=%s\n",
 			   plane->base.base.id, plane->base.name,
-			   plane_type(plane->base.type),
-			   fb ? fb->base.id : 0,
-			   fb ? format_name.str : "n/a",
-			   fb ? fb->width : 0,
-			   fb ? fb->height : 0,
-			   DRM_RECT_FP_ARG(&src),
-			   DRM_RECT_ARG(&dst),
-			   rot_str);
+			   plane_type(plane->base.type));
+		intel_plane_uapi_info(m, plane);
+		intel_plane_hw_info(m, plane);
 	}
 }
 
@@ -2631,26 +2654,33 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 	const struct intel_crtc_state *crtc_state =
 		to_intel_crtc_state(crtc->base.state);
 
-	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
-		   crtc->base.base.id, crtc->base.name,
-		   yesno(crtc_state->hw.active),
-		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
-		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
+	seq_printf(m, "[CRTC:%d:%s]:\n",
+		   crtc->base.base.id, crtc->base.name);
 
-	if (crtc_state->hw.active) {
-		const struct drm_display_mode *mode =
-			&crtc_state->hw.mode;
+	seq_printf(m, "\tuapi: enable=%s, active=%s, mode=" DRM_MODE_FMT "\n",
+		   yesno(crtc_state->uapi.enable),
+		   yesno(crtc_state->uapi.active),
+		   DRM_MODE_ARG(&crtc_state->uapi.mode));
+
+	if (crtc_state->hw.enable) {
 		struct intel_encoder *encoder;
 
-		seq_printf(m, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
+		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
+			   yesno(crtc_state->hw.active),
+			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
+
+		seq_printf(m, "\tpipe src size=%dx%d, dither=%s, bpp=%d\n",
+			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
+			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
 		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
 			intel_encoder_info(m, crtc, encoder);
 
 		intel_scaler_info(m, crtc);
-		intel_plane_info(m, crtc);
 	}
 
+	intel_plane_info(m, crtc);
+
 	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
 		   yesno(!crtc->cpu_fifo_underrun_disabled),
 		   yesno(!crtc->pch_fifo_underrun_disabled));
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 8/9] drm/i915: Dump both the uapi and hw states for crtcs and planes
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Let's make the display info more useful by dumping both
the uapi and hw states for each crtc/plane.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 116 +++++++++++++++++-----------
 1 file changed, 73 insertions(+), 43 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 4dffbff1b8bd..414da0a542d6 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2556,45 +2556,68 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
 		 rotation);
 }
 
+static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
+{
+	const struct intel_plane_state *plane_state =
+		to_intel_plane_state(plane->base.state);
+	const struct drm_framebuffer *fb = plane_state->uapi.fb;
+	struct drm_format_name_buf format_name;
+	struct drm_rect src, dst;
+	char rot_str[48];
+
+	src = drm_plane_state_src(&plane_state->uapi);
+	dst = drm_plane_state_dest(&plane_state->uapi);
+
+	if (fb)
+		drm_get_format_name(fb->format->format, &format_name);
+
+	plane_rotation(rot_str, sizeof(rot_str),
+		       plane_state->uapi.rotation);
+
+	seq_printf(m, "\t\tuapi: fb=%d,%s,%dx%d, 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->width : 0, fb ? fb->height : 0,
+		   DRM_RECT_FP_ARG(&src),
+		   DRM_RECT_ARG(&dst),
+		   rot_str);
+}
+
+static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
+{
+	const struct intel_plane_state *plane_state =
+		to_intel_plane_state(plane->base.state);
+	const struct drm_framebuffer *fb = plane_state->hw.fb;
+	struct drm_format_name_buf format_name;
+	char rot_str[48];
+
+	if (!fb)
+		return;
+
+	drm_get_format_name(fb->format->format, &format_name);
+
+	plane_rotation(rot_str, sizeof(rot_str),
+		       plane_state->hw.rotation);
+
+	seq_printf(m, "\t\thw: fb=%d,%s,%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->width : 0, fb ? fb->height : 0,
+		   yesno(plane_state->uapi.visible),
+		   DRM_RECT_FP_ARG(&plane_state->uapi.src),
+		   DRM_RECT_ARG(&plane_state->uapi.dst),
+		   rot_str);
+}
+
 static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
-	struct drm_device *dev = &dev_priv->drm;
 	struct intel_plane *plane;
 
-	for_each_intel_plane_on_crtc(dev, crtc, plane) {
-		const struct intel_plane_state *plane_state =
-			to_intel_plane_state(plane->base.state);
-		const struct drm_framebuffer *fb;
-		struct drm_format_name_buf format_name;
-		struct drm_rect src, dst;
-		char rot_str[48];
-
-		if (!plane_state) {
-			seq_puts(m, "plane->state is NULL!\n");
-			continue;
-		}
-
-		src = drm_plane_state_src(&plane_state->uapi);
-		dst = drm_plane_state_dest(&plane_state->uapi);
-
-		fb = plane_state->uapi.fb;
-		if (fb)
-			drm_get_format_name(fb->format->format, &format_name);
-
-		plane_rotation(rot_str, sizeof(rot_str),
-			       plane_state->uapi.rotation);
-
-		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
+	for_each_intel_plane_on_crtc(&dev_priv->drm, crtc, plane) {
+		seq_printf(m, "\t[PLANE:%d:%s]: type=%s\n",
 			   plane->base.base.id, plane->base.name,
-			   plane_type(plane->base.type),
-			   fb ? fb->base.id : 0,
-			   fb ? format_name.str : "n/a",
-			   fb ? fb->width : 0,
-			   fb ? fb->height : 0,
-			   DRM_RECT_FP_ARG(&src),
-			   DRM_RECT_ARG(&dst),
-			   rot_str);
+			   plane_type(plane->base.type));
+		intel_plane_uapi_info(m, plane);
+		intel_plane_hw_info(m, plane);
 	}
 }
 
@@ -2631,26 +2654,33 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 	const struct intel_crtc_state *crtc_state =
 		to_intel_crtc_state(crtc->base.state);
 
-	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
-		   crtc->base.base.id, crtc->base.name,
-		   yesno(crtc_state->hw.active),
-		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
-		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
+	seq_printf(m, "[CRTC:%d:%s]:\n",
+		   crtc->base.base.id, crtc->base.name);
 
-	if (crtc_state->hw.active) {
-		const struct drm_display_mode *mode =
-			&crtc_state->hw.mode;
+	seq_printf(m, "\tuapi: enable=%s, active=%s, mode=" DRM_MODE_FMT "\n",
+		   yesno(crtc_state->uapi.enable),
+		   yesno(crtc_state->uapi.active),
+		   DRM_MODE_ARG(&crtc_state->uapi.mode));
+
+	if (crtc_state->hw.enable) {
 		struct intel_encoder *encoder;
 
-		seq_printf(m, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
+		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
+			   yesno(crtc_state->hw.active),
+			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
+
+		seq_printf(m, "\tpipe src size=%dx%d, dither=%s, bpp=%d\n",
+			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
+			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
 		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
 			intel_encoder_info(m, crtc, encoder);
 
 		intel_scaler_info(m, crtc);
-		intel_plane_info(m, crtc);
 	}
 
+	intel_plane_info(m, crtc);
+
 	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
 		   yesno(!crtc->cpu_fifo_underrun_disabled),
 		   yesno(!crtc->pch_fifo_underrun_disabled));
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v2 9/9] drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Migrate away from the legacy encoder->crtc and connector->encoder links
in the debugfs display_info code. Other users still remain so can't kill
these off yet.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.h |  7 ++++
 drivers/gpu/drm/i915/i915_debugfs.c          | 43 ++++++++++++--------
 2 files changed, 34 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index a5ec5eeff056..5ed716a986ad 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -380,6 +380,13 @@ enum phy_fia {
 			    &(dev)->mode_config.encoder_list,	\
 			    base.head)
 
+#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
+	list_for_each_entry(intel_encoder,				\
+			    &(dev)->mode_config.encoder_list,		\
+			    base.head)					\
+		for_each_if((encoder_mask) &				\
+			    drm_encoder_mask(&intel_encoder->base))
+
 #define for_each_intel_dp(dev, intel_encoder)			\
 	for_each_intel_encoder(dev, intel_encoder)		\
 		for_each_if(intel_encoder_is_dp(intel_encoder))
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 414da0a542d6..eb80a2c4b55b 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2382,15 +2382,24 @@ static void intel_encoder_info(struct seq_file *m,
 			       struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
-	struct drm_device *dev = &dev_priv->drm;
-	struct intel_connector *connector;
+	struct drm_connector_list_iter conn_iter;
+	struct drm_connector *connector;
 
 	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
 		   encoder->base.base.id, encoder->base.name);
 
-	for_each_connector_on_encoder(dev, &encoder->base, connector)
+	drm_connector_list_iter_begin(&dev_priv->drm, &conn_iter);
+	drm_for_each_connector_iter(connector, &conn_iter) {
+		const struct drm_connector_state *conn_state =
+			connector->state;
+
+		if (conn_state->best_encoder != &encoder->base)
+			continue;
+
 		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
-			   connector->base.base.id, connector->base.name);
+			   connector->base.id, connector->name);
+	}
+	drm_connector_list_iter_end(&conn_iter);
 }
 
 static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
@@ -2475,8 +2484,10 @@ static void intel_connector_info(struct seq_file *m,
 				 struct drm_connector *connector)
 {
 	struct intel_connector *intel_connector = to_intel_connector(connector);
-	struct intel_encoder *intel_encoder = intel_connector->encoder;
-	struct drm_display_mode *mode;
+	const struct drm_connector_state *conn_state = connector->state;
+	struct intel_encoder *encoder =
+		to_intel_encoder(conn_state->best_encoder);
+	const struct drm_display_mode *mode;
 
 	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
 		   connector->base.id, connector->name,
@@ -2492,24 +2503,24 @@ static void intel_connector_info(struct seq_file *m,
 		   drm_get_subpixel_order_name(connector->display_info.subpixel_order));
 	seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev);
 
-	if (!intel_encoder)
+	if (!encoder)
 		return;
 
 	switch (connector->connector_type) {
 	case DRM_MODE_CONNECTOR_DisplayPort:
 	case DRM_MODE_CONNECTOR_eDP:
-		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
+		if (encoder->type == INTEL_OUTPUT_DP_MST)
 			intel_dp_mst_info(m, intel_connector);
 		else
 			intel_dp_info(m, intel_connector);
 		break;
 	case DRM_MODE_CONNECTOR_LVDS:
-		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
+		if (encoder->type == INTEL_OUTPUT_LVDS)
 			intel_lvds_info(m, intel_connector);
 		break;
 	case DRM_MODE_CONNECTOR_HDMIA:
-		if (intel_encoder->type == INTEL_OUTPUT_HDMI ||
-		    intel_encoder->type == INTEL_OUTPUT_DDI)
+		if (encoder->type == INTEL_OUTPUT_HDMI ||
+		    encoder->type == INTEL_OUTPUT_DDI)
 			intel_hdmi_info(m, intel_connector);
 		break;
 	default:
@@ -2653,6 +2664,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
 	const struct intel_crtc_state *crtc_state =
 		to_intel_crtc_state(crtc->base.state);
+	struct intel_encoder *encoder;
 
 	seq_printf(m, "[CRTC:%d:%s]:\n",
 		   crtc->base.base.id, crtc->base.name);
@@ -2663,8 +2675,6 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 		   DRM_MODE_ARG(&crtc_state->uapi.mode));
 
 	if (crtc_state->hw.enable) {
-		struct intel_encoder *encoder;
-
 		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
 			   yesno(crtc_state->hw.active),
 			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
@@ -2673,12 +2683,13 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
 			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
-		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
-			intel_encoder_info(m, crtc, encoder);
-
 		intel_scaler_info(m, crtc);
 	}
 
+	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
+				    crtc_state->uapi.encoder_mask)
+		intel_encoder_info(m, crtc, encoder);
+
 	intel_plane_info(m, crtc);
 
 	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [PATCH v2 9/9] drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
@ 2019-11-29 18:54   ` Ville Syrjala
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjala @ 2019-11-29 18:54 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Migrate away from the legacy encoder->crtc and connector->encoder links
in the debugfs display_info code. Other users still remain so can't kill
these off yet.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.h |  7 ++++
 drivers/gpu/drm/i915/i915_debugfs.c          | 43 ++++++++++++--------
 2 files changed, 34 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index a5ec5eeff056..5ed716a986ad 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -380,6 +380,13 @@ enum phy_fia {
 			    &(dev)->mode_config.encoder_list,	\
 			    base.head)
 
+#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
+	list_for_each_entry(intel_encoder,				\
+			    &(dev)->mode_config.encoder_list,		\
+			    base.head)					\
+		for_each_if((encoder_mask) &				\
+			    drm_encoder_mask(&intel_encoder->base))
+
 #define for_each_intel_dp(dev, intel_encoder)			\
 	for_each_intel_encoder(dev, intel_encoder)		\
 		for_each_if(intel_encoder_is_dp(intel_encoder))
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 414da0a542d6..eb80a2c4b55b 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2382,15 +2382,24 @@ static void intel_encoder_info(struct seq_file *m,
 			       struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
-	struct drm_device *dev = &dev_priv->drm;
-	struct intel_connector *connector;
+	struct drm_connector_list_iter conn_iter;
+	struct drm_connector *connector;
 
 	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
 		   encoder->base.base.id, encoder->base.name);
 
-	for_each_connector_on_encoder(dev, &encoder->base, connector)
+	drm_connector_list_iter_begin(&dev_priv->drm, &conn_iter);
+	drm_for_each_connector_iter(connector, &conn_iter) {
+		const struct drm_connector_state *conn_state =
+			connector->state;
+
+		if (conn_state->best_encoder != &encoder->base)
+			continue;
+
 		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
-			   connector->base.base.id, connector->base.name);
+			   connector->base.id, connector->name);
+	}
+	drm_connector_list_iter_end(&conn_iter);
 }
 
 static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
@@ -2475,8 +2484,10 @@ static void intel_connector_info(struct seq_file *m,
 				 struct drm_connector *connector)
 {
 	struct intel_connector *intel_connector = to_intel_connector(connector);
-	struct intel_encoder *intel_encoder = intel_connector->encoder;
-	struct drm_display_mode *mode;
+	const struct drm_connector_state *conn_state = connector->state;
+	struct intel_encoder *encoder =
+		to_intel_encoder(conn_state->best_encoder);
+	const struct drm_display_mode *mode;
 
 	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
 		   connector->base.id, connector->name,
@@ -2492,24 +2503,24 @@ static void intel_connector_info(struct seq_file *m,
 		   drm_get_subpixel_order_name(connector->display_info.subpixel_order));
 	seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev);
 
-	if (!intel_encoder)
+	if (!encoder)
 		return;
 
 	switch (connector->connector_type) {
 	case DRM_MODE_CONNECTOR_DisplayPort:
 	case DRM_MODE_CONNECTOR_eDP:
-		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
+		if (encoder->type == INTEL_OUTPUT_DP_MST)
 			intel_dp_mst_info(m, intel_connector);
 		else
 			intel_dp_info(m, intel_connector);
 		break;
 	case DRM_MODE_CONNECTOR_LVDS:
-		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
+		if (encoder->type == INTEL_OUTPUT_LVDS)
 			intel_lvds_info(m, intel_connector);
 		break;
 	case DRM_MODE_CONNECTOR_HDMIA:
-		if (intel_encoder->type == INTEL_OUTPUT_HDMI ||
-		    intel_encoder->type == INTEL_OUTPUT_DDI)
+		if (encoder->type == INTEL_OUTPUT_HDMI ||
+		    encoder->type == INTEL_OUTPUT_DDI)
 			intel_hdmi_info(m, intel_connector);
 		break;
 	default:
@@ -2653,6 +2664,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 	struct drm_i915_private *dev_priv = node_to_i915(m->private);
 	const struct intel_crtc_state *crtc_state =
 		to_intel_crtc_state(crtc->base.state);
+	struct intel_encoder *encoder;
 
 	seq_printf(m, "[CRTC:%d:%s]:\n",
 		   crtc->base.base.id, crtc->base.name);
@@ -2663,8 +2675,6 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 		   DRM_MODE_ARG(&crtc_state->uapi.mode));
 
 	if (crtc_state->hw.enable) {
-		struct intel_encoder *encoder;
-
 		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
 			   yesno(crtc_state->hw.active),
 			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
@@ -2673,12 +2683,13 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
 			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
 			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
 
-		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
-			intel_encoder_info(m, crtc, encoder);
-
 		intel_scaler_info(m, crtc);
 	}
 
+	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
+				    crtc_state->uapi.encoder_mask)
+		intel_encoder_info(m, crtc, encoder);
+
 	intel_plane_info(m, crtc);
 
 	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: i915_display_info cleanup
@ 2019-11-29 21:43   ` Patchwork
  0 siblings, 0 replies; 50+ messages in thread
From: Patchwork @ 2019-11-29 21:43 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: i915_display_info cleanup
URL   : https://patchwork.freedesktop.org/series/70222/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
6356e0862ab6 drm/i915: Use drm_rect to simplify plane {crtc, src}_{x, y, w, h} printing
-:41: WARNING:LONG_LINE: line over 100 characters
#41: FILE: drivers/gpu/drm/i915/i915_debugfs.c:2624:
+		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",

total: 0 errors, 1 warnings, 0 checks, 38 lines checked
2a80e4622b63 drm/i915: Switch to intel_ types in debugfs display_info
b62404023212 drm/i915: Reorganize plane/fb dump in debugfs
-:62: WARNING:LONG_LINE: line over 100 characters
#62: FILE: drivers/gpu/drm/i915/i915_debugfs.c:2601:
+		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",

total: 0 errors, 1 warnings, 0 checks, 80 lines checked
b0243cfbf813 drm/i915: Refactor debugfs display info code
7daef64f127f drm/i915: Dump the mode for the crtc just the once
cb15b4882e11 drm/i915: Use drm_modeset_lock_all() in debugfs display info
1932dba700b8 drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
-:50: WARNING:LONG_LINE: line over 100 characters
#50: FILE: drivers/gpu/drm/i915/i915_debugfs.c:2588:
+		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",

total: 0 errors, 1 warnings, 0 checks, 41 lines checked
c8b8d3658b34 drm/i915: Dump both the uapi and hw states for crtcs and planes
-:87: WARNING:LONG_LINE: line over 100 characters
#87: FILE: drivers/gpu/drm/i915/i915_debugfs.c:2601:
+	seq_printf(m, "\t\thw: fb=%d,%s,%dx%d, visible=%s, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",

total: 0 errors, 1 warnings, 0 checks, 142 lines checked
108411fb7af8 drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
-:24: ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses
#24: FILE: drivers/gpu/drm/i915/display/intel_display.h:383:
+#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
+	list_for_each_entry(intel_encoder,				\
+			    &(dev)->mode_config.encoder_list,		\
+			    base.head)					\
+		for_each_if((encoder_mask) &				\
+			    drm_encoder_mask(&intel_encoder->base))

-:24: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'intel_encoder' - possible side-effects?
#24: FILE: drivers/gpu/drm/i915/display/intel_display.h:383:
+#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
+	list_for_each_entry(intel_encoder,				\
+			    &(dev)->mode_config.encoder_list,		\
+			    base.head)					\
+		for_each_if((encoder_mask) &				\
+			    drm_encoder_mask(&intel_encoder->base))

total: 1 errors, 0 warnings, 1 checks, 113 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: i915_display_info cleanup
@ 2019-11-29 21:43   ` Patchwork
  0 siblings, 0 replies; 50+ messages in thread
From: Patchwork @ 2019-11-29 21:43 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: i915_display_info cleanup
URL   : https://patchwork.freedesktop.org/series/70222/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
6356e0862ab6 drm/i915: Use drm_rect to simplify plane {crtc, src}_{x, y, w, h} printing
-:41: WARNING:LONG_LINE: line over 100 characters
#41: FILE: drivers/gpu/drm/i915/i915_debugfs.c:2624:
+		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",

total: 0 errors, 1 warnings, 0 checks, 38 lines checked
2a80e4622b63 drm/i915: Switch to intel_ types in debugfs display_info
b62404023212 drm/i915: Reorganize plane/fb dump in debugfs
-:62: WARNING:LONG_LINE: line over 100 characters
#62: FILE: drivers/gpu/drm/i915/i915_debugfs.c:2601:
+		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",

total: 0 errors, 1 warnings, 0 checks, 80 lines checked
b0243cfbf813 drm/i915: Refactor debugfs display info code
7daef64f127f drm/i915: Dump the mode for the crtc just the once
cb15b4882e11 drm/i915: Use drm_modeset_lock_all() in debugfs display info
1932dba700b8 drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
-:50: WARNING:LONG_LINE: line over 100 characters
#50: FILE: drivers/gpu/drm/i915/i915_debugfs.c:2588:
+		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",

total: 0 errors, 1 warnings, 0 checks, 41 lines checked
c8b8d3658b34 drm/i915: Dump both the uapi and hw states for crtcs and planes
-:87: WARNING:LONG_LINE: line over 100 characters
#87: FILE: drivers/gpu/drm/i915/i915_debugfs.c:2601:
+	seq_printf(m, "\t\thw: fb=%d,%s,%dx%d, visible=%s, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",

total: 0 errors, 1 warnings, 0 checks, 142 lines checked
108411fb7af8 drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
-:24: ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses
#24: FILE: drivers/gpu/drm/i915/display/intel_display.h:383:
+#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
+	list_for_each_entry(intel_encoder,				\
+			    &(dev)->mode_config.encoder_list,		\
+			    base.head)					\
+		for_each_if((encoder_mask) &				\
+			    drm_encoder_mask(&intel_encoder->base))

-:24: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'intel_encoder' - possible side-effects?
#24: FILE: drivers/gpu/drm/i915/display/intel_display.h:383:
+#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
+	list_for_each_entry(intel_encoder,				\
+			    &(dev)->mode_config.encoder_list,		\
+			    base.head)					\
+		for_each_if((encoder_mask) &				\
+			    drm_encoder_mask(&intel_encoder->base))

total: 1 errors, 0 warnings, 1 checks, 113 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✓ Fi.CI.BAT: success for drm/i915: i915_display_info cleanup
@ 2019-11-29 22:27   ` Patchwork
  0 siblings, 0 replies; 50+ messages in thread
From: Patchwork @ 2019-11-29 22:27 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: i915_display_info cleanup
URL   : https://patchwork.freedesktop.org/series/70222/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7447 -> Patchwork_15516
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15516:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_pm_rpm@module-reload:
    - {fi-kbl-7560u}:     [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html

  
Known issues
------------

  Here are the changes found in Patchwork_15516 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [PASS][3] -> [FAIL][4] ([fdo#108511])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-peppy:       [PASS][5] -> [DMESG-FAIL][6] ([fdo#112147])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-hsw-peppy/igt@i915_selftest@live_blt.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-hsw-peppy/igt@i915_selftest@live_blt.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [PASS][7] -> [DMESG-WARN][8] ([fdo#102614])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
#### Possible fixes ####

  * igt@gem_sync@basic-all:
    - fi-tgl-y:           [INCOMPLETE][9] ([fdo#111867]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-tgl-y/igt@gem_sync@basic-all.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-tgl-y/igt@gem_sync@basic-all.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][11] ([fdo#111407]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Warnings ####

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-kbl-x1275:       [DMESG-WARN][13] ([fdo#103558] / [fdo#105602]) -> [SKIP][14] ([fdo#109271])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@kms_busy@basic-flip-pipe-c:
    - fi-kbl-x1275:       [DMESG-WARN][15] ([fdo#103558] / [fdo#105602] / [fdo#105763]) -> [DMESG-WARN][16] ([fdo#103558] / [fdo#105602]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-c.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-c.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-icl-u2:          [DMESG-WARN][17] ([IGT#4] / [fdo#110390]) -> [DMESG-WARN][18] ([IGT#4] / [fdo#106107] / [fdo#110390])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
    - fi-kbl-x1275:       [DMESG-WARN][19] ([fdo#103558] / [fdo#105602]) -> [DMESG-WARN][20] ([fdo#103558] / [fdo#105602] / [fdo#105763]) +6 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-x1275/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-x1275/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [IGT#4]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/4
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558
  [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#110390]: https://bugs.freedesktop.org/show_bug.cgi?id=110390
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [fdo#111867]: https://bugs.freedesktop.org/show_bug.cgi?id=111867
  [fdo#112147]: https://bugs.freedesktop.org/show_bug.cgi?id=112147


Participating hosts (51 -> 45)
------------------------------

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7447 -> Patchwork_15516

  CI-20190529: 20190529
  CI_DRM_7447: 8a02da6e5bea288945ed422bd40ad8c5a254e539 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5318: 26ae6584ac03ad862d82f986302275a68bcccb29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15516: 108411fb7af88aabfcb610a5137b85d109fba34e @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

108411fb7af8 drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
c8b8d3658b34 drm/i915: Dump both the uapi and hw states for crtcs and planes
1932dba700b8 drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
cb15b4882e11 drm/i915: Use drm_modeset_lock_all() in debugfs display info
7daef64f127f drm/i915: Dump the mode for the crtc just the once
b0243cfbf813 drm/i915: Refactor debugfs display info code
b62404023212 drm/i915: Reorganize plane/fb dump in debugfs
2a80e4622b63 drm/i915: Switch to intel_ types in debugfs display_info
6356e0862ab6 drm/i915: Use drm_rect to simplify plane {crtc, src}_{x, y, w, h} printing

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: i915_display_info cleanup
@ 2019-11-29 22:27   ` Patchwork
  0 siblings, 0 replies; 50+ messages in thread
From: Patchwork @ 2019-11-29 22:27 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: i915_display_info cleanup
URL   : https://patchwork.freedesktop.org/series/70222/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7447 -> Patchwork_15516
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15516:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_pm_rpm@module-reload:
    - {fi-kbl-7560u}:     [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html

  
Known issues
------------

  Here are the changes found in Patchwork_15516 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [PASS][3] -> [FAIL][4] ([fdo#108511])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-peppy:       [PASS][5] -> [DMESG-FAIL][6] ([fdo#112147])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-hsw-peppy/igt@i915_selftest@live_blt.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-hsw-peppy/igt@i915_selftest@live_blt.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [PASS][7] -> [DMESG-WARN][8] ([fdo#102614])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
#### Possible fixes ####

  * igt@gem_sync@basic-all:
    - fi-tgl-y:           [INCOMPLETE][9] ([fdo#111867]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-tgl-y/igt@gem_sync@basic-all.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-tgl-y/igt@gem_sync@basic-all.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][11] ([fdo#111407]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Warnings ####

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-kbl-x1275:       [DMESG-WARN][13] ([fdo#103558] / [fdo#105602]) -> [SKIP][14] ([fdo#109271])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@kms_busy@basic-flip-pipe-c:
    - fi-kbl-x1275:       [DMESG-WARN][15] ([fdo#103558] / [fdo#105602] / [fdo#105763]) -> [DMESG-WARN][16] ([fdo#103558] / [fdo#105602]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-c.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-c.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-icl-u2:          [DMESG-WARN][17] ([IGT#4] / [fdo#110390]) -> [DMESG-WARN][18] ([IGT#4] / [fdo#106107] / [fdo#110390])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
    - fi-kbl-x1275:       [DMESG-WARN][19] ([fdo#103558] / [fdo#105602]) -> [DMESG-WARN][20] ([fdo#103558] / [fdo#105602] / [fdo#105763]) +6 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/fi-kbl-x1275/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/fi-kbl-x1275/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [IGT#4]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/4
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558
  [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#110390]: https://bugs.freedesktop.org/show_bug.cgi?id=110390
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [fdo#111867]: https://bugs.freedesktop.org/show_bug.cgi?id=111867
  [fdo#112147]: https://bugs.freedesktop.org/show_bug.cgi?id=112147


Participating hosts (51 -> 45)
------------------------------

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7447 -> Patchwork_15516

  CI-20190529: 20190529
  CI_DRM_7447: 8a02da6e5bea288945ed422bd40ad8c5a254e539 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5318: 26ae6584ac03ad862d82f986302275a68bcccb29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15516: 108411fb7af88aabfcb610a5137b85d109fba34e @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

108411fb7af8 drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
c8b8d3658b34 drm/i915: Dump both the uapi and hw states for crtcs and planes
1932dba700b8 drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
cb15b4882e11 drm/i915: Use drm_modeset_lock_all() in debugfs display info
7daef64f127f drm/i915: Dump the mode for the crtc just the once
b0243cfbf813 drm/i915: Refactor debugfs display info code
b62404023212 drm/i915: Reorganize plane/fb dump in debugfs
2a80e4622b63 drm/i915: Switch to intel_ types in debugfs display_info
6356e0862ab6 drm/i915: Use drm_rect to simplify plane {crtc, src}_{x, y, w, h} printing

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.IGT: failure for drm/i915: i915_display_info cleanup
@ 2019-12-01  1:15   ` Patchwork
  0 siblings, 0 replies; 50+ messages in thread
From: Patchwork @ 2019-12-01  1:15 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: i915_display_info cleanup
URL   : https://patchwork.freedesktop.org/series/70222/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7447_full -> Patchwork_15516_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_15516_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15516_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15516_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-snb:          NOTRUN -> [DMESG-WARN][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb2/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-tglb:         [PASS][2] -> [INCOMPLETE][3]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html

  
#### Warnings ####

  * igt@runner@aborted:
    - shard-snb:          [FAIL][4] ([i915#436]) -> [FAIL][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb4/igt@runner@aborted.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb2/igt@runner@aborted.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@gem_exec_schedule@pi-shared-iova-bsd}:
    - shard-tglb:         NOTRUN -> [SKIP][6]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb6/igt@gem_exec_schedule@pi-shared-iova-bsd.html

  
Known issues
------------

  Here are the changes found in Patchwork_15516_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_busy@busy-vcs1:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#112080]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@gem_busy@busy-vcs1.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@gem_busy@busy-vcs1.html

  * igt@gem_ctx_persistence@vcs1-cleanup:
    - shard-iclb:         [PASS][9] -> [SKIP][10] ([fdo#109276] / [fdo#112080])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@gem_ctx_persistence@vcs1-cleanup.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@gem_ctx_persistence@vcs1-cleanup.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [PASS][11] -> [SKIP][12] ([fdo#112146]) +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-snb:          [PASS][13] -> [DMESG-WARN][14] ([fdo#111870]) +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb4/igt@gem_userptr_blits@dmabuf-sync.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb5/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-hsw:          [PASS][15] -> [DMESG-WARN][16] ([fdo#111870])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw1/igt@gem_userptr_blits@sync-unmap-cycles.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw6/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_selftest@live_hangcheck:
    - shard-snb:          [PASS][17] -> [INCOMPLETE][18] ([i915#82])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb1/igt@i915_selftest@live_hangcheck.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb5/igt@i915_selftest@live_hangcheck.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-apl:          [PASS][19] -> [DMESG-WARN][20] ([i915#180]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-apl6/igt@i915_suspend@fence-restore-untiled.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-apl6/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_atomic@test_only:
    - shard-snb:          [PASS][21] -> [SKIP][22] ([fdo#109271]) +9 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb1/igt@kms_atomic@test_only.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb6/igt@kms_atomic@test_only.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
    - shard-skl:          [PASS][23] -> [INCOMPLETE][24] ([fdo#112347])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl7/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl4/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html

  * igt@kms_color@pipe-a-ctm-0-75:
    - shard-skl:          [PASS][25] -> [DMESG-WARN][26] ([i915#109])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl3/igt@kms_color@pipe-a-ctm-0-75.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl1/igt@kms_color@pipe-a-ctm-0-75.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-tglb:         [PASS][27] -> [INCOMPLETE][28] ([i915#456] / [i915#460])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb6/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][29] -> [DMESG-WARN][30] ([i915#180]) +4 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render:
    - shard-tglb:         [PASS][31] -> [FAIL][32] ([i915#49])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render:
    - shard-iclb:         [PASS][33] -> [FAIL][34] ([i915#49])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html

  * igt@kms_psr@psr2_primary_render:
    - shard-iclb:         [PASS][35] -> [SKIP][36] ([fdo#109441])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@kms_psr@psr2_primary_render.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@kms_psr@psr2_primary_render.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [PASS][37] -> [SKIP][38] ([fdo#109276]) +3 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb4/igt@prime_vgem@fence-wait-bsd2.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb5/igt@prime_vgem@fence-wait-bsd2.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@bcs0-s3:
    - shard-tglb:         [INCOMPLETE][39] ([i915#456]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb4/igt@gem_ctx_isolation@bcs0-s3.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb4/igt@gem_ctx_isolation@bcs0-s3.html

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          [DMESG-WARN][41] ([i915#180]) -> [PASS][42] +4 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-kbl7/igt@gem_ctx_isolation@rcs0-s3.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-kbl1/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@gem_ctx_isolation@vcs1-dirty-create:
    - shard-iclb:         [SKIP][43] ([fdo#109276] / [fdo#112080]) -> [PASS][44] +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@gem_ctx_isolation@vcs1-dirty-create.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@gem_ctx_isolation@vcs1-dirty-create.html

  * igt@gem_eio@kms:
    - shard-snb:          [DMESG-WARN][45] ([i915#444] / [i915#502]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb4/igt@gem_eio@kms.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb2/igt@gem_eio@kms.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrashing:
    - shard-snb:          [INCOMPLETE][47] ([i915#530] / [i915#82]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb7/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb4/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html

  * igt@gem_userptr_blits@sync-unmap-after-close:
    - shard-hsw:          [DMESG-WARN][49] ([fdo#111870]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw7/igt@gem_userptr_blits@sync-unmap-after-close.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw6/igt@gem_userptr_blits@sync-unmap-after-close.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [DMESG-WARN][51] ([fdo#111870]) -> [PASS][52] +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb4/igt@gem_userptr_blits@sync-unmap-cycles.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb7/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_suspend@debugfs-reader:
    - shard-apl:          [DMESG-WARN][53] ([i915#180]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-apl1/igt@i915_suspend@debugfs-reader.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-apl4/igt@i915_suspend@debugfs-reader.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-hsw:          [DMESG-WARN][55] -> [PASS][56] +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw4/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-hsw:          [FAIL][57] ([i915#96]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled:
    - shard-skl:          [INCOMPLETE][59] ([fdo#112347] / [i915#646]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl8/igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl5/igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-glk:          [FAIL][61] ([i915#46]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-glk5/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@plain-flip-ts-check:
    - shard-kbl:          [FAIL][63] ([i915#34]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-kbl1/igt@kms_flip@plain-flip-ts-check.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-kbl1/igt@kms_flip@plain-flip-ts-check.html

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-tglb:         [INCOMPLETE][65] ([i915#474]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb4/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb6/igt@kms_frontbuffer_tracking@fbc-1p-rte.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
    - shard-iclb:         [FAIL][67] ([i915#49]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt:
    - shard-skl:          [INCOMPLETE][69] ([i915#123]) -> [PASS][70] +1 similar issue
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-skl:          [INCOMPLETE][71] ([i915#648]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl5/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl6/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-skl:          [INCOMPLETE][73] -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl4/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl5/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [SKIP][75] ([fdo#109642] / [fdo#111068]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@kms_psr2_su@frontbuffer.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [SKIP][77] ([fdo#109441]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@kms_psr@psr2_sprite_plane_move.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][79] ([i915#31]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-apl2/igt@kms_setmode@basic.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-apl1/igt@kms_setmode@basic.html
    - shard-hsw:          [FAIL][81] ([i915#31]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw6/igt@kms_setmode@basic.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw1/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-skl:          [INCOMPLETE][83] ([i915#69]) -> [PASS][84]
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl7/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  * igt@perf_pmu@busy-accuracy-2-vcs1:
    - shard-iclb:         [SKIP][85] ([fdo#112080]) -> [PASS][86] +3 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@perf_pmu@busy-accuracy-2-vcs1.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@perf_pmu@busy-accuracy-2-vcs1.html

  * igt@prime_busy@hang-bsd2:
    - shard-iclb:         [SKIP][87] ([fdo#109276]) -> [PASS][88] +5 similar issues
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@prime_busy@hang-bsd2.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@prime_busy@hang-bsd2.html

  
#### Warnings ####

  * igt@kms_plane@pixel-format-pipe-b-planes:
    - shard-skl:          [INCOMPLETE][89] ([fdo#112347]) -> [INCOMPLETE][90] ([fdo#112347] / [fdo#112391])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl10/igt@kms_plane@pixel-format-pipe-b-planes.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl2/igt@kms_plane@pixel-format-pipe-b-planes.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112347]: https://bugs.freedesktop.org/show_bug.cgi?id=112347
  [fdo#112391]: https://bugs.freedesktop.org/show_bug.cgi?id=112391
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#123]: https://gitlab.freedesktop.org/drm/intel/issues/123
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#34]: https://gitlab.freedesktop.org/drm/intel/issues/34
  [i915#436]: https://gitlab.freedesktop.org/drm/intel/issues/436
  [i915#444]: https://gitlab.freedesktop.org/drm/intel/issues/444
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#46]: https://gitlab.freedesktop.org/drm/intel/issues/46
  [i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
  [i915#474]: https://gitlab.freedesktop.org/drm/intel/issues/474
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#502]: https://gitlab.freedesktop.org/drm/intel/issues/502
  [i915#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
  [i915#646]: https://gitlab.freedesktop.org/drm/intel/issues/646
  [i915#648]: https://gitlab.freedesktop.org/drm/intel/issues/648
  [i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
  [i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
  [i915#96]: https://gitlab.freedesktop.org/drm/intel/issues/96


Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7447 -> Patchwork_15516

  CI-20190529: 20190529
  CI_DRM_7447: 8a02da6e5bea288945ed422bd40ad8c5a254e539 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5318: 26ae6584ac03ad862d82f986302275a68bcccb29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15516: 108411fb7af88aabfcb610a5137b85d109fba34e @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: i915_display_info cleanup
@ 2019-12-01  1:15   ` Patchwork
  0 siblings, 0 replies; 50+ messages in thread
From: Patchwork @ 2019-12-01  1:15 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: i915_display_info cleanup
URL   : https://patchwork.freedesktop.org/series/70222/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7447_full -> Patchwork_15516_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_15516_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15516_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15516_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-snb:          NOTRUN -> [DMESG-WARN][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb2/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-tglb:         [PASS][2] -> [INCOMPLETE][3]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html

  
#### Warnings ####

  * igt@runner@aborted:
    - shard-snb:          [FAIL][4] ([i915#436]) -> [FAIL][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb4/igt@runner@aborted.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb2/igt@runner@aborted.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@gem_exec_schedule@pi-shared-iova-bsd}:
    - shard-tglb:         NOTRUN -> [SKIP][6]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb6/igt@gem_exec_schedule@pi-shared-iova-bsd.html

  
Known issues
------------

  Here are the changes found in Patchwork_15516_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_busy@busy-vcs1:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#112080]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@gem_busy@busy-vcs1.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@gem_busy@busy-vcs1.html

  * igt@gem_ctx_persistence@vcs1-cleanup:
    - shard-iclb:         [PASS][9] -> [SKIP][10] ([fdo#109276] / [fdo#112080])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@gem_ctx_persistence@vcs1-cleanup.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@gem_ctx_persistence@vcs1-cleanup.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [PASS][11] -> [SKIP][12] ([fdo#112146]) +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-snb:          [PASS][13] -> [DMESG-WARN][14] ([fdo#111870]) +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb4/igt@gem_userptr_blits@dmabuf-sync.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb5/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-hsw:          [PASS][15] -> [DMESG-WARN][16] ([fdo#111870])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw1/igt@gem_userptr_blits@sync-unmap-cycles.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw6/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_selftest@live_hangcheck:
    - shard-snb:          [PASS][17] -> [INCOMPLETE][18] ([i915#82])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb1/igt@i915_selftest@live_hangcheck.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb5/igt@i915_selftest@live_hangcheck.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-apl:          [PASS][19] -> [DMESG-WARN][20] ([i915#180]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-apl6/igt@i915_suspend@fence-restore-untiled.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-apl6/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_atomic@test_only:
    - shard-snb:          [PASS][21] -> [SKIP][22] ([fdo#109271]) +9 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb1/igt@kms_atomic@test_only.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb6/igt@kms_atomic@test_only.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
    - shard-skl:          [PASS][23] -> [INCOMPLETE][24] ([fdo#112347])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl7/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl4/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html

  * igt@kms_color@pipe-a-ctm-0-75:
    - shard-skl:          [PASS][25] -> [DMESG-WARN][26] ([i915#109])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl3/igt@kms_color@pipe-a-ctm-0-75.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl1/igt@kms_color@pipe-a-ctm-0-75.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-tglb:         [PASS][27] -> [INCOMPLETE][28] ([i915#456] / [i915#460])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb6/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][29] -> [DMESG-WARN][30] ([i915#180]) +4 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render:
    - shard-tglb:         [PASS][31] -> [FAIL][32] ([i915#49])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render:
    - shard-iclb:         [PASS][33] -> [FAIL][34] ([i915#49])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html

  * igt@kms_psr@psr2_primary_render:
    - shard-iclb:         [PASS][35] -> [SKIP][36] ([fdo#109441])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@kms_psr@psr2_primary_render.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@kms_psr@psr2_primary_render.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [PASS][37] -> [SKIP][38] ([fdo#109276]) +3 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb4/igt@prime_vgem@fence-wait-bsd2.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb5/igt@prime_vgem@fence-wait-bsd2.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@bcs0-s3:
    - shard-tglb:         [INCOMPLETE][39] ([i915#456]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb4/igt@gem_ctx_isolation@bcs0-s3.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb4/igt@gem_ctx_isolation@bcs0-s3.html

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          [DMESG-WARN][41] ([i915#180]) -> [PASS][42] +4 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-kbl7/igt@gem_ctx_isolation@rcs0-s3.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-kbl1/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@gem_ctx_isolation@vcs1-dirty-create:
    - shard-iclb:         [SKIP][43] ([fdo#109276] / [fdo#112080]) -> [PASS][44] +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@gem_ctx_isolation@vcs1-dirty-create.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@gem_ctx_isolation@vcs1-dirty-create.html

  * igt@gem_eio@kms:
    - shard-snb:          [DMESG-WARN][45] ([i915#444] / [i915#502]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb4/igt@gem_eio@kms.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb2/igt@gem_eio@kms.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrashing:
    - shard-snb:          [INCOMPLETE][47] ([i915#530] / [i915#82]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb7/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb4/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html

  * igt@gem_userptr_blits@sync-unmap-after-close:
    - shard-hsw:          [DMESG-WARN][49] ([fdo#111870]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw7/igt@gem_userptr_blits@sync-unmap-after-close.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw6/igt@gem_userptr_blits@sync-unmap-after-close.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [DMESG-WARN][51] ([fdo#111870]) -> [PASS][52] +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-snb4/igt@gem_userptr_blits@sync-unmap-cycles.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-snb7/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_suspend@debugfs-reader:
    - shard-apl:          [DMESG-WARN][53] ([i915#180]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-apl1/igt@i915_suspend@debugfs-reader.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-apl4/igt@i915_suspend@debugfs-reader.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-hsw:          [DMESG-WARN][55] -> [PASS][56] +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw4/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-hsw:          [FAIL][57] ([i915#96]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled:
    - shard-skl:          [INCOMPLETE][59] ([fdo#112347] / [i915#646]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl8/igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl5/igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-glk:          [FAIL][61] ([i915#46]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-glk5/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@plain-flip-ts-check:
    - shard-kbl:          [FAIL][63] ([i915#34]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-kbl1/igt@kms_flip@plain-flip-ts-check.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-kbl1/igt@kms_flip@plain-flip-ts-check.html

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-tglb:         [INCOMPLETE][65] ([i915#474]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-tglb4/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-tglb6/igt@kms_frontbuffer_tracking@fbc-1p-rte.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
    - shard-iclb:         [FAIL][67] ([i915#49]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt:
    - shard-skl:          [INCOMPLETE][69] ([i915#123]) -> [PASS][70] +1 similar issue
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-skl:          [INCOMPLETE][71] ([i915#648]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl5/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl6/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-skl:          [INCOMPLETE][73] -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl4/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl5/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [SKIP][75] ([fdo#109642] / [fdo#111068]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@kms_psr2_su@frontbuffer.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [SKIP][77] ([fdo#109441]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@kms_psr@psr2_sprite_plane_move.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][79] ([i915#31]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-apl2/igt@kms_setmode@basic.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-apl1/igt@kms_setmode@basic.html
    - shard-hsw:          [FAIL][81] ([i915#31]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-hsw6/igt@kms_setmode@basic.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-hsw1/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-skl:          [INCOMPLETE][83] ([i915#69]) -> [PASS][84]
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl7/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  * igt@perf_pmu@busy-accuracy-2-vcs1:
    - shard-iclb:         [SKIP][85] ([fdo#112080]) -> [PASS][86] +3 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@perf_pmu@busy-accuracy-2-vcs1.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@perf_pmu@busy-accuracy-2-vcs1.html

  * igt@prime_busy@hang-bsd2:
    - shard-iclb:         [SKIP][87] ([fdo#109276]) -> [PASS][88] +5 similar issues
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-iclb6/igt@prime_busy@hang-bsd2.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-iclb2/igt@prime_busy@hang-bsd2.html

  
#### Warnings ####

  * igt@kms_plane@pixel-format-pipe-b-planes:
    - shard-skl:          [INCOMPLETE][89] ([fdo#112347]) -> [INCOMPLETE][90] ([fdo#112347] / [fdo#112391])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7447/shard-skl10/igt@kms_plane@pixel-format-pipe-b-planes.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/shard-skl2/igt@kms_plane@pixel-format-pipe-b-planes.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112347]: https://bugs.freedesktop.org/show_bug.cgi?id=112347
  [fdo#112391]: https://bugs.freedesktop.org/show_bug.cgi?id=112391
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#123]: https://gitlab.freedesktop.org/drm/intel/issues/123
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#34]: https://gitlab.freedesktop.org/drm/intel/issues/34
  [i915#436]: https://gitlab.freedesktop.org/drm/intel/issues/436
  [i915#444]: https://gitlab.freedesktop.org/drm/intel/issues/444
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#46]: https://gitlab.freedesktop.org/drm/intel/issues/46
  [i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
  [i915#474]: https://gitlab.freedesktop.org/drm/intel/issues/474
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#502]: https://gitlab.freedesktop.org/drm/intel/issues/502
  [i915#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
  [i915#646]: https://gitlab.freedesktop.org/drm/intel/issues/646
  [i915#648]: https://gitlab.freedesktop.org/drm/intel/issues/648
  [i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
  [i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
  [i915#96]: https://gitlab.freedesktop.org/drm/intel/issues/96


Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7447 -> Patchwork_15516

  CI-20190529: 20190529
  CI_DRM_7447: 8a02da6e5bea288945ed422bd40ad8c5a254e539 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5318: 26ae6584ac03ad862d82f986302275a68bcccb29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15516: 108411fb7af88aabfcb610a5137b85d109fba34e @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15516/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 1/9] drm/i915: Use drm_rect to simplify plane {crtc, src}_{x, y, w, h} printing
@ 2019-12-02  7:55     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02  7:55 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:26 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Use DRM_RECT_FMT & co. to simpify the code.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 18 +++++++-----------
>  1 file changed, 7 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index cab632791f73..3f54e66ab762 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2599,6 +2599,7 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
>  		struct drm_plane_state *state;
>  		struct drm_plane *plane = &intel_plane->base;
>  		struct drm_format_name_buf format_name;
> +		struct drm_rect src, dst;
>  		char rot_str[48];
>  
>  		if (!plane->state) {
> @@ -2608,6 +2609,9 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
>  
>  		state = plane->state;
>  
> +		src = drm_plane_state_src(state);
> +		dst = drm_plane_state_dest(state);
> +
>  		if (state->fb) {
>  			drm_get_format_name(state->fb->format->format,
>  					    &format_name);
> @@ -2617,19 +2621,11 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
>  
>  		plane_rotation(rot_str, sizeof(rot_str), state->rotation);
>  
> -		seq_printf(m, "\t--Plane id %d: type=%s, crtc_pos=%4dx%4d, crtc_size=%4dx%4d, src_pos=%d.%04ux%d.%04u, src_size=%d.%04ux%d.%04u, format=%s, rotation=%s\n",
> +		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
>  			   plane->base.id,
>  			   plane_type(intel_plane->base.type),
> -			   state->crtc_x, state->crtc_y,
> -			   state->crtc_w, state->crtc_h,
> -			   (state->src_x >> 16),
> -			   ((state->src_x & 0xffff) * 15625) >> 10,
> -			   (state->src_y >> 16),
> -			   ((state->src_y & 0xffff) * 15625) >> 10,
> -			   (state->src_w >> 16),
> -			   ((state->src_w & 0xffff) * 15625) >> 10,
> -			   (state->src_h >> 16),
> -			   ((state->src_h & 0xffff) * 15625) >> 10,
> +			   DRM_RECT_ARG(&dst),
> +			   DRM_RECT_FP_ARG(&src),
>  			   format_name.str,
>  			   rot_str);
>  	}
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 1/9] drm/i915: Use drm_rect to simplify plane {crtc, src}_{x, y, w, h} printing
@ 2019-12-02  7:55     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02  7:55 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:26 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Use DRM_RECT_FMT & co. to simpify the code.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 18 +++++++-----------
>  1 file changed, 7 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index cab632791f73..3f54e66ab762 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2599,6 +2599,7 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
>  		struct drm_plane_state *state;
>  		struct drm_plane *plane = &intel_plane->base;
>  		struct drm_format_name_buf format_name;
> +		struct drm_rect src, dst;
>  		char rot_str[48];
>  
>  		if (!plane->state) {
> @@ -2608,6 +2609,9 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
>  
>  		state = plane->state;
>  
> +		src = drm_plane_state_src(state);
> +		dst = drm_plane_state_dest(state);
> +
>  		if (state->fb) {
>  			drm_get_format_name(state->fb->format->format,
>  					    &format_name);
> @@ -2617,19 +2621,11 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
>  
>  		plane_rotation(rot_str, sizeof(rot_str), state->rotation);
>  
> -		seq_printf(m, "\t--Plane id %d: type=%s, crtc_pos=%4dx%4d, crtc_size=%4dx%4d, src_pos=%d.%04ux%d.%04u, src_size=%d.%04ux%d.%04u, format=%s, rotation=%s\n",
> +		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
>  			   plane->base.id,
>  			   plane_type(intel_plane->base.type),
> -			   state->crtc_x, state->crtc_y,
> -			   state->crtc_w, state->crtc_h,
> -			   (state->src_x >> 16),
> -			   ((state->src_x & 0xffff) * 15625) >> 10,
> -			   (state->src_y >> 16),
> -			   ((state->src_y & 0xffff) * 15625) >> 10,
> -			   (state->src_w >> 16),
> -			   ((state->src_w & 0xffff) * 15625) >> 10,
> -			   (state->src_h >> 16),
> -			   ((state->src_h & 0xffff) * 15625) >> 10,
> +			   DRM_RECT_ARG(&dst),
> +			   DRM_RECT_FP_ARG(&src),
>  			   format_name.str,
>  			   rot_str);
>  	}
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 2/9] drm/i915: Switch to intel_ types in debugfs display_info
@ 2019-12-02  8:59     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02  8:59 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:27 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Switch to using intel_ types in the  debugfs display_info code.
> Should make it easier to handle bigjoiner etc. in the future.
> 

Looks Good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 119 ++++++++++++++--------------
>  1 file changed, 59 insertions(+), 60 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 3f54e66ab762..16d3c273a453 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2367,7 +2367,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused)
>  }
>  
>  static void intel_seq_print_mode(struct seq_file *m, int tabs,
> -				 struct drm_display_mode *mode)
> +				 const struct drm_display_mode *mode)
>  {
>  	int i;
>  
> @@ -2378,51 +2378,52 @@ static void intel_seq_print_mode(struct seq_file *m, int tabs,
>  }
>  
>  static void intel_encoder_info(struct seq_file *m,
> -			       struct intel_crtc *intel_crtc,
> -			       struct intel_encoder *intel_encoder)
> +			       struct intel_crtc *crtc,
> +			       struct intel_encoder *encoder)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
>  	struct drm_device *dev = &dev_priv->drm;
> -	struct drm_crtc *crtc = &intel_crtc->base;
> -	struct intel_connector *intel_connector;
> -	struct drm_encoder *encoder;
> +	struct intel_connector *connector;
>  
> -	encoder = &intel_encoder->base;
>  	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
> -		   encoder->base.id, encoder->name);
> -	for_each_connector_on_encoder(dev, encoder, intel_connector) {
> -		struct drm_connector *connector = &intel_connector->base;
> +		   encoder->base.base.id, encoder->base.name);
> +
> +	for_each_connector_on_encoder(dev, &encoder->base, connector) {
>  		seq_printf(m, "\t\tconnector %d: type: %s, status: %s",
> -			   connector->base.id,
> -			   connector->name,
> -			   drm_get_connector_status_name(connector->status));
> -		if (connector->status == connector_status_connected) {
> -			struct drm_display_mode *mode = &crtc->mode;
> +			   connector->base.base.id, connector->base.name,
> +			   drm_get_connector_status_name(connector->base.status));
> +
> +		if (connector->base.status == connector_status_connected) {
> +			const struct intel_crtc_state *crtc_state =
> +				to_intel_crtc_state(crtc->base.state);
> +
>  			seq_printf(m, ", mode:\n");
> -			intel_seq_print_mode(m, 2, mode);
> +			intel_seq_print_mode(m, 2, &crtc_state->hw.mode);
>  		} else {
>  			seq_putc(m, '\n');
>  		}
>  	}
>  }
>  
> -static void intel_crtc_info(struct seq_file *m, struct intel_crtc *intel_crtc)
> +static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
>  	struct drm_device *dev = &dev_priv->drm;
> -	struct drm_crtc *crtc = &intel_crtc->base;
> -	struct intel_encoder *intel_encoder;
> -	struct drm_plane_state *plane_state = crtc->primary->state;
> -	struct drm_framebuffer *fb = plane_state->fb;
> +	struct intel_encoder *encoder;
> +	struct intel_plane *plane = to_intel_plane(crtc->base.primary);
> +	const struct intel_plane_state *plane_state =
> +		to_intel_plane_state(plane->base.state);
> +	const struct drm_framebuffer *fb = plane_state->uapi.fb;
>  
>  	if (fb)
>  		seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n",
> -			   fb->base.id, plane_state->src_x >> 16,
> -			   plane_state->src_y >> 16, fb->width, fb->height);
> +			   fb->base.id, plane_state->uapi.src_x >> 16,
> +			   plane_state->uapi.src_y >> 16,
> +			   fb->width, fb->height);
>  	else
>  		seq_puts(m, "\tprimary plane disabled\n");
> -	for_each_encoder_on_crtc(dev, crtc, intel_encoder)
> -		intel_encoder_info(m, intel_crtc, intel_encoder);
> +	for_each_encoder_on_crtc(dev, &crtc->base, encoder)
> +		intel_encoder_info(m, crtc, encoder);
>  }
>  
>  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
> @@ -2589,66 +2590,63 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
>  		 rotation);
>  }
>  
> -static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
> +static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
>  	struct drm_device *dev = &dev_priv->drm;
> -	struct intel_plane *intel_plane;
> +	struct intel_plane *plane;
>  
> -	for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
> -		struct drm_plane_state *state;
> -		struct drm_plane *plane = &intel_plane->base;
> +	for_each_intel_plane_on_crtc(dev, crtc, plane) {
> +		const struct intel_plane_state *plane_state =
> +			to_intel_plane_state(plane->base.state);
> +		const struct drm_framebuffer *fb;
>  		struct drm_format_name_buf format_name;
>  		struct drm_rect src, dst;
>  		char rot_str[48];
>  
> -		if (!plane->state) {
> +		if (!plane_state) {
>  			seq_puts(m, "plane->state is NULL!\n");
>  			continue;
>  		}
>  
> -		state = plane->state;
> +		src = drm_plane_state_src(&plane_state->uapi);
> +		dst = drm_plane_state_dest(&plane_state->uapi);
> +		fb = plane_state->uapi.fb;
>  
> -		src = drm_plane_state_src(state);
> -		dst = drm_plane_state_dest(state);
> -
> -		if (state->fb) {
> -			drm_get_format_name(state->fb->format->format,
> -					    &format_name);
> -		} else {
> +		if (fb)
> +			drm_get_format_name(fb->format->format, &format_name);
> +		else
>  			sprintf(format_name.str, "N/A");
> -		}
>  
> -		plane_rotation(rot_str, sizeof(rot_str), state->rotation);
> +		plane_rotation(rot_str, sizeof(rot_str),
> +			       plane_state->uapi.rotation);
>  
>  		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
> -			   plane->base.id,
> -			   plane_type(intel_plane->base.type),
> +			   plane->base.base.id,
> +			   plane_type(plane->base.type),
>  			   DRM_RECT_ARG(&dst),
>  			   DRM_RECT_FP_ARG(&src),
> -			   format_name.str,
> -			   rot_str);
> +			   format_name.str, rot_str);
>  	}
>  }
>  
> -static void intel_scaler_info(struct seq_file *m, struct intel_crtc *intel_crtc)
> +static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
>  {
> -	struct intel_crtc_state *pipe_config;
> -	int num_scalers = intel_crtc->num_scalers;
> +	const struct intel_crtc_state *crtc_state =
> +		to_intel_crtc_state(crtc->base.state);
> +	int num_scalers = crtc->num_scalers;
>  	int i;
>  
> -	pipe_config = to_intel_crtc_state(intel_crtc->base.state);
> -
>  	/* Not all platformas have a scaler */
>  	if (num_scalers) {
>  		seq_printf(m, "\tnum_scalers=%d, scaler_users=%x scaler_id=%d",
>  			   num_scalers,
> -			   pipe_config->scaler_state.scaler_users,
> -			   pipe_config->scaler_state.scaler_id);
> +			   crtc_state->scaler_state.scaler_users,
> +			   crtc_state->scaler_state.scaler_id);
>  
>  		for (i = 0; i < num_scalers; i++) {
> -			struct intel_scaler *sc =
> -					&pipe_config->scaler_state.scalers[i];
> +			const struct intel_scaler *sc =
> +				&crtc_state->scaler_state.scalers[i];
>  
>  			seq_printf(m, ", scalers[%d]: use=%s, mode=%x",
>  				   i, yesno(sc->in_use), sc->mode);
> @@ -2673,18 +2671,19 @@ static int i915_display_info(struct seq_file *m, void *unused)
>  	seq_printf(m, "CRTC info\n");
>  	seq_printf(m, "---------\n");
>  	for_each_intel_crtc(dev, crtc) {
> -		struct intel_crtc_state *pipe_config;
> +		const struct intel_crtc_state *crtc_state;
>  
>  		drm_modeset_lock(&crtc->base.mutex, NULL);
> -		pipe_config = to_intel_crtc_state(crtc->base.state);
> +
> +		crtc_state = to_intel_crtc_state(crtc->base.state);
>  
>  		seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
>  			   crtc->base.base.id, pipe_name(crtc->pipe),
> -			   yesno(pipe_config->hw.active),
> -			   pipe_config->pipe_src_w, pipe_config->pipe_src_h,
> -			   yesno(pipe_config->dither), pipe_config->pipe_bpp);
> +			   yesno(crtc_state->hw.active),
> +			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> +			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
> -		if (pipe_config->hw.active) {
> +		if (crtc_state->hw.active) {
>  			struct intel_plane *cursor =
>  				to_intel_plane(crtc->base.cursor);
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 2/9] drm/i915: Switch to intel_ types in debugfs display_info
@ 2019-12-02  8:59     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02  8:59 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:27 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Switch to using intel_ types in the  debugfs display_info code.
> Should make it easier to handle bigjoiner etc. in the future.
> 

Looks Good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 119 ++++++++++++++--------------
>  1 file changed, 59 insertions(+), 60 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 3f54e66ab762..16d3c273a453 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2367,7 +2367,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused)
>  }
>  
>  static void intel_seq_print_mode(struct seq_file *m, int tabs,
> -				 struct drm_display_mode *mode)
> +				 const struct drm_display_mode *mode)
>  {
>  	int i;
>  
> @@ -2378,51 +2378,52 @@ static void intel_seq_print_mode(struct seq_file *m, int tabs,
>  }
>  
>  static void intel_encoder_info(struct seq_file *m,
> -			       struct intel_crtc *intel_crtc,
> -			       struct intel_encoder *intel_encoder)
> +			       struct intel_crtc *crtc,
> +			       struct intel_encoder *encoder)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
>  	struct drm_device *dev = &dev_priv->drm;
> -	struct drm_crtc *crtc = &intel_crtc->base;
> -	struct intel_connector *intel_connector;
> -	struct drm_encoder *encoder;
> +	struct intel_connector *connector;
>  
> -	encoder = &intel_encoder->base;
>  	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
> -		   encoder->base.id, encoder->name);
> -	for_each_connector_on_encoder(dev, encoder, intel_connector) {
> -		struct drm_connector *connector = &intel_connector->base;
> +		   encoder->base.base.id, encoder->base.name);
> +
> +	for_each_connector_on_encoder(dev, &encoder->base, connector) {
>  		seq_printf(m, "\t\tconnector %d: type: %s, status: %s",
> -			   connector->base.id,
> -			   connector->name,
> -			   drm_get_connector_status_name(connector->status));
> -		if (connector->status == connector_status_connected) {
> -			struct drm_display_mode *mode = &crtc->mode;
> +			   connector->base.base.id, connector->base.name,
> +			   drm_get_connector_status_name(connector->base.status));
> +
> +		if (connector->base.status == connector_status_connected) {
> +			const struct intel_crtc_state *crtc_state =
> +				to_intel_crtc_state(crtc->base.state);
> +
>  			seq_printf(m, ", mode:\n");
> -			intel_seq_print_mode(m, 2, mode);
> +			intel_seq_print_mode(m, 2, &crtc_state->hw.mode);
>  		} else {
>  			seq_putc(m, '\n');
>  		}
>  	}
>  }
>  
> -static void intel_crtc_info(struct seq_file *m, struct intel_crtc *intel_crtc)
> +static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
>  	struct drm_device *dev = &dev_priv->drm;
> -	struct drm_crtc *crtc = &intel_crtc->base;
> -	struct intel_encoder *intel_encoder;
> -	struct drm_plane_state *plane_state = crtc->primary->state;
> -	struct drm_framebuffer *fb = plane_state->fb;
> +	struct intel_encoder *encoder;
> +	struct intel_plane *plane = to_intel_plane(crtc->base.primary);
> +	const struct intel_plane_state *plane_state =
> +		to_intel_plane_state(plane->base.state);
> +	const struct drm_framebuffer *fb = plane_state->uapi.fb;
>  
>  	if (fb)
>  		seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n",
> -			   fb->base.id, plane_state->src_x >> 16,
> -			   plane_state->src_y >> 16, fb->width, fb->height);
> +			   fb->base.id, plane_state->uapi.src_x >> 16,
> +			   plane_state->uapi.src_y >> 16,
> +			   fb->width, fb->height);
>  	else
>  		seq_puts(m, "\tprimary plane disabled\n");
> -	for_each_encoder_on_crtc(dev, crtc, intel_encoder)
> -		intel_encoder_info(m, intel_crtc, intel_encoder);
> +	for_each_encoder_on_crtc(dev, &crtc->base, encoder)
> +		intel_encoder_info(m, crtc, encoder);
>  }
>  
>  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
> @@ -2589,66 +2590,63 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
>  		 rotation);
>  }
>  
> -static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc)
> +static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
>  	struct drm_device *dev = &dev_priv->drm;
> -	struct intel_plane *intel_plane;
> +	struct intel_plane *plane;
>  
> -	for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
> -		struct drm_plane_state *state;
> -		struct drm_plane *plane = &intel_plane->base;
> +	for_each_intel_plane_on_crtc(dev, crtc, plane) {
> +		const struct intel_plane_state *plane_state =
> +			to_intel_plane_state(plane->base.state);
> +		const struct drm_framebuffer *fb;
>  		struct drm_format_name_buf format_name;
>  		struct drm_rect src, dst;
>  		char rot_str[48];
>  
> -		if (!plane->state) {
> +		if (!plane_state) {
>  			seq_puts(m, "plane->state is NULL!\n");
>  			continue;
>  		}
>  
> -		state = plane->state;
> +		src = drm_plane_state_src(&plane_state->uapi);
> +		dst = drm_plane_state_dest(&plane_state->uapi);
> +		fb = plane_state->uapi.fb;
>  
> -		src = drm_plane_state_src(state);
> -		dst = drm_plane_state_dest(state);
> -
> -		if (state->fb) {
> -			drm_get_format_name(state->fb->format->format,
> -					    &format_name);
> -		} else {
> +		if (fb)
> +			drm_get_format_name(fb->format->format, &format_name);
> +		else
>  			sprintf(format_name.str, "N/A");
> -		}
>  
> -		plane_rotation(rot_str, sizeof(rot_str), state->rotation);
> +		plane_rotation(rot_str, sizeof(rot_str),
> +			       plane_state->uapi.rotation);
>  
>  		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
> -			   plane->base.id,
> -			   plane_type(intel_plane->base.type),
> +			   plane->base.base.id,
> +			   plane_type(plane->base.type),
>  			   DRM_RECT_ARG(&dst),
>  			   DRM_RECT_FP_ARG(&src),
> -			   format_name.str,
> -			   rot_str);
> +			   format_name.str, rot_str);
>  	}
>  }
>  
> -static void intel_scaler_info(struct seq_file *m, struct intel_crtc *intel_crtc)
> +static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
>  {
> -	struct intel_crtc_state *pipe_config;
> -	int num_scalers = intel_crtc->num_scalers;
> +	const struct intel_crtc_state *crtc_state =
> +		to_intel_crtc_state(crtc->base.state);
> +	int num_scalers = crtc->num_scalers;
>  	int i;
>  
> -	pipe_config = to_intel_crtc_state(intel_crtc->base.state);
> -
>  	/* Not all platformas have a scaler */
>  	if (num_scalers) {
>  		seq_printf(m, "\tnum_scalers=%d, scaler_users=%x scaler_id=%d",
>  			   num_scalers,
> -			   pipe_config->scaler_state.scaler_users,
> -			   pipe_config->scaler_state.scaler_id);
> +			   crtc_state->scaler_state.scaler_users,
> +			   crtc_state->scaler_state.scaler_id);
>  
>  		for (i = 0; i < num_scalers; i++) {
> -			struct intel_scaler *sc =
> -					&pipe_config->scaler_state.scalers[i];
> +			const struct intel_scaler *sc =
> +				&crtc_state->scaler_state.scalers[i];
>  
>  			seq_printf(m, ", scalers[%d]: use=%s, mode=%x",
>  				   i, yesno(sc->in_use), sc->mode);
> @@ -2673,18 +2671,19 @@ static int i915_display_info(struct seq_file *m, void *unused)
>  	seq_printf(m, "CRTC info\n");
>  	seq_printf(m, "---------\n");
>  	for_each_intel_crtc(dev, crtc) {
> -		struct intel_crtc_state *pipe_config;
> +		const struct intel_crtc_state *crtc_state;
>  
>  		drm_modeset_lock(&crtc->base.mutex, NULL);
> -		pipe_config = to_intel_crtc_state(crtc->base.state);
> +
> +		crtc_state = to_intel_crtc_state(crtc->base.state);
>  
>  		seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
>  			   crtc->base.base.id, pipe_name(crtc->pipe),
> -			   yesno(pipe_config->hw.active),
> -			   pipe_config->pipe_src_w, pipe_config->pipe_src_h,
> -			   yesno(pipe_config->dither), pipe_config->pipe_bpp);
> +			   yesno(crtc_state->hw.active),
> +			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> +			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
> -		if (pipe_config->hw.active) {
> +		if (crtc_state->hw.active) {
>  			struct intel_plane *cursor =
>  				to_intel_plane(crtc->base.cursor);
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 3/9] drm/i915: Reorganize plane/fb dump in debugfs
@ 2019-12-02 14:27     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 14:27 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:28 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Eliminate the special cases for the primary and cursor planes and just
> dump all the information consistently for all the planes.
> 

Lookd good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 48 +++++++----------------------
>  1 file changed, 11 insertions(+), 37 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 16d3c273a453..b4fffcce2d12 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2405,27 +2405,6 @@ static void intel_encoder_info(struct seq_file *m,
>  	}
>  }
>  
> -static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> -{
> -	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> -	struct drm_device *dev = &dev_priv->drm;
> -	struct intel_encoder *encoder;
> -	struct intel_plane *plane = to_intel_plane(crtc->base.primary);
> -	const struct intel_plane_state *plane_state =
> -		to_intel_plane_state(plane->base.state);
> -	const struct drm_framebuffer *fb = plane_state->uapi.fb;
> -
> -	if (fb)
> -		seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n",
> -			   fb->base.id, plane_state->uapi.src_x >> 16,
> -			   plane_state->uapi.src_y >> 16,
> -			   fb->width, fb->height);
> -	else
> -		seq_puts(m, "\tprimary plane disabled\n");
> -	for_each_encoder_on_crtc(dev, &crtc->base, encoder)
> -		intel_encoder_info(m, crtc, encoder);
> -}
> -
>  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
>  {
>  	struct drm_display_mode *mode = panel->fixed_mode;
> @@ -2611,22 +2590,24 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
>  
>  		src = drm_plane_state_src(&plane_state->uapi);
>  		dst = drm_plane_state_dest(&plane_state->uapi);
> +
>  		fb = plane_state->uapi.fb;
> -
>  		if (fb)
>  			drm_get_format_name(fb->format->format, &format_name);
> -		else
> -			sprintf(format_name.str, "N/A");
>  
>  		plane_rotation(rot_str, sizeof(rot_str),
>  			       plane_state->uapi.rotation);
>  
> -		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
> +		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
>  			   plane->base.base.id,
>  			   plane_type(plane->base.type),
> -			   DRM_RECT_ARG(&dst),
> +			   fb ? fb->base.id : 0,
> +			   fb ? format_name.str : "n/a",
> +			   fb ? fb->width : 0,
> +			   fb ? fb->height : 0,
>  			   DRM_RECT_FP_ARG(&src),
> -			   format_name.str, rot_str);
> +			   DRM_RECT_ARG(&dst),
> +			   rot_str);
>  	}
>  }
>  
> @@ -2684,18 +2665,11 @@ static int i915_display_info(struct seq_file *m, void *unused)
>  			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
>  		if (crtc_state->hw.active) {
> -			struct intel_plane *cursor =
> -				to_intel_plane(crtc->base.cursor);
> +			struct intel_encoder *encoder;
>  
> -			intel_crtc_info(m, crtc);
> +			for_each_encoder_on_crtc(dev, &crtc->base, encoder)
> +				intel_encoder_info(m, crtc, encoder);
>  
> -			seq_printf(m, "\tcursor visible? %s, position (%d, %d), size %dx%d, addr 0x%08x\n",
> -				   yesno(cursor->base.state->visible),
> -				   cursor->base.state->crtc_x,
> -				   cursor->base.state->crtc_y,
> -				   cursor->base.state->crtc_w,
> -				   cursor->base.state->crtc_h,
> -				   cursor->cursor.base);
>  			intel_scaler_info(m, crtc);
>  			intel_plane_info(m, crtc);
>  		}
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 3/9] drm/i915: Reorganize plane/fb dump in debugfs
@ 2019-12-02 14:27     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 14:27 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:28 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Eliminate the special cases for the primary and cursor planes and just
> dump all the information consistently for all the planes.
> 

Lookd good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 48 +++++++----------------------
>  1 file changed, 11 insertions(+), 37 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 16d3c273a453..b4fffcce2d12 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2405,27 +2405,6 @@ static void intel_encoder_info(struct seq_file *m,
>  	}
>  }
>  
> -static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> -{
> -	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> -	struct drm_device *dev = &dev_priv->drm;
> -	struct intel_encoder *encoder;
> -	struct intel_plane *plane = to_intel_plane(crtc->base.primary);
> -	const struct intel_plane_state *plane_state =
> -		to_intel_plane_state(plane->base.state);
> -	const struct drm_framebuffer *fb = plane_state->uapi.fb;
> -
> -	if (fb)
> -		seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n",
> -			   fb->base.id, plane_state->uapi.src_x >> 16,
> -			   plane_state->uapi.src_y >> 16,
> -			   fb->width, fb->height);
> -	else
> -		seq_puts(m, "\tprimary plane disabled\n");
> -	for_each_encoder_on_crtc(dev, &crtc->base, encoder)
> -		intel_encoder_info(m, crtc, encoder);
> -}
> -
>  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
>  {
>  	struct drm_display_mode *mode = panel->fixed_mode;
> @@ -2611,22 +2590,24 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
>  
>  		src = drm_plane_state_src(&plane_state->uapi);
>  		dst = drm_plane_state_dest(&plane_state->uapi);
> +
>  		fb = plane_state->uapi.fb;
> -
>  		if (fb)
>  			drm_get_format_name(fb->format->format, &format_name);
> -		else
> -			sprintf(format_name.str, "N/A");
>  
>  		plane_rotation(rot_str, sizeof(rot_str),
>  			       plane_state->uapi.rotation);
>  
> -		seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
> +		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
>  			   plane->base.base.id,
>  			   plane_type(plane->base.type),
> -			   DRM_RECT_ARG(&dst),
> +			   fb ? fb->base.id : 0,
> +			   fb ? format_name.str : "n/a",
> +			   fb ? fb->width : 0,
> +			   fb ? fb->height : 0,
>  			   DRM_RECT_FP_ARG(&src),
> -			   format_name.str, rot_str);
> +			   DRM_RECT_ARG(&dst),
> +			   rot_str);
>  	}
>  }
>  
> @@ -2684,18 +2665,11 @@ static int i915_display_info(struct seq_file *m, void *unused)
>  			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
>  		if (crtc_state->hw.active) {
> -			struct intel_plane *cursor =
> -				to_intel_plane(crtc->base.cursor);
> +			struct intel_encoder *encoder;
>  
> -			intel_crtc_info(m, crtc);
> +			for_each_encoder_on_crtc(dev, &crtc->base, encoder)
> +				intel_encoder_info(m, crtc, encoder);
>  
> -			seq_printf(m, "\tcursor visible? %s, position (%d, %d), size %dx%d, addr 0x%08x\n",
> -				   yesno(cursor->base.state->visible),
> -				   cursor->base.state->crtc_x,
> -				   cursor->base.state->crtc_y,
> -				   cursor->base.state->crtc_w,
> -				   cursor->base.state->crtc_h,
> -				   cursor->cursor.base);
>  			intel_scaler_info(m, crtc);
>  			intel_plane_info(m, crtc);
>  		}
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 4/9] drm/i915: Refactor debugfs display info code
@ 2019-12-02 14:34     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 14:34 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:29 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pull the crtc dumping stuff into a nice function so the
> loop over the crtcs doesn't look like crap.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 52 ++++++++++++++++-------------
>  1 file changed, 28 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index b4fffcce2d12..28f45f25cfc0 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2638,6 +2638,33 @@ static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
>  	}
>  }
>  
> +static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> +{
> +	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> +	const struct intel_crtc_state *crtc_state =
> +		to_intel_crtc_state(crtc->base.state);
> +
> +	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> +		   crtc->base.base.id, pipe_name(crtc->pipe),
> +		   yesno(crtc_state->hw.active),
> +		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> +		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> +
> +	if (crtc_state->hw.active) {
> +		struct intel_encoder *encoder;
> +
> +		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
> +			intel_encoder_info(m, crtc, encoder);
> +
> +		intel_scaler_info(m, crtc);
> +		intel_plane_info(m, crtc);
> +	}
> +
> +	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
> +		   yesno(!crtc->cpu_fifo_underrun_disabled),
> +		   yesno(!crtc->pch_fifo_underrun_disabled));
> +}
> +
>  static int i915_display_info(struct seq_file *m, void *unused)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> @@ -2652,31 +2679,8 @@ static int i915_display_info(struct seq_file *m, void *unused)
>  	seq_printf(m, "CRTC info\n");
>  	seq_printf(m, "---------\n");
>  	for_each_intel_crtc(dev, crtc) {
> -		const struct intel_crtc_state *crtc_state;
> -
>  		drm_modeset_lock(&crtc->base.mutex, NULL);
> -
> -		crtc_state = to_intel_crtc_state(crtc->base.state);
> -
> -		seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> -			   crtc->base.base.id, pipe_name(crtc->pipe),
> -			   yesno(crtc_state->hw.active),
> -			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> -			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> -
> -		if (crtc_state->hw.active) {
> -			struct intel_encoder *encoder;
> -
> -			for_each_encoder_on_crtc(dev, &crtc->base, encoder)
> -				intel_encoder_info(m, crtc, encoder);
> -
> -			intel_scaler_info(m, crtc);
> -			intel_plane_info(m, crtc);
> -		}
> -
> -		seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s \n",
> -			   yesno(!crtc->cpu_fifo_underrun_disabled),
> -			   yesno(!crtc->pch_fifo_underrun_disabled));
> +		intel_crtc_info(m, crtc);
>  		drm_modeset_unlock(&crtc->base.mutex);
>  	}
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 4/9] drm/i915: Refactor debugfs display info code
@ 2019-12-02 14:34     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 14:34 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:29 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pull the crtc dumping stuff into a nice function so the
> loop over the crtcs doesn't look like crap.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 52 ++++++++++++++++-------------
>  1 file changed, 28 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index b4fffcce2d12..28f45f25cfc0 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2638,6 +2638,33 @@ static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
>  	}
>  }
>  
> +static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> +{
> +	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> +	const struct intel_crtc_state *crtc_state =
> +		to_intel_crtc_state(crtc->base.state);
> +
> +	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> +		   crtc->base.base.id, pipe_name(crtc->pipe),
> +		   yesno(crtc_state->hw.active),
> +		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> +		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> +
> +	if (crtc_state->hw.active) {
> +		struct intel_encoder *encoder;
> +
> +		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
> +			intel_encoder_info(m, crtc, encoder);
> +
> +		intel_scaler_info(m, crtc);
> +		intel_plane_info(m, crtc);
> +	}
> +
> +	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
> +		   yesno(!crtc->cpu_fifo_underrun_disabled),
> +		   yesno(!crtc->pch_fifo_underrun_disabled));
> +}
> +
>  static int i915_display_info(struct seq_file *m, void *unused)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> @@ -2652,31 +2679,8 @@ static int i915_display_info(struct seq_file *m, void *unused)
>  	seq_printf(m, "CRTC info\n");
>  	seq_printf(m, "---------\n");
>  	for_each_intel_crtc(dev, crtc) {
> -		const struct intel_crtc_state *crtc_state;
> -
>  		drm_modeset_lock(&crtc->base.mutex, NULL);
> -
> -		crtc_state = to_intel_crtc_state(crtc->base.state);
> -
> -		seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> -			   crtc->base.base.id, pipe_name(crtc->pipe),
> -			   yesno(crtc_state->hw.active),
> -			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> -			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> -
> -		if (crtc_state->hw.active) {
> -			struct intel_encoder *encoder;
> -
> -			for_each_encoder_on_crtc(dev, &crtc->base, encoder)
> -				intel_encoder_info(m, crtc, encoder);
> -
> -			intel_scaler_info(m, crtc);
> -			intel_plane_info(m, crtc);
> -		}
> -
> -		seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s \n",
> -			   yesno(!crtc->cpu_fifo_underrun_disabled),
> -			   yesno(!crtc->pch_fifo_underrun_disabled));
> +		intel_crtc_info(m, crtc);
>  		drm_modeset_unlock(&crtc->base.mutex);
>  	}
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 5/9] drm/i915: Dump the mode for the crtc just the once
@ 2019-12-02 14:56     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 14:56 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:30 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> No point in repeating the crtc mode for each cloned encoder.
> Just print it once, and avoid using multiple lines for it.
> And while at let's polish the fixed mode print to fit on
> one line as well.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 27 +++++++++------------------
>  1 file changed, 9 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 28f45f25cfc0..11f3f91befb9 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2388,29 +2388,16 @@ static void intel_encoder_info(struct seq_file *m,
>  	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
>  		   encoder->base.base.id, encoder->base.name);
>  
> -	for_each_connector_on_encoder(dev, &encoder->base, connector) {
> -		seq_printf(m, "\t\tconnector %d: type: %s, status: %s",
> -			   connector->base.base.id, connector->base.name,
> -			   drm_get_connector_status_name(connector->base.status));
> -
> -		if (connector->base.status == connector_status_connected) {
> -			const struct intel_crtc_state *crtc_state =
> -				to_intel_crtc_state(crtc->base.state);
> -
> -			seq_printf(m, ", mode:\n");
> -			intel_seq_print_mode(m, 2, &crtc_state->hw.mode);
> -		} else {
> -			seq_putc(m, '\n');
> -		}
> -	}
> +	for_each_connector_on_encoder(dev, &encoder->base, connector)
> +		seq_printf(m, "\t\tconnector %d: type: %s\n",
> +			   connector->base.base.id, connector->base.name);
>  }
>  
>  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
>  {
> -	struct drm_display_mode *mode = panel->fixed_mode;
> +	const struct drm_display_mode *mode = panel->fixed_mode;
>  
> -	seq_printf(m, "\tfixed mode:\n");
> -	intel_seq_print_mode(m, 2, mode);
> +	seq_printf(m, "\tfixed mode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
>  }
>  
>  static void intel_hdcp_info(struct seq_file *m,
> @@ -2651,8 +2638,12 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
>  	if (crtc_state->hw.active) {
> +		const struct drm_display_mode *mode =
> +			&crtc_state->hw.mode;
>  		struct intel_encoder *encoder;
>  
> +		seq_printf(m, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
> +
>  		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
>  			intel_encoder_info(m, crtc, encoder);
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 5/9] drm/i915: Dump the mode for the crtc just the once
@ 2019-12-02 14:56     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 14:56 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:30 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> No point in repeating the crtc mode for each cloned encoder.
> Just print it once, and avoid using multiple lines for it.
> And while at let's polish the fixed mode print to fit on
> one line as well.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 27 +++++++++------------------
>  1 file changed, 9 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 28f45f25cfc0..11f3f91befb9 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2388,29 +2388,16 @@ static void intel_encoder_info(struct seq_file *m,
>  	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
>  		   encoder->base.base.id, encoder->base.name);
>  
> -	for_each_connector_on_encoder(dev, &encoder->base, connector) {
> -		seq_printf(m, "\t\tconnector %d: type: %s, status: %s",
> -			   connector->base.base.id, connector->base.name,
> -			   drm_get_connector_status_name(connector->base.status));
> -
> -		if (connector->base.status == connector_status_connected) {
> -			const struct intel_crtc_state *crtc_state =
> -				to_intel_crtc_state(crtc->base.state);
> -
> -			seq_printf(m, ", mode:\n");
> -			intel_seq_print_mode(m, 2, &crtc_state->hw.mode);
> -		} else {
> -			seq_putc(m, '\n');
> -		}
> -	}
> +	for_each_connector_on_encoder(dev, &encoder->base, connector)
> +		seq_printf(m, "\t\tconnector %d: type: %s\n",
> +			   connector->base.base.id, connector->base.name);
>  }
>  
>  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
>  {
> -	struct drm_display_mode *mode = panel->fixed_mode;
> +	const struct drm_display_mode *mode = panel->fixed_mode;
>  
> -	seq_printf(m, "\tfixed mode:\n");
> -	intel_seq_print_mode(m, 2, mode);
> +	seq_printf(m, "\tfixed mode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
>  }
>  
>  static void intel_hdcp_info(struct seq_file *m,
> @@ -2651,8 +2638,12 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
>  	if (crtc_state->hw.active) {
> +		const struct drm_display_mode *mode =
> +			&crtc_state->hw.mode;
>  		struct intel_encoder *encoder;
>  
> +		seq_printf(m, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
> +
>  		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
>  			intel_encoder_info(m, crtc, encoder);
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 6/9] drm/i915: Use drm_modeset_lock_all() in debugfs display info
@ 2019-12-02 15:05     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:05 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:31 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Make out life easier by just grabbing all modeset locks around
> the display_info dump.
> 
Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 11f3f91befb9..3bf7d4e2f940 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2667,23 +2667,22 @@ static int i915_display_info(struct seq_file *m, void *unused)
>  
>  	wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
>  
> +	drm_modeset_lock_all(dev);
> +
>  	seq_printf(m, "CRTC info\n");
>  	seq_printf(m, "---------\n");
> -	for_each_intel_crtc(dev, crtc) {
> -		drm_modeset_lock(&crtc->base.mutex, NULL);
> +	for_each_intel_crtc(dev, crtc)
>  		intel_crtc_info(m, crtc);
> -		drm_modeset_unlock(&crtc->base.mutex);
> -	}
>  
>  	seq_printf(m, "\n");
>  	seq_printf(m, "Connector info\n");
>  	seq_printf(m, "--------------\n");
> -	mutex_lock(&dev->mode_config.mutex);
>  	drm_connector_list_iter_begin(dev, &conn_iter);
>  	drm_for_each_connector_iter(connector, &conn_iter)
>  		intel_connector_info(m, connector);
>  	drm_connector_list_iter_end(&conn_iter);
> -	mutex_unlock(&dev->mode_config.mutex);
> +
> +	drm_modeset_unlock_all(dev);
>  
>  	intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref);
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 6/9] drm/i915: Use drm_modeset_lock_all() in debugfs display info
@ 2019-12-02 15:05     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:05 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:31 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Make out life easier by just grabbing all modeset locks around
> the display_info dump.
> 
Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 11f3f91befb9..3bf7d4e2f940 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2667,23 +2667,22 @@ static int i915_display_info(struct seq_file *m, void *unused)
>  
>  	wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
>  
> +	drm_modeset_lock_all(dev);
> +
>  	seq_printf(m, "CRTC info\n");
>  	seq_printf(m, "---------\n");
> -	for_each_intel_crtc(dev, crtc) {
> -		drm_modeset_lock(&crtc->base.mutex, NULL);
> +	for_each_intel_crtc(dev, crtc)
>  		intel_crtc_info(m, crtc);
> -		drm_modeset_unlock(&crtc->base.mutex);
> -	}
>  
>  	seq_printf(m, "\n");
>  	seq_printf(m, "Connector info\n");
>  	seq_printf(m, "--------------\n");
> -	mutex_lock(&dev->mode_config.mutex);
>  	drm_connector_list_iter_begin(dev, &conn_iter);
>  	drm_for_each_connector_iter(connector, &conn_iter)
>  		intel_connector_info(m, connector);
>  	drm_connector_list_iter_end(&conn_iter);
> -	mutex_unlock(&dev->mode_config.mutex);
> +
> +	drm_modeset_unlock_all(dev);
>  
>  	intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref);
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 7/9] drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
@ 2019-12-02 15:08     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:08 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:32 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Use the canonicalt "[CRTC:%d:%s]" format for the obj id/name
> in the debugfs display_info dump. Everyone should already be
> familiar with the format since it's used in the debug logs
> extensively.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 3bf7d4e2f940..4dffbff1b8bd 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2385,11 +2385,11 @@ static void intel_encoder_info(struct seq_file *m,
>  	struct drm_device *dev = &dev_priv->drm;
>  	struct intel_connector *connector;
>  
> -	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
> +	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
>  		   encoder->base.base.id, encoder->base.name);
>  
>  	for_each_connector_on_encoder(dev, &encoder->base, connector)
> -		seq_printf(m, "\t\tconnector %d: type: %s\n",
> +		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
>  			   connector->base.base.id, connector->base.name);
>  }
>  
> @@ -2478,7 +2478,7 @@ static void intel_connector_info(struct seq_file *m,
>  	struct intel_encoder *intel_encoder = intel_connector->encoder;
>  	struct drm_display_mode *mode;
>  
> -	seq_printf(m, "connector %d: type %s, status: %s\n",
> +	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
>  		   connector->base.id, connector->name,
>  		   drm_get_connector_status_name(connector->status));
>  
> @@ -2585,8 +2585,8 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
>  		plane_rotation(rot_str, sizeof(rot_str),
>  			       plane_state->uapi.rotation);
>  
> -		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> -			   plane->base.base.id,
> +		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> +			   plane->base.base.id, plane->base.name,
>  			   plane_type(plane->base.type),
>  			   fb ? fb->base.id : 0,
>  			   fb ? format_name.str : "n/a",
> @@ -2631,8 +2631,8 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  	const struct intel_crtc_state *crtc_state =
>  		to_intel_crtc_state(crtc->base.state);
>  
> -	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> -		   crtc->base.base.id, pipe_name(crtc->pipe),
> +	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> +		   crtc->base.base.id, crtc->base.name,
>  		   yesno(crtc_state->hw.active),
>  		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
>  		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 7/9] drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
@ 2019-12-02 15:08     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:08 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:32 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Use the canonicalt "[CRTC:%d:%s]" format for the obj id/name
> in the debugfs display_info dump. Everyone should already be
> familiar with the format since it's used in the debug logs
> extensively.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 3bf7d4e2f940..4dffbff1b8bd 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2385,11 +2385,11 @@ static void intel_encoder_info(struct seq_file *m,
>  	struct drm_device *dev = &dev_priv->drm;
>  	struct intel_connector *connector;
>  
> -	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
> +	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
>  		   encoder->base.base.id, encoder->base.name);
>  
>  	for_each_connector_on_encoder(dev, &encoder->base, connector)
> -		seq_printf(m, "\t\tconnector %d: type: %s\n",
> +		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
>  			   connector->base.base.id, connector->base.name);
>  }
>  
> @@ -2478,7 +2478,7 @@ static void intel_connector_info(struct seq_file *m,
>  	struct intel_encoder *intel_encoder = intel_connector->encoder;
>  	struct drm_display_mode *mode;
>  
> -	seq_printf(m, "connector %d: type %s, status: %s\n",
> +	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
>  		   connector->base.id, connector->name,
>  		   drm_get_connector_status_name(connector->status));
>  
> @@ -2585,8 +2585,8 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
>  		plane_rotation(rot_str, sizeof(rot_str),
>  			       plane_state->uapi.rotation);
>  
> -		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> -			   plane->base.base.id,
> +		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> +			   plane->base.base.id, plane->base.name,
>  			   plane_type(plane->base.type),
>  			   fb ? fb->base.id : 0,
>  			   fb ? format_name.str : "n/a",
> @@ -2631,8 +2631,8 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  	const struct intel_crtc_state *crtc_state =
>  		to_intel_crtc_state(crtc->base.state);
>  
> -	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> -		   crtc->base.base.id, pipe_name(crtc->pipe),
> +	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> +		   crtc->base.base.id, crtc->base.name,
>  		   yesno(crtc_state->hw.active),
>  		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
>  		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 8/9] drm/i915: Dump both the uapi and hw states for crtcs and planes
@ 2019-12-02 15:18     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:18 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:33 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Let's make the display info more useful by dumping both
> the uapi and hw states for each crtc/plane.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 116 +++++++++++++++++-----------
>  1 file changed, 73 insertions(+), 43 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 4dffbff1b8bd..414da0a542d6 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2556,45 +2556,68 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
>  		 rotation);
>  }
>  
> +static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
> +{
> +	const struct intel_plane_state *plane_state =
> +		to_intel_plane_state(plane->base.state);
> +	const struct drm_framebuffer *fb = plane_state->uapi.fb;
> +	struct drm_format_name_buf format_name;
> +	struct drm_rect src, dst;
> +	char rot_str[48];
> +
> +	src = drm_plane_state_src(&plane_state->uapi);
> +	dst = drm_plane_state_dest(&plane_state->uapi);
> +
> +	if (fb)
> +		drm_get_format_name(fb->format->format, &format_name);
> +
> +	plane_rotation(rot_str, sizeof(rot_str),
> +		       plane_state->uapi.rotation);
> +
> +	seq_printf(m, "\t\tuapi: fb=%d,%s,%dx%d, 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->width : 0, fb ? fb->height : 0,
> +		   DRM_RECT_FP_ARG(&src),
> +		   DRM_RECT_ARG(&dst),
> +		   rot_str);
> +}
> +
> +static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
> +{
> +	const struct intel_plane_state *plane_state =
> +		to_intel_plane_state(plane->base.state);
> +	const struct drm_framebuffer *fb = plane_state->hw.fb;
> +	struct drm_format_name_buf format_name;
> +	char rot_str[48];
> +
> +	if (!fb)
> +		return;
> +
> +	drm_get_format_name(fb->format->format, &format_name);
> +
> +	plane_rotation(rot_str, sizeof(rot_str),
> +		       plane_state->hw.rotation);
> +
> +	seq_printf(m, "\t\thw: fb=%d,%s,%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->width : 0, fb ? fb->height : 0,
> +		   yesno(plane_state->uapi.visible),
> +		   DRM_RECT_FP_ARG(&plane_state->uapi.src),
> +		   DRM_RECT_ARG(&plane_state->uapi.dst),
> +		   rot_str);
> +}
> +
>  static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> -	struct drm_device *dev = &dev_priv->drm;
>  	struct intel_plane *plane;
>  
> -	for_each_intel_plane_on_crtc(dev, crtc, plane) {
> -		const struct intel_plane_state *plane_state =
> -			to_intel_plane_state(plane->base.state);
> -		const struct drm_framebuffer *fb;
> -		struct drm_format_name_buf format_name;
> -		struct drm_rect src, dst;
> -		char rot_str[48];
> -
> -		if (!plane_state) {
> -			seq_puts(m, "plane->state is NULL!\n");
> -			continue;
> -		}
> -
> -		src = drm_plane_state_src(&plane_state->uapi);
> -		dst = drm_plane_state_dest(&plane_state->uapi);
> -
> -		fb = plane_state->uapi.fb;
> -		if (fb)
> -			drm_get_format_name(fb->format->format, &format_name);
> -
> -		plane_rotation(rot_str, sizeof(rot_str),
> -			       plane_state->uapi.rotation);
> -
> -		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> +	for_each_intel_plane_on_crtc(&dev_priv->drm, crtc, plane) {
> +		seq_printf(m, "\t[PLANE:%d:%s]: type=%s\n",
>  			   plane->base.base.id, plane->base.name,
> -			   plane_type(plane->base.type),
> -			   fb ? fb->base.id : 0,
> -			   fb ? format_name.str : "n/a",
> -			   fb ? fb->width : 0,
> -			   fb ? fb->height : 0,
> -			   DRM_RECT_FP_ARG(&src),
> -			   DRM_RECT_ARG(&dst),
> -			   rot_str);
> +			   plane_type(plane->base.type));
> +		intel_plane_uapi_info(m, plane);
> +		intel_plane_hw_info(m, plane);
>  	}
>  }
>  
> @@ -2631,26 +2654,33 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  	const struct intel_crtc_state *crtc_state =
>  		to_intel_crtc_state(crtc->base.state);
>  
> -	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> -		   crtc->base.base.id, crtc->base.name,
> -		   yesno(crtc_state->hw.active),
> -		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> -		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> +	seq_printf(m, "[CRTC:%d:%s]:\n",
> +		   crtc->base.base.id, crtc->base.name);
>  
> -	if (crtc_state->hw.active) {
> -		const struct drm_display_mode *mode =
> -			&crtc_state->hw.mode;
> +	seq_printf(m, "\tuapi: enable=%s, active=%s, mode=" DRM_MODE_FMT "\n",
> +		   yesno(crtc_state->uapi.enable),
> +		   yesno(crtc_state->uapi.active),
> +		   DRM_MODE_ARG(&crtc_state->uapi.mode));
> +
> +	if (crtc_state->hw.enable) {
>  		struct intel_encoder *encoder;
>  
> -		seq_printf(m, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
> +		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
> +			   yesno(crtc_state->hw.active),
> +			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
> +
> +		seq_printf(m, "\tpipe src size=%dx%d, dither=%s, bpp=%d\n",
> +			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> +			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
>  		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
>  			intel_encoder_info(m, crtc, encoder);
>  
>  		intel_scaler_info(m, crtc);
> -		intel_plane_info(m, crtc);
>  	}
>  
> +	intel_plane_info(m, crtc);
> +
>  	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
>  		   yesno(!crtc->cpu_fifo_underrun_disabled),
>  		   yesno(!crtc->pch_fifo_underrun_disabled));
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 8/9] drm/i915: Dump both the uapi and hw states for crtcs and planes
@ 2019-12-02 15:18     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:18 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:33 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Let's make the display info more useful by dumping both
> the uapi and hw states for each crtc/plane.

Looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 116 +++++++++++++++++-----------
>  1 file changed, 73 insertions(+), 43 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 4dffbff1b8bd..414da0a542d6 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2556,45 +2556,68 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
>  		 rotation);
>  }
>  
> +static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
> +{
> +	const struct intel_plane_state *plane_state =
> +		to_intel_plane_state(plane->base.state);
> +	const struct drm_framebuffer *fb = plane_state->uapi.fb;
> +	struct drm_format_name_buf format_name;
> +	struct drm_rect src, dst;
> +	char rot_str[48];
> +
> +	src = drm_plane_state_src(&plane_state->uapi);
> +	dst = drm_plane_state_dest(&plane_state->uapi);
> +
> +	if (fb)
> +		drm_get_format_name(fb->format->format, &format_name);
> +
> +	plane_rotation(rot_str, sizeof(rot_str),
> +		       plane_state->uapi.rotation);
> +
> +	seq_printf(m, "\t\tuapi: fb=%d,%s,%dx%d, 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->width : 0, fb ? fb->height : 0,
> +		   DRM_RECT_FP_ARG(&src),
> +		   DRM_RECT_ARG(&dst),
> +		   rot_str);
> +}
> +
> +static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
> +{
> +	const struct intel_plane_state *plane_state =
> +		to_intel_plane_state(plane->base.state);
> +	const struct drm_framebuffer *fb = plane_state->hw.fb;
> +	struct drm_format_name_buf format_name;
> +	char rot_str[48];
> +
> +	if (!fb)
> +		return;
> +
> +	drm_get_format_name(fb->format->format, &format_name);
> +
> +	plane_rotation(rot_str, sizeof(rot_str),
> +		       plane_state->hw.rotation);
> +
> +	seq_printf(m, "\t\thw: fb=%d,%s,%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->width : 0, fb ? fb->height : 0,
> +		   yesno(plane_state->uapi.visible),
> +		   DRM_RECT_FP_ARG(&plane_state->uapi.src),
> +		   DRM_RECT_ARG(&plane_state->uapi.dst),
> +		   rot_str);
> +}
> +
>  static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> -	struct drm_device *dev = &dev_priv->drm;
>  	struct intel_plane *plane;
>  
> -	for_each_intel_plane_on_crtc(dev, crtc, plane) {
> -		const struct intel_plane_state *plane_state =
> -			to_intel_plane_state(plane->base.state);
> -		const struct drm_framebuffer *fb;
> -		struct drm_format_name_buf format_name;
> -		struct drm_rect src, dst;
> -		char rot_str[48];
> -
> -		if (!plane_state) {
> -			seq_puts(m, "plane->state is NULL!\n");
> -			continue;
> -		}
> -
> -		src = drm_plane_state_src(&plane_state->uapi);
> -		dst = drm_plane_state_dest(&plane_state->uapi);
> -
> -		fb = plane_state->uapi.fb;
> -		if (fb)
> -			drm_get_format_name(fb->format->format, &format_name);
> -
> -		plane_rotation(rot_str, sizeof(rot_str),
> -			       plane_state->uapi.rotation);
> -
> -		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> +	for_each_intel_plane_on_crtc(&dev_priv->drm, crtc, plane) {
> +		seq_printf(m, "\t[PLANE:%d:%s]: type=%s\n",
>  			   plane->base.base.id, plane->base.name,
> -			   plane_type(plane->base.type),
> -			   fb ? fb->base.id : 0,
> -			   fb ? format_name.str : "n/a",
> -			   fb ? fb->width : 0,
> -			   fb ? fb->height : 0,
> -			   DRM_RECT_FP_ARG(&src),
> -			   DRM_RECT_ARG(&dst),
> -			   rot_str);
> +			   plane_type(plane->base.type));
> +		intel_plane_uapi_info(m, plane);
> +		intel_plane_hw_info(m, plane);
>  	}
>  }
>  
> @@ -2631,26 +2654,33 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  	const struct intel_crtc_state *crtc_state =
>  		to_intel_crtc_state(crtc->base.state);
>  
> -	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> -		   crtc->base.base.id, crtc->base.name,
> -		   yesno(crtc_state->hw.active),
> -		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> -		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> +	seq_printf(m, "[CRTC:%d:%s]:\n",
> +		   crtc->base.base.id, crtc->base.name);
>  
> -	if (crtc_state->hw.active) {
> -		const struct drm_display_mode *mode =
> -			&crtc_state->hw.mode;
> +	seq_printf(m, "\tuapi: enable=%s, active=%s, mode=" DRM_MODE_FMT "\n",
> +		   yesno(crtc_state->uapi.enable),
> +		   yesno(crtc_state->uapi.active),
> +		   DRM_MODE_ARG(&crtc_state->uapi.mode));
> +
> +	if (crtc_state->hw.enable) {
>  		struct intel_encoder *encoder;
>  
> -		seq_printf(m, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
> +		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
> +			   yesno(crtc_state->hw.active),
> +			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
> +
> +		seq_printf(m, "\tpipe src size=%dx%d, dither=%s, bpp=%d\n",
> +			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> +			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
>  		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
>  			intel_encoder_info(m, crtc, encoder);
>  
>  		intel_scaler_info(m, crtc);
> -		intel_plane_info(m, crtc);
>  	}
>  
> +	intel_plane_info(m, crtc);
> +
>  	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
>  		   yesno(!crtc->cpu_fifo_underrun_disabled),
>  		   yesno(!crtc->pch_fifo_underrun_disabled));
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 9/9] drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
@ 2019-12-02 15:40     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:40 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:34 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Migrate away from the legacy encoder->crtc and connector->encoder links
> in the debugfs display_info code. Other users still remain so can't kill
> these off yet.
May be I missed why we want to kill encoder->crtc and conn->encoder.
If you dont mind please explain the reasoning.

Apart from that the implementation looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.h |  7 ++++
>  drivers/gpu/drm/i915/i915_debugfs.c          | 43 ++++++++++++--------
>  2 files changed, 34 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> index a5ec5eeff056..5ed716a986ad 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.h
> +++ b/drivers/gpu/drm/i915/display/intel_display.h
> @@ -380,6 +380,13 @@ enum phy_fia {
>  			    &(dev)->mode_config.encoder_list,	\
>  			    base.head)
>  
> +#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
> +	list_for_each_entry(intel_encoder,				\
> +			    &(dev)->mode_config.encoder_list,		\
> +			    base.head)					\
> +		for_each_if((encoder_mask) &				\
> +			    drm_encoder_mask(&intel_encoder->base))
> +
>  #define for_each_intel_dp(dev, intel_encoder)			\
>  	for_each_intel_encoder(dev, intel_encoder)		\
>  		for_each_if(intel_encoder_is_dp(intel_encoder))
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 414da0a542d6..eb80a2c4b55b 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2382,15 +2382,24 @@ static void intel_encoder_info(struct seq_file *m,
>  			       struct intel_encoder *encoder)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> -	struct drm_device *dev = &dev_priv->drm;
> -	struct intel_connector *connector;
> +	struct drm_connector_list_iter conn_iter;
> +	struct drm_connector *connector;
>  
>  	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
>  		   encoder->base.base.id, encoder->base.name);
>  
> -	for_each_connector_on_encoder(dev, &encoder->base, connector)
> +	drm_connector_list_iter_begin(&dev_priv->drm, &conn_iter);
> +	drm_for_each_connector_iter(connector, &conn_iter) {
> +		const struct drm_connector_state *conn_state =
> +			connector->state;
> +
> +		if (conn_state->best_encoder != &encoder->base)
> +			continue;
> +
>  		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
> -			   connector->base.base.id, connector->base.name);
> +			   connector->base.id, connector->name);
> +	}
> +	drm_connector_list_iter_end(&conn_iter);
>  }
>  
>  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
> @@ -2475,8 +2484,10 @@ static void intel_connector_info(struct seq_file *m,
>  				 struct drm_connector *connector)
>  {
>  	struct intel_connector *intel_connector = to_intel_connector(connector);
> -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> -	struct drm_display_mode *mode;
> +	const struct drm_connector_state *conn_state = connector->state;
> +	struct intel_encoder *encoder =
> +		to_intel_encoder(conn_state->best_encoder);
> +	const struct drm_display_mode *mode;
>  
>  	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
>  		   connector->base.id, connector->name,
> @@ -2492,24 +2503,24 @@ static void intel_connector_info(struct seq_file *m,
>  		   drm_get_subpixel_order_name(connector->display_info.subpixel_order));
>  	seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev);
>  
> -	if (!intel_encoder)
> +	if (!encoder)
>  		return;
>  
>  	switch (connector->connector_type) {
>  	case DRM_MODE_CONNECTOR_DisplayPort:
>  	case DRM_MODE_CONNECTOR_eDP:
> -		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
> +		if (encoder->type == INTEL_OUTPUT_DP_MST)
>  			intel_dp_mst_info(m, intel_connector);
>  		else
>  			intel_dp_info(m, intel_connector);
>  		break;
>  	case DRM_MODE_CONNECTOR_LVDS:
> -		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
> +		if (encoder->type == INTEL_OUTPUT_LVDS)
>  			intel_lvds_info(m, intel_connector);
>  		break;
>  	case DRM_MODE_CONNECTOR_HDMIA:
> -		if (intel_encoder->type == INTEL_OUTPUT_HDMI ||
> -		    intel_encoder->type == INTEL_OUTPUT_DDI)
> +		if (encoder->type == INTEL_OUTPUT_HDMI ||
> +		    encoder->type == INTEL_OUTPUT_DDI)
>  			intel_hdmi_info(m, intel_connector);
>  		break;
>  	default:
> @@ -2653,6 +2664,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
>  	const struct intel_crtc_state *crtc_state =
>  		to_intel_crtc_state(crtc->base.state);
> +	struct intel_encoder *encoder;
>  
>  	seq_printf(m, "[CRTC:%d:%s]:\n",
>  		   crtc->base.base.id, crtc->base.name);
> @@ -2663,8 +2675,6 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  		   DRM_MODE_ARG(&crtc_state->uapi.mode));
>  
>  	if (crtc_state->hw.enable) {
> -		struct intel_encoder *encoder;
> -
>  		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
>  			   yesno(crtc_state->hw.active),
>  			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
> @@ -2673,12 +2683,13 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
>  			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
> -		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
> -			intel_encoder_info(m, crtc, encoder);
> -
>  		intel_scaler_info(m, crtc);
>  	}
>  
> +	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
> +				    crtc_state->uapi.encoder_mask)
> +		intel_encoder_info(m, crtc, encoder);
> +
>  	intel_plane_info(m, crtc);
>  
>  	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 9/9] drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
@ 2019-12-02 15:40     ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:40 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-11-29 at 20:54:34 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Migrate away from the legacy encoder->crtc and connector->encoder links
> in the debugfs display_info code. Other users still remain so can't kill
> these off yet.
May be I missed why we want to kill encoder->crtc and conn->encoder.
If you dont mind please explain the reasoning.

Apart from that the implementation looks good to me.

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.h |  7 ++++
>  drivers/gpu/drm/i915/i915_debugfs.c          | 43 ++++++++++++--------
>  2 files changed, 34 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> index a5ec5eeff056..5ed716a986ad 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.h
> +++ b/drivers/gpu/drm/i915/display/intel_display.h
> @@ -380,6 +380,13 @@ enum phy_fia {
>  			    &(dev)->mode_config.encoder_list,	\
>  			    base.head)
>  
> +#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
> +	list_for_each_entry(intel_encoder,				\
> +			    &(dev)->mode_config.encoder_list,		\
> +			    base.head)					\
> +		for_each_if((encoder_mask) &				\
> +			    drm_encoder_mask(&intel_encoder->base))
> +
>  #define for_each_intel_dp(dev, intel_encoder)			\
>  	for_each_intel_encoder(dev, intel_encoder)		\
>  		for_each_if(intel_encoder_is_dp(intel_encoder))
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 414da0a542d6..eb80a2c4b55b 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2382,15 +2382,24 @@ static void intel_encoder_info(struct seq_file *m,
>  			       struct intel_encoder *encoder)
>  {
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> -	struct drm_device *dev = &dev_priv->drm;
> -	struct intel_connector *connector;
> +	struct drm_connector_list_iter conn_iter;
> +	struct drm_connector *connector;
>  
>  	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
>  		   encoder->base.base.id, encoder->base.name);
>  
> -	for_each_connector_on_encoder(dev, &encoder->base, connector)
> +	drm_connector_list_iter_begin(&dev_priv->drm, &conn_iter);
> +	drm_for_each_connector_iter(connector, &conn_iter) {
> +		const struct drm_connector_state *conn_state =
> +			connector->state;
> +
> +		if (conn_state->best_encoder != &encoder->base)
> +			continue;
> +
>  		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
> -			   connector->base.base.id, connector->base.name);
> +			   connector->base.id, connector->name);
> +	}
> +	drm_connector_list_iter_end(&conn_iter);
>  }
>  
>  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
> @@ -2475,8 +2484,10 @@ static void intel_connector_info(struct seq_file *m,
>  				 struct drm_connector *connector)
>  {
>  	struct intel_connector *intel_connector = to_intel_connector(connector);
> -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> -	struct drm_display_mode *mode;
> +	const struct drm_connector_state *conn_state = connector->state;
> +	struct intel_encoder *encoder =
> +		to_intel_encoder(conn_state->best_encoder);
> +	const struct drm_display_mode *mode;
>  
>  	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
>  		   connector->base.id, connector->name,
> @@ -2492,24 +2503,24 @@ static void intel_connector_info(struct seq_file *m,
>  		   drm_get_subpixel_order_name(connector->display_info.subpixel_order));
>  	seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev);
>  
> -	if (!intel_encoder)
> +	if (!encoder)
>  		return;
>  
>  	switch (connector->connector_type) {
>  	case DRM_MODE_CONNECTOR_DisplayPort:
>  	case DRM_MODE_CONNECTOR_eDP:
> -		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
> +		if (encoder->type == INTEL_OUTPUT_DP_MST)
>  			intel_dp_mst_info(m, intel_connector);
>  		else
>  			intel_dp_info(m, intel_connector);
>  		break;
>  	case DRM_MODE_CONNECTOR_LVDS:
> -		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
> +		if (encoder->type == INTEL_OUTPUT_LVDS)
>  			intel_lvds_info(m, intel_connector);
>  		break;
>  	case DRM_MODE_CONNECTOR_HDMIA:
> -		if (intel_encoder->type == INTEL_OUTPUT_HDMI ||
> -		    intel_encoder->type == INTEL_OUTPUT_DDI)
> +		if (encoder->type == INTEL_OUTPUT_HDMI ||
> +		    encoder->type == INTEL_OUTPUT_DDI)
>  			intel_hdmi_info(m, intel_connector);
>  		break;
>  	default:
> @@ -2653,6 +2664,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
>  	const struct intel_crtc_state *crtc_state =
>  		to_intel_crtc_state(crtc->base.state);
> +	struct intel_encoder *encoder;
>  
>  	seq_printf(m, "[CRTC:%d:%s]:\n",
>  		   crtc->base.base.id, crtc->base.name);
> @@ -2663,8 +2675,6 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  		   DRM_MODE_ARG(&crtc_state->uapi.mode));
>  
>  	if (crtc_state->hw.enable) {
> -		struct intel_encoder *encoder;
> -
>  		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
>  			   yesno(crtc_state->hw.active),
>  			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
> @@ -2673,12 +2683,13 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
>  			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
>  			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
>  
> -		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
> -			intel_encoder_info(m, crtc, encoder);
> -
>  		intel_scaler_info(m, crtc);
>  	}
>  
> +	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
> +				    crtc_state->uapi.encoder_mask)
> +		intel_encoder_info(m, crtc, encoder);
> +
>  	intel_plane_info(m, crtc);
>  
>  	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 7/9] drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
@ 2019-12-02 15:43       ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:43 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-12-02 at 20:38:23 +0530, Ramalingam C wrote:
> On 2019-11-29 at 20:54:32 +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Use the canonicalt "[CRTC:%d:%s]" format for the obj id/name

%s/canonicalt/canonical

> > in the debugfs display_info dump. Everyone should already be
> > familiar with the format since it's used in the debug logs
> > extensively.
> 
> Looks good to me.
> 
> Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> 
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_debugfs.c | 14 +++++++-------
> >  1 file changed, 7 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 3bf7d4e2f940..4dffbff1b8bd 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -2385,11 +2385,11 @@ static void intel_encoder_info(struct seq_file *m,
> >  	struct drm_device *dev = &dev_priv->drm;
> >  	struct intel_connector *connector;
> >  
> > -	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
> > +	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
> >  		   encoder->base.base.id, encoder->base.name);
> >  
> >  	for_each_connector_on_encoder(dev, &encoder->base, connector)
> > -		seq_printf(m, "\t\tconnector %d: type: %s\n",
> > +		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
> >  			   connector->base.base.id, connector->base.name);
> >  }
> >  
> > @@ -2478,7 +2478,7 @@ static void intel_connector_info(struct seq_file *m,
> >  	struct intel_encoder *intel_encoder = intel_connector->encoder;
> >  	struct drm_display_mode *mode;
> >  
> > -	seq_printf(m, "connector %d: type %s, status: %s\n",
> > +	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
> >  		   connector->base.id, connector->name,
> >  		   drm_get_connector_status_name(connector->status));
> >  
> > @@ -2585,8 +2585,8 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
> >  		plane_rotation(rot_str, sizeof(rot_str),
> >  			       plane_state->uapi.rotation);
> >  
> > -		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> > -			   plane->base.base.id,
> > +		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> > +			   plane->base.base.id, plane->base.name,
> >  			   plane_type(plane->base.type),
> >  			   fb ? fb->base.id : 0,
> >  			   fb ? format_name.str : "n/a",
> > @@ -2631,8 +2631,8 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> >  	const struct intel_crtc_state *crtc_state =
> >  		to_intel_crtc_state(crtc->base.state);
> >  
> > -	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> > -		   crtc->base.base.id, pipe_name(crtc->pipe),
> > +	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> > +		   crtc->base.base.id, crtc->base.name,
> >  		   yesno(crtc_state->hw.active),
> >  		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> >  		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> > -- 
> > 2.23.0
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 7/9] drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info
@ 2019-12-02 15:43       ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 15:43 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-12-02 at 20:38:23 +0530, Ramalingam C wrote:
> On 2019-11-29 at 20:54:32 +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Use the canonicalt "[CRTC:%d:%s]" format for the obj id/name

%s/canonicalt/canonical

> > in the debugfs display_info dump. Everyone should already be
> > familiar with the format since it's used in the debug logs
> > extensively.
> 
> Looks good to me.
> 
> Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> 
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_debugfs.c | 14 +++++++-------
> >  1 file changed, 7 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 3bf7d4e2f940..4dffbff1b8bd 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -2385,11 +2385,11 @@ static void intel_encoder_info(struct seq_file *m,
> >  	struct drm_device *dev = &dev_priv->drm;
> >  	struct intel_connector *connector;
> >  
> > -	seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
> > +	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
> >  		   encoder->base.base.id, encoder->base.name);
> >  
> >  	for_each_connector_on_encoder(dev, &encoder->base, connector)
> > -		seq_printf(m, "\t\tconnector %d: type: %s\n",
> > +		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
> >  			   connector->base.base.id, connector->base.name);
> >  }
> >  
> > @@ -2478,7 +2478,7 @@ static void intel_connector_info(struct seq_file *m,
> >  	struct intel_encoder *intel_encoder = intel_connector->encoder;
> >  	struct drm_display_mode *mode;
> >  
> > -	seq_printf(m, "connector %d: type %s, status: %s\n",
> > +	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
> >  		   connector->base.id, connector->name,
> >  		   drm_get_connector_status_name(connector->status));
> >  
> > @@ -2585,8 +2585,8 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
> >  		plane_rotation(rot_str, sizeof(rot_str),
> >  			       plane_state->uapi.rotation);
> >  
> > -		seq_printf(m, "\t--Plane id %d: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> > -			   plane->base.base.id,
> > +		seq_printf(m, "\t[PLANE:%d:%s]: type=%s, fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> > +			   plane->base.base.id, plane->base.name,
> >  			   plane_type(plane->base.type),
> >  			   fb ? fb->base.id : 0,
> >  			   fb ? format_name.str : "n/a",
> > @@ -2631,8 +2631,8 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> >  	const struct intel_crtc_state *crtc_state =
> >  		to_intel_crtc_state(crtc->base.state);
> >  
> > -	seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> > -		   crtc->base.base.id, pipe_name(crtc->pipe),
> > +	seq_printf(m, "[CRTC:%d:%s]: active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
> > +		   crtc->base.base.id, crtc->base.name,
> >  		   yesno(crtc_state->hw.active),
> >  		   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> >  		   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> > -- 
> > 2.23.0
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 9/9] drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
@ 2019-12-02 16:24       ` Ville Syrjälä
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjälä @ 2019-12-02 16:24 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

On Mon, Dec 02, 2019 at 09:10:08PM +0530, Ramalingam C wrote:
> On 2019-11-29 at 20:54:34 +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Migrate away from the legacy encoder->crtc and connector->encoder links
> > in the debugfs display_info code. Other users still remain so can't kill
> > these off yet.
> May be I missed why we want to kill encoder->crtc and conn->encoder.
> If you dont mind please explain the reasoning.

They are pre-atomic legacy state. With atomic everything should be
tracked in crtc_state/etc. instead. These things are being updated
in the middle of commit_tail() so any use during atomic_check() must
already be considered a bug. So I want to eliminate them completely
mainly to stop people from using them in new code out of ignorance.
Fortunately it doesn't look like this will be as difficult as I
originally feared.

> 
> Apart from that the implementation looks good to me.
> 
> Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_display.h |  7 ++++
> >  drivers/gpu/drm/i915/i915_debugfs.c          | 43 ++++++++++++--------
> >  2 files changed, 34 insertions(+), 16 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> > index a5ec5eeff056..5ed716a986ad 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display.h
> > @@ -380,6 +380,13 @@ enum phy_fia {
> >  			    &(dev)->mode_config.encoder_list,	\
> >  			    base.head)
> >  
> > +#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
> > +	list_for_each_entry(intel_encoder,				\
> > +			    &(dev)->mode_config.encoder_list,		\
> > +			    base.head)					\
> > +		for_each_if((encoder_mask) &				\
> > +			    drm_encoder_mask(&intel_encoder->base))
> > +
> >  #define for_each_intel_dp(dev, intel_encoder)			\
> >  	for_each_intel_encoder(dev, intel_encoder)		\
> >  		for_each_if(intel_encoder_is_dp(intel_encoder))
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 414da0a542d6..eb80a2c4b55b 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -2382,15 +2382,24 @@ static void intel_encoder_info(struct seq_file *m,
> >  			       struct intel_encoder *encoder)
> >  {
> >  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> > -	struct drm_device *dev = &dev_priv->drm;
> > -	struct intel_connector *connector;
> > +	struct drm_connector_list_iter conn_iter;
> > +	struct drm_connector *connector;
> >  
> >  	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
> >  		   encoder->base.base.id, encoder->base.name);
> >  
> > -	for_each_connector_on_encoder(dev, &encoder->base, connector)
> > +	drm_connector_list_iter_begin(&dev_priv->drm, &conn_iter);
> > +	drm_for_each_connector_iter(connector, &conn_iter) {
> > +		const struct drm_connector_state *conn_state =
> > +			connector->state;
> > +
> > +		if (conn_state->best_encoder != &encoder->base)
> > +			continue;
> > +
> >  		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
> > -			   connector->base.base.id, connector->base.name);
> > +			   connector->base.id, connector->name);
> > +	}
> > +	drm_connector_list_iter_end(&conn_iter);
> >  }
> >  
> >  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
> > @@ -2475,8 +2484,10 @@ static void intel_connector_info(struct seq_file *m,
> >  				 struct drm_connector *connector)
> >  {
> >  	struct intel_connector *intel_connector = to_intel_connector(connector);
> > -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> > -	struct drm_display_mode *mode;
> > +	const struct drm_connector_state *conn_state = connector->state;
> > +	struct intel_encoder *encoder =
> > +		to_intel_encoder(conn_state->best_encoder);
> > +	const struct drm_display_mode *mode;
> >  
> >  	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
> >  		   connector->base.id, connector->name,
> > @@ -2492,24 +2503,24 @@ static void intel_connector_info(struct seq_file *m,
> >  		   drm_get_subpixel_order_name(connector->display_info.subpixel_order));
> >  	seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev);
> >  
> > -	if (!intel_encoder)
> > +	if (!encoder)
> >  		return;
> >  
> >  	switch (connector->connector_type) {
> >  	case DRM_MODE_CONNECTOR_DisplayPort:
> >  	case DRM_MODE_CONNECTOR_eDP:
> > -		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
> > +		if (encoder->type == INTEL_OUTPUT_DP_MST)
> >  			intel_dp_mst_info(m, intel_connector);
> >  		else
> >  			intel_dp_info(m, intel_connector);
> >  		break;
> >  	case DRM_MODE_CONNECTOR_LVDS:
> > -		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
> > +		if (encoder->type == INTEL_OUTPUT_LVDS)
> >  			intel_lvds_info(m, intel_connector);
> >  		break;
> >  	case DRM_MODE_CONNECTOR_HDMIA:
> > -		if (intel_encoder->type == INTEL_OUTPUT_HDMI ||
> > -		    intel_encoder->type == INTEL_OUTPUT_DDI)
> > +		if (encoder->type == INTEL_OUTPUT_HDMI ||
> > +		    encoder->type == INTEL_OUTPUT_DDI)
> >  			intel_hdmi_info(m, intel_connector);
> >  		break;
> >  	default:
> > @@ -2653,6 +2664,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> >  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> >  	const struct intel_crtc_state *crtc_state =
> >  		to_intel_crtc_state(crtc->base.state);
> > +	struct intel_encoder *encoder;
> >  
> >  	seq_printf(m, "[CRTC:%d:%s]:\n",
> >  		   crtc->base.base.id, crtc->base.name);
> > @@ -2663,8 +2675,6 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> >  		   DRM_MODE_ARG(&crtc_state->uapi.mode));
> >  
> >  	if (crtc_state->hw.enable) {
> > -		struct intel_encoder *encoder;
> > -
> >  		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
> >  			   yesno(crtc_state->hw.active),
> >  			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
> > @@ -2673,12 +2683,13 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> >  			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> >  			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> >  
> > -		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
> > -			intel_encoder_info(m, crtc, encoder);
> > -
> >  		intel_scaler_info(m, crtc);
> >  	}
> >  
> > +	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
> > +				    crtc_state->uapi.encoder_mask)
> > +		intel_encoder_info(m, crtc, encoder);
> > +
> >  	intel_plane_info(m, crtc);
> >  
> >  	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
> > -- 
> > 2.23.0
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 9/9] drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
@ 2019-12-02 16:24       ` Ville Syrjälä
  0 siblings, 0 replies; 50+ messages in thread
From: Ville Syrjälä @ 2019-12-02 16:24 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

On Mon, Dec 02, 2019 at 09:10:08PM +0530, Ramalingam C wrote:
> On 2019-11-29 at 20:54:34 +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Migrate away from the legacy encoder->crtc and connector->encoder links
> > in the debugfs display_info code. Other users still remain so can't kill
> > these off yet.
> May be I missed why we want to kill encoder->crtc and conn->encoder.
> If you dont mind please explain the reasoning.

They are pre-atomic legacy state. With atomic everything should be
tracked in crtc_state/etc. instead. These things are being updated
in the middle of commit_tail() so any use during atomic_check() must
already be considered a bug. So I want to eliminate them completely
mainly to stop people from using them in new code out of ignorance.
Fortunately it doesn't look like this will be as difficult as I
originally feared.

> 
> Apart from that the implementation looks good to me.
> 
> Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_display.h |  7 ++++
> >  drivers/gpu/drm/i915/i915_debugfs.c          | 43 ++++++++++++--------
> >  2 files changed, 34 insertions(+), 16 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> > index a5ec5eeff056..5ed716a986ad 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display.h
> > @@ -380,6 +380,13 @@ enum phy_fia {
> >  			    &(dev)->mode_config.encoder_list,	\
> >  			    base.head)
> >  
> > +#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
> > +	list_for_each_entry(intel_encoder,				\
> > +			    &(dev)->mode_config.encoder_list,		\
> > +			    base.head)					\
> > +		for_each_if((encoder_mask) &				\
> > +			    drm_encoder_mask(&intel_encoder->base))
> > +
> >  #define for_each_intel_dp(dev, intel_encoder)			\
> >  	for_each_intel_encoder(dev, intel_encoder)		\
> >  		for_each_if(intel_encoder_is_dp(intel_encoder))
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 414da0a542d6..eb80a2c4b55b 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -2382,15 +2382,24 @@ static void intel_encoder_info(struct seq_file *m,
> >  			       struct intel_encoder *encoder)
> >  {
> >  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> > -	struct drm_device *dev = &dev_priv->drm;
> > -	struct intel_connector *connector;
> > +	struct drm_connector_list_iter conn_iter;
> > +	struct drm_connector *connector;
> >  
> >  	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
> >  		   encoder->base.base.id, encoder->base.name);
> >  
> > -	for_each_connector_on_encoder(dev, &encoder->base, connector)
> > +	drm_connector_list_iter_begin(&dev_priv->drm, &conn_iter);
> > +	drm_for_each_connector_iter(connector, &conn_iter) {
> > +		const struct drm_connector_state *conn_state =
> > +			connector->state;
> > +
> > +		if (conn_state->best_encoder != &encoder->base)
> > +			continue;
> > +
> >  		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
> > -			   connector->base.base.id, connector->base.name);
> > +			   connector->base.id, connector->name);
> > +	}
> > +	drm_connector_list_iter_end(&conn_iter);
> >  }
> >  
> >  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
> > @@ -2475,8 +2484,10 @@ static void intel_connector_info(struct seq_file *m,
> >  				 struct drm_connector *connector)
> >  {
> >  	struct intel_connector *intel_connector = to_intel_connector(connector);
> > -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> > -	struct drm_display_mode *mode;
> > +	const struct drm_connector_state *conn_state = connector->state;
> > +	struct intel_encoder *encoder =
> > +		to_intel_encoder(conn_state->best_encoder);
> > +	const struct drm_display_mode *mode;
> >  
> >  	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
> >  		   connector->base.id, connector->name,
> > @@ -2492,24 +2503,24 @@ static void intel_connector_info(struct seq_file *m,
> >  		   drm_get_subpixel_order_name(connector->display_info.subpixel_order));
> >  	seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev);
> >  
> > -	if (!intel_encoder)
> > +	if (!encoder)
> >  		return;
> >  
> >  	switch (connector->connector_type) {
> >  	case DRM_MODE_CONNECTOR_DisplayPort:
> >  	case DRM_MODE_CONNECTOR_eDP:
> > -		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
> > +		if (encoder->type == INTEL_OUTPUT_DP_MST)
> >  			intel_dp_mst_info(m, intel_connector);
> >  		else
> >  			intel_dp_info(m, intel_connector);
> >  		break;
> >  	case DRM_MODE_CONNECTOR_LVDS:
> > -		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
> > +		if (encoder->type == INTEL_OUTPUT_LVDS)
> >  			intel_lvds_info(m, intel_connector);
> >  		break;
> >  	case DRM_MODE_CONNECTOR_HDMIA:
> > -		if (intel_encoder->type == INTEL_OUTPUT_HDMI ||
> > -		    intel_encoder->type == INTEL_OUTPUT_DDI)
> > +		if (encoder->type == INTEL_OUTPUT_HDMI ||
> > +		    encoder->type == INTEL_OUTPUT_DDI)
> >  			intel_hdmi_info(m, intel_connector);
> >  		break;
> >  	default:
> > @@ -2653,6 +2664,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> >  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> >  	const struct intel_crtc_state *crtc_state =
> >  		to_intel_crtc_state(crtc->base.state);
> > +	struct intel_encoder *encoder;
> >  
> >  	seq_printf(m, "[CRTC:%d:%s]:\n",
> >  		   crtc->base.base.id, crtc->base.name);
> > @@ -2663,8 +2675,6 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> >  		   DRM_MODE_ARG(&crtc_state->uapi.mode));
> >  
> >  	if (crtc_state->hw.enable) {
> > -		struct intel_encoder *encoder;
> > -
> >  		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
> >  			   yesno(crtc_state->hw.active),
> >  			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
> > @@ -2673,12 +2683,13 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> >  			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> >  			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> >  
> > -		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
> > -			intel_encoder_info(m, crtc, encoder);
> > -
> >  		intel_scaler_info(m, crtc);
> >  	}
> >  
> > +	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
> > +				    crtc_state->uapi.encoder_mask)
> > +		intel_encoder_info(m, crtc, encoder);
> > +
> >  	intel_plane_info(m, crtc);
> >  
> >  	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
> > -- 
> > 2.23.0
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 9/9] drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
@ 2019-12-02 16:52         ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 16:52 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

On 2019-12-02 at 18:24:56 +0200, Ville Syrjälä wrote:
> On Mon, Dec 02, 2019 at 09:10:08PM +0530, Ramalingam C wrote:
> > On 2019-11-29 at 20:54:34 +0200, Ville Syrjala wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > Migrate away from the legacy encoder->crtc and connector->encoder links
> > > in the debugfs display_info code. Other users still remain so can't kill
> > > these off yet.
> > May be I missed why we want to kill encoder->crtc and conn->encoder.
> > If you dont mind please explain the reasoning.
> 
> They are pre-atomic legacy state. With atomic everything should be
> tracked in crtc_state/etc. instead. These things are being updated
> in the middle of commit_tail() so any use during atomic_check() must
> already be considered a bug. So I want to eliminate them completely
> mainly to stop people from using them in new code out of ignorance.
> Fortunately it doesn't look like this will be as difficult as I
> originally feared.

Thanks for the explanation Ville! That helps!

-Ram.
> 
> > 
> > Apart from that the implementation looks good to me.
> > 
> > Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> > > 
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_display.h |  7 ++++
> > >  drivers/gpu/drm/i915/i915_debugfs.c          | 43 ++++++++++++--------
> > >  2 files changed, 34 insertions(+), 16 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> > > index a5ec5eeff056..5ed716a986ad 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.h
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.h
> > > @@ -380,6 +380,13 @@ enum phy_fia {
> > >  			    &(dev)->mode_config.encoder_list,	\
> > >  			    base.head)
> > >  
> > > +#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
> > > +	list_for_each_entry(intel_encoder,				\
> > > +			    &(dev)->mode_config.encoder_list,		\
> > > +			    base.head)					\
> > > +		for_each_if((encoder_mask) &				\
> > > +			    drm_encoder_mask(&intel_encoder->base))
> > > +
> > >  #define for_each_intel_dp(dev, intel_encoder)			\
> > >  	for_each_intel_encoder(dev, intel_encoder)		\
> > >  		for_each_if(intel_encoder_is_dp(intel_encoder))
> > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > > index 414da0a542d6..eb80a2c4b55b 100644
> > > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > > @@ -2382,15 +2382,24 @@ static void intel_encoder_info(struct seq_file *m,
> > >  			       struct intel_encoder *encoder)
> > >  {
> > >  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> > > -	struct drm_device *dev = &dev_priv->drm;
> > > -	struct intel_connector *connector;
> > > +	struct drm_connector_list_iter conn_iter;
> > > +	struct drm_connector *connector;
> > >  
> > >  	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
> > >  		   encoder->base.base.id, encoder->base.name);
> > >  
> > > -	for_each_connector_on_encoder(dev, &encoder->base, connector)
> > > +	drm_connector_list_iter_begin(&dev_priv->drm, &conn_iter);
> > > +	drm_for_each_connector_iter(connector, &conn_iter) {
> > > +		const struct drm_connector_state *conn_state =
> > > +			connector->state;
> > > +
> > > +		if (conn_state->best_encoder != &encoder->base)
> > > +			continue;
> > > +
> > >  		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
> > > -			   connector->base.base.id, connector->base.name);
> > > +			   connector->base.id, connector->name);
> > > +	}
> > > +	drm_connector_list_iter_end(&conn_iter);
> > >  }
> > >  
> > >  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
> > > @@ -2475,8 +2484,10 @@ static void intel_connector_info(struct seq_file *m,
> > >  				 struct drm_connector *connector)
> > >  {
> > >  	struct intel_connector *intel_connector = to_intel_connector(connector);
> > > -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> > > -	struct drm_display_mode *mode;
> > > +	const struct drm_connector_state *conn_state = connector->state;
> > > +	struct intel_encoder *encoder =
> > > +		to_intel_encoder(conn_state->best_encoder);
> > > +	const struct drm_display_mode *mode;
> > >  
> > >  	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
> > >  		   connector->base.id, connector->name,
> > > @@ -2492,24 +2503,24 @@ static void intel_connector_info(struct seq_file *m,
> > >  		   drm_get_subpixel_order_name(connector->display_info.subpixel_order));
> > >  	seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev);
> > >  
> > > -	if (!intel_encoder)
> > > +	if (!encoder)
> > >  		return;
> > >  
> > >  	switch (connector->connector_type) {
> > >  	case DRM_MODE_CONNECTOR_DisplayPort:
> > >  	case DRM_MODE_CONNECTOR_eDP:
> > > -		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
> > > +		if (encoder->type == INTEL_OUTPUT_DP_MST)
> > >  			intel_dp_mst_info(m, intel_connector);
> > >  		else
> > >  			intel_dp_info(m, intel_connector);
> > >  		break;
> > >  	case DRM_MODE_CONNECTOR_LVDS:
> > > -		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
> > > +		if (encoder->type == INTEL_OUTPUT_LVDS)
> > >  			intel_lvds_info(m, intel_connector);
> > >  		break;
> > >  	case DRM_MODE_CONNECTOR_HDMIA:
> > > -		if (intel_encoder->type == INTEL_OUTPUT_HDMI ||
> > > -		    intel_encoder->type == INTEL_OUTPUT_DDI)
> > > +		if (encoder->type == INTEL_OUTPUT_HDMI ||
> > > +		    encoder->type == INTEL_OUTPUT_DDI)
> > >  			intel_hdmi_info(m, intel_connector);
> > >  		break;
> > >  	default:
> > > @@ -2653,6 +2664,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> > >  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> > >  	const struct intel_crtc_state *crtc_state =
> > >  		to_intel_crtc_state(crtc->base.state);
> > > +	struct intel_encoder *encoder;
> > >  
> > >  	seq_printf(m, "[CRTC:%d:%s]:\n",
> > >  		   crtc->base.base.id, crtc->base.name);
> > > @@ -2663,8 +2675,6 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> > >  		   DRM_MODE_ARG(&crtc_state->uapi.mode));
> > >  
> > >  	if (crtc_state->hw.enable) {
> > > -		struct intel_encoder *encoder;
> > > -
> > >  		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
> > >  			   yesno(crtc_state->hw.active),
> > >  			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
> > > @@ -2673,12 +2683,13 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> > >  			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> > >  			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> > >  
> > > -		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
> > > -			intel_encoder_info(m, crtc, encoder);
> > > -
> > >  		intel_scaler_info(m, crtc);
> > >  	}
> > >  
> > > +	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
> > > +				    crtc_state->uapi.encoder_mask)
> > > +		intel_encoder_info(m, crtc, encoder);
> > > +
> > >  	intel_plane_info(m, crtc);
> > >  
> > >  	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
> > > -- 
> > > 2.23.0
> > > 
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Ville Syrjälä
> Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2 9/9] drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info
@ 2019-12-02 16:52         ` Ramalingam C
  0 siblings, 0 replies; 50+ messages in thread
From: Ramalingam C @ 2019-12-02 16:52 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

On 2019-12-02 at 18:24:56 +0200, Ville Syrjälä wrote:
> On Mon, Dec 02, 2019 at 09:10:08PM +0530, Ramalingam C wrote:
> > On 2019-11-29 at 20:54:34 +0200, Ville Syrjala wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > Migrate away from the legacy encoder->crtc and connector->encoder links
> > > in the debugfs display_info code. Other users still remain so can't kill
> > > these off yet.
> > May be I missed why we want to kill encoder->crtc and conn->encoder.
> > If you dont mind please explain the reasoning.
> 
> They are pre-atomic legacy state. With atomic everything should be
> tracked in crtc_state/etc. instead. These things are being updated
> in the middle of commit_tail() so any use during atomic_check() must
> already be considered a bug. So I want to eliminate them completely
> mainly to stop people from using them in new code out of ignorance.
> Fortunately it doesn't look like this will be as difficult as I
> originally feared.

Thanks for the explanation Ville! That helps!

-Ram.
> 
> > 
> > Apart from that the implementation looks good to me.
> > 
> > Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> > > 
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_display.h |  7 ++++
> > >  drivers/gpu/drm/i915/i915_debugfs.c          | 43 ++++++++++++--------
> > >  2 files changed, 34 insertions(+), 16 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> > > index a5ec5eeff056..5ed716a986ad 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.h
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.h
> > > @@ -380,6 +380,13 @@ enum phy_fia {
> > >  			    &(dev)->mode_config.encoder_list,	\
> > >  			    base.head)
> > >  
> > > +#define for_each_intel_encoder_mask(dev, intel_encoder, encoder_mask)	\
> > > +	list_for_each_entry(intel_encoder,				\
> > > +			    &(dev)->mode_config.encoder_list,		\
> > > +			    base.head)					\
> > > +		for_each_if((encoder_mask) &				\
> > > +			    drm_encoder_mask(&intel_encoder->base))
> > > +
> > >  #define for_each_intel_dp(dev, intel_encoder)			\
> > >  	for_each_intel_encoder(dev, intel_encoder)		\
> > >  		for_each_if(intel_encoder_is_dp(intel_encoder))
> > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > > index 414da0a542d6..eb80a2c4b55b 100644
> > > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > > @@ -2382,15 +2382,24 @@ static void intel_encoder_info(struct seq_file *m,
> > >  			       struct intel_encoder *encoder)
> > >  {
> > >  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> > > -	struct drm_device *dev = &dev_priv->drm;
> > > -	struct intel_connector *connector;
> > > +	struct drm_connector_list_iter conn_iter;
> > > +	struct drm_connector *connector;
> > >  
> > >  	seq_printf(m, "\t[ENCODER:%d:%s]: connectors:\n",
> > >  		   encoder->base.base.id, encoder->base.name);
> > >  
> > > -	for_each_connector_on_encoder(dev, &encoder->base, connector)
> > > +	drm_connector_list_iter_begin(&dev_priv->drm, &conn_iter);
> > > +	drm_for_each_connector_iter(connector, &conn_iter) {
> > > +		const struct drm_connector_state *conn_state =
> > > +			connector->state;
> > > +
> > > +		if (conn_state->best_encoder != &encoder->base)
> > > +			continue;
> > > +
> > >  		seq_printf(m, "\t\t[CONNECTOR:%d:%s]\n",
> > > -			   connector->base.base.id, connector->base.name);
> > > +			   connector->base.id, connector->name);
> > > +	}
> > > +	drm_connector_list_iter_end(&conn_iter);
> > >  }
> > >  
> > >  static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
> > > @@ -2475,8 +2484,10 @@ static void intel_connector_info(struct seq_file *m,
> > >  				 struct drm_connector *connector)
> > >  {
> > >  	struct intel_connector *intel_connector = to_intel_connector(connector);
> > > -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> > > -	struct drm_display_mode *mode;
> > > +	const struct drm_connector_state *conn_state = connector->state;
> > > +	struct intel_encoder *encoder =
> > > +		to_intel_encoder(conn_state->best_encoder);
> > > +	const struct drm_display_mode *mode;
> > >  
> > >  	seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
> > >  		   connector->base.id, connector->name,
> > > @@ -2492,24 +2503,24 @@ static void intel_connector_info(struct seq_file *m,
> > >  		   drm_get_subpixel_order_name(connector->display_info.subpixel_order));
> > >  	seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev);
> > >  
> > > -	if (!intel_encoder)
> > > +	if (!encoder)
> > >  		return;
> > >  
> > >  	switch (connector->connector_type) {
> > >  	case DRM_MODE_CONNECTOR_DisplayPort:
> > >  	case DRM_MODE_CONNECTOR_eDP:
> > > -		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
> > > +		if (encoder->type == INTEL_OUTPUT_DP_MST)
> > >  			intel_dp_mst_info(m, intel_connector);
> > >  		else
> > >  			intel_dp_info(m, intel_connector);
> > >  		break;
> > >  	case DRM_MODE_CONNECTOR_LVDS:
> > > -		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
> > > +		if (encoder->type == INTEL_OUTPUT_LVDS)
> > >  			intel_lvds_info(m, intel_connector);
> > >  		break;
> > >  	case DRM_MODE_CONNECTOR_HDMIA:
> > > -		if (intel_encoder->type == INTEL_OUTPUT_HDMI ||
> > > -		    intel_encoder->type == INTEL_OUTPUT_DDI)
> > > +		if (encoder->type == INTEL_OUTPUT_HDMI ||
> > > +		    encoder->type == INTEL_OUTPUT_DDI)
> > >  			intel_hdmi_info(m, intel_connector);
> > >  		break;
> > >  	default:
> > > @@ -2653,6 +2664,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> > >  	struct drm_i915_private *dev_priv = node_to_i915(m->private);
> > >  	const struct intel_crtc_state *crtc_state =
> > >  		to_intel_crtc_state(crtc->base.state);
> > > +	struct intel_encoder *encoder;
> > >  
> > >  	seq_printf(m, "[CRTC:%d:%s]:\n",
> > >  		   crtc->base.base.id, crtc->base.name);
> > > @@ -2663,8 +2675,6 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> > >  		   DRM_MODE_ARG(&crtc_state->uapi.mode));
> > >  
> > >  	if (crtc_state->hw.enable) {
> > > -		struct intel_encoder *encoder;
> > > -
> > >  		seq_printf(m, "\thw: active=%s, adjusted_mode=" DRM_MODE_FMT "\n",
> > >  			   yesno(crtc_state->hw.active),
> > >  			   DRM_MODE_ARG(&crtc_state->hw.adjusted_mode));
> > > @@ -2673,12 +2683,13 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
> > >  			   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
> > >  			   yesno(crtc_state->dither), crtc_state->pipe_bpp);
> > >  
> > > -		for_each_encoder_on_crtc(&dev_priv->drm, &crtc->base, encoder)
> > > -			intel_encoder_info(m, crtc, encoder);
> > > -
> > >  		intel_scaler_info(m, crtc);
> > >  	}
> > >  
> > > +	for_each_intel_encoder_mask(&dev_priv->drm, encoder,
> > > +				    crtc_state->uapi.encoder_mask)
> > > +		intel_encoder_info(m, crtc, encoder);
> > > +
> > >  	intel_plane_info(m, crtc);
> > >  
> > >  	seq_printf(m, "\tunderrun reporting: cpu=%s pch=%s\n",
> > > -- 
> > > 2.23.0
> > > 
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Ville Syrjälä
> Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2019-12-02 16:53 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-29 18:54 [PATCH v2 0/9] drm/i915: i915_display_info cleanup Ville Syrjala
2019-11-29 18:54 ` [Intel-gfx] " Ville Syrjala
2019-11-29 18:54 ` [PATCH v2 1/9] drm/i915: Use drm_rect to simplify plane {crtc, src}_{x, y, w, h} printing Ville Syrjala
2019-11-29 18:54   ` [Intel-gfx] " Ville Syrjala
2019-12-02  7:55   ` Ramalingam C
2019-12-02  7:55     ` [Intel-gfx] " Ramalingam C
2019-11-29 18:54 ` [PATCH v2 2/9] drm/i915: Switch to intel_ types in debugfs display_info Ville Syrjala
2019-11-29 18:54   ` [Intel-gfx] " Ville Syrjala
2019-12-02  8:59   ` Ramalingam C
2019-12-02  8:59     ` [Intel-gfx] " Ramalingam C
2019-11-29 18:54 ` [PATCH v2 3/9] drm/i915: Reorganize plane/fb dump in debugfs Ville Syrjala
2019-11-29 18:54   ` [Intel-gfx] " Ville Syrjala
2019-12-02 14:27   ` Ramalingam C
2019-12-02 14:27     ` [Intel-gfx] " Ramalingam C
2019-11-29 18:54 ` [PATCH v2 4/9] drm/i915: Refactor debugfs display info code Ville Syrjala
2019-11-29 18:54   ` [Intel-gfx] " Ville Syrjala
2019-12-02 14:34   ` Ramalingam C
2019-12-02 14:34     ` [Intel-gfx] " Ramalingam C
2019-11-29 18:54 ` [PATCH v2 5/9] drm/i915: Dump the mode for the crtc just the once Ville Syrjala
2019-11-29 18:54   ` [Intel-gfx] " Ville Syrjala
2019-12-02 14:56   ` Ramalingam C
2019-12-02 14:56     ` [Intel-gfx] " Ramalingam C
2019-11-29 18:54 ` [PATCH v2 6/9] drm/i915: Use drm_modeset_lock_all() in debugfs display info Ville Syrjala
2019-11-29 18:54   ` [Intel-gfx] " Ville Syrjala
2019-12-02 15:05   ` Ramalingam C
2019-12-02 15:05     ` [Intel-gfx] " Ramalingam C
2019-11-29 18:54 ` [PATCH v2 7/9] drm/i915: Use the canonical [CRTC:%d:%s]/etc. format in i915_display_info Ville Syrjala
2019-11-29 18:54   ` [Intel-gfx] " Ville Syrjala
2019-12-02 15:08   ` Ramalingam C
2019-12-02 15:08     ` [Intel-gfx] " Ramalingam C
2019-12-02 15:43     ` Ramalingam C
2019-12-02 15:43       ` [Intel-gfx] " Ramalingam C
2019-11-29 18:54 ` [PATCH v2 8/9] drm/i915: Dump both the uapi and hw states for crtcs and planes Ville Syrjala
2019-11-29 18:54   ` [Intel-gfx] " Ville Syrjala
2019-12-02 15:18   ` Ramalingam C
2019-12-02 15:18     ` [Intel-gfx] " Ramalingam C
2019-11-29 18:54 ` [PATCH v2 9/9] drm/i915: Stop using connector->encoder and encoder->crtc links in i915_display_info Ville Syrjala
2019-11-29 18:54   ` [Intel-gfx] " Ville Syrjala
2019-12-02 15:40   ` Ramalingam C
2019-12-02 15:40     ` [Intel-gfx] " Ramalingam C
2019-12-02 16:24     ` Ville Syrjälä
2019-12-02 16:24       ` [Intel-gfx] " Ville Syrjälä
2019-12-02 16:52       ` Ramalingam C
2019-12-02 16:52         ` [Intel-gfx] " Ramalingam C
2019-11-29 21:43 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: i915_display_info cleanup Patchwork
2019-11-29 21:43   ` [Intel-gfx] " Patchwork
2019-11-29 22:27 ` ✓ Fi.CI.BAT: success " Patchwork
2019-11-29 22:27   ` [Intel-gfx] " Patchwork
2019-12-01  1:15 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-12-01  1:15   ` [Intel-gfx] " Patchwork

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.