Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] drm/i915/display: add some sub-structs for clarity
@ 2025-02-28 12:49 Jani Nikula
  2025-02-28 12:49 ` [PATCH 1/3] drm/i915/mst: add mst sub-struct to struct intel_dp Jani Nikula
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Jani Nikula @ 2025-02-28 12:49 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula


Jani Nikula (3):
  drm/i915/mst: add mst sub-struct to struct intel_dp
  drm/i915/mst: add mst sub-struct to struct intel_connector
  drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port

 drivers/gpu/drm/i915/display/g4x_dp.c         |   2 +-
 drivers/gpu/drm/i915/display/g4x_hdmi.c       |   2 +-
 .../gpu/drm/i915/display/intel_connector.c    |   4 +-
 drivers/gpu/drm/i915/display/intel_ddi.c      |   6 +-
 .../drm/i915/display/intel_display_debugfs.c  |   6 +-
 .../drm/i915/display/intel_display_types.h    |  44 ++---
 drivers/gpu/drm/i915/display/intel_dp.c       |  38 ++---
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c  |   8 +-
 drivers/gpu/drm/i915/display/intel_dp_mst.c   | 154 +++++++++---------
 drivers/gpu/drm/i915/display/intel_hdcp.c     |  94 +++++------
 10 files changed, 180 insertions(+), 178 deletions(-)

-- 
2.39.5


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

* [PATCH 1/3] drm/i915/mst: add mst sub-struct to struct intel_dp
  2025-02-28 12:49 [PATCH 0/3] drm/i915/display: add some sub-structs for clarity Jani Nikula
@ 2025-02-28 12:49 ` Jani Nikula
  2025-02-28 15:52   ` Imre Deak
  2025-02-28 12:49 ` [PATCH 2/3] drm/i915/mst: add mst sub-struct to struct intel_connector Jani Nikula
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 12+ messages in thread
From: Jani Nikula @ 2025-02-28 12:49 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, Imre Deak

Move active_mst_links, mst_encoders[], and mst_mgr members of struct
intel_dp under an mst sub-struct to group mst related things together.

Rename them active_links, stream_encoders[] and mgr for clarity.

Note that is_mst and mst_detect are not included, as they're also
relevant for non-mst. The sub-struct is for active mst.

Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../drm/i915/display/intel_display_debugfs.c  |  2 +-
 .../drm/i915/display/intel_display_types.h    |  9 +-
 drivers/gpu/drm/i915/display/intel_dp.c       | 26 +++--
 drivers/gpu/drm/i915/display/intel_dp_mst.c   | 94 +++++++++----------
 drivers/gpu/drm/i915/display/intel_hdcp.c     |  2 +-
 5 files changed, 66 insertions(+), 67 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index 7ee90cd8ed2d..408f80194334 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -749,7 +749,7 @@ static int i915_dp_mst_info(struct seq_file *m, void *unused)
 		seq_printf(m, "MST Source Port [ENCODER:%d:%s]\n",
 			   dig_port->base.base.base.id,
 			   dig_port->base.base.name);
-		drm_dp_mst_dump_topology(m, &dig_port->dp.mst_mgr);
+		drm_dp_mst_dump_topology(m, &dig_port->dp.mst.mgr);
 	}
 	drm_connector_list_iter_end(&conn_iter);
 
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 4440521e3e9e..2aa8f6264708 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1724,7 +1724,6 @@ struct intel_dp {
 	struct intel_pps pps;
 
 	bool is_mst;
-	int active_mst_links;
 	enum drm_dp_mst_mode mst_detect;
 
 	/* connector directly attached - won't be use for modeset in mst world */
@@ -1734,9 +1733,11 @@ struct intel_dp {
 	struct drm_dp_tunnel *tunnel;
 	bool tunnel_suspended:1;
 
-	/* mst connector list */
-	struct intel_dp_mst_encoder *mst_encoders[I915_MAX_PIPES];
-	struct drm_dp_mst_topology_mgr mst_mgr;
+	struct {
+		struct intel_dp_mst_encoder *stream_encoders[I915_MAX_PIPES];
+		struct drm_dp_mst_topology_mgr mgr;
+		int active_links;
+	} mst;
 
 	u32 (*get_aux_clock_divider)(struct intel_dp *dp, int index);
 	/*
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 4d0166f17357..5e84103c8d54 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -4396,7 +4396,7 @@ intel_dp_mst_configure(struct intel_dp *intel_dp)
 	if (intel_dp->is_mst)
 		intel_dp_mst_prepare_probe(intel_dp);
 
-	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, intel_dp->is_mst);
+	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst.mgr, intel_dp->is_mst);
 
 	/* Avoid stale info on the next detect cycle. */
 	intel_dp->mst_detect = DRM_DP_SST;
@@ -4412,9 +4412,9 @@ intel_dp_mst_disconnect(struct intel_dp *intel_dp)
 
 	drm_dbg_kms(display->drm,
 		    "MST device may have disappeared %d vs %d\n",
-		    intel_dp->is_mst, intel_dp->mst_mgr.mst_state);
+		    intel_dp->is_mst, intel_dp->mst.mgr.mst_state);
 	intel_dp->is_mst = false;
-	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, intel_dp->is_mst);
+	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst.mgr, intel_dp->is_mst);
 }
 
 static bool
@@ -4920,7 +4920,7 @@ intel_dp_mst_hpd_irq(struct intel_dp *intel_dp, u8 *esi, u8 *ack)
 {
 	bool handled = false;
 
-	drm_dp_mst_hpd_irq_handle_event(&intel_dp->mst_mgr, esi, ack, &handled);
+	drm_dp_mst_hpd_irq_handle_event(&intel_dp->mst.mgr, esi, ack, &handled);
 
 	if (esi[1] & DP_CP_IRQ) {
 		intel_hdcp_handle_cp_irq(intel_dp->attached_connector);
@@ -4969,7 +4969,7 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
 	bool link_ok = true;
 	bool reprobe_needed = false;
 
-	drm_WARN_ON_ONCE(display->drm, intel_dp->active_mst_links < 0);
+	drm_WARN_ON_ONCE(display->drm, intel_dp->mst.active_links < 0);
 
 	for (;;) {
 		u8 esi[4] = {};
@@ -4985,7 +4985,7 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
 
 		drm_dbg_kms(display->drm, "DPRX ESI: %4ph\n", esi);
 
-		if (intel_dp->active_mst_links > 0 && link_ok &&
+		if (intel_dp->mst.active_links > 0 && link_ok &&
 		    esi[3] & LINK_STATUS_CHANGED) {
 			if (!intel_dp_mst_link_status(intel_dp))
 				link_ok = false;
@@ -5008,7 +5008,7 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
 			drm_dbg_kms(display->drm, "Failed to ack ESI\n");
 
 		if (ack[1] & (DP_DOWN_REP_MSG_RDY | DP_UP_REQ_MSG_RDY))
-			drm_dp_mst_hpd_irq_send_new_request(&intel_dp->mst_mgr);
+			drm_dp_mst_hpd_irq_send_new_request(&intel_dp->mst.mgr);
 	}
 
 	if (!link_ok || intel_dp->link.force_retrain)
@@ -5107,7 +5107,7 @@ bool intel_dp_has_connector(struct intel_dp *intel_dp,
 
 	/* MST */
 	for_each_pipe(display, pipe) {
-		encoder = &intel_dp->mst_encoders[pipe]->base;
+		encoder = &intel_dp->mst.stream_encoders[pipe]->base;
 		if (conn_state->best_encoder == &encoder->base)
 			return true;
 	}
@@ -6066,7 +6066,7 @@ static int intel_dp_connector_atomic_check(struct drm_connector *conn,
 		return ret;
 
 	if (intel_dp_mst_source_support(intel_dp)) {
-		ret = drm_dp_mst_root_conn_atomic_check(conn_state, &intel_dp->mst_mgr);
+		ret = drm_dp_mst_root_conn_atomic_check(conn_state, &intel_dp->mst.mgr);
 		if (ret)
 			return ret;
 	}
@@ -6604,7 +6604,7 @@ void intel_dp_mst_suspend(struct intel_display *display)
 			continue;
 
 		if (intel_dp->is_mst)
-			drm_dp_mst_topology_mgr_suspend(&intel_dp->mst_mgr);
+			drm_dp_mst_topology_mgr_suspend(&intel_dp->mst.mgr);
 	}
 }
 
@@ -6627,12 +6627,10 @@ void intel_dp_mst_resume(struct intel_display *display)
 		if (!intel_dp_mst_source_support(intel_dp))
 			continue;
 
-		ret = drm_dp_mst_topology_mgr_resume(&intel_dp->mst_mgr,
-						     true);
+		ret = drm_dp_mst_topology_mgr_resume(&intel_dp->mst.mgr, true);
 		if (ret) {
 			intel_dp->is_mst = false;
-			drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
-							false);
+			drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst.mgr, false);
 		}
 	}
 }
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 90cc07b72817..e96236fbe407 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -253,7 +253,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
 					   fxp_q4_to_frac(bpp_step_x16)));
 
 	if (is_mst) {
-		mst_state = drm_atomic_get_mst_topology_state(state, &intel_dp->mst_mgr);
+		mst_state = drm_atomic_get_mst_topology_state(state, &intel_dp->mst.mgr);
 		if (IS_ERR(mst_state))
 			return PTR_ERR(mst_state);
 
@@ -355,7 +355,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
 			drm_WARN_ON(display->drm, remote_tu < crtc_state->dp_m_n.tu);
 			crtc_state->dp_m_n.tu = remote_tu;
 
-			slots = drm_dp_atomic_find_time_slots(state, &intel_dp->mst_mgr,
+			slots = drm_dp_atomic_find_time_slots(state, &intel_dp->mst.mgr,
 							      connector->port,
 							      dfixed_trunc(pbn));
 		} else {
@@ -479,7 +479,7 @@ static int mst_stream_update_slots(struct intel_dp *intel_dp,
 				   struct drm_connector_state *conn_state)
 {
 	struct intel_display *display = to_intel_display(intel_dp);
-	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst_mgr;
+	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst.mgr;
 	struct drm_dp_mst_topology_state *topology_state;
 	u8 link_coding_cap = intel_dp_is_uhbr(crtc_state) ?
 		DP_CAP_ANSI_128B132B : DP_CAP_ANSI_8B10B;
@@ -769,7 +769,7 @@ static u8 get_pipes_downstream_of_mst_port(struct intel_atomic_state *state,
 		if (!conn_state->base.crtc)
 			continue;
 
-		if (&connector->mst_port->mst_mgr != mst_mgr)
+		if (&connector->mst_port->mst.mgr != mst_mgr)
 			continue;
 
 		if (connector->port != parent_port &&
@@ -981,7 +981,7 @@ mst_connector_atomic_check(struct drm_connector *_connector,
 	}
 
 	return drm_dp_atomic_release_time_slots(&state->base,
-						&connector->mst_port->mst_mgr,
+						&connector->mst_port->mst.mgr,
 						connector->port);
 }
 
@@ -998,9 +998,9 @@ static void mst_stream_disable(struct intel_atomic_state *state,
 	enum transcoder trans = old_crtc_state->cpu_transcoder;
 
 	drm_dbg_kms(display->drm, "active links %d\n",
-		    intel_dp->active_mst_links);
+		    intel_dp->mst.active_links);
 
-	if (intel_dp->active_mst_links == 1)
+	if (intel_dp->mst.active_links == 1)
 		intel_dp->link_trained = false;
 
 	intel_hdcp_disable(intel_mst->connector);
@@ -1023,9 +1023,9 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
 	struct intel_connector *connector =
 		to_intel_connector(old_conn_state->connector);
 	struct drm_dp_mst_topology_state *old_mst_state =
-		drm_atomic_get_old_mst_topology_state(&state->base, &intel_dp->mst_mgr);
+		drm_atomic_get_old_mst_topology_state(&state->base, &intel_dp->mst.mgr);
 	struct drm_dp_mst_topology_state *new_mst_state =
-		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst_mgr);
+		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst.mgr);
 	const struct drm_dp_mst_atomic_payload *old_payload =
 		drm_atomic_get_mst_payload_state(old_mst_state, connector->port);
 	struct drm_dp_mst_atomic_payload *new_payload =
@@ -1034,8 +1034,8 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
 	bool last_mst_stream;
 	int i;
 
-	intel_dp->active_mst_links--;
-	last_mst_stream = intel_dp->active_mst_links == 0;
+	intel_dp->mst.active_links--;
+	last_mst_stream = intel_dp->mst.active_links == 0;
 	drm_WARN_ON(display->drm, DISPLAY_VER(display) >= 12 && last_mst_stream &&
 		    !intel_dp_mst_is_master_trans(old_crtc_state));
 
@@ -1048,7 +1048,7 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
 
 	intel_disable_transcoder(old_crtc_state);
 
-	drm_dp_remove_payload_part1(&intel_dp->mst_mgr, new_mst_state, new_payload);
+	drm_dp_remove_payload_part1(&intel_dp->mst.mgr, new_mst_state, new_payload);
 
 	intel_ddi_clear_act_sent(encoder, old_crtc_state);
 
@@ -1057,9 +1057,9 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
 		     TRANS_DDI_DP_VC_PAYLOAD_ALLOC, 0);
 
 	intel_ddi_wait_for_act_sent(encoder, old_crtc_state);
-	drm_dp_check_act_status(&intel_dp->mst_mgr);
+	drm_dp_check_act_status(&intel_dp->mst.mgr);
 
-	drm_dp_remove_payload_part2(&intel_dp->mst_mgr, new_mst_state,
+	drm_dp_remove_payload_part2(&intel_dp->mst.mgr, new_mst_state,
 				    old_payload, new_payload);
 
 	intel_ddi_disable_transcoder_func(old_crtc_state);
@@ -1080,7 +1080,7 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
 	 * Power down mst path before disabling the port, otherwise we end
 	 * up getting interrupts from the sink upon detecting link loss.
 	 */
-	drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port,
+	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->port,
 				     false);
 
 	/*
@@ -1105,7 +1105,7 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
 					      old_crtc_state, NULL);
 
 	drm_dbg_kms(display->drm, "active links %d\n",
-		    intel_dp->active_mst_links);
+		    intel_dp->mst.active_links);
 }
 
 static void mst_stream_post_pll_disable(struct intel_atomic_state *state,
@@ -1116,7 +1116,7 @@ static void mst_stream_post_pll_disable(struct intel_atomic_state *state,
 	struct intel_encoder *primary_encoder = to_primary_encoder(encoder);
 	struct intel_dp *intel_dp = to_primary_dp(encoder);
 
-	if (intel_dp->active_mst_links == 0 &&
+	if (intel_dp->mst.active_links == 0 &&
 	    primary_encoder->post_pll_disable)
 		primary_encoder->post_pll_disable(state, primary_encoder, old_crtc_state, old_conn_state);
 }
@@ -1129,7 +1129,7 @@ static void mst_stream_pre_pll_enable(struct intel_atomic_state *state,
 	struct intel_encoder *primary_encoder = to_primary_encoder(encoder);
 	struct intel_dp *intel_dp = to_primary_dp(encoder);
 
-	if (intel_dp->active_mst_links == 0)
+	if (intel_dp->mst.active_links == 0)
 		primary_encoder->pre_pll_enable(state, primary_encoder,
 						pipe_config, NULL);
 	else
@@ -1162,7 +1162,7 @@ static void intel_mst_reprobe_topology(struct intel_dp *intel_dp,
 					       crtc_state->port_clock, crtc_state->lane_count))
 		return;
 
-	drm_dp_mst_topology_queue_probe(&intel_dp->mst_mgr);
+	drm_dp_mst_topology_queue_probe(&intel_dp->mst.mgr);
 
 	intel_mst_set_probed_link_params(intel_dp,
 					 crtc_state->port_clock, crtc_state->lane_count);
@@ -1180,7 +1180,7 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
 	struct intel_connector *connector =
 		to_intel_connector(conn_state->connector);
 	struct drm_dp_mst_topology_state *mst_state =
-		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst_mgr);
+		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst.mgr);
 	int ret;
 	bool first_mst_stream;
 
@@ -1189,17 +1189,17 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
 	 */
 	connector->encoder = encoder;
 	intel_mst->connector = connector;
-	first_mst_stream = intel_dp->active_mst_links == 0;
+	first_mst_stream = intel_dp->mst.active_links == 0;
 	drm_WARN_ON(display->drm, DISPLAY_VER(display) >= 12 && first_mst_stream &&
 		    !intel_dp_mst_is_master_trans(pipe_config));
 
 	drm_dbg_kms(display->drm, "active links %d\n",
-		    intel_dp->active_mst_links);
+		    intel_dp->mst.active_links);
 
 	if (first_mst_stream)
 		intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
 
-	drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port, true);
+	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->port, true);
 
 	intel_dp_sink_enable_decompression(state, connector, pipe_config);
 
@@ -1210,9 +1210,9 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
 		intel_mst_reprobe_topology(intel_dp, pipe_config);
 	}
 
-	intel_dp->active_mst_links++;
+	intel_dp->mst.active_links++;
 
-	ret = drm_dp_add_payload_part1(&intel_dp->mst_mgr, mst_state,
+	ret = drm_dp_add_payload_part1(&intel_dp->mst.mgr, mst_state,
 				       drm_atomic_get_mst_payload_state(mst_state, connector->port));
 	if (ret < 0)
 		intel_dp_queue_modeset_retry_for_link(state, primary_encoder, pipe_config);
@@ -1277,9 +1277,9 @@ static void mst_stream_enable(struct intel_atomic_state *state,
 	struct intel_dp *intel_dp = to_primary_dp(encoder);
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
 	struct drm_dp_mst_topology_state *mst_state =
-		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst_mgr);
+		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst.mgr);
 	enum transcoder trans = pipe_config->cpu_transcoder;
-	bool first_mst_stream = intel_dp->active_mst_links == 1;
+	bool first_mst_stream = intel_dp->mst.active_links == 1;
 	struct intel_crtc *pipe_crtc;
 	int ret, i, min_hblank;
 
@@ -1329,15 +1329,15 @@ static void mst_stream_enable(struct intel_atomic_state *state,
 		     TRANS_DDI_DP_VC_PAYLOAD_ALLOC);
 
 	drm_dbg_kms(display->drm, "active links %d\n",
-		    intel_dp->active_mst_links);
+		    intel_dp->mst.active_links);
 
 	intel_ddi_wait_for_act_sent(encoder, pipe_config);
-	drm_dp_check_act_status(&intel_dp->mst_mgr);
+	drm_dp_check_act_status(&intel_dp->mst.mgr);
 
 	if (first_mst_stream)
 		intel_ddi_wait_for_fec_status(encoder, pipe_config, true);
 
-	ret = drm_dp_add_payload_part2(&intel_dp->mst_mgr,
+	ret = drm_dp_add_payload_part2(&intel_dp->mst.mgr,
 				       drm_atomic_get_mst_payload_state(mst_state,
 									connector->port));
 	if (ret < 0)
@@ -1402,7 +1402,7 @@ static int mst_connector_get_ddc_modes(struct drm_connector *_connector)
 	if (!intel_display_driver_check_access(display))
 		return drm_edid_connector_add_modes(&connector->base);
 
-	drm_edid = drm_dp_mst_edid_read(&connector->base, &intel_dp->mst_mgr, connector->port);
+	drm_edid = drm_dp_mst_edid_read(&connector->base, &intel_dp->mst.mgr, connector->port);
 
 	ret = intel_connector_update_modes(&connector->base, drm_edid);
 
@@ -1464,7 +1464,7 @@ mst_connector_mode_valid_ctx(struct drm_connector *_connector,
 	struct intel_connector *connector = to_intel_connector(_connector);
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_dp *intel_dp = connector->mst_port;
-	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst_mgr;
+	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst.mgr;
 	struct drm_dp_mst_port *port = connector->port;
 	const int min_bpp = 18;
 	int max_dotclk = display->cdclk.max_dotclk_freq;
@@ -1579,7 +1579,7 @@ mst_connector_atomic_best_encoder(struct drm_connector *_connector,
 	struct intel_dp *intel_dp = connector->mst_port;
 	struct intel_crtc *crtc = to_intel_crtc(connector_state->crtc);
 
-	return &intel_dp->mst_encoders[crtc->pipe]->base.base;
+	return &intel_dp->mst.stream_encoders[crtc->pipe]->base.base;
 }
 
 static int
@@ -1601,7 +1601,7 @@ mst_connector_detect_ctx(struct drm_connector *_connector,
 
 	intel_dp_flush_connector_commits(connector);
 
-	return drm_dp_mst_detect_port(&connector->base, ctx, &intel_dp->mst_mgr,
+	return drm_dp_mst_detect_port(&connector->base, ctx, &intel_dp->mst.mgr,
 				      connector->port);
 }
 
@@ -1731,7 +1731,7 @@ mst_topology_add_connector(struct drm_dp_mst_topology_mgr *mgr,
 			   struct drm_dp_mst_port *port,
 			   const char *pathprop)
 {
-	struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst_mgr);
+	struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst.mgr);
 	struct intel_display *display = to_intel_display(intel_dp);
 	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
 	struct intel_connector *connector;
@@ -1762,7 +1762,7 @@ mst_topology_add_connector(struct drm_dp_mst_topology_mgr *mgr,
 
 	for_each_pipe(display, pipe) {
 		struct drm_encoder *enc =
-			&intel_dp->mst_encoders[pipe]->base.base;
+			&intel_dp->mst.stream_encoders[pipe]->base.base;
 
 		ret = drm_connector_attach_encoder(&connector->base, enc);
 		if (ret)
@@ -1792,7 +1792,7 @@ mst_topology_add_connector(struct drm_dp_mst_topology_mgr *mgr,
 static void
 mst_topology_poll_hpd_irq(struct drm_dp_mst_topology_mgr *mgr)
 {
-	struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst_mgr);
+	struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst.mgr);
 
 	intel_hpd_trigger_irq(dp_to_dig_port(intel_dp));
 }
@@ -1865,14 +1865,14 @@ mst_stream_encoders_create(struct intel_digital_port *dig_port)
 	enum pipe pipe;
 
 	for_each_pipe(display, pipe)
-		intel_dp->mst_encoders[pipe] = mst_stream_encoder_create(dig_port, pipe);
+		intel_dp->mst.stream_encoders[pipe] = mst_stream_encoder_create(dig_port, pipe);
 	return true;
 }
 
 int
 intel_dp_mst_encoder_active_links(struct intel_digital_port *dig_port)
 {
-	return dig_port->dp.active_mst_links;
+	return dig_port->dp.mst.active_links;
 }
 
 int
@@ -1892,15 +1892,15 @@ intel_dp_mst_encoder_init(struct intel_digital_port *dig_port, int conn_base_id)
 	if (DISPLAY_VER(display) < 11 && port == PORT_E)
 		return 0;
 
-	intel_dp->mst_mgr.cbs = &mst_topology_cbs;
+	intel_dp->mst.mgr.cbs = &mst_topology_cbs;
 
 	/* create encoders */
 	mst_stream_encoders_create(dig_port);
-	ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, display->drm,
+	ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst.mgr, display->drm,
 					   &intel_dp->aux, 16,
 					   INTEL_NUM_PIPES(display), conn_base_id);
 	if (ret) {
-		intel_dp->mst_mgr.cbs = NULL;
+		intel_dp->mst.mgr.cbs = NULL;
 		return ret;
 	}
 
@@ -1909,7 +1909,7 @@ intel_dp_mst_encoder_init(struct intel_digital_port *dig_port, int conn_base_id)
 
 bool intel_dp_mst_source_support(struct intel_dp *intel_dp)
 {
-	return intel_dp->mst_mgr.cbs;
+	return intel_dp->mst.mgr.cbs;
 }
 
 void
@@ -1920,10 +1920,10 @@ intel_dp_mst_encoder_cleanup(struct intel_digital_port *dig_port)
 	if (!intel_dp_mst_source_support(intel_dp))
 		return;
 
-	drm_dp_mst_topology_mgr_destroy(&intel_dp->mst_mgr);
+	drm_dp_mst_topology_mgr_destroy(&intel_dp->mst.mgr);
 	/* encoders will get killed by normal cleanup */
 
-	intel_dp->mst_mgr.cbs = NULL;
+	intel_dp->mst.mgr.cbs = NULL;
 }
 
 bool intel_dp_mst_is_master_trans(const struct intel_crtc_state *crtc_state)
@@ -1958,7 +1958,7 @@ intel_dp_mst_add_topology_state_for_connector(struct intel_atomic_state *state,
 		return 0;
 
 	mst_state = drm_atomic_get_mst_topology_state(&state->base,
-						      &connector->mst_port->mst_mgr);
+						      &connector->mst_port->mst.mgr);
 	if (IS_ERR(mst_state))
 		return PTR_ERR(mst_state);
 
@@ -2140,7 +2140,7 @@ bool intel_dp_mst_verify_dpcd_state(struct intel_dp *intel_dp)
 	if (!intel_dp->is_mst)
 		return true;
 
-	ret = drm_dp_dpcd_readb(intel_dp->mst_mgr.aux, DP_MSTM_CTRL, &val);
+	ret = drm_dp_dpcd_readb(intel_dp->mst.mgr.aux, DP_MSTM_CTRL, &val);
 
 	/* Adjust the expected register value for SST + SideBand. */
 	if (ret < 0 || val != (DP_MST_EN | DP_UP_REQ_EN | DP_UPSTREAM_IS_SRC)) {
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 7063e3f5c538..100f3fb1c1a0 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -136,7 +136,7 @@ intel_hdcp_required_content_stream(struct intel_atomic_state *state,
 		data->k++;
 
 		/* if there is only one active stream */
-		if (dig_port->dp.active_mst_links <= 1)
+		if (dig_port->dp.mst.active_links <= 1)
 			break;
 	}
 	drm_connector_list_iter_end(&conn_iter);
-- 
2.39.5


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

* [PATCH 2/3] drm/i915/mst: add mst sub-struct to struct intel_connector
  2025-02-28 12:49 [PATCH 0/3] drm/i915/display: add some sub-structs for clarity Jani Nikula
  2025-02-28 12:49 ` [PATCH 1/3] drm/i915/mst: add mst sub-struct to struct intel_dp Jani Nikula
@ 2025-02-28 12:49 ` Jani Nikula
  2025-02-28 15:52   ` Imre Deak
  2025-02-28 12:49 ` [PATCH 3/3] drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port Jani Nikula
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 12+ messages in thread
From: Jani Nikula @ 2025-02-28 12:49 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, Imre Deak

Move port and mst_port members of struct intel_connector under an mst
sub-struct to group mst related things together.

Rename the latter dp for clarity.

Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../gpu/drm/i915/display/intel_connector.c    |  4 +-
 .../drm/i915/display/intel_display_debugfs.c  |  4 +-
 .../drm/i915/display/intel_display_types.h    | 13 ++--
 drivers/gpu/drm/i915/display/intel_dp.c       | 12 ++--
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c  |  6 +-
 drivers/gpu/drm/i915/display/intel_dp_mst.c   | 72 +++++++++----------
 drivers/gpu/drm/i915/display/intel_hdcp.c     |  8 +--
 7 files changed, 60 insertions(+), 59 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
index 358965fc7f55..e42357bd9e80 100644
--- a/drivers/gpu/drm/i915/display/intel_connector.c
+++ b/drivers/gpu/drm/i915/display/intel_connector.c
@@ -145,8 +145,8 @@ void intel_connector_destroy(struct drm_connector *connector)
 
 	drm_connector_cleanup(connector);
 
-	if (intel_connector->port)
-		drm_dp_mst_put_port_malloc(intel_connector->port);
+	if (intel_connector->mst.port)
+		drm_dp_mst_put_port_malloc(intel_connector->mst.port);
 
 	kfree(connector);
 }
diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index 408f80194334..510c15a6271f 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -261,7 +261,7 @@ static void intel_connector_info(struct seq_file *m,
 	switch (connector->connector_type) {
 	case DRM_MODE_CONNECTOR_DisplayPort:
 	case DRM_MODE_CONNECTOR_eDP:
-		if (intel_connector->mst_port)
+		if (intel_connector->mst.dp)
 			intel_dp_mst_info(m, intel_connector);
 		else
 			intel_dp_info(m, intel_connector);
@@ -1341,7 +1341,7 @@ void intel_connector_debugfs_add(struct intel_connector *connector)
 	intel_dp_link_training_debugfs_add(connector);
 
 	if (DISPLAY_VER(display) >= 11 &&
-	    ((connector_type == DRM_MODE_CONNECTOR_DisplayPort && !connector->mst_port) ||
+	    ((connector_type == DRM_MODE_CONNECTOR_DisplayPort && !connector->mst.dp) ||
 	     connector_type == DRM_MODE_CONNECTOR_eDP)) {
 		debugfs_create_file("i915_dsc_fec_support", 0644, root,
 				    connector, &i915_dsc_fec_support_fops);
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 2aa8f6264708..b52fca816591 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -534,10 +534,6 @@ struct intel_connector {
 	   state of connector->polled in case hotplug storm detection changes it */
 	u8 polled;
 
-	struct drm_dp_mst_port *port;
-
-	struct intel_dp *mst_port;
-
 	int force_joined_pipes;
 
 	struct {
@@ -549,6 +545,11 @@ struct intel_connector {
 		u8 dsc_decompression_enabled:1;
 	} dp;
 
+	struct {
+		struct drm_dp_mst_port *port;
+		struct intel_dp *dp;
+	} mst;
+
 	/* Work struct to schedule a uevent on link train failure */
 	struct work_struct modeset_retry_work;
 
@@ -1956,8 +1957,8 @@ static inline struct intel_dp *enc_to_intel_dp(struct intel_encoder *encoder)
 
 static inline struct intel_dp *intel_attached_dp(struct intel_connector *connector)
 {
-	if (connector->mst_port)
-		return connector->mst_port;
+	if (connector->mst.dp)
+		return connector->mst.dp;
 	else
 		return enc_to_intel_dp(intel_attached_encoder(connector));
 }
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 5e84103c8d54..205ec315b413 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1376,7 +1376,7 @@ bool intel_dp_has_dsc(const struct intel_connector *connector)
 	if (!HAS_DSC(display))
 		return false;
 
-	if (connector->mst_port && !HAS_DSC_MST(display))
+	if (connector->mst.dp && !HAS_DSC_MST(display))
 		return false;
 
 	if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP &&
@@ -3080,7 +3080,7 @@ intel_dp_queue_modeset_retry_for_link(struct intel_atomic_state *state,
 		if (!conn_state->base.crtc)
 			continue;
 
-		if (connector->mst_port == intel_dp)
+		if (connector->mst.dp == intel_dp)
 			intel_connector_queue_modeset_retry_work(connector);
 	}
 }
@@ -3302,8 +3302,8 @@ intel_dp_sink_set_dsc_passthrough(const struct intel_connector *connector,
 				  bool enable)
 {
 	struct intel_display *display = to_intel_display(connector);
-	struct drm_dp_aux *aux = connector->port ?
-				 connector->port->passthrough_aux : NULL;
+	struct drm_dp_aux *aux = connector->mst.port ?
+				 connector->mst.port->passthrough_aux : NULL;
 
 	if (!aux)
 		return;
@@ -3330,7 +3330,7 @@ static int intel_dp_dsc_aux_ref_count(struct intel_atomic_state *state,
 	 * On SST the decompression AUX device won't be shared, each connector
 	 * uses for this its own AUX targeting the sink device.
 	 */
-	if (!connector->mst_port)
+	if (!connector->mst.dp)
 		return connector->dp.dsc_decompression_enabled ? 1 : 0;
 
 	for_each_oldnew_connector_in_state(&state->base, _connector_iter,
@@ -3338,7 +3338,7 @@ static int intel_dp_dsc_aux_ref_count(struct intel_atomic_state *state,
 		const struct intel_connector *
 			connector_iter = to_intel_connector(_connector_iter);
 
-		if (connector_iter->mst_port != connector->mst_port)
+		if (connector_iter->mst.dp != connector->mst.dp)
 			continue;
 
 		if (!connector_iter->dp.dsc_decompression_enabled)
diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
index 00c493cc8a4b..4c9481124c90 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
@@ -705,10 +705,10 @@ int intel_dp_hdcp_get_remote_capability(struct intel_connector *connector,
 
 	*hdcp_capable = false;
 	*hdcp2_capable = false;
-	if (!connector->mst_port)
+	if (!connector->mst.dp)
 		return -EINVAL;
 
-	aux = &connector->port->aux;
+	aux = &connector->mst.port->aux;
 	ret =  _intel_dp_hdcp2_get_capability(aux, hdcp2_capable);
 	if (ret)
 		drm_dbg_kms(display->drm,
@@ -883,7 +883,7 @@ int intel_dp_hdcp_init(struct intel_digital_port *dig_port,
 	if (!is_hdcp_supported(display, port))
 		return 0;
 
-	if (intel_connector->mst_port)
+	if (intel_connector->mst.dp)
 		return intel_hdcp_init(intel_connector, dig_port,
 				       &intel_dp_mst_hdcp_shim);
 	else if (!intel_dp_is_edp(intel_dp))
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index e96236fbe407..02f95108c637 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -356,7 +356,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
 			crtc_state->dp_m_n.tu = remote_tu;
 
 			slots = drm_dp_atomic_find_time_slots(state, &intel_dp->mst.mgr,
-							      connector->port,
+							      connector->mst.port,
 							      dfixed_trunc(pbn));
 		} else {
 			/* Same as above for remote_tu */
@@ -509,8 +509,8 @@ hblank_expansion_quirk_needs_dsc(const struct intel_connector *connector,
 {
 	const struct drm_display_mode *adjusted_mode =
 		&crtc_state->hw.adjusted_mode;
-	bool is_uhbr_sink = connector->mst_port &&
-			    drm_dp_128b132b_supported(connector->mst_port->dpcd);
+	bool is_uhbr_sink = connector->mst.dp &&
+			    drm_dp_128b132b_supported(connector->mst.dp->dpcd);
 	int hblank_limit = is_uhbr_sink ? 500 : 300;
 
 	if (!connector->dp.dsc_hblank_expansion_quirk)
@@ -741,7 +741,7 @@ intel_dp_mst_transcoder_mask(struct intel_atomic_state *state,
 		const struct intel_crtc_state *crtc_state;
 		struct intel_crtc *crtc;
 
-		if (connector->mst_port != mst_port || !conn_state->base.crtc)
+		if (connector->mst.dp != mst_port || !conn_state->base.crtc)
 			continue;
 
 		crtc = to_intel_crtc(conn_state->base.crtc);
@@ -769,12 +769,12 @@ static u8 get_pipes_downstream_of_mst_port(struct intel_atomic_state *state,
 		if (!conn_state->base.crtc)
 			continue;
 
-		if (&connector->mst_port->mst.mgr != mst_mgr)
+		if (&connector->mst.dp->mst.mgr != mst_mgr)
 			continue;
 
-		if (connector->port != parent_port &&
+		if (connector->mst.port != parent_port &&
 		    !drm_dp_mst_port_downstream_of_parent(mst_mgr,
-							  connector->port,
+							  connector->mst.port,
 							  parent_port))
 			continue;
 
@@ -925,7 +925,7 @@ mst_connector_atomic_topology_check(struct intel_connector *connector,
 		struct intel_crtc_state *crtc_state;
 		struct intel_crtc *crtc;
 
-		if (connector_iter->mst_port != connector->mst_port ||
+		if (connector_iter->mst.dp != connector->mst.dp ||
 		    connector_iter == connector)
 			continue;
 
@@ -974,15 +974,15 @@ mst_connector_atomic_check(struct drm_connector *_connector,
 
 	if (intel_connector_needs_modeset(state, &connector->base)) {
 		ret = intel_dp_tunnel_atomic_check_state(state,
-							 connector->mst_port,
+							 connector->mst.dp,
 							 connector);
 		if (ret)
 			return ret;
 	}
 
 	return drm_dp_atomic_release_time_slots(&state->base,
-						&connector->mst_port->mst.mgr,
-						connector->port);
+						&connector->mst.dp->mst.mgr,
+						connector->mst.port);
 }
 
 static void mst_stream_disable(struct intel_atomic_state *state,
@@ -1027,9 +1027,9 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
 	struct drm_dp_mst_topology_state *new_mst_state =
 		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst.mgr);
 	const struct drm_dp_mst_atomic_payload *old_payload =
-		drm_atomic_get_mst_payload_state(old_mst_state, connector->port);
+		drm_atomic_get_mst_payload_state(old_mst_state, connector->mst.port);
 	struct drm_dp_mst_atomic_payload *new_payload =
-		drm_atomic_get_mst_payload_state(new_mst_state, connector->port);
+		drm_atomic_get_mst_payload_state(new_mst_state, connector->mst.port);
 	struct intel_crtc *pipe_crtc;
 	bool last_mst_stream;
 	int i;
@@ -1080,7 +1080,7 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
 	 * Power down mst path before disabling the port, otherwise we end
 	 * up getting interrupts from the sink upon detecting link loss.
 	 */
-	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->port,
+	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->mst.port,
 				     false);
 
 	/*
@@ -1199,7 +1199,7 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
 	if (first_mst_stream)
 		intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
 
-	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->port, true);
+	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->mst.port, true);
 
 	intel_dp_sink_enable_decompression(state, connector, pipe_config);
 
@@ -1213,7 +1213,7 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
 	intel_dp->mst.active_links++;
 
 	ret = drm_dp_add_payload_part1(&intel_dp->mst.mgr, mst_state,
-				       drm_atomic_get_mst_payload_state(mst_state, connector->port));
+				       drm_atomic_get_mst_payload_state(mst_state, connector->mst.port));
 	if (ret < 0)
 		intel_dp_queue_modeset_retry_for_link(state, primary_encoder, pipe_config);
 
@@ -1339,7 +1339,7 @@ static void mst_stream_enable(struct intel_atomic_state *state,
 
 	ret = drm_dp_add_payload_part2(&intel_dp->mst.mgr,
 				       drm_atomic_get_mst_payload_state(mst_state,
-									connector->port));
+									connector->mst.port));
 	if (ret < 0)
 		intel_dp_queue_modeset_retry_for_link(state, primary_encoder, pipe_config);
 
@@ -1392,7 +1392,7 @@ static int mst_connector_get_ddc_modes(struct drm_connector *_connector)
 {
 	struct intel_connector *connector = to_intel_connector(_connector);
 	struct intel_display *display = to_intel_display(connector);
-	struct intel_dp *intel_dp = connector->mst_port;
+	struct intel_dp *intel_dp = connector->mst.dp;
 	const struct drm_edid *drm_edid;
 	int ret;
 
@@ -1402,7 +1402,7 @@ static int mst_connector_get_ddc_modes(struct drm_connector *_connector)
 	if (!intel_display_driver_check_access(display))
 		return drm_edid_connector_add_modes(&connector->base);
 
-	drm_edid = drm_dp_mst_edid_read(&connector->base, &intel_dp->mst.mgr, connector->port);
+	drm_edid = drm_dp_mst_edid_read(&connector->base, &intel_dp->mst.mgr, connector->mst.port);
 
 	ret = intel_connector_update_modes(&connector->base, drm_edid);
 
@@ -1417,13 +1417,13 @@ mst_connector_late_register(struct drm_connector *_connector)
 	struct intel_connector *connector = to_intel_connector(_connector);
 	int ret;
 
-	ret = drm_dp_mst_connector_late_register(&connector->base, connector->port);
+	ret = drm_dp_mst_connector_late_register(&connector->base, connector->mst.port);
 	if (ret < 0)
 		return ret;
 
 	ret = intel_connector_register(&connector->base);
 	if (ret < 0)
-		drm_dp_mst_connector_early_unregister(&connector->base, connector->port);
+		drm_dp_mst_connector_early_unregister(&connector->base, connector->mst.port);
 
 	return ret;
 }
@@ -1434,7 +1434,7 @@ mst_connector_early_unregister(struct drm_connector *_connector)
 	struct intel_connector *connector = to_intel_connector(_connector);
 
 	intel_connector_unregister(&connector->base);
-	drm_dp_mst_connector_early_unregister(&connector->base, connector->port);
+	drm_dp_mst_connector_early_unregister(&connector->base, connector->mst.port);
 }
 
 static const struct drm_connector_funcs mst_connector_funcs = {
@@ -1463,9 +1463,9 @@ mst_connector_mode_valid_ctx(struct drm_connector *_connector,
 {
 	struct intel_connector *connector = to_intel_connector(_connector);
 	struct intel_display *display = to_intel_display(connector);
-	struct intel_dp *intel_dp = connector->mst_port;
+	struct intel_dp *intel_dp = connector->mst.dp;
 	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst.mgr;
-	struct drm_dp_mst_port *port = connector->port;
+	struct drm_dp_mst_port *port = connector->mst.port;
 	const int min_bpp = 18;
 	int max_dotclk = display->cdclk.max_dotclk_freq;
 	int max_rate, mode_rate, max_lanes, max_link_clock;
@@ -1576,7 +1576,7 @@ mst_connector_atomic_best_encoder(struct drm_connector *_connector,
 	struct intel_connector *connector = to_intel_connector(_connector);
 	struct drm_connector_state *connector_state =
 		drm_atomic_get_new_connector_state(state, &connector->base);
-	struct intel_dp *intel_dp = connector->mst_port;
+	struct intel_dp *intel_dp = connector->mst.dp;
 	struct intel_crtc *crtc = to_intel_crtc(connector_state->crtc);
 
 	return &intel_dp->mst.stream_encoders[crtc->pipe]->base.base;
@@ -1588,7 +1588,7 @@ mst_connector_detect_ctx(struct drm_connector *_connector,
 {
 	struct intel_connector *connector = to_intel_connector(_connector);
 	struct intel_display *display = to_intel_display(connector);
-	struct intel_dp *intel_dp = connector->mst_port;
+	struct intel_dp *intel_dp = connector->mst.dp;
 
 	if (!intel_display_device_enabled(display))
 		return connector_status_disconnected;
@@ -1602,7 +1602,7 @@ mst_connector_detect_ctx(struct drm_connector *_connector,
 	intel_dp_flush_connector_commits(connector);
 
 	return drm_dp_mst_detect_port(&connector->base, ctx, &intel_dp->mst.mgr,
-				      connector->port);
+				      connector->mst.port);
 }
 
 static const struct drm_connector_helper_funcs mst_connector_helper_funcs = {
@@ -1693,10 +1693,10 @@ static bool detect_dsc_hblank_expansion_quirk(const struct intel_connector *conn
 	 * A logical port's OUI (at least for affected sinks) is all 0, so
 	 * instead of that the parent port's OUI is used for identification.
 	 */
-	if (drm_dp_mst_port_is_logical(connector->port)) {
-		aux = drm_dp_mst_aux_for_parent(connector->port);
+	if (drm_dp_mst_port_is_logical(connector->mst.port)) {
+		aux = drm_dp_mst_aux_for_parent(connector->mst.port);
 		if (!aux)
-			aux = &connector->mst_port->aux;
+			aux = &connector->mst.dp->aux;
 	}
 
 	if (drm_dp_read_dpcd_caps(aux, dpcd) < 0)
@@ -1744,8 +1744,8 @@ mst_topology_add_connector(struct drm_dp_mst_topology_mgr *mgr,
 
 	connector->get_hw_state = mst_connector_get_hw_state;
 	connector->sync_state = intel_dp_connector_sync_state;
-	connector->mst_port = intel_dp;
-	connector->port = port;
+	connector->mst.dp = intel_dp;
+	connector->mst.port = port;
 	drm_dp_mst_get_port_malloc(port);
 
 	ret = drm_connector_dynamic_init(display->drm, &connector->base, &mst_connector_funcs,
@@ -1954,11 +1954,11 @@ intel_dp_mst_add_topology_state_for_connector(struct intel_atomic_state *state,
 {
 	struct drm_dp_mst_topology_state *mst_state;
 
-	if (!connector->mst_port)
+	if (!connector->mst.dp)
 		return 0;
 
 	mst_state = drm_atomic_get_mst_topology_state(&state->base,
-						      &connector->mst_port->mst.mgr);
+						      &connector->mst.dp->mst.mgr);
 	if (IS_ERR(mst_state))
 		return PTR_ERR(mst_state);
 
@@ -2056,7 +2056,7 @@ bool intel_dp_mst_crtc_needs_modeset(struct intel_atomic_state *state,
 		const struct intel_crtc_state *old_crtc_state;
 		struct intel_crtc *crtc_iter;
 
-		if (connector->mst_port != crtc_connector->mst_port ||
+		if (connector->mst.dp != crtc_connector->mst.dp ||
 		    !conn_state->crtc)
 			continue;
 
@@ -2079,7 +2079,7 @@ bool intel_dp_mst_crtc_needs_modeset(struct intel_atomic_state *state,
 		 * case.
 		 */
 		if (connector->dp.dsc_decompression_aux ==
-		    &connector->mst_port->aux)
+		    &connector->mst.dp->aux)
 			return true;
 	}
 
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 100f3fb1c1a0..46f53ade432e 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -70,13 +70,13 @@ static int intel_conn_to_vcpi(struct intel_atomic_state *state,
 	int vcpi = 0;
 
 	/* For HDMI this is forced to be 0x0. For DP SST also this is 0x0. */
-	if (!connector->port)
+	if (!connector->mst.port)
 		return 0;
-	mgr = connector->port->mgr;
+	mgr = connector->mst.port->mgr;
 
 	drm_modeset_lock(&mgr->base.lock, state->base.acquire_ctx);
 	mst_state = to_drm_dp_mst_topology_state(mgr->base.state);
-	payload = drm_atomic_get_mst_payload_state(mst_state, connector->port);
+	payload = drm_atomic_get_mst_payload_state(mst_state, connector->mst.port);
 	if (drm_WARN_ON(mgr->dev, !payload))
 		goto out;
 
@@ -2775,7 +2775,7 @@ static void __intel_hdcp_info(struct seq_file *m, struct intel_connector *connec
 void intel_hdcp_info(struct seq_file *m, struct intel_connector *connector)
 {
 	seq_puts(m, "\tHDCP version: ");
-	if (connector->mst_port) {
+	if (connector->mst.dp) {
 		__intel_hdcp_info(m, connector, true);
 		seq_puts(m, "\tMST Hub HDCP version: ");
 	}
-- 
2.39.5


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

* [PATCH 3/3] drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port
  2025-02-28 12:49 [PATCH 0/3] drm/i915/display: add some sub-structs for clarity Jani Nikula
  2025-02-28 12:49 ` [PATCH 1/3] drm/i915/mst: add mst sub-struct to struct intel_dp Jani Nikula
  2025-02-28 12:49 ` [PATCH 2/3] drm/i915/mst: add mst sub-struct to struct intel_connector Jani Nikula
@ 2025-02-28 12:49 ` Jani Nikula
  2025-02-28 15:13   ` Kandpal, Suraj
  2025-02-28 13:52 ` ✗ Fi.CI.BUILD: warning for drm/i915/display: add some sub-structs for clarity Patchwork
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 12+ messages in thread
From: Jani Nikula @ 2025-02-28 12:49 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, Suraj Kandpal

Move hdcp_mutex, num_hdcp_streams, hdcp_auth_status, hdcp_port_data, and
hdcp_mst_type1_capable members of struct intel_digital_port under an
hdcp sub-struct to group hdcp related things together.

Rename them mutex, num_streams, auth_status, port_data, and
mst_type1_capable for clarity.

Cc: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/g4x_dp.c         |  2 +-
 drivers/gpu/drm/i915/display/g4x_hdmi.c       |  2 +-
 drivers/gpu/drm/i915/display/intel_ddi.c      |  6 +-
 .../drm/i915/display/intel_display_types.h    | 22 ++---
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c  |  2 +-
 drivers/gpu/drm/i915/display/intel_hdcp.c     | 84 +++++++++----------
 6 files changed, 60 insertions(+), 58 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c b/drivers/gpu/drm/i915/display/g4x_dp.c
index 372c3683c193..55b9e9bfcc4d 100644
--- a/drivers/gpu/drm/i915/display/g4x_dp.c
+++ b/drivers/gpu/drm/i915/display/g4x_dp.c
@@ -1311,7 +1311,7 @@ bool g4x_dp_init(struct intel_display *display,
 
 	intel_encoder->devdata = devdata;
 
-	mutex_init(&dig_port->hdcp_mutex);
+	mutex_init(&dig_port->hdcp.mutex);
 
 	if (drm_encoder_init(display->drm, &intel_encoder->base,
 			     &intel_dp_enc_funcs, DRM_MODE_ENCODER_TMDS,
diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c b/drivers/gpu/drm/i915/display/g4x_hdmi.c
index d9d1304dcc36..3dc2c59a3df0 100644
--- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
+++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
@@ -715,7 +715,7 @@ bool g4x_hdmi_init(struct intel_display *display,
 
 	intel_encoder->devdata = devdata;
 
-	mutex_init(&dig_port->hdcp_mutex);
+	mutex_init(&dig_port->hdcp.mutex);
 
 	if (drm_encoder_init(display->drm, &intel_encoder->base,
 			     &intel_hdmi_enc_funcs, DRM_MODE_ENCODER_TMDS,
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index ca7983ef373d..20fc258a4d6d 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4582,7 +4582,7 @@ static void intel_ddi_encoder_destroy(struct drm_encoder *encoder)
 	intel_display_power_flush_work(display);
 
 	drm_encoder_cleanup(encoder);
-	kfree(dig_port->hdcp_port_data.streams);
+	kfree(dig_port->hdcp.port_data.streams);
 	kfree(dig_port);
 }
 
@@ -5187,8 +5187,8 @@ void intel_ddi_init(struct intel_display *display,
 
 	intel_encoder_link_check_init(encoder, intel_ddi_link_check);
 
-	mutex_init(&dig_port->hdcp_mutex);
-	dig_port->num_hdcp_streams = 0;
+	mutex_init(&dig_port->hdcp.mutex);
+	dig_port->hdcp.num_streams = 0;
 
 	encoder->hotplug = intel_ddi_hotplug;
 	encoder->compute_output_type = intel_ddi_compute_output_type;
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index b52fca816591..053be62a5be1 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1849,16 +1849,18 @@ struct intel_digital_port {
 
 	struct intel_tc_port *tc;
 
-	/* protects num_hdcp_streams reference count, hdcp_port_data and hdcp_auth_status */
-	struct mutex hdcp_mutex;
-	/* the number of pipes using HDCP signalling out of this port */
-	unsigned int num_hdcp_streams;
-	/* port HDCP auth status */
-	bool hdcp_auth_status;
-	/* HDCP port data need to pass to security f/w */
-	struct hdcp_port_data hdcp_port_data;
-	/* Whether the MST topology supports HDCP Type 1 Content */
-	bool hdcp_mst_type1_capable;
+	struct {
+		/* protects num_streams reference count, port_data and auth_status */
+		struct mutex mutex;
+		/* the number of pipes using HDCP signalling out of this port */
+		unsigned int num_streams;
+		/* port HDCP auth status */
+		bool auth_status;
+		/* HDCP port data need to pass to security f/w */
+		struct hdcp_port_data port_data;
+		/* Whether the MST topology supports HDCP Type 1 Content */
+		bool mst_type1_capable;
+	} hdcp;
 
 	void (*write_infoframe)(struct intel_encoder *encoder,
 				const struct intel_crtc_state *crtc_state,
diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
index 4c9481124c90..cc312596fb77 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
@@ -799,7 +799,7 @@ intel_dp_mst_hdcp2_stream_encryption(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum transcoder cpu_transcoder = hdcp->stream_transcoder;
 	enum pipe pipe = (enum pipe)cpu_transcoder;
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 46f53ade432e..1bf424a822f3 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -107,16 +107,16 @@ intel_hdcp_required_content_stream(struct intel_atomic_state *state,
 	struct drm_connector_list_iter conn_iter;
 	struct intel_digital_port *conn_dig_port;
 	struct intel_connector *connector;
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	bool enforce_type0 = false;
 	int k;
 
-	if (dig_port->hdcp_auth_status)
+	if (dig_port->hdcp.auth_status)
 		return 0;
 
 	data->k = 0;
 
-	if (!dig_port->hdcp_mst_type1_capable)
+	if (!dig_port->hdcp.mst_type1_capable)
 		enforce_type0 = true;
 
 	drm_connector_list_iter_begin(display->drm, &conn_iter);
@@ -159,7 +159,7 @@ static int intel_hdcp_prepare_streams(struct intel_atomic_state *state,
 				      struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 
 	if (intel_encoder_is_mst(intel_attached_encoder(connector)))
@@ -1001,7 +1001,7 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
 		 * don't disable it until it disabled HDCP encryption for
 		 * all connectors in MST topology.
 		 */
-		if (dig_port->num_hdcp_streams > 0)
+		if (dig_port->hdcp.num_streams > 0)
 			return 0;
 	}
 
@@ -1094,13 +1094,13 @@ static void intel_hdcp_update_value(struct intel_connector *connector,
 	if (hdcp->value == value)
 		return;
 
-	drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port->hdcp_mutex));
+	drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port->hdcp.mutex));
 
 	if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
-		if (!drm_WARN_ON(display->drm, dig_port->num_hdcp_streams == 0))
-			dig_port->num_hdcp_streams--;
+		if (!drm_WARN_ON(display->drm, dig_port->hdcp.num_streams == 0))
+			dig_port->hdcp.num_streams--;
 	} else if (value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
-		dig_port->num_hdcp_streams++;
+		dig_port->hdcp.num_streams++;
 	}
 
 	hdcp->value = value;
@@ -1122,7 +1122,7 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
 	int ret = 0;
 
 	mutex_lock(&hdcp->mutex);
-	mutex_lock(&dig_port->hdcp_mutex);
+	mutex_lock(&dig_port->hdcp.mutex);
 
 	cpu_transcoder = hdcp->cpu_transcoder;
 
@@ -1177,7 +1177,7 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
 	}
 
 out:
-	mutex_unlock(&dig_port->hdcp_mutex);
+	mutex_unlock(&dig_port->hdcp.mutex);
 	mutex_unlock(&hdcp->mutex);
 	return ret;
 }
@@ -1219,7 +1219,7 @@ hdcp2_prepare_ake_init(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1249,7 +1249,7 @@ hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1277,7 +1277,7 @@ static int hdcp2_verify_hprime(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1303,7 +1303,7 @@ hdcp2_store_pairing_info(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1330,7 +1330,7 @@ hdcp2_prepare_lc_init(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1357,7 +1357,7 @@ hdcp2_verify_lprime(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1383,7 +1383,7 @@ static int hdcp2_prepare_skey(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1412,7 +1412,7 @@ hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1442,7 +1442,7 @@ hdcp2_verify_mprime(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1466,7 +1466,7 @@ static int hdcp2_authenticate_port(struct intel_connector *connector)
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1503,7 +1503,7 @@ static int hdcp2_close_session(struct intel_connector *connector)
 	}
 
 	ret = arbiter->ops->close_hdcp_session(arbiter->hdcp_dev,
-					     &dig_port->hdcp_port_data);
+					     &dig_port->hdcp.port_data);
 	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
@@ -1691,7 +1691,7 @@ static
 int _hdcp2_propagate_stream_management_info(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	union {
 		struct hdcp2_rep_stream_manage stream_manage;
@@ -1769,11 +1769,11 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 	 * MST topology is not Type 1 capable if it contains a downstream
 	 * device that is only HDCP 1.x or Legacy HDCP 2.0/2.1 compliant.
 	 */
-	dig_port->hdcp_mst_type1_capable =
+	dig_port->hdcp.mst_type1_capable =
 		!HDCP_2_2_HDCP1_DEVICE_CONNECTED(rx_info[1]) &&
 		!HDCP_2_2_HDCP_2_0_REP_CONNECTED(rx_info[1]);
 
-	if (!dig_port->hdcp_mst_type1_capable && hdcp->content_type) {
+	if (!dig_port->hdcp.mst_type1_capable && hdcp->content_type) {
 		drm_dbg_kms(display->drm,
 			    "HDCP1.x or 2.0 Legacy Device Downstream\n");
 		return -EINVAL;
@@ -1869,7 +1869,7 @@ static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	enum port port = dig_port->base.port;
@@ -1900,7 +1900,7 @@ static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
 	if (hdcp2_deauthenticate_port(connector) < 0)
 		drm_dbg_kms(display->drm, "Port deauth failed.\n");
 
-	dig_port->hdcp_auth_status = false;
+	dig_port->hdcp.auth_status = false;
 	data->k = 0;
 
 	return ret;
@@ -1940,7 +1940,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
 						 port),
 				    LINK_ENCRYPTION_STATUS,
 				    HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
-	dig_port->hdcp_auth_status = true;
+	dig_port->hdcp.auth_status = true;
 
 	return ret;
 }
@@ -2019,7 +2019,7 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
 	int ret = 0, i, tries = 3;
 
-	for (i = 0; i < tries && !dig_port->hdcp_auth_status; i++) {
+	for (i = 0; i < tries && !dig_port->hdcp.auth_status; i++) {
 		ret = hdcp2_authenticate_sink(connector);
 		if (!ret) {
 			ret = intel_hdcp_prepare_streams(state, connector);
@@ -2052,7 +2052,7 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 			drm_dbg_kms(display->drm, "Port deauth failed.\n");
 	}
 
-	if (!ret && !dig_port->hdcp_auth_status) {
+	if (!ret && !dig_port->hdcp.auth_status) {
 		/*
 		 * Ensuring the required 200mSec min time interval between
 		 * Session Key Exchange and encryption.
@@ -2106,7 +2106,7 @@ _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	int ret;
 
@@ -2123,7 +2123,7 @@ _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
 		drm_dbg_kms(display->drm, "HDCP 2.2 transcoder: %s stream encryption disabled\n",
 			    transcoder_name(hdcp->stream_transcoder));
 
-		if (dig_port->num_hdcp_streams > 0 && !hdcp2_link_recovery)
+		if (dig_port->hdcp.num_streams > 0 && !hdcp2_link_recovery)
 			return 0;
 	}
 
@@ -2133,7 +2133,7 @@ _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
 		drm_dbg_kms(display->drm, "Port deauth failed.\n");
 
 	connector->hdcp.hdcp2_encrypted = false;
-	dig_port->hdcp_auth_status = false;
+	dig_port->hdcp.auth_status = false;
 	data->k = 0;
 
 	return ret;
@@ -2150,7 +2150,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
 	int ret = 0;
 
 	mutex_lock(&hdcp->mutex);
-	mutex_lock(&dig_port->hdcp_mutex);
+	mutex_lock(&dig_port->hdcp.mutex);
 	cpu_transcoder = hdcp->cpu_transcoder;
 
 	/* hdcp2_check_link is expected only when HDCP2.2 is Enabled */
@@ -2221,7 +2221,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
 	intel_hdcp_update_value(connector,
 				DRM_MODE_CONTENT_PROTECTION_DESIRED, true);
 out:
-	mutex_unlock(&dig_port->hdcp_mutex);
+	mutex_unlock(&dig_port->hdcp.mutex);
 	mutex_unlock(&hdcp->mutex);
 	return ret;
 }
@@ -2303,7 +2303,7 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
 				     const struct intel_hdcp_shim *shim)
 {
 	struct intel_display *display = to_intel_display(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	enum port port = dig_port->base.port;
 
 	if (DISPLAY_VER(display) < 12)
@@ -2414,7 +2414,7 @@ int intel_hdcp_init(struct intel_connector *connector,
 							       hdcp->hdcp2_supported);
 	if (ret) {
 		hdcp->hdcp2_supported = false;
-		kfree(dig_port->hdcp_port_data.streams);
+		kfree(dig_port->hdcp.port_data.streams);
 		return ret;
 	}
 
@@ -2451,7 +2451,7 @@ static int _intel_hdcp_enable(struct intel_atomic_state *state,
 	}
 
 	mutex_lock(&hdcp->mutex);
-	mutex_lock(&dig_port->hdcp_mutex);
+	mutex_lock(&dig_port->hdcp.mutex);
 	drm_WARN_ON(display->drm,
 		    hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
 	hdcp->content_type = (u8)conn_state->hdcp_content_type;
@@ -2465,7 +2465,7 @@ static int _intel_hdcp_enable(struct intel_atomic_state *state,
 	}
 
 	if (DISPLAY_VER(display) >= 12)
-		dig_port->hdcp_port_data.hdcp_transcoder =
+		dig_port->hdcp.port_data.hdcp_transcoder =
 			intel_get_hdcp_transcoder(hdcp->cpu_transcoder);
 
 	/*
@@ -2499,7 +2499,7 @@ static int _intel_hdcp_enable(struct intel_atomic_state *state,
 					true);
 	}
 
-	mutex_unlock(&dig_port->hdcp_mutex);
+	mutex_unlock(&dig_port->hdcp.mutex);
 	mutex_unlock(&hdcp->mutex);
 	return ret;
 }
@@ -2535,7 +2535,7 @@ int intel_hdcp_disable(struct intel_connector *connector)
 		return -ENOENT;
 
 	mutex_lock(&hdcp->mutex);
-	mutex_lock(&dig_port->hdcp_mutex);
+	mutex_lock(&dig_port->hdcp.mutex);
 
 	if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
 		goto out;
@@ -2548,7 +2548,7 @@ int intel_hdcp_disable(struct intel_connector *connector)
 		ret = _intel_hdcp_disable(connector);
 
 out:
-	mutex_unlock(&dig_port->hdcp_mutex);
+	mutex_unlock(&dig_port->hdcp.mutex);
 	mutex_unlock(&hdcp->mutex);
 	cancel_delayed_work_sync(&hdcp->check_work);
 	return ret;
-- 
2.39.5


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

* ✗ Fi.CI.BUILD: warning for drm/i915/display: add some sub-structs for clarity
  2025-02-28 12:49 [PATCH 0/3] drm/i915/display: add some sub-structs for clarity Jani Nikula
                   ` (2 preceding siblings ...)
  2025-02-28 12:49 ` [PATCH 3/3] drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port Jani Nikula
@ 2025-02-28 13:52 ` Patchwork
  2025-02-28 13:53 ` ✗ Fi.CI.CHECKPATCH: " Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2025-02-28 13:52 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/display: add some sub-structs for clarity
URL   : https://patchwork.freedesktop.org/series/145641/
State : warning

== Summary ==

Error: patch https://patchwork.freedesktop.org/api/1.0/series/145641/revisions/1/mbox/ not found



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

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: add some sub-structs for clarity
  2025-02-28 12:49 [PATCH 0/3] drm/i915/display: add some sub-structs for clarity Jani Nikula
                   ` (3 preceding siblings ...)
  2025-02-28 13:52 ` ✗ Fi.CI.BUILD: warning for drm/i915/display: add some sub-structs for clarity Patchwork
@ 2025-02-28 13:53 ` Patchwork
  2025-02-28 14:15 ` ✓ i915.CI.BAT: success " Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2025-02-28 13:53 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/display: add some sub-structs for clarity
URL   : https://patchwork.freedesktop.org/series/145641/
State : warning

== Summary ==

Error: dim checkpatch failed
c1708cdf9cd9 drm/i915/mst: add mst sub-struct to struct intel_dp
95c39d7c2118 drm/i915/mst: add mst sub-struct to struct intel_connector
-:278: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#278: FILE: drivers/gpu/drm/i915/display/intel_dp_mst.c:1216:
+				       drm_atomic_get_mst_payload_state(mst_state, connector->mst.port));

total: 0 errors, 1 warnings, 0 checks, 379 lines checked
ef6c6a3dd8a7 drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port



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

* ✓ i915.CI.BAT: success for drm/i915/display: add some sub-structs for clarity
  2025-02-28 12:49 [PATCH 0/3] drm/i915/display: add some sub-structs for clarity Jani Nikula
                   ` (4 preceding siblings ...)
  2025-02-28 13:53 ` ✗ Fi.CI.CHECKPATCH: " Patchwork
@ 2025-02-28 14:15 ` Patchwork
  2025-03-01  1:15 ` ✗ i915.CI.Full: failure " Patchwork
  2025-03-03 10:15 ` [PATCH 0/3] " Jani Nikula
  7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2025-02-28 14:15 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915/display: add some sub-structs for clarity
URL   : https://patchwork.freedesktop.org/series/145641/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_16202 -> Patchwork_145641v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (44 -> 44)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_rpm@module-reload:
    - bat-dg2-11:         [PASS][1] -> [FAIL][2] ([i915#13633])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/bat-dg2-11/igt@i915_pm_rpm@module-reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/bat-dg2-11/igt@i915_pm_rpm@module-reload.html
    - fi-tgl-1115g4:      [PASS][3] -> [FAIL][4] ([i915#13633])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/fi-tgl-1115g4/igt@i915_pm_rpm@module-reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/fi-tgl-1115g4/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live:
    - bat-twl-1:          [PASS][5] -> [ABORT][6] ([i915#12435] / [i915#12919] / [i915#13503])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/bat-twl-1/igt@i915_selftest@live.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/bat-twl-1/igt@i915_selftest@live.html

  * igt@i915_selftest@live@memory_region:
    - bat-twl-2:          NOTRUN -> [INCOMPLETE][7] ([i915#12445])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/bat-twl-2/igt@i915_selftest@live@memory_region.html

  * igt@i915_selftest@live@perf:
    - bat-twl-1:          [PASS][8] -> [ABORT][9] ([i915#12919])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/bat-twl-1/igt@i915_selftest@live@perf.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/bat-twl-1/igt@i915_selftest@live@perf.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
    - bat-dg2-11:         [PASS][10] -> [SKIP][11] ([i915#9197]) +2 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@reset:
    - bat-twl-2:          [INCOMPLETE][12] ([i915#12445]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/bat-twl-2/igt@i915_selftest@live@reset.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/bat-twl-2/igt@i915_selftest@live@reset.html

  * igt@i915_selftest@live@workarounds:
    - bat-mtlp-6:         [DMESG-FAIL][14] ([i915#12061]) -> [PASS][15] +1 other test pass
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/bat-mtlp-6/igt@i915_selftest@live@workarounds.html

  
#### Warnings ####

  * igt@i915_selftest@live:
    - bat-twl-2:          [INCOMPLETE][16] ([i915#12445] / [i915#13761] / [i915#13776]) -> [INCOMPLETE][17] ([i915#12435] / [i915#12445] / [i915#13761] / [i915#13776])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/bat-twl-2/igt@i915_selftest@live.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/bat-twl-2/igt@i915_selftest@live.html

  
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12435
  [i915#12445]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12445
  [i915#12919]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12919
  [i915#13503]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13503
  [i915#13633]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13633
  [i915#13761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13761
  [i915#13776]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13776
  [i915#9197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197


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

  * Linux: CI_DRM_16202 -> Patchwork_145641v1

  CI-20190529: 20190529
  CI_DRM_16202: 4e4a83bc30b77bb710641f0b43e6098bd04c5044 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8252: e266af0feec344315b07d8af186226e467d02ecf @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_145641v1: 4e4a83bc30b77bb710641f0b43e6098bd04c5044 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/index.html

[-- Attachment #2: Type: text/html, Size: 6339 bytes --]

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

* RE: [PATCH 3/3] drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port
  2025-02-28 12:49 ` [PATCH 3/3] drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port Jani Nikula
@ 2025-02-28 15:13   ` Kandpal, Suraj
  0 siblings, 0 replies; 12+ messages in thread
From: Kandpal, Suraj @ 2025-02-28 15:13 UTC (permalink / raw)
  To: Nikula, Jani, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Nikula, Jani <jani.nikula@intel.com>
> Sent: Friday, February 28, 2025 6:20 PM
> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Nikula, Jani <jani.nikula@intel.com>; Kandpal, Suraj
> <suraj.kandpal@intel.com>
> Subject: [PATCH 3/3] drm/i915/hdcp: add hdcp sub-struct to struct
> intel_digital_port
> 
> Move hdcp_mutex, num_hdcp_streams, hdcp_auth_status, hdcp_port_data,
> and hdcp_mst_type1_capable members of struct intel_digital_port under an
> hdcp sub-struct to group hdcp related things together.
> 
> Rename them mutex, num_streams, auth_status, port_data, and
> mst_type1_capable for clarity.
> 
> Cc: Suraj Kandpal <suraj.kandpal@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>

> ---
>  drivers/gpu/drm/i915/display/g4x_dp.c         |  2 +-
>  drivers/gpu/drm/i915/display/g4x_hdmi.c       |  2 +-
>  drivers/gpu/drm/i915/display/intel_ddi.c      |  6 +-
>  .../drm/i915/display/intel_display_types.h    | 22 ++---
>  drivers/gpu/drm/i915/display/intel_dp_hdcp.c  |  2 +-
>  drivers/gpu/drm/i915/display/intel_hdcp.c     | 84 +++++++++----------
>  6 files changed, 60 insertions(+), 58 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c
> b/drivers/gpu/drm/i915/display/g4x_dp.c
> index 372c3683c193..55b9e9bfcc4d 100644
> --- a/drivers/gpu/drm/i915/display/g4x_dp.c
> +++ b/drivers/gpu/drm/i915/display/g4x_dp.c
> @@ -1311,7 +1311,7 @@ bool g4x_dp_init(struct intel_display *display,
> 
>  	intel_encoder->devdata = devdata;
> 
> -	mutex_init(&dig_port->hdcp_mutex);
> +	mutex_init(&dig_port->hdcp.mutex);
> 
>  	if (drm_encoder_init(display->drm, &intel_encoder->base,
>  			     &intel_dp_enc_funcs,
> DRM_MODE_ENCODER_TMDS, diff --git
> a/drivers/gpu/drm/i915/display/g4x_hdmi.c
> b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> index d9d1304dcc36..3dc2c59a3df0 100644
> --- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> @@ -715,7 +715,7 @@ bool g4x_hdmi_init(struct intel_display *display,
> 
>  	intel_encoder->devdata = devdata;
> 
> -	mutex_init(&dig_port->hdcp_mutex);
> +	mutex_init(&dig_port->hdcp.mutex);
> 
>  	if (drm_encoder_init(display->drm, &intel_encoder->base,
>  			     &intel_hdmi_enc_funcs,
> DRM_MODE_ENCODER_TMDS, diff --git
> a/drivers/gpu/drm/i915/display/intel_ddi.c
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index ca7983ef373d..20fc258a4d6d 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -4582,7 +4582,7 @@ static void intel_ddi_encoder_destroy(struct
> drm_encoder *encoder)
>  	intel_display_power_flush_work(display);
> 
>  	drm_encoder_cleanup(encoder);
> -	kfree(dig_port->hdcp_port_data.streams);
> +	kfree(dig_port->hdcp.port_data.streams);
>  	kfree(dig_port);
>  }
> 
> @@ -5187,8 +5187,8 @@ void intel_ddi_init(struct intel_display *display,
> 
>  	intel_encoder_link_check_init(encoder, intel_ddi_link_check);
> 
> -	mutex_init(&dig_port->hdcp_mutex);
> -	dig_port->num_hdcp_streams = 0;
> +	mutex_init(&dig_port->hdcp.mutex);
> +	dig_port->hdcp.num_streams = 0;
> 
>  	encoder->hotplug = intel_ddi_hotplug;
>  	encoder->compute_output_type = intel_ddi_compute_output_type;
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index b52fca816591..053be62a5be1 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1849,16 +1849,18 @@ struct intel_digital_port {
> 
>  	struct intel_tc_port *tc;
> 
> -	/* protects num_hdcp_streams reference count, hdcp_port_data and
> hdcp_auth_status */
> -	struct mutex hdcp_mutex;
> -	/* the number of pipes using HDCP signalling out of this port */
> -	unsigned int num_hdcp_streams;
> -	/* port HDCP auth status */
> -	bool hdcp_auth_status;
> -	/* HDCP port data need to pass to security f/w */
> -	struct hdcp_port_data hdcp_port_data;
> -	/* Whether the MST topology supports HDCP Type 1 Content */
> -	bool hdcp_mst_type1_capable;
> +	struct {
> +		/* protects num_streams reference count, port_data and
> auth_status */
> +		struct mutex mutex;
> +		/* the number of pipes using HDCP signalling out of this port
> */
> +		unsigned int num_streams;
> +		/* port HDCP auth status */
> +		bool auth_status;
> +		/* HDCP port data need to pass to security f/w */
> +		struct hdcp_port_data port_data;
> +		/* Whether the MST topology supports HDCP Type 1 Content
> */
> +		bool mst_type1_capable;
> +	} hdcp;
> 
>  	void (*write_infoframe)(struct intel_encoder *encoder,
>  				const struct intel_crtc_state *crtc_state, diff --
> git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> index 4c9481124c90..cc312596fb77 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> @@ -799,7 +799,7 @@ intel_dp_mst_hdcp2_stream_encryption(struct
> intel_connector *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum transcoder cpu_transcoder = hdcp->stream_transcoder;
>  	enum pipe pipe = (enum pipe)cpu_transcoder; diff --git
> a/drivers/gpu/drm/i915/display/intel_hdcp.c
> b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 46f53ade432e..1bf424a822f3 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -107,16 +107,16 @@ intel_hdcp_required_content_stream(struct
> intel_atomic_state *state,
>  	struct drm_connector_list_iter conn_iter;
>  	struct intel_digital_port *conn_dig_port;
>  	struct intel_connector *connector;
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	bool enforce_type0 = false;
>  	int k;
> 
> -	if (dig_port->hdcp_auth_status)
> +	if (dig_port->hdcp.auth_status)
>  		return 0;
> 
>  	data->k = 0;
> 
> -	if (!dig_port->hdcp_mst_type1_capable)
> +	if (!dig_port->hdcp.mst_type1_capable)
>  		enforce_type0 = true;
> 
>  	drm_connector_list_iter_begin(display->drm, &conn_iter); @@ -159,7
> +159,7 @@ static int intel_hdcp_prepare_streams(struct intel_atomic_state
> *state,
>  				      struct intel_connector *connector)  {
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> 
>  	if (intel_encoder_is_mst(intel_attached_encoder(connector)))
> @@ -1001,7 +1001,7 @@ static int _intel_hdcp_disable(struct intel_connector
> *connector)
>  		 * don't disable it until it disabled HDCP encryption for
>  		 * all connectors in MST topology.
>  		 */
> -		if (dig_port->num_hdcp_streams > 0)
> +		if (dig_port->hdcp.num_streams > 0)
>  			return 0;
>  	}
> 
> @@ -1094,13 +1094,13 @@ static void intel_hdcp_update_value(struct
> intel_connector *connector,
>  	if (hdcp->value == value)
>  		return;
> 
> -	drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port-
> >hdcp_mutex));
> +	drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port-
> >hdcp.mutex));
> 
>  	if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
> -		if (!drm_WARN_ON(display->drm, dig_port-
> >num_hdcp_streams == 0))
> -			dig_port->num_hdcp_streams--;
> +		if (!drm_WARN_ON(display->drm, dig_port-
> >hdcp.num_streams == 0))
> +			dig_port->hdcp.num_streams--;
>  	} else if (value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
> -		dig_port->num_hdcp_streams++;
> +		dig_port->hdcp.num_streams++;
>  	}
> 
>  	hdcp->value = value;
> @@ -1122,7 +1122,7 @@ static int intel_hdcp_check_link(struct
> intel_connector *connector)
>  	int ret = 0;
> 
>  	mutex_lock(&hdcp->mutex);
> -	mutex_lock(&dig_port->hdcp_mutex);
> +	mutex_lock(&dig_port->hdcp.mutex);
> 
>  	cpu_transcoder = hdcp->cpu_transcoder;
> 
> @@ -1177,7 +1177,7 @@ static int intel_hdcp_check_link(struct
> intel_connector *connector)
>  	}
> 
>  out:
> -	mutex_unlock(&dig_port->hdcp_mutex);
> +	mutex_unlock(&dig_port->hdcp.mutex);
>  	mutex_unlock(&hdcp->mutex);
>  	return ret;
>  }
> @@ -1219,7 +1219,7 @@ hdcp2_prepare_ake_init(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1249,7 +1249,7 @@ hdcp2_verify_rx_cert_prepare_km(struct
> intel_connector *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1277,7 +1277,7 @@ static int hdcp2_verify_hprime(struct
> intel_connector *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1303,7 +1303,7 @@ hdcp2_store_pairing_info(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1330,7 +1330,7 @@ hdcp2_prepare_lc_init(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1357,7 +1357,7 @@ hdcp2_verify_lprime(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1383,7 +1383,7 @@ static int hdcp2_prepare_skey(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1412,7 +1412,7 @@ hdcp2_verify_rep_topology_prepare_ack(struct
> intel_connector *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1442,7 +1442,7 @@ hdcp2_verify_mprime(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1466,7 +1466,7 @@ static int hdcp2_authenticate_port(struct
> intel_connector *connector)  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1503,7 +1503,7 @@ static int hdcp2_close_session(struct intel_connector
> *connector)
>  	}
> 
>  	ret = arbiter->ops->close_hdcp_session(arbiter->hdcp_dev,
> -					     &dig_port->hdcp_port_data);
> +					     &dig_port->hdcp.port_data);
>  	mutex_unlock(&display->hdcp.hdcp_mutex);
> 
>  	return ret;
> @@ -1691,7 +1691,7 @@ static
>  int _hdcp2_propagate_stream_management_info(struct intel_connector
> *connector)  {
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	union {
>  		struct hdcp2_rep_stream_manage stream_manage; @@ -
> 1769,11 +1769,11 @@ int hdcp2_authenticate_repeater_topology(struct
> intel_connector *connector)
>  	 * MST topology is not Type 1 capable if it contains a downstream
>  	 * device that is only HDCP 1.x or Legacy HDCP 2.0/2.1 compliant.
>  	 */
> -	dig_port->hdcp_mst_type1_capable =
> +	dig_port->hdcp.mst_type1_capable =
>  		!HDCP_2_2_HDCP1_DEVICE_CONNECTED(rx_info[1]) &&
>  		!HDCP_2_2_HDCP_2_0_REP_CONNECTED(rx_info[1]);
> 
> -	if (!dig_port->hdcp_mst_type1_capable && hdcp->content_type) {
> +	if (!dig_port->hdcp.mst_type1_capable && hdcp->content_type) {
>  		drm_dbg_kms(display->drm,
>  			    "HDCP1.x or 2.0 Legacy Device Downstream\n");
>  		return -EINVAL;
> @@ -1869,7 +1869,7 @@ static int hdcp2_enable_stream_encryption(struct
> intel_connector *connector)  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	enum port port = dig_port->base.port;
> @@ -1900,7 +1900,7 @@ static int hdcp2_enable_stream_encryption(struct
> intel_connector *connector)
>  	if (hdcp2_deauthenticate_port(connector) < 0)
>  		drm_dbg_kms(display->drm, "Port deauth failed.\n");
> 
> -	dig_port->hdcp_auth_status = false;
> +	dig_port->hdcp.auth_status = false;
>  	data->k = 0;
> 
>  	return ret;
> @@ -1940,7 +1940,7 @@ static int hdcp2_enable_encryption(struct
> intel_connector *connector)
>  						 port),
>  				    LINK_ENCRYPTION_STATUS,
> 
> HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
> -	dig_port->hdcp_auth_status = true;
> +	dig_port->hdcp.auth_status = true;
> 
>  	return ret;
>  }
> @@ -2019,7 +2019,7 @@ static int hdcp2_authenticate_and_encrypt(struct
> intel_atomic_state *state,
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
>  	int ret = 0, i, tries = 3;
> 
> -	for (i = 0; i < tries && !dig_port->hdcp_auth_status; i++) {
> +	for (i = 0; i < tries && !dig_port->hdcp.auth_status; i++) {
>  		ret = hdcp2_authenticate_sink(connector);
>  		if (!ret) {
>  			ret = intel_hdcp_prepare_streams(state, connector);
> @@ -2052,7 +2052,7 @@ static int hdcp2_authenticate_and_encrypt(struct
> intel_atomic_state *state,
>  			drm_dbg_kms(display->drm, "Port deauth failed.\n");
>  	}
> 
> -	if (!ret && !dig_port->hdcp_auth_status) {
> +	if (!ret && !dig_port->hdcp.auth_status) {
>  		/*
>  		 * Ensuring the required 200mSec min time interval between
>  		 * Session Key Exchange and encryption.
> @@ -2106,7 +2106,7 @@ _intel_hdcp2_disable(struct intel_connector
> *connector, bool hdcp2_link_recovery  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	int ret;
> 
> @@ -2123,7 +2123,7 @@ _intel_hdcp2_disable(struct intel_connector
> *connector, bool hdcp2_link_recovery
>  		drm_dbg_kms(display->drm, "HDCP 2.2 transcoder: %s stream
> encryption disabled\n",
>  			    transcoder_name(hdcp->stream_transcoder));
> 
> -		if (dig_port->num_hdcp_streams > 0 &&
> !hdcp2_link_recovery)
> +		if (dig_port->hdcp.num_streams > 0 && !hdcp2_link_recovery)
>  			return 0;
>  	}
> 
> @@ -2133,7 +2133,7 @@ _intel_hdcp2_disable(struct intel_connector
> *connector, bool hdcp2_link_recovery
>  		drm_dbg_kms(display->drm, "Port deauth failed.\n");
> 
>  	connector->hdcp.hdcp2_encrypted = false;
> -	dig_port->hdcp_auth_status = false;
> +	dig_port->hdcp.auth_status = false;
>  	data->k = 0;
> 
>  	return ret;
> @@ -2150,7 +2150,7 @@ static int intel_hdcp2_check_link(struct
> intel_connector *connector)
>  	int ret = 0;
> 
>  	mutex_lock(&hdcp->mutex);
> -	mutex_lock(&dig_port->hdcp_mutex);
> +	mutex_lock(&dig_port->hdcp.mutex);
>  	cpu_transcoder = hdcp->cpu_transcoder;
> 
>  	/* hdcp2_check_link is expected only when HDCP2.2 is Enabled */ @@
> -2221,7 +2221,7 @@ static int intel_hdcp2_check_link(struct intel_connector
> *connector)
>  	intel_hdcp_update_value(connector,
> 
> 	DRM_MODE_CONTENT_PROTECTION_DESIRED, true);
>  out:
> -	mutex_unlock(&dig_port->hdcp_mutex);
> +	mutex_unlock(&dig_port->hdcp.mutex);
>  	mutex_unlock(&hdcp->mutex);
>  	return ret;
>  }
> @@ -2303,7 +2303,7 @@ static int initialize_hdcp_port_data(struct
> intel_connector *connector,
>  				     const struct intel_hdcp_shim *shim)  {
>  	struct intel_display *display = to_intel_display(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	enum port port = dig_port->base.port;
> 
>  	if (DISPLAY_VER(display) < 12)
> @@ -2414,7 +2414,7 @@ int intel_hdcp_init(struct intel_connector
> *connector,
>  							       hdcp-
> >hdcp2_supported);
>  	if (ret) {
>  		hdcp->hdcp2_supported = false;
> -		kfree(dig_port->hdcp_port_data.streams);
> +		kfree(dig_port->hdcp.port_data.streams);
>  		return ret;
>  	}
> 
> @@ -2451,7 +2451,7 @@ static int _intel_hdcp_enable(struct
> intel_atomic_state *state,
>  	}
> 
>  	mutex_lock(&hdcp->mutex);
> -	mutex_lock(&dig_port->hdcp_mutex);
> +	mutex_lock(&dig_port->hdcp.mutex);
>  	drm_WARN_ON(display->drm,
>  		    hdcp->value ==
> DRM_MODE_CONTENT_PROTECTION_ENABLED);
>  	hdcp->content_type = (u8)conn_state->hdcp_content_type;
> @@ -2465,7 +2465,7 @@ static int _intel_hdcp_enable(struct
> intel_atomic_state *state,
>  	}
> 
>  	if (DISPLAY_VER(display) >= 12)
> -		dig_port->hdcp_port_data.hdcp_transcoder =
> +		dig_port->hdcp.port_data.hdcp_transcoder =
>  			intel_get_hdcp_transcoder(hdcp->cpu_transcoder);
> 
>  	/*
> @@ -2499,7 +2499,7 @@ static int _intel_hdcp_enable(struct
> intel_atomic_state *state,
>  					true);
>  	}
> 
> -	mutex_unlock(&dig_port->hdcp_mutex);
> +	mutex_unlock(&dig_port->hdcp.mutex);
>  	mutex_unlock(&hdcp->mutex);
>  	return ret;
>  }
> @@ -2535,7 +2535,7 @@ int intel_hdcp_disable(struct intel_connector
> *connector)
>  		return -ENOENT;
> 
>  	mutex_lock(&hdcp->mutex);
> -	mutex_lock(&dig_port->hdcp_mutex);
> +	mutex_lock(&dig_port->hdcp.mutex);
> 
>  	if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
>  		goto out;
> @@ -2548,7 +2548,7 @@ int intel_hdcp_disable(struct intel_connector
> *connector)
>  		ret = _intel_hdcp_disable(connector);
> 
>  out:
> -	mutex_unlock(&dig_port->hdcp_mutex);
> +	mutex_unlock(&dig_port->hdcp.mutex);
>  	mutex_unlock(&hdcp->mutex);
>  	cancel_delayed_work_sync(&hdcp->check_work);
>  	return ret;
> --
> 2.39.5


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

* Re: [PATCH 1/3] drm/i915/mst: add mst sub-struct to struct intel_dp
  2025-02-28 12:49 ` [PATCH 1/3] drm/i915/mst: add mst sub-struct to struct intel_dp Jani Nikula
@ 2025-02-28 15:52   ` Imre Deak
  0 siblings, 0 replies; 12+ messages in thread
From: Imre Deak @ 2025-02-28 15:52 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, intel-xe

On Fri, Feb 28, 2025 at 02:49:29PM +0200, Jani Nikula wrote:
> Move active_mst_links, mst_encoders[], and mst_mgr members of struct
> intel_dp under an mst sub-struct to group mst related things together.
> 
> Rename them active_links, stream_encoders[] and mgr for clarity.
> 
> Note that is_mst and mst_detect are not included, as they're also
> relevant for non-mst. The sub-struct is for active mst.
> 
> Cc: Imre Deak <imre.deak@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Imre Deak <imre.deak@intel.com>

> ---
>  .../drm/i915/display/intel_display_debugfs.c  |  2 +-
>  .../drm/i915/display/intel_display_types.h    |  9 +-
>  drivers/gpu/drm/i915/display/intel_dp.c       | 26 +++--
>  drivers/gpu/drm/i915/display/intel_dp_mst.c   | 94 +++++++++----------
>  drivers/gpu/drm/i915/display/intel_hdcp.c     |  2 +-
>  5 files changed, 66 insertions(+), 67 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> index 7ee90cd8ed2d..408f80194334 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> @@ -749,7 +749,7 @@ static int i915_dp_mst_info(struct seq_file *m, void *unused)
>  		seq_printf(m, "MST Source Port [ENCODER:%d:%s]\n",
>  			   dig_port->base.base.base.id,
>  			   dig_port->base.base.name);
> -		drm_dp_mst_dump_topology(m, &dig_port->dp.mst_mgr);
> +		drm_dp_mst_dump_topology(m, &dig_port->dp.mst.mgr);
>  	}
>  	drm_connector_list_iter_end(&conn_iter);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 4440521e3e9e..2aa8f6264708 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1724,7 +1724,6 @@ struct intel_dp {
>  	struct intel_pps pps;
>  
>  	bool is_mst;
> -	int active_mst_links;
>  	enum drm_dp_mst_mode mst_detect;
>  
>  	/* connector directly attached - won't be use for modeset in mst world */
> @@ -1734,9 +1733,11 @@ struct intel_dp {
>  	struct drm_dp_tunnel *tunnel;
>  	bool tunnel_suspended:1;
>  
> -	/* mst connector list */
> -	struct intel_dp_mst_encoder *mst_encoders[I915_MAX_PIPES];
> -	struct drm_dp_mst_topology_mgr mst_mgr;
> +	struct {
> +		struct intel_dp_mst_encoder *stream_encoders[I915_MAX_PIPES];
> +		struct drm_dp_mst_topology_mgr mgr;
> +		int active_links;
> +	} mst;
>  
>  	u32 (*get_aux_clock_divider)(struct intel_dp *dp, int index);
>  	/*
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 4d0166f17357..5e84103c8d54 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -4396,7 +4396,7 @@ intel_dp_mst_configure(struct intel_dp *intel_dp)
>  	if (intel_dp->is_mst)
>  		intel_dp_mst_prepare_probe(intel_dp);
>  
> -	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, intel_dp->is_mst);
> +	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst.mgr, intel_dp->is_mst);
>  
>  	/* Avoid stale info on the next detect cycle. */
>  	intel_dp->mst_detect = DRM_DP_SST;
> @@ -4412,9 +4412,9 @@ intel_dp_mst_disconnect(struct intel_dp *intel_dp)
>  
>  	drm_dbg_kms(display->drm,
>  		    "MST device may have disappeared %d vs %d\n",
> -		    intel_dp->is_mst, intel_dp->mst_mgr.mst_state);
> +		    intel_dp->is_mst, intel_dp->mst.mgr.mst_state);
>  	intel_dp->is_mst = false;
> -	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, intel_dp->is_mst);
> +	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst.mgr, intel_dp->is_mst);
>  }
>  
>  static bool
> @@ -4920,7 +4920,7 @@ intel_dp_mst_hpd_irq(struct intel_dp *intel_dp, u8 *esi, u8 *ack)
>  {
>  	bool handled = false;
>  
> -	drm_dp_mst_hpd_irq_handle_event(&intel_dp->mst_mgr, esi, ack, &handled);
> +	drm_dp_mst_hpd_irq_handle_event(&intel_dp->mst.mgr, esi, ack, &handled);
>  
>  	if (esi[1] & DP_CP_IRQ) {
>  		intel_hdcp_handle_cp_irq(intel_dp->attached_connector);
> @@ -4969,7 +4969,7 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
>  	bool link_ok = true;
>  	bool reprobe_needed = false;
>  
> -	drm_WARN_ON_ONCE(display->drm, intel_dp->active_mst_links < 0);
> +	drm_WARN_ON_ONCE(display->drm, intel_dp->mst.active_links < 0);
>  
>  	for (;;) {
>  		u8 esi[4] = {};
> @@ -4985,7 +4985,7 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
>  
>  		drm_dbg_kms(display->drm, "DPRX ESI: %4ph\n", esi);
>  
> -		if (intel_dp->active_mst_links > 0 && link_ok &&
> +		if (intel_dp->mst.active_links > 0 && link_ok &&
>  		    esi[3] & LINK_STATUS_CHANGED) {
>  			if (!intel_dp_mst_link_status(intel_dp))
>  				link_ok = false;
> @@ -5008,7 +5008,7 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
>  			drm_dbg_kms(display->drm, "Failed to ack ESI\n");
>  
>  		if (ack[1] & (DP_DOWN_REP_MSG_RDY | DP_UP_REQ_MSG_RDY))
> -			drm_dp_mst_hpd_irq_send_new_request(&intel_dp->mst_mgr);
> +			drm_dp_mst_hpd_irq_send_new_request(&intel_dp->mst.mgr);
>  	}
>  
>  	if (!link_ok || intel_dp->link.force_retrain)
> @@ -5107,7 +5107,7 @@ bool intel_dp_has_connector(struct intel_dp *intel_dp,
>  
>  	/* MST */
>  	for_each_pipe(display, pipe) {
> -		encoder = &intel_dp->mst_encoders[pipe]->base;
> +		encoder = &intel_dp->mst.stream_encoders[pipe]->base;
>  		if (conn_state->best_encoder == &encoder->base)
>  			return true;
>  	}
> @@ -6066,7 +6066,7 @@ static int intel_dp_connector_atomic_check(struct drm_connector *conn,
>  		return ret;
>  
>  	if (intel_dp_mst_source_support(intel_dp)) {
> -		ret = drm_dp_mst_root_conn_atomic_check(conn_state, &intel_dp->mst_mgr);
> +		ret = drm_dp_mst_root_conn_atomic_check(conn_state, &intel_dp->mst.mgr);
>  		if (ret)
>  			return ret;
>  	}
> @@ -6604,7 +6604,7 @@ void intel_dp_mst_suspend(struct intel_display *display)
>  			continue;
>  
>  		if (intel_dp->is_mst)
> -			drm_dp_mst_topology_mgr_suspend(&intel_dp->mst_mgr);
> +			drm_dp_mst_topology_mgr_suspend(&intel_dp->mst.mgr);
>  	}
>  }
>  
> @@ -6627,12 +6627,10 @@ void intel_dp_mst_resume(struct intel_display *display)
>  		if (!intel_dp_mst_source_support(intel_dp))
>  			continue;
>  
> -		ret = drm_dp_mst_topology_mgr_resume(&intel_dp->mst_mgr,
> -						     true);
> +		ret = drm_dp_mst_topology_mgr_resume(&intel_dp->mst.mgr, true);
>  		if (ret) {
>  			intel_dp->is_mst = false;
> -			drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
> -							false);
> +			drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst.mgr, false);
>  		}
>  	}
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 90cc07b72817..e96236fbe407 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -253,7 +253,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>  					   fxp_q4_to_frac(bpp_step_x16)));
>  
>  	if (is_mst) {
> -		mst_state = drm_atomic_get_mst_topology_state(state, &intel_dp->mst_mgr);
> +		mst_state = drm_atomic_get_mst_topology_state(state, &intel_dp->mst.mgr);
>  		if (IS_ERR(mst_state))
>  			return PTR_ERR(mst_state);
>  
> @@ -355,7 +355,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>  			drm_WARN_ON(display->drm, remote_tu < crtc_state->dp_m_n.tu);
>  			crtc_state->dp_m_n.tu = remote_tu;
>  
> -			slots = drm_dp_atomic_find_time_slots(state, &intel_dp->mst_mgr,
> +			slots = drm_dp_atomic_find_time_slots(state, &intel_dp->mst.mgr,
>  							      connector->port,
>  							      dfixed_trunc(pbn));
>  		} else {
> @@ -479,7 +479,7 @@ static int mst_stream_update_slots(struct intel_dp *intel_dp,
>  				   struct drm_connector_state *conn_state)
>  {
>  	struct intel_display *display = to_intel_display(intel_dp);
> -	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst_mgr;
> +	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst.mgr;
>  	struct drm_dp_mst_topology_state *topology_state;
>  	u8 link_coding_cap = intel_dp_is_uhbr(crtc_state) ?
>  		DP_CAP_ANSI_128B132B : DP_CAP_ANSI_8B10B;
> @@ -769,7 +769,7 @@ static u8 get_pipes_downstream_of_mst_port(struct intel_atomic_state *state,
>  		if (!conn_state->base.crtc)
>  			continue;
>  
> -		if (&connector->mst_port->mst_mgr != mst_mgr)
> +		if (&connector->mst_port->mst.mgr != mst_mgr)
>  			continue;
>  
>  		if (connector->port != parent_port &&
> @@ -981,7 +981,7 @@ mst_connector_atomic_check(struct drm_connector *_connector,
>  	}
>  
>  	return drm_dp_atomic_release_time_slots(&state->base,
> -						&connector->mst_port->mst_mgr,
> +						&connector->mst_port->mst.mgr,
>  						connector->port);
>  }
>  
> @@ -998,9 +998,9 @@ static void mst_stream_disable(struct intel_atomic_state *state,
>  	enum transcoder trans = old_crtc_state->cpu_transcoder;
>  
>  	drm_dbg_kms(display->drm, "active links %d\n",
> -		    intel_dp->active_mst_links);
> +		    intel_dp->mst.active_links);
>  
> -	if (intel_dp->active_mst_links == 1)
> +	if (intel_dp->mst.active_links == 1)
>  		intel_dp->link_trained = false;
>  
>  	intel_hdcp_disable(intel_mst->connector);
> @@ -1023,9 +1023,9 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
>  	struct intel_connector *connector =
>  		to_intel_connector(old_conn_state->connector);
>  	struct drm_dp_mst_topology_state *old_mst_state =
> -		drm_atomic_get_old_mst_topology_state(&state->base, &intel_dp->mst_mgr);
> +		drm_atomic_get_old_mst_topology_state(&state->base, &intel_dp->mst.mgr);
>  	struct drm_dp_mst_topology_state *new_mst_state =
> -		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst_mgr);
> +		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst.mgr);
>  	const struct drm_dp_mst_atomic_payload *old_payload =
>  		drm_atomic_get_mst_payload_state(old_mst_state, connector->port);
>  	struct drm_dp_mst_atomic_payload *new_payload =
> @@ -1034,8 +1034,8 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
>  	bool last_mst_stream;
>  	int i;
>  
> -	intel_dp->active_mst_links--;
> -	last_mst_stream = intel_dp->active_mst_links == 0;
> +	intel_dp->mst.active_links--;
> +	last_mst_stream = intel_dp->mst.active_links == 0;
>  	drm_WARN_ON(display->drm, DISPLAY_VER(display) >= 12 && last_mst_stream &&
>  		    !intel_dp_mst_is_master_trans(old_crtc_state));
>  
> @@ -1048,7 +1048,7 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
>  
>  	intel_disable_transcoder(old_crtc_state);
>  
> -	drm_dp_remove_payload_part1(&intel_dp->mst_mgr, new_mst_state, new_payload);
> +	drm_dp_remove_payload_part1(&intel_dp->mst.mgr, new_mst_state, new_payload);
>  
>  	intel_ddi_clear_act_sent(encoder, old_crtc_state);
>  
> @@ -1057,9 +1057,9 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
>  		     TRANS_DDI_DP_VC_PAYLOAD_ALLOC, 0);
>  
>  	intel_ddi_wait_for_act_sent(encoder, old_crtc_state);
> -	drm_dp_check_act_status(&intel_dp->mst_mgr);
> +	drm_dp_check_act_status(&intel_dp->mst.mgr);
>  
> -	drm_dp_remove_payload_part2(&intel_dp->mst_mgr, new_mst_state,
> +	drm_dp_remove_payload_part2(&intel_dp->mst.mgr, new_mst_state,
>  				    old_payload, new_payload);
>  
>  	intel_ddi_disable_transcoder_func(old_crtc_state);
> @@ -1080,7 +1080,7 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
>  	 * Power down mst path before disabling the port, otherwise we end
>  	 * up getting interrupts from the sink upon detecting link loss.
>  	 */
> -	drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port,
> +	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->port,
>  				     false);
>  
>  	/*
> @@ -1105,7 +1105,7 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
>  					      old_crtc_state, NULL);
>  
>  	drm_dbg_kms(display->drm, "active links %d\n",
> -		    intel_dp->active_mst_links);
> +		    intel_dp->mst.active_links);
>  }
>  
>  static void mst_stream_post_pll_disable(struct intel_atomic_state *state,
> @@ -1116,7 +1116,7 @@ static void mst_stream_post_pll_disable(struct intel_atomic_state *state,
>  	struct intel_encoder *primary_encoder = to_primary_encoder(encoder);
>  	struct intel_dp *intel_dp = to_primary_dp(encoder);
>  
> -	if (intel_dp->active_mst_links == 0 &&
> +	if (intel_dp->mst.active_links == 0 &&
>  	    primary_encoder->post_pll_disable)
>  		primary_encoder->post_pll_disable(state, primary_encoder, old_crtc_state, old_conn_state);
>  }
> @@ -1129,7 +1129,7 @@ static void mst_stream_pre_pll_enable(struct intel_atomic_state *state,
>  	struct intel_encoder *primary_encoder = to_primary_encoder(encoder);
>  	struct intel_dp *intel_dp = to_primary_dp(encoder);
>  
> -	if (intel_dp->active_mst_links == 0)
> +	if (intel_dp->mst.active_links == 0)
>  		primary_encoder->pre_pll_enable(state, primary_encoder,
>  						pipe_config, NULL);
>  	else
> @@ -1162,7 +1162,7 @@ static void intel_mst_reprobe_topology(struct intel_dp *intel_dp,
>  					       crtc_state->port_clock, crtc_state->lane_count))
>  		return;
>  
> -	drm_dp_mst_topology_queue_probe(&intel_dp->mst_mgr);
> +	drm_dp_mst_topology_queue_probe(&intel_dp->mst.mgr);
>  
>  	intel_mst_set_probed_link_params(intel_dp,
>  					 crtc_state->port_clock, crtc_state->lane_count);
> @@ -1180,7 +1180,7 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
>  	struct intel_connector *connector =
>  		to_intel_connector(conn_state->connector);
>  	struct drm_dp_mst_topology_state *mst_state =
> -		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst_mgr);
> +		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst.mgr);
>  	int ret;
>  	bool first_mst_stream;
>  
> @@ -1189,17 +1189,17 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
>  	 */
>  	connector->encoder = encoder;
>  	intel_mst->connector = connector;
> -	first_mst_stream = intel_dp->active_mst_links == 0;
> +	first_mst_stream = intel_dp->mst.active_links == 0;
>  	drm_WARN_ON(display->drm, DISPLAY_VER(display) >= 12 && first_mst_stream &&
>  		    !intel_dp_mst_is_master_trans(pipe_config));
>  
>  	drm_dbg_kms(display->drm, "active links %d\n",
> -		    intel_dp->active_mst_links);
> +		    intel_dp->mst.active_links);
>  
>  	if (first_mst_stream)
>  		intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
>  
> -	drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port, true);
> +	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->port, true);
>  
>  	intel_dp_sink_enable_decompression(state, connector, pipe_config);
>  
> @@ -1210,9 +1210,9 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
>  		intel_mst_reprobe_topology(intel_dp, pipe_config);
>  	}
>  
> -	intel_dp->active_mst_links++;
> +	intel_dp->mst.active_links++;
>  
> -	ret = drm_dp_add_payload_part1(&intel_dp->mst_mgr, mst_state,
> +	ret = drm_dp_add_payload_part1(&intel_dp->mst.mgr, mst_state,
>  				       drm_atomic_get_mst_payload_state(mst_state, connector->port));
>  	if (ret < 0)
>  		intel_dp_queue_modeset_retry_for_link(state, primary_encoder, pipe_config);
> @@ -1277,9 +1277,9 @@ static void mst_stream_enable(struct intel_atomic_state *state,
>  	struct intel_dp *intel_dp = to_primary_dp(encoder);
>  	struct intel_connector *connector = to_intel_connector(conn_state->connector);
>  	struct drm_dp_mst_topology_state *mst_state =
> -		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst_mgr);
> +		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst.mgr);
>  	enum transcoder trans = pipe_config->cpu_transcoder;
> -	bool first_mst_stream = intel_dp->active_mst_links == 1;
> +	bool first_mst_stream = intel_dp->mst.active_links == 1;
>  	struct intel_crtc *pipe_crtc;
>  	int ret, i, min_hblank;
>  
> @@ -1329,15 +1329,15 @@ static void mst_stream_enable(struct intel_atomic_state *state,
>  		     TRANS_DDI_DP_VC_PAYLOAD_ALLOC);
>  
>  	drm_dbg_kms(display->drm, "active links %d\n",
> -		    intel_dp->active_mst_links);
> +		    intel_dp->mst.active_links);
>  
>  	intel_ddi_wait_for_act_sent(encoder, pipe_config);
> -	drm_dp_check_act_status(&intel_dp->mst_mgr);
> +	drm_dp_check_act_status(&intel_dp->mst.mgr);
>  
>  	if (first_mst_stream)
>  		intel_ddi_wait_for_fec_status(encoder, pipe_config, true);
>  
> -	ret = drm_dp_add_payload_part2(&intel_dp->mst_mgr,
> +	ret = drm_dp_add_payload_part2(&intel_dp->mst.mgr,
>  				       drm_atomic_get_mst_payload_state(mst_state,
>  									connector->port));
>  	if (ret < 0)
> @@ -1402,7 +1402,7 @@ static int mst_connector_get_ddc_modes(struct drm_connector *_connector)
>  	if (!intel_display_driver_check_access(display))
>  		return drm_edid_connector_add_modes(&connector->base);
>  
> -	drm_edid = drm_dp_mst_edid_read(&connector->base, &intel_dp->mst_mgr, connector->port);
> +	drm_edid = drm_dp_mst_edid_read(&connector->base, &intel_dp->mst.mgr, connector->port);
>  
>  	ret = intel_connector_update_modes(&connector->base, drm_edid);
>  
> @@ -1464,7 +1464,7 @@ mst_connector_mode_valid_ctx(struct drm_connector *_connector,
>  	struct intel_connector *connector = to_intel_connector(_connector);
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_dp *intel_dp = connector->mst_port;
> -	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst_mgr;
> +	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst.mgr;
>  	struct drm_dp_mst_port *port = connector->port;
>  	const int min_bpp = 18;
>  	int max_dotclk = display->cdclk.max_dotclk_freq;
> @@ -1579,7 +1579,7 @@ mst_connector_atomic_best_encoder(struct drm_connector *_connector,
>  	struct intel_dp *intel_dp = connector->mst_port;
>  	struct intel_crtc *crtc = to_intel_crtc(connector_state->crtc);
>  
> -	return &intel_dp->mst_encoders[crtc->pipe]->base.base;
> +	return &intel_dp->mst.stream_encoders[crtc->pipe]->base.base;
>  }
>  
>  static int
> @@ -1601,7 +1601,7 @@ mst_connector_detect_ctx(struct drm_connector *_connector,
>  
>  	intel_dp_flush_connector_commits(connector);
>  
> -	return drm_dp_mst_detect_port(&connector->base, ctx, &intel_dp->mst_mgr,
> +	return drm_dp_mst_detect_port(&connector->base, ctx, &intel_dp->mst.mgr,
>  				      connector->port);
>  }
>  
> @@ -1731,7 +1731,7 @@ mst_topology_add_connector(struct drm_dp_mst_topology_mgr *mgr,
>  			   struct drm_dp_mst_port *port,
>  			   const char *pathprop)
>  {
> -	struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst_mgr);
> +	struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst.mgr);
>  	struct intel_display *display = to_intel_display(intel_dp);
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	struct intel_connector *connector;
> @@ -1762,7 +1762,7 @@ mst_topology_add_connector(struct drm_dp_mst_topology_mgr *mgr,
>  
>  	for_each_pipe(display, pipe) {
>  		struct drm_encoder *enc =
> -			&intel_dp->mst_encoders[pipe]->base.base;
> +			&intel_dp->mst.stream_encoders[pipe]->base.base;
>  
>  		ret = drm_connector_attach_encoder(&connector->base, enc);
>  		if (ret)
> @@ -1792,7 +1792,7 @@ mst_topology_add_connector(struct drm_dp_mst_topology_mgr *mgr,
>  static void
>  mst_topology_poll_hpd_irq(struct drm_dp_mst_topology_mgr *mgr)
>  {
> -	struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst_mgr);
> +	struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst.mgr);
>  
>  	intel_hpd_trigger_irq(dp_to_dig_port(intel_dp));
>  }
> @@ -1865,14 +1865,14 @@ mst_stream_encoders_create(struct intel_digital_port *dig_port)
>  	enum pipe pipe;
>  
>  	for_each_pipe(display, pipe)
> -		intel_dp->mst_encoders[pipe] = mst_stream_encoder_create(dig_port, pipe);
> +		intel_dp->mst.stream_encoders[pipe] = mst_stream_encoder_create(dig_port, pipe);
>  	return true;
>  }
>  
>  int
>  intel_dp_mst_encoder_active_links(struct intel_digital_port *dig_port)
>  {
> -	return dig_port->dp.active_mst_links;
> +	return dig_port->dp.mst.active_links;
>  }
>  
>  int
> @@ -1892,15 +1892,15 @@ intel_dp_mst_encoder_init(struct intel_digital_port *dig_port, int conn_base_id)
>  	if (DISPLAY_VER(display) < 11 && port == PORT_E)
>  		return 0;
>  
> -	intel_dp->mst_mgr.cbs = &mst_topology_cbs;
> +	intel_dp->mst.mgr.cbs = &mst_topology_cbs;
>  
>  	/* create encoders */
>  	mst_stream_encoders_create(dig_port);
> -	ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, display->drm,
> +	ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst.mgr, display->drm,
>  					   &intel_dp->aux, 16,
>  					   INTEL_NUM_PIPES(display), conn_base_id);
>  	if (ret) {
> -		intel_dp->mst_mgr.cbs = NULL;
> +		intel_dp->mst.mgr.cbs = NULL;
>  		return ret;
>  	}
>  
> @@ -1909,7 +1909,7 @@ intel_dp_mst_encoder_init(struct intel_digital_port *dig_port, int conn_base_id)
>  
>  bool intel_dp_mst_source_support(struct intel_dp *intel_dp)
>  {
> -	return intel_dp->mst_mgr.cbs;
> +	return intel_dp->mst.mgr.cbs;
>  }
>  
>  void
> @@ -1920,10 +1920,10 @@ intel_dp_mst_encoder_cleanup(struct intel_digital_port *dig_port)
>  	if (!intel_dp_mst_source_support(intel_dp))
>  		return;
>  
> -	drm_dp_mst_topology_mgr_destroy(&intel_dp->mst_mgr);
> +	drm_dp_mst_topology_mgr_destroy(&intel_dp->mst.mgr);
>  	/* encoders will get killed by normal cleanup */
>  
> -	intel_dp->mst_mgr.cbs = NULL;
> +	intel_dp->mst.mgr.cbs = NULL;
>  }
>  
>  bool intel_dp_mst_is_master_trans(const struct intel_crtc_state *crtc_state)
> @@ -1958,7 +1958,7 @@ intel_dp_mst_add_topology_state_for_connector(struct intel_atomic_state *state,
>  		return 0;
>  
>  	mst_state = drm_atomic_get_mst_topology_state(&state->base,
> -						      &connector->mst_port->mst_mgr);
> +						      &connector->mst_port->mst.mgr);
>  	if (IS_ERR(mst_state))
>  		return PTR_ERR(mst_state);
>  
> @@ -2140,7 +2140,7 @@ bool intel_dp_mst_verify_dpcd_state(struct intel_dp *intel_dp)
>  	if (!intel_dp->is_mst)
>  		return true;
>  
> -	ret = drm_dp_dpcd_readb(intel_dp->mst_mgr.aux, DP_MSTM_CTRL, &val);
> +	ret = drm_dp_dpcd_readb(intel_dp->mst.mgr.aux, DP_MSTM_CTRL, &val);
>  
>  	/* Adjust the expected register value for SST + SideBand. */
>  	if (ret < 0 || val != (DP_MST_EN | DP_UP_REQ_EN | DP_UPSTREAM_IS_SRC)) {
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 7063e3f5c538..100f3fb1c1a0 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -136,7 +136,7 @@ intel_hdcp_required_content_stream(struct intel_atomic_state *state,
>  		data->k++;
>  
>  		/* if there is only one active stream */
> -		if (dig_port->dp.active_mst_links <= 1)
> +		if (dig_port->dp.mst.active_links <= 1)
>  			break;
>  	}
>  	drm_connector_list_iter_end(&conn_iter);
> -- 
> 2.39.5
> 

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

* Re: [PATCH 2/3] drm/i915/mst: add mst sub-struct to struct intel_connector
  2025-02-28 12:49 ` [PATCH 2/3] drm/i915/mst: add mst sub-struct to struct intel_connector Jani Nikula
@ 2025-02-28 15:52   ` Imre Deak
  0 siblings, 0 replies; 12+ messages in thread
From: Imre Deak @ 2025-02-28 15:52 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, intel-xe

On Fri, Feb 28, 2025 at 02:49:30PM +0200, Jani Nikula wrote:
> Move port and mst_port members of struct intel_connector under an mst
> sub-struct to group mst related things together.
> 
> Rename the latter dp for clarity.
> 
> Cc: Imre Deak <imre.deak@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Imre Deak <imre.deak@intel.com>

> ---
>  .../gpu/drm/i915/display/intel_connector.c    |  4 +-
>  .../drm/i915/display/intel_display_debugfs.c  |  4 +-
>  .../drm/i915/display/intel_display_types.h    | 13 ++--
>  drivers/gpu/drm/i915/display/intel_dp.c       | 12 ++--
>  drivers/gpu/drm/i915/display/intel_dp_hdcp.c  |  6 +-
>  drivers/gpu/drm/i915/display/intel_dp_mst.c   | 72 +++++++++----------
>  drivers/gpu/drm/i915/display/intel_hdcp.c     |  8 +--
>  7 files changed, 60 insertions(+), 59 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
> index 358965fc7f55..e42357bd9e80 100644
> --- a/drivers/gpu/drm/i915/display/intel_connector.c
> +++ b/drivers/gpu/drm/i915/display/intel_connector.c
> @@ -145,8 +145,8 @@ void intel_connector_destroy(struct drm_connector *connector)
>  
>  	drm_connector_cleanup(connector);
>  
> -	if (intel_connector->port)
> -		drm_dp_mst_put_port_malloc(intel_connector->port);
> +	if (intel_connector->mst.port)
> +		drm_dp_mst_put_port_malloc(intel_connector->mst.port);
>  
>  	kfree(connector);
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> index 408f80194334..510c15a6271f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> @@ -261,7 +261,7 @@ static void intel_connector_info(struct seq_file *m,
>  	switch (connector->connector_type) {
>  	case DRM_MODE_CONNECTOR_DisplayPort:
>  	case DRM_MODE_CONNECTOR_eDP:
> -		if (intel_connector->mst_port)
> +		if (intel_connector->mst.dp)
>  			intel_dp_mst_info(m, intel_connector);
>  		else
>  			intel_dp_info(m, intel_connector);
> @@ -1341,7 +1341,7 @@ void intel_connector_debugfs_add(struct intel_connector *connector)
>  	intel_dp_link_training_debugfs_add(connector);
>  
>  	if (DISPLAY_VER(display) >= 11 &&
> -	    ((connector_type == DRM_MODE_CONNECTOR_DisplayPort && !connector->mst_port) ||
> +	    ((connector_type == DRM_MODE_CONNECTOR_DisplayPort && !connector->mst.dp) ||
>  	     connector_type == DRM_MODE_CONNECTOR_eDP)) {
>  		debugfs_create_file("i915_dsc_fec_support", 0644, root,
>  				    connector, &i915_dsc_fec_support_fops);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 2aa8f6264708..b52fca816591 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -534,10 +534,6 @@ struct intel_connector {
>  	   state of connector->polled in case hotplug storm detection changes it */
>  	u8 polled;
>  
> -	struct drm_dp_mst_port *port;
> -
> -	struct intel_dp *mst_port;
> -
>  	int force_joined_pipes;
>  
>  	struct {
> @@ -549,6 +545,11 @@ struct intel_connector {
>  		u8 dsc_decompression_enabled:1;
>  	} dp;
>  
> +	struct {
> +		struct drm_dp_mst_port *port;
> +		struct intel_dp *dp;
> +	} mst;
> +
>  	/* Work struct to schedule a uevent on link train failure */
>  	struct work_struct modeset_retry_work;
>  
> @@ -1956,8 +1957,8 @@ static inline struct intel_dp *enc_to_intel_dp(struct intel_encoder *encoder)
>  
>  static inline struct intel_dp *intel_attached_dp(struct intel_connector *connector)
>  {
> -	if (connector->mst_port)
> -		return connector->mst_port;
> +	if (connector->mst.dp)
> +		return connector->mst.dp;
>  	else
>  		return enc_to_intel_dp(intel_attached_encoder(connector));
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 5e84103c8d54..205ec315b413 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -1376,7 +1376,7 @@ bool intel_dp_has_dsc(const struct intel_connector *connector)
>  	if (!HAS_DSC(display))
>  		return false;
>  
> -	if (connector->mst_port && !HAS_DSC_MST(display))
> +	if (connector->mst.dp && !HAS_DSC_MST(display))
>  		return false;
>  
>  	if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP &&
> @@ -3080,7 +3080,7 @@ intel_dp_queue_modeset_retry_for_link(struct intel_atomic_state *state,
>  		if (!conn_state->base.crtc)
>  			continue;
>  
> -		if (connector->mst_port == intel_dp)
> +		if (connector->mst.dp == intel_dp)
>  			intel_connector_queue_modeset_retry_work(connector);
>  	}
>  }
> @@ -3302,8 +3302,8 @@ intel_dp_sink_set_dsc_passthrough(const struct intel_connector *connector,
>  				  bool enable)
>  {
>  	struct intel_display *display = to_intel_display(connector);
> -	struct drm_dp_aux *aux = connector->port ?
> -				 connector->port->passthrough_aux : NULL;
> +	struct drm_dp_aux *aux = connector->mst.port ?
> +				 connector->mst.port->passthrough_aux : NULL;
>  
>  	if (!aux)
>  		return;
> @@ -3330,7 +3330,7 @@ static int intel_dp_dsc_aux_ref_count(struct intel_atomic_state *state,
>  	 * On SST the decompression AUX device won't be shared, each connector
>  	 * uses for this its own AUX targeting the sink device.
>  	 */
> -	if (!connector->mst_port)
> +	if (!connector->mst.dp)
>  		return connector->dp.dsc_decompression_enabled ? 1 : 0;
>  
>  	for_each_oldnew_connector_in_state(&state->base, _connector_iter,
> @@ -3338,7 +3338,7 @@ static int intel_dp_dsc_aux_ref_count(struct intel_atomic_state *state,
>  		const struct intel_connector *
>  			connector_iter = to_intel_connector(_connector_iter);
>  
> -		if (connector_iter->mst_port != connector->mst_port)
> +		if (connector_iter->mst.dp != connector->mst.dp)
>  			continue;
>  
>  		if (!connector_iter->dp.dsc_decompression_enabled)
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> index 00c493cc8a4b..4c9481124c90 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> @@ -705,10 +705,10 @@ int intel_dp_hdcp_get_remote_capability(struct intel_connector *connector,
>  
>  	*hdcp_capable = false;
>  	*hdcp2_capable = false;
> -	if (!connector->mst_port)
> +	if (!connector->mst.dp)
>  		return -EINVAL;
>  
> -	aux = &connector->port->aux;
> +	aux = &connector->mst.port->aux;
>  	ret =  _intel_dp_hdcp2_get_capability(aux, hdcp2_capable);
>  	if (ret)
>  		drm_dbg_kms(display->drm,
> @@ -883,7 +883,7 @@ int intel_dp_hdcp_init(struct intel_digital_port *dig_port,
>  	if (!is_hdcp_supported(display, port))
>  		return 0;
>  
> -	if (intel_connector->mst_port)
> +	if (intel_connector->mst.dp)
>  		return intel_hdcp_init(intel_connector, dig_port,
>  				       &intel_dp_mst_hdcp_shim);
>  	else if (!intel_dp_is_edp(intel_dp))
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index e96236fbe407..02f95108c637 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -356,7 +356,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>  			crtc_state->dp_m_n.tu = remote_tu;
>  
>  			slots = drm_dp_atomic_find_time_slots(state, &intel_dp->mst.mgr,
> -							      connector->port,
> +							      connector->mst.port,
>  							      dfixed_trunc(pbn));
>  		} else {
>  			/* Same as above for remote_tu */
> @@ -509,8 +509,8 @@ hblank_expansion_quirk_needs_dsc(const struct intel_connector *connector,
>  {
>  	const struct drm_display_mode *adjusted_mode =
>  		&crtc_state->hw.adjusted_mode;
> -	bool is_uhbr_sink = connector->mst_port &&
> -			    drm_dp_128b132b_supported(connector->mst_port->dpcd);
> +	bool is_uhbr_sink = connector->mst.dp &&
> +			    drm_dp_128b132b_supported(connector->mst.dp->dpcd);
>  	int hblank_limit = is_uhbr_sink ? 500 : 300;
>  
>  	if (!connector->dp.dsc_hblank_expansion_quirk)
> @@ -741,7 +741,7 @@ intel_dp_mst_transcoder_mask(struct intel_atomic_state *state,
>  		const struct intel_crtc_state *crtc_state;
>  		struct intel_crtc *crtc;
>  
> -		if (connector->mst_port != mst_port || !conn_state->base.crtc)
> +		if (connector->mst.dp != mst_port || !conn_state->base.crtc)
>  			continue;
>  
>  		crtc = to_intel_crtc(conn_state->base.crtc);
> @@ -769,12 +769,12 @@ static u8 get_pipes_downstream_of_mst_port(struct intel_atomic_state *state,
>  		if (!conn_state->base.crtc)
>  			continue;
>  
> -		if (&connector->mst_port->mst.mgr != mst_mgr)
> +		if (&connector->mst.dp->mst.mgr != mst_mgr)
>  			continue;
>  
> -		if (connector->port != parent_port &&
> +		if (connector->mst.port != parent_port &&
>  		    !drm_dp_mst_port_downstream_of_parent(mst_mgr,
> -							  connector->port,
> +							  connector->mst.port,
>  							  parent_port))
>  			continue;
>  
> @@ -925,7 +925,7 @@ mst_connector_atomic_topology_check(struct intel_connector *connector,
>  		struct intel_crtc_state *crtc_state;
>  		struct intel_crtc *crtc;
>  
> -		if (connector_iter->mst_port != connector->mst_port ||
> +		if (connector_iter->mst.dp != connector->mst.dp ||
>  		    connector_iter == connector)
>  			continue;
>  
> @@ -974,15 +974,15 @@ mst_connector_atomic_check(struct drm_connector *_connector,
>  
>  	if (intel_connector_needs_modeset(state, &connector->base)) {
>  		ret = intel_dp_tunnel_atomic_check_state(state,
> -							 connector->mst_port,
> +							 connector->mst.dp,
>  							 connector);
>  		if (ret)
>  			return ret;
>  	}
>  
>  	return drm_dp_atomic_release_time_slots(&state->base,
> -						&connector->mst_port->mst.mgr,
> -						connector->port);
> +						&connector->mst.dp->mst.mgr,
> +						connector->mst.port);
>  }
>  
>  static void mst_stream_disable(struct intel_atomic_state *state,
> @@ -1027,9 +1027,9 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
>  	struct drm_dp_mst_topology_state *new_mst_state =
>  		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst.mgr);
>  	const struct drm_dp_mst_atomic_payload *old_payload =
> -		drm_atomic_get_mst_payload_state(old_mst_state, connector->port);
> +		drm_atomic_get_mst_payload_state(old_mst_state, connector->mst.port);
>  	struct drm_dp_mst_atomic_payload *new_payload =
> -		drm_atomic_get_mst_payload_state(new_mst_state, connector->port);
> +		drm_atomic_get_mst_payload_state(new_mst_state, connector->mst.port);
>  	struct intel_crtc *pipe_crtc;
>  	bool last_mst_stream;
>  	int i;
> @@ -1080,7 +1080,7 @@ static void mst_stream_post_disable(struct intel_atomic_state *state,
>  	 * Power down mst path before disabling the port, otherwise we end
>  	 * up getting interrupts from the sink upon detecting link loss.
>  	 */
> -	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->port,
> +	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->mst.port,
>  				     false);
>  
>  	/*
> @@ -1199,7 +1199,7 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
>  	if (first_mst_stream)
>  		intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
>  
> -	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->port, true);
> +	drm_dp_send_power_updown_phy(&intel_dp->mst.mgr, connector->mst.port, true);
>  
>  	intel_dp_sink_enable_decompression(state, connector, pipe_config);
>  
> @@ -1213,7 +1213,7 @@ static void mst_stream_pre_enable(struct intel_atomic_state *state,
>  	intel_dp->mst.active_links++;
>  
>  	ret = drm_dp_add_payload_part1(&intel_dp->mst.mgr, mst_state,
> -				       drm_atomic_get_mst_payload_state(mst_state, connector->port));
> +				       drm_atomic_get_mst_payload_state(mst_state, connector->mst.port));
>  	if (ret < 0)
>  		intel_dp_queue_modeset_retry_for_link(state, primary_encoder, pipe_config);
>  
> @@ -1339,7 +1339,7 @@ static void mst_stream_enable(struct intel_atomic_state *state,
>  
>  	ret = drm_dp_add_payload_part2(&intel_dp->mst.mgr,
>  				       drm_atomic_get_mst_payload_state(mst_state,
> -									connector->port));
> +									connector->mst.port));
>  	if (ret < 0)
>  		intel_dp_queue_modeset_retry_for_link(state, primary_encoder, pipe_config);
>  
> @@ -1392,7 +1392,7 @@ static int mst_connector_get_ddc_modes(struct drm_connector *_connector)
>  {
>  	struct intel_connector *connector = to_intel_connector(_connector);
>  	struct intel_display *display = to_intel_display(connector);
> -	struct intel_dp *intel_dp = connector->mst_port;
> +	struct intel_dp *intel_dp = connector->mst.dp;
>  	const struct drm_edid *drm_edid;
>  	int ret;
>  
> @@ -1402,7 +1402,7 @@ static int mst_connector_get_ddc_modes(struct drm_connector *_connector)
>  	if (!intel_display_driver_check_access(display))
>  		return drm_edid_connector_add_modes(&connector->base);
>  
> -	drm_edid = drm_dp_mst_edid_read(&connector->base, &intel_dp->mst.mgr, connector->port);
> +	drm_edid = drm_dp_mst_edid_read(&connector->base, &intel_dp->mst.mgr, connector->mst.port);
>  
>  	ret = intel_connector_update_modes(&connector->base, drm_edid);
>  
> @@ -1417,13 +1417,13 @@ mst_connector_late_register(struct drm_connector *_connector)
>  	struct intel_connector *connector = to_intel_connector(_connector);
>  	int ret;
>  
> -	ret = drm_dp_mst_connector_late_register(&connector->base, connector->port);
> +	ret = drm_dp_mst_connector_late_register(&connector->base, connector->mst.port);
>  	if (ret < 0)
>  		return ret;
>  
>  	ret = intel_connector_register(&connector->base);
>  	if (ret < 0)
> -		drm_dp_mst_connector_early_unregister(&connector->base, connector->port);
> +		drm_dp_mst_connector_early_unregister(&connector->base, connector->mst.port);
>  
>  	return ret;
>  }
> @@ -1434,7 +1434,7 @@ mst_connector_early_unregister(struct drm_connector *_connector)
>  	struct intel_connector *connector = to_intel_connector(_connector);
>  
>  	intel_connector_unregister(&connector->base);
> -	drm_dp_mst_connector_early_unregister(&connector->base, connector->port);
> +	drm_dp_mst_connector_early_unregister(&connector->base, connector->mst.port);
>  }
>  
>  static const struct drm_connector_funcs mst_connector_funcs = {
> @@ -1463,9 +1463,9 @@ mst_connector_mode_valid_ctx(struct drm_connector *_connector,
>  {
>  	struct intel_connector *connector = to_intel_connector(_connector);
>  	struct intel_display *display = to_intel_display(connector);
> -	struct intel_dp *intel_dp = connector->mst_port;
> +	struct intel_dp *intel_dp = connector->mst.dp;
>  	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst.mgr;
> -	struct drm_dp_mst_port *port = connector->port;
> +	struct drm_dp_mst_port *port = connector->mst.port;
>  	const int min_bpp = 18;
>  	int max_dotclk = display->cdclk.max_dotclk_freq;
>  	int max_rate, mode_rate, max_lanes, max_link_clock;
> @@ -1576,7 +1576,7 @@ mst_connector_atomic_best_encoder(struct drm_connector *_connector,
>  	struct intel_connector *connector = to_intel_connector(_connector);
>  	struct drm_connector_state *connector_state =
>  		drm_atomic_get_new_connector_state(state, &connector->base);
> -	struct intel_dp *intel_dp = connector->mst_port;
> +	struct intel_dp *intel_dp = connector->mst.dp;
>  	struct intel_crtc *crtc = to_intel_crtc(connector_state->crtc);
>  
>  	return &intel_dp->mst.stream_encoders[crtc->pipe]->base.base;
> @@ -1588,7 +1588,7 @@ mst_connector_detect_ctx(struct drm_connector *_connector,
>  {
>  	struct intel_connector *connector = to_intel_connector(_connector);
>  	struct intel_display *display = to_intel_display(connector);
> -	struct intel_dp *intel_dp = connector->mst_port;
> +	struct intel_dp *intel_dp = connector->mst.dp;
>  
>  	if (!intel_display_device_enabled(display))
>  		return connector_status_disconnected;
> @@ -1602,7 +1602,7 @@ mst_connector_detect_ctx(struct drm_connector *_connector,
>  	intel_dp_flush_connector_commits(connector);
>  
>  	return drm_dp_mst_detect_port(&connector->base, ctx, &intel_dp->mst.mgr,
> -				      connector->port);
> +				      connector->mst.port);
>  }
>  
>  static const struct drm_connector_helper_funcs mst_connector_helper_funcs = {
> @@ -1693,10 +1693,10 @@ static bool detect_dsc_hblank_expansion_quirk(const struct intel_connector *conn
>  	 * A logical port's OUI (at least for affected sinks) is all 0, so
>  	 * instead of that the parent port's OUI is used for identification.
>  	 */
> -	if (drm_dp_mst_port_is_logical(connector->port)) {
> -		aux = drm_dp_mst_aux_for_parent(connector->port);
> +	if (drm_dp_mst_port_is_logical(connector->mst.port)) {
> +		aux = drm_dp_mst_aux_for_parent(connector->mst.port);
>  		if (!aux)
> -			aux = &connector->mst_port->aux;
> +			aux = &connector->mst.dp->aux;
>  	}
>  
>  	if (drm_dp_read_dpcd_caps(aux, dpcd) < 0)
> @@ -1744,8 +1744,8 @@ mst_topology_add_connector(struct drm_dp_mst_topology_mgr *mgr,
>  
>  	connector->get_hw_state = mst_connector_get_hw_state;
>  	connector->sync_state = intel_dp_connector_sync_state;
> -	connector->mst_port = intel_dp;
> -	connector->port = port;
> +	connector->mst.dp = intel_dp;
> +	connector->mst.port = port;
>  	drm_dp_mst_get_port_malloc(port);
>  
>  	ret = drm_connector_dynamic_init(display->drm, &connector->base, &mst_connector_funcs,
> @@ -1954,11 +1954,11 @@ intel_dp_mst_add_topology_state_for_connector(struct intel_atomic_state *state,
>  {
>  	struct drm_dp_mst_topology_state *mst_state;
>  
> -	if (!connector->mst_port)
> +	if (!connector->mst.dp)
>  		return 0;
>  
>  	mst_state = drm_atomic_get_mst_topology_state(&state->base,
> -						      &connector->mst_port->mst.mgr);
> +						      &connector->mst.dp->mst.mgr);
>  	if (IS_ERR(mst_state))
>  		return PTR_ERR(mst_state);
>  
> @@ -2056,7 +2056,7 @@ bool intel_dp_mst_crtc_needs_modeset(struct intel_atomic_state *state,
>  		const struct intel_crtc_state *old_crtc_state;
>  		struct intel_crtc *crtc_iter;
>  
> -		if (connector->mst_port != crtc_connector->mst_port ||
> +		if (connector->mst.dp != crtc_connector->mst.dp ||
>  		    !conn_state->crtc)
>  			continue;
>  
> @@ -2079,7 +2079,7 @@ bool intel_dp_mst_crtc_needs_modeset(struct intel_atomic_state *state,
>  		 * case.
>  		 */
>  		if (connector->dp.dsc_decompression_aux ==
> -		    &connector->mst_port->aux)
> +		    &connector->mst.dp->aux)
>  			return true;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 100f3fb1c1a0..46f53ade432e 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -70,13 +70,13 @@ static int intel_conn_to_vcpi(struct intel_atomic_state *state,
>  	int vcpi = 0;
>  
>  	/* For HDMI this is forced to be 0x0. For DP SST also this is 0x0. */
> -	if (!connector->port)
> +	if (!connector->mst.port)
>  		return 0;
> -	mgr = connector->port->mgr;
> +	mgr = connector->mst.port->mgr;
>  
>  	drm_modeset_lock(&mgr->base.lock, state->base.acquire_ctx);
>  	mst_state = to_drm_dp_mst_topology_state(mgr->base.state);
> -	payload = drm_atomic_get_mst_payload_state(mst_state, connector->port);
> +	payload = drm_atomic_get_mst_payload_state(mst_state, connector->mst.port);
>  	if (drm_WARN_ON(mgr->dev, !payload))
>  		goto out;
>  
> @@ -2775,7 +2775,7 @@ static void __intel_hdcp_info(struct seq_file *m, struct intel_connector *connec
>  void intel_hdcp_info(struct seq_file *m, struct intel_connector *connector)
>  {
>  	seq_puts(m, "\tHDCP version: ");
> -	if (connector->mst_port) {
> +	if (connector->mst.dp) {
>  		__intel_hdcp_info(m, connector, true);
>  		seq_puts(m, "\tMST Hub HDCP version: ");
>  	}
> -- 
> 2.39.5
> 

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

* ✗ i915.CI.Full: failure for drm/i915/display: add some sub-structs for clarity
  2025-02-28 12:49 [PATCH 0/3] drm/i915/display: add some sub-structs for clarity Jani Nikula
                   ` (5 preceding siblings ...)
  2025-02-28 14:15 ` ✓ i915.CI.BAT: success " Patchwork
@ 2025-03-01  1:15 ` Patchwork
  2025-03-03 10:15 ` [PATCH 0/3] " Jani Nikula
  7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2025-03-01  1:15 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915/display: add some sub-structs for clarity
URL   : https://patchwork.freedesktop.org/series/145641/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_16202_full -> Patchwork_145641v1_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_145641v1_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_145641v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_flip@flip-vs-blocking-wf-vblank:
    - shard-snb:          [PASS][1] -> [FAIL][2] +2 other tests fail
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-snb2/igt@kms_flip@flip-vs-blocking-wf-vblank.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-snb2/igt@kms_flip@flip-vs-blocking-wf-vblank.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-hdmi-a1:
    - shard-tglu:         [PASS][3] -> [FAIL][4] +2 other tests fail
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-tglu-2/igt@kms_flip@flip-vs-blocking-wf-vblank@a-hdmi-a1.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-4/igt@kms_flip@flip-vs-blocking-wf-vblank@a-hdmi-a1.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@d-hdmi-a3:
    - shard-dg2:          [PASS][5] -> [FAIL][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-3/igt@kms_flip@flip-vs-blocking-wf-vblank@d-hdmi-a3.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-5/igt@kms_flip@flip-vs-blocking-wf-vblank@d-hdmi-a3.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@device_reset@unbind-reset-rebind:
    - shard-tglu:         [PASS][7] -> [ABORT][8] ([i915#12817] / [i915#5507])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-tglu-6/igt@device_reset@unbind-reset-rebind.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-2/igt@device_reset@unbind-reset-rebind.html

  * igt@drm_fdinfo@virtual-busy-idle:
    - shard-dg2:          NOTRUN -> [SKIP][9] ([i915#8414])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@drm_fdinfo@virtual-busy-idle.html

  * igt@gem_ccs@block-multicopy-compressed:
    - shard-tglu:         NOTRUN -> [SKIP][10] ([i915#9323])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@gem_ccs@block-multicopy-compressed.html

  * igt@gem_ccs@suspend-resume:
    - shard-rkl:          NOTRUN -> [SKIP][11] ([i915#9323])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@gem_ccs@suspend-resume.html

  * igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][12] ([i915#12392] / [i915#13356])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-2/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0.html

  * igt@gem_close_race@multigpu-basic-process:
    - shard-dg2-9:        NOTRUN -> [SKIP][13] ([i915#7697])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_close_race@multigpu-basic-process.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-dg2:          NOTRUN -> [SKIP][14] ([i915#7697])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_ctx_freq@sysfs:
    - shard-dg2:          [PASS][15] -> [FAIL][16] ([i915#9561]) +1 other test fail
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-5/igt@gem_ctx_freq@sysfs.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-11/igt@gem_ctx_freq@sysfs.html

  * igt@gem_ctx_isolation@preservation-s3:
    - shard-dg1:          [PASS][17] -> [INCOMPLETE][18] ([i915#12353]) +1 other test incomplete
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg1-19/igt@gem_ctx_isolation@preservation-s3.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-13/igt@gem_ctx_isolation@preservation-s3.html

  * igt@gem_ctx_persistence@engines-mixed-process@vcs1:
    - shard-mtlp:         [PASS][19] -> [DMESG-WARN][20] ([i915#13723])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-mtlp-1/igt@gem_ctx_persistence@engines-mixed-process@vcs1.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-7/igt@gem_ctx_persistence@engines-mixed-process@vcs1.html

  * igt@gem_ctx_persistence@heartbeat-close:
    - shard-dg2:          NOTRUN -> [SKIP][21] ([i915#8555])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_ctx_persistence@heartbeat-close.html

  * igt@gem_ctx_sseu@engines:
    - shard-dg2-9:        NOTRUN -> [SKIP][22] ([i915#280])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_ctx_sseu@engines.html

  * igt@gem_ctx_sseu@invalid-args:
    - shard-dg2:          NOTRUN -> [SKIP][23] ([i915#280])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@gem_ctx_sseu@invalid-args.html

  * igt@gem_ctx_sseu@invalid-sseu:
    - shard-tglu-1:       NOTRUN -> [SKIP][24] ([i915#280])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@gem_ctx_sseu@invalid-sseu.html

  * igt@gem_ctx_sseu@mmap-args:
    - shard-tglu:         NOTRUN -> [SKIP][25] ([i915#280])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@gem_ctx_sseu@mmap-args.html

  * igt@gem_eio@hibernate:
    - shard-rkl:          NOTRUN -> [ABORT][26] ([i915#7975])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-3/igt@gem_eio@hibernate.html

  * igt@gem_eio@in-flight-internal-10ms:
    - shard-mtlp:         [PASS][27] -> [ABORT][28] ([i915#13193]) +3 other tests abort
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-mtlp-1/igt@gem_eio@in-flight-internal-10ms.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-7/igt@gem_eio@in-flight-internal-10ms.html

  * igt@gem_exec_fence@submit3:
    - shard-dg2:          NOTRUN -> [SKIP][29] ([i915#4812])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_exec_fence@submit3.html

  * igt@gem_exec_fence@syncobj-backward-timeline-chain-engines:
    - shard-snb:          NOTRUN -> [SKIP][30] +6 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-snb2/igt@gem_exec_fence@syncobj-backward-timeline-chain-engines.html

  * igt@gem_exec_flush@basic-wb-pro-default:
    - shard-dg2:          NOTRUN -> [SKIP][31] ([i915#3539] / [i915#4852]) +1 other test skip
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_exec_flush@basic-wb-pro-default.html

  * igt@gem_exec_flush@basic-wb-rw-before-default:
    - shard-dg2-9:        NOTRUN -> [SKIP][32] ([i915#3539] / [i915#4852])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_exec_flush@basic-wb-rw-before-default.html

  * igt@gem_exec_reloc@basic-gtt-cpu-active:
    - shard-dg2-9:        NOTRUN -> [SKIP][33] ([i915#3281]) +3 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_exec_reloc@basic-gtt-cpu-active.html

  * igt@gem_exec_reloc@basic-gtt-read:
    - shard-dg2:          NOTRUN -> [SKIP][34] ([i915#3281]) +7 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_exec_reloc@basic-gtt-read.html

  * igt@gem_exec_reloc@basic-gtt-wc-noreloc:
    - shard-rkl:          NOTRUN -> [SKIP][35] ([i915#3281]) +1 other test skip
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@gem_exec_reloc@basic-gtt-wc-noreloc.html

  * igt@gem_exec_schedule@preempt-queue:
    - shard-dg2-9:        NOTRUN -> [SKIP][36] ([i915#4537] / [i915#4812])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_exec_schedule@preempt-queue.html

  * igt@gem_exec_schedule@semaphore-power:
    - shard-dg2:          NOTRUN -> [SKIP][37] ([i915#4537] / [i915#4812])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_exec_schedule@semaphore-power.html

  * igt@gem_exec_suspend@basic-s4-devices:
    - shard-dg2-9:        NOTRUN -> [ABORT][38] ([i915#7975]) +1 other test abort
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][39] ([i915#4860]) +1 other test skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglu:         NOTRUN -> [SKIP][40] ([i915#2190])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-multi:
    - shard-rkl:          NOTRUN -> [SKIP][41] ([i915#4613])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@gem_lmem_swapping@heavy-multi.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-glk:          NOTRUN -> [SKIP][42] ([i915#4613]) +2 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-glk3/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-tglu:         NOTRUN -> [SKIP][43] ([i915#4613])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_lmem_swapping@parallel-multi:
    - shard-tglu-1:       NOTRUN -> [SKIP][44] ([i915#4613]) +1 other test skip
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@gem_lmem_swapping@parallel-multi.html

  * igt@gem_mmap_gtt@hang-user:
    - shard-dg2-9:        NOTRUN -> [SKIP][45] ([i915#4077]) +2 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_mmap_gtt@hang-user.html

  * igt@gem_mmap_gtt@pf-nonblock:
    - shard-dg2:          NOTRUN -> [SKIP][46] ([i915#4077]) +7 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_mmap_gtt@pf-nonblock.html

  * igt@gem_mmap_wc@invalid-flags:
    - shard-dg2:          NOTRUN -> [SKIP][47] ([i915#4083]) +5 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@gem_mmap_wc@invalid-flags.html

  * igt@gem_mmap_wc@write-wc-read-gtt:
    - shard-dg2-9:        NOTRUN -> [SKIP][48] ([i915#4083])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_mmap_wc@write-wc-read-gtt.html

  * igt@gem_partial_pwrite_pread@reads:
    - shard-dg2-9:        NOTRUN -> [SKIP][49] ([i915#3282]) +2 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_partial_pwrite_pread@reads.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
    - shard-rkl:          NOTRUN -> [SKIP][50] ([i915#3282]) +3 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html

  * igt@gem_pread@exhaustion:
    - shard-tglu:         NOTRUN -> [WARN][51] ([i915#2658])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@gem_pread@exhaustion.html

  * igt@gem_pread@uncached:
    - shard-dg2:          NOTRUN -> [SKIP][52] ([i915#3282]) +1 other test skip
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@gem_pread@uncached.html

  * igt@gem_pxp@protected-raw-src-copy-not-readible:
    - shard-dg2:          NOTRUN -> [SKIP][53] ([i915#4270]) +2 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_pxp@protected-raw-src-copy-not-readible.html

  * igt@gem_pxp@reject-modify-context-protection-off-2:
    - shard-rkl:          [PASS][54] -> [TIMEOUT][55] ([i915#12917] / [i915#12964]) +1 other test timeout
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-8/igt@gem_pxp@reject-modify-context-protection-off-2.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-7/igt@gem_pxp@reject-modify-context-protection-off-2.html

  * igt@gem_pxp@verify-pxp-key-change-after-suspend-resume:
    - shard-rkl:          [PASS][56] -> [SKIP][57] ([i915#4270])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-8/igt@gem_pxp@verify-pxp-key-change-after-suspend-resume.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-2/igt@gem_pxp@verify-pxp-key-change-after-suspend-resume.html

  * igt@gem_pxp@verify-pxp-stale-buf-execution:
    - shard-dg2-9:        NOTRUN -> [SKIP][58] ([i915#4270]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_pxp@verify-pxp-stale-buf-execution.html

  * igt@gem_render_copy@y-tiled-ccs-to-yf-tiled:
    - shard-dg2-9:        NOTRUN -> [SKIP][59] ([i915#5190] / [i915#8428]) +1 other test skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gem_render_copy@y-tiled-ccs-to-yf-tiled.html

  * igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-y-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][60] ([i915#5190] / [i915#8428]) +6 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-y-tiled.html

  * igt@gem_set_tiling_vs_blt@tiled-to-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][61] ([i915#4079]) +1 other test skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-glk:          NOTRUN -> [SKIP][62] ([i915#3323])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-glk5/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@forbidden-operations:
    - shard-dg2:          NOTRUN -> [SKIP][63] ([i915#3282] / [i915#3297])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@gem_userptr_blits@forbidden-operations.html

  * igt@gem_userptr_blits@readonly-pwrite-unsync:
    - shard-tglu:         NOTRUN -> [SKIP][64] ([i915#3297])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@gem_userptr_blits@readonly-pwrite-unsync.html
    - shard-mtlp:         NOTRUN -> [SKIP][65] ([i915#3297])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-6/igt@gem_userptr_blits@readonly-pwrite-unsync.html
    - shard-dg2:          NOTRUN -> [SKIP][66] ([i915#3297])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gem_userptr_blits@readonly-pwrite-unsync.html

  * igt@gem_userptr_blits@sd-probe:
    - shard-dg2:          NOTRUN -> [SKIP][67] ([i915#3297] / [i915#4958])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@gem_userptr_blits@sd-probe.html

  * igt@gem_userptr_blits@unsync-overlap:
    - shard-tglu-1:       NOTRUN -> [SKIP][68] ([i915#3297]) +1 other test skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@gem_userptr_blits@unsync-overlap.html

  * igt@gen3_render_tiledx_blits:
    - shard-dg2-9:        NOTRUN -> [SKIP][69] +2 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gen3_render_tiledx_blits.html

  * igt@gen7_exec_parse@basic-rejected:
    - shard-dg2:          NOTRUN -> [SKIP][70] +8 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@gen7_exec_parse@basic-rejected.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-glk:          [PASS][71] -> [ABORT][72] ([i915#5566])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-glk1/igt@gen9_exec_parse@allowed-single.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-glk8/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@bb-chained:
    - shard-tglu-1:       NOTRUN -> [SKIP][73] ([i915#2527] / [i915#2856]) +1 other test skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@gen9_exec_parse@bb-chained.html

  * igt@gen9_exec_parse@bb-start-cmd:
    - shard-tglu:         NOTRUN -> [SKIP][74] ([i915#2527] / [i915#2856]) +1 other test skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@gen9_exec_parse@bb-start-cmd.html
    - shard-mtlp:         NOTRUN -> [SKIP][75] ([i915#2856])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-6/igt@gen9_exec_parse@bb-start-cmd.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-dg2-9:        NOTRUN -> [SKIP][76] ([i915#2856])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@gen9_exec_parse@shadow-peek.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-dg2:          NOTRUN -> [SKIP][77] ([i915#2856]) +2 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@gen9_exec_parse@unaligned-access.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-dg2:          [PASS][78] -> [ABORT][79] ([i915#10887] / [i915#9820])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-4/igt@i915_module_load@reload-with-fault-injection.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_freq_api@freq-suspend:
    - shard-tglu-1:       NOTRUN -> [SKIP][80] ([i915#8399])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@i915_pm_freq_api@freq-suspend.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-tglu:         NOTRUN -> [WARN][81] ([i915#2681]) +1 other test warn
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-dg1:          [PASS][82] -> [FAIL][83] ([i915#3591]) +1 other test fail
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg1-13/igt@i915_pm_rc6_residency@rc6-idle.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
    - shard-mtlp:         NOTRUN -> [SKIP][84] +1 other test skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-6/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html

  * igt@i915_pm_rps@min-max-config-idle:
    - shard-dg2-9:        NOTRUN -> [SKIP][85] ([i915#11681] / [i915#6621]) +1 other test skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@i915_pm_rps@min-max-config-idle.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-tglu:         NOTRUN -> [INCOMPLETE][86] ([i915#7443])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@i915_suspend@basic-s3-without-i915.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-mtlp:         NOTRUN -> [SKIP][87] ([i915#4077]) +1 other test skip
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-6/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-a-hdmi-a-3-y-rc-ccs-cc:
    - shard-dg1:          NOTRUN -> [SKIP][88] ([i915#8709]) +3 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-13/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-a-hdmi-a-3-y-rc-ccs-cc.html

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-3-4-mc-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][89] ([i915#8709]) +7 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-5/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-3-4-mc-ccs.html

  * igt@kms_async_flips@invalid-async-flip-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][90] ([i915#12967])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_async_flips@invalid-async-flip-atomic.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-tglu:         NOTRUN -> [SKIP][91] ([i915#9531])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4:
    - shard-dg1:          [PASS][92] -> [FAIL][93] ([i915#5956]) +1 other test fail
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg1-14/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-16/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-tglu-1:       NOTRUN -> [SKIP][94] ([i915#1769] / [i915#3555])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
    - shard-tglu:         [PASS][95] -> [FAIL][96] ([i915#11808]) +1 other test fail
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-tglu-2/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-4/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-180:
    - shard-tglu-1:       NOTRUN -> [SKIP][97] ([i915#5286]) +1 other test skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-rkl:          NOTRUN -> [SKIP][98] ([i915#5286])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-tglu:         NOTRUN -> [SKIP][99] ([i915#5286])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-addfb:
    - shard-dg2:          NOTRUN -> [SKIP][100] ([i915#5190])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-1/igt@kms_big_fb@y-tiled-addfb.html

  * igt@kms_big_fb@y-tiled-addfb-size-overflow:
    - shard-dg2-9:        NOTRUN -> [SKIP][101] ([i915#5190])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_big_fb@y-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
    - shard-dg2:          NOTRUN -> [SKIP][102] ([i915#4538] / [i915#5190]) +7 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-270:
    - shard-dg2-9:        NOTRUN -> [SKIP][103] ([i915#4538] / [i915#5190]) +2 other tests skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-2:
    - shard-dg2-9:        NOTRUN -> [SKIP][104] ([i915#10307] / [i915#6095]) +14 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-2.html

  * igt@kms_ccs@bad-aux-stride-yf-tiled-ccs@pipe-b-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][105] ([i915#6095]) +39 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_ccs@bad-aux-stride-yf-tiled-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][106] ([i915#6095]) +29 other tests skip
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][107] ([i915#12313])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
    - shard-dg2-9:        NOTRUN -> [SKIP][108] ([i915#12313]) +1 other test skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][109] ([i915#6095]) +59 other tests skip
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-15/igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-a-hdmi-a-4.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][110] ([i915#12805])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][111] ([i915#6095]) +12 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][112] ([i915#6095]) +78 other tests skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-8/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][113] ([i915#12313])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-a-dp-4:
    - shard-dg2:          NOTRUN -> [SKIP][114] ([i915#10307] / [i915#6095]) +150 other tests skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-a-dp-4.html

  * igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][115] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-4/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][116] ([i915#13781]) +4 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1.html

  * igt@kms_cdclk@plane-scaling:
    - shard-tglu:         NOTRUN -> [SKIP][117] ([i915#3742])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium_color@ctm-max:
    - shard-rkl:          NOTRUN -> [SKIP][118] +1 other test skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-3/igt@kms_chamelium_color@ctm-max.html

  * igt@kms_chamelium_edid@dp-edid-resolution-list:
    - shard-tglu:         NOTRUN -> [SKIP][119] ([i915#11151] / [i915#7828]) +3 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@kms_chamelium_edid@dp-edid-resolution-list.html

  * igt@kms_chamelium_frames@hdmi-crc-multiple:
    - shard-dg2:          NOTRUN -> [SKIP][120] ([i915#11151] / [i915#7828]) +4 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_chamelium_frames@hdmi-crc-multiple.html

  * igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode:
    - shard-rkl:          NOTRUN -> [SKIP][121] ([i915#11151] / [i915#7828]) +2 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-3/igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode.html

  * igt@kms_chamelium_hpd@hdmi-hpd-fast:
    - shard-tglu-1:       NOTRUN -> [SKIP][122] ([i915#11151] / [i915#7828]) +3 other tests skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_chamelium_hpd@hdmi-hpd-fast.html

  * igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe:
    - shard-dg2-9:        NOTRUN -> [SKIP][123] ([i915#11151] / [i915#7828]) +1 other test skip
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-dg2:          NOTRUN -> [SKIP][124] ([i915#7118] / [i915#9424])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-rkl:          NOTRUN -> [SKIP][125] ([i915#3116])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-3/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][126] ([i915#3116] / [i915#3299])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@legacy@pipe-a-dp-4:
    - shard-dg2:          NOTRUN -> [FAIL][127] ([i915#7173])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_content_protection@legacy@pipe-a-dp-4.html

  * igt@kms_content_protection@lic-type-0:
    - shard-tglu:         NOTRUN -> [SKIP][128] ([i915#6944] / [i915#9424]) +1 other test skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@kms_content_protection@lic-type-0.html
    - shard-dg2:          NOTRUN -> [SKIP][129] ([i915#9424])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_content_protection@lic-type-0.html

  * igt@kms_content_protection@mei-interface:
    - shard-tglu-1:       NOTRUN -> [SKIP][130] ([i915#6944] / [i915#9424])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_content_protection@mei-interface.html

  * igt@kms_cursor_crc@cursor-offscreen-32x32:
    - shard-rkl:          NOTRUN -> [SKIP][131] ([i915#3555])
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_cursor_crc@cursor-offscreen-32x32.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-dg2-9:        NOTRUN -> [SKIP][132] ([i915#13049])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-32x32:
    - shard-tglu:         NOTRUN -> [SKIP][133] ([i915#3555]) +3 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@kms_cursor_crc@cursor-random-32x32.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][134] ([i915#13049])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-max-size:
    - shard-dg2:          NOTRUN -> [SKIP][135] ([i915#3555]) +6 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html

  * igt@kms_cursor_crc@cursor-sliding-512x170:
    - shard-dg2:          NOTRUN -> [SKIP][136] ([i915#13049]) +1 other test skip
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_cursor_crc@cursor-sliding-512x170.html

  * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
    - shard-rkl:          [PASS][137] -> [DMESG-WARN][138] ([i915#12964]) +6 other tests dmesg-warn
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-8/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-2/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic:
    - shard-dg2-9:        NOTRUN -> [SKIP][139] ([i915#13046] / [i915#5354]) +2 other tests skip
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][140] ([i915#13046] / [i915#5354]) +3 other tests skip
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-dg2:          NOTRUN -> [SKIP][141] ([i915#4103] / [i915#4213])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-dg2-9:        NOTRUN -> [SKIP][142] ([i915#13691])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-tglu-1:       NOTRUN -> [SKIP][143] ([i915#1769] / [i915#3555] / [i915#3804])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][144] ([i915#3804])
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-7/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html
    - shard-tglu-1:       NOTRUN -> [SKIP][145] ([i915#3804])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html

  * igt@kms_dp_aux_dev:
    - shard-tglu-1:       NOTRUN -> [SKIP][146] ([i915#1257])
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_dp_aux_dev.html

  * igt@kms_dp_link_training@non-uhbr-sst:
    - shard-rkl:          NOTRUN -> [SKIP][147] ([i915#13749])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_dp_link_training@non-uhbr-sst.html

  * igt@kms_draw_crc@draw-method-mmap-wc:
    - shard-dg2:          NOTRUN -> [SKIP][148] ([i915#8812])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_draw_crc@draw-method-mmap-wc.html

  * igt@kms_dsc@dsc-basic:
    - shard-dg2:          NOTRUN -> [SKIP][149] ([i915#3555] / [i915#3840])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_dsc@dsc-basic.html

  * igt@kms_dsc@dsc-with-formats:
    - shard-dg2-9:        NOTRUN -> [SKIP][150] ([i915#3555] / [i915#3840])
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_dsc@dsc-with-formats.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats:
    - shard-tglu-1:       NOTRUN -> [SKIP][151] ([i915#2575])
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
    - shard-dg2-9:        NOTRUN -> [SKIP][152] ([i915#13798])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-dg2:          NOTRUN -> [SKIP][153] ([i915#3469])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@display-2x:
    - shard-dg2:          NOTRUN -> [SKIP][154] ([i915#1839])
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_feature_discovery@display-2x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-dg2:          NOTRUN -> [SKIP][155] ([i915#9337])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_flip@2x-flip-vs-dpms:
    - shard-tglu-1:       NOTRUN -> [SKIP][156] ([i915#3637]) +1 other test skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_flip@2x-flip-vs-dpms.html

  * igt@kms_flip@2x-flip-vs-fences-interruptible:
    - shard-tglu:         NOTRUN -> [SKIP][157] ([i915#3637]) +2 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@kms_flip@2x-flip-vs-fences-interruptible.html
    - shard-dg2:          NOTRUN -> [SKIP][158] ([i915#8381])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_flip@2x-flip-vs-fences-interruptible.html

  * igt@kms_flip@2x-flip-vs-panning-vs-hang:
    - shard-dg2:          NOTRUN -> [SKIP][159] ([i915#9934]) +5 other tests skip
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_flip@2x-flip-vs-panning-vs-hang.html

  * igt@kms_flip@2x-modeset-vs-vblank-race:
    - shard-rkl:          NOTRUN -> [SKIP][160] ([i915#9934]) +1 other test skip
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_flip@2x-modeset-vs-vblank-race.html

  * igt@kms_flip@2x-wf_vblank-ts-check-interruptible:
    - shard-snb:          [PASS][161] -> [FAIL][162] ([i915#11832] / [i915#13734])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-snb6/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-snb2/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html

  * igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-vga1-hdmi-a1:
    - shard-snb:          [PASS][163] -> [FAIL][164] ([i915#11832])
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-snb6/igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-vga1-hdmi-a1.html
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-snb2/igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-vga1-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-glk:          NOTRUN -> [INCOMPLETE][165] ([i915#12745] / [i915#4839])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-glk5/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1:
    - shard-glk:          NOTRUN -> [INCOMPLETE][166] ([i915#12745])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-glk5/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html

  * igt@kms_flip@plain-flip-fb-recreate:
    - shard-tglu:         [PASS][167] -> [FAIL][168] ([Intel XE#1522]) +1 other test fail
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-tglu-5/igt@kms_flip@plain-flip-fb-recreate.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@kms_flip@plain-flip-fb-recreate.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
    - shard-rkl:          NOTRUN -> [SKIP][169] ([i915#2672]) +1 other test skip
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-3/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
    - shard-dg2:          NOTRUN -> [SKIP][170] ([i915#2672] / [i915#3555]) +1 other test skip
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
    - shard-dg2:          NOTRUN -> [SKIP][171] ([i915#2672]) +1 other test skip
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
    - shard-tglu:         NOTRUN -> [SKIP][172] ([i915#2587] / [i915#2672] / [i915#3555])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode:
    - shard-tglu:         NOTRUN -> [SKIP][173] ([i915#2587] / [i915#2672])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling:
    - shard-rkl:          NOTRUN -> [SKIP][174] ([i915#2672] / [i915#3555]) +1 other test skip
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
    - shard-dg2:          [PASS][175] -> [FAIL][176] ([i915#6880]) +1 other test fail
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt:
    - shard-dg2-9:        NOTRUN -> [FAIL][177] ([i915#6880])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite:
    - shard-mtlp:         NOTRUN -> [SKIP][178] ([i915#1825])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbc-2p-rte:
    - shard-dg2:          NOTRUN -> [SKIP][179] ([i915#5354]) +20 other tests skip
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-2p-rte.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-dg2-9:        NOTRUN -> [SKIP][180] ([i915#3458]) +5 other tests skip
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt:
    - shard-dg2-9:        NOTRUN -> [SKIP][181] ([i915#5354]) +10 other tests skip
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][182] ([i915#1825]) +8 other tests skip
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-tglu-1:       NOTRUN -> [SKIP][183] +38 other tests skip
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-rte:
    - shard-dg2:          NOTRUN -> [SKIP][184] ([i915#3458]) +14 other tests skip
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_frontbuffer_tracking@psr-1p-rte.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-dg2-9:        NOTRUN -> [SKIP][185] ([i915#8708]) +4 other tests skip
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-glk:          NOTRUN -> [SKIP][186] +172 other tests skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-glk5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][187] ([i915#8708]) +12 other tests skip
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-rgb565-draw-render:
    - shard-rkl:          NOTRUN -> [SKIP][188] ([i915#3023]) +3 other tests skip
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-rgb565-draw-render.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-dg2:          [PASS][189] -> [SKIP][190] ([i915#3555] / [i915#8228]) +1 other test skip
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-11/igt@kms_hdr@invalid-metadata-sizes.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-6/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-tglu-1:       NOTRUN -> [SKIP][191] ([i915#3555] / [i915#8228])
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-dg2-9:        NOTRUN -> [SKIP][192] ([i915#3555] / [i915#8228])
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][193] ([i915#10656]) +1 other test skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@kms_joiner@basic-big-joiner.html
    - shard-dg2:          NOTRUN -> [SKIP][194] ([i915#10656])
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][195] ([i915#12388])
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][196] ([i915#12339])
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-tglu-1:       NOTRUN -> [SKIP][197] ([i915#13522])
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-rkl:          NOTRUN -> [SKIP][198] ([i915#4070] / [i915#4816])
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-tglu:         NOTRUN -> [SKIP][199] ([i915#6301])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-dg2-9:        NOTRUN -> [SKIP][200] ([i915#8806])
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c:
    - shard-rkl:          NOTRUN -> [SKIP][201] ([i915#12247])
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-8/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-d:
    - shard-mtlp:         NOTRUN -> [SKIP][202] ([i915#12247]) +4 other tests skip
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-6/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-d.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-c:
    - shard-dg2:          NOTRUN -> [SKIP][203] ([i915#12247]) +7 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-c.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25:
    - shard-dg2-9:        NOTRUN -> [SKIP][204] ([i915#12247] / [i915#3555] / [i915#9423])
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d:
    - shard-dg2-9:        NOTRUN -> [SKIP][205] ([i915#12247]) +3 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25:
    - shard-dg2:          NOTRUN -> [SKIP][206] ([i915#12247] / [i915#6953] / [i915#9423]) +1 other test skip
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-dg2:          [PASS][207] -> [SKIP][208] ([i915#9340])
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-8/igt@kms_pm_lpsp@kms-lpsp.html
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_pm_lpsp@kms-lpsp.html
    - shard-tglu-1:       NOTRUN -> [SKIP][209] ([i915#3828])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@dpms-mode-unset-lpsp:
    - shard-rkl:          NOTRUN -> [SKIP][210] ([i915#9519])
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-dg2:          NOTRUN -> [SKIP][211] ([i915#9519])
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-rkl:          [PASS][212] -> [SKIP][213] ([i915#9519])
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-7/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-8/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_prime@basic-modeset-hybrid:
    - shard-tglu-1:       NOTRUN -> [SKIP][214] ([i915#6524]) +1 other test skip
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_prime@basic-modeset-hybrid.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-glk:          NOTRUN -> [SKIP][215] ([i915#11520]) +4 other tests skip
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-glk9/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf:
    - shard-dg2:          NOTRUN -> [SKIP][216] ([i915#11520]) +5 other tests skip
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
    - shard-tglu:         NOTRUN -> [SKIP][217] ([i915#11520]) +3 other tests skip
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-6/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf:
    - shard-rkl:          NOTRUN -> [SKIP][218] ([i915#11520]) +2 other tests skip
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
    - shard-tglu-1:       NOTRUN -> [SKIP][219] ([i915#11520]) +3 other tests skip
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area:
    - shard-dg2-9:        NOTRUN -> [SKIP][220] ([i915#11520]) +1 other test skip
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-dg2-9:        NOTRUN -> [SKIP][221] ([i915#9683])
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr@fbc-pr-sprite-plane-onoff:
    - shard-rkl:          NOTRUN -> [SKIP][222] ([i915#1072] / [i915#9732]) +4 other tests skip
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_psr@fbc-pr-sprite-plane-onoff.html

  * igt@kms_psr@fbc-psr-cursor-render:
    - shard-tglu:         NOTRUN -> [SKIP][223] ([i915#9732]) +9 other tests skip
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@kms_psr@fbc-psr-cursor-render.html

  * igt@kms_psr@fbc-psr-sprite-mmap-cpu:
    - shard-dg2-9:        NOTRUN -> [SKIP][224] ([i915#1072] / [i915#9732]) +6 other tests skip
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_psr@fbc-psr-sprite-mmap-cpu.html

  * igt@kms_psr@psr-primary-mmap-cpu:
    - shard-dg2:          NOTRUN -> [SKIP][225] ([i915#1072] / [i915#9732]) +14 other tests skip
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_psr@psr-primary-mmap-cpu.html

  * igt@kms_psr@psr2-cursor-blt:
    - shard-tglu-1:       NOTRUN -> [SKIP][226] ([i915#9732]) +9 other tests skip
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_psr@psr2-cursor-blt.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-dg2:          NOTRUN -> [SKIP][227] ([i915#12755]) +1 other test skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-dg2:          NOTRUN -> [SKIP][228] ([i915#12755] / [i915#5190])
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_selftest@drm_framebuffer:
    - shard-rkl:          NOTRUN -> [ABORT][229] ([i915#13179]) +1 other test abort
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@kms_selftest@drm_framebuffer.html

  * igt@kms_setmode@basic:
    - shard-dg2:          [PASS][230] -> [FAIL][231] ([i915#5465])
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-8/igt@kms_setmode@basic.html
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_setmode@basic.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-tglu-1:       NOTRUN -> [SKIP][232] ([i915#3555]) +1 other test skip
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_setmode@basic@pipe-a-dp-4:
    - shard-dg2:          NOTRUN -> [FAIL][233] ([i915#5465])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_setmode@basic@pipe-a-dp-4.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-tglu-1:       NOTRUN -> [SKIP][234] ([i915#8623])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vblank@query-idle@pipe-b-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][235] ([i915#12964])
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-2/igt@kms_vblank@query-idle@pipe-b-hdmi-a-1.html

  * igt@kms_vrr@lobf:
    - shard-tglu-1:       NOTRUN -> [SKIP][236] ([i915#11920])
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_vrr@lobf.html

  * igt@kms_vrr@max-min:
    - shard-tglu:         NOTRUN -> [SKIP][237] ([i915#9906])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@kms_vrr@max-min.html
    - shard-dg2:          NOTRUN -> [SKIP][238] ([i915#9906])
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_vrr@max-min.html

  * igt@kms_writeback@writeback-fb-id:
    - shard-dg2:          NOTRUN -> [SKIP][239] ([i915#2437])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@kms_writeback@writeback-fb-id.html

  * igt@kms_writeback@writeback-fb-id-xrgb2101010:
    - shard-tglu-1:       NOTRUN -> [SKIP][240] ([i915#2437] / [i915#9412])
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-1/igt@kms_writeback@writeback-fb-id-xrgb2101010.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-glk:          NOTRUN -> [SKIP][241] ([i915#2437])
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-glk3/igt@kms_writeback@writeback-pixel-formats.html
    - shard-dg2-9:        NOTRUN -> [SKIP][242] ([i915#2437] / [i915#9412])
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@kms_writeback@writeback-pixel-formats.html

  * igt@perf_pmu@busy-double-start@vecs1:
    - shard-dg2:          NOTRUN -> [FAIL][243] ([i915#4349]) +4 other tests fail
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@perf_pmu@busy-double-start@vecs1.html

  * igt@prime_vgem@basic-fence-mmap:
    - shard-dg2:          NOTRUN -> [SKIP][244] ([i915#3708] / [i915#4077])
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@prime_vgem@basic-fence-mmap.html

  * igt@prime_vgem@basic-write:
    - shard-dg2:          NOTRUN -> [SKIP][245] ([i915#3291] / [i915#3708])
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@prime_vgem@basic-write.html

  * igt@prime_vgem@fence-read-hang:
    - shard-rkl:          NOTRUN -> [SKIP][246] ([i915#3708])
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-1/igt@prime_vgem@fence-read-hang.html

  * igt@prime_vgem@fence-write-hang:
    - shard-tglu:         NOTRUN -> [SKIP][247] +46 other tests skip
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@prime_vgem@fence-write-hang.html
    - shard-dg2:          NOTRUN -> [SKIP][248] ([i915#3708])
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-3/igt@prime_vgem@fence-write-hang.html

  * igt@sriov_basic@bind-unbind-vf:
    - shard-dg2-9:        NOTRUN -> [SKIP][249] ([i915#9917])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-9/igt@sriov_basic@bind-unbind-vf.html

  * igt@tools_test@sysfs_l3_parity:
    - shard-dg2:          NOTRUN -> [SKIP][250] ([i915#4818])
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@tools_test@sysfs_l3_parity.html

  
#### Possible fixes ####

  * igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0:
    - shard-dg2:          [INCOMPLETE][251] ([i915#12392] / [i915#13356]) -> [PASS][252]
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-6/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-2/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0.html

  * igt@gem_create@create-ext-cpu-access-big:
    - shard-dg2:          [ABORT][253] ([i915#13427]) -> [PASS][254]
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-4/igt@gem_create@create-ext-cpu-access-big.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-1/igt@gem_create@create-ext-cpu-access-big.html

  * igt@gem_eio@in-flight-10ms:
    - shard-mtlp:         [ABORT][255] ([i915#13193]) -> [PASS][256]
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-mtlp-7/igt@gem_eio@in-flight-10ms.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-6/igt@gem_eio@in-flight-10ms.html

  * igt@gem_pxp@create-regular-context-1:
    - shard-rkl:          [TIMEOUT][257] ([i915#12917] / [i915#12964]) -> [PASS][258]
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-1/igt@gem_pxp@create-regular-context-1.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-8/igt@gem_pxp@create-regular-context-1.html

  * igt@gem_pxp@fail-invalid-protected-context:
    - shard-rkl:          [TIMEOUT][259] ([i915#12964]) -> [PASS][260]
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-2/igt@gem_pxp@fail-invalid-protected-context.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-8/igt@gem_pxp@fail-invalid-protected-context.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-glk:          [ABORT][261] ([i915#9820]) -> [PASS][262]
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-glk1/igt@i915_module_load@reload-with-fault-injection.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-glk9/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-dg1:          [DMESG-WARN][263] ([i915#4423]) -> [PASS][264] +1 other test pass
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg1-13/igt@i915_pm_rpm@system-suspend-execbuf.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-18/igt@i915_pm_rpm@system-suspend-execbuf.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-dg2:          [FAIL][265] ([i915#5956]) -> [PASS][266]
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
    - shard-tglu:         [FAIL][267] ([i915#11808]) -> [PASS][268] +1 other test pass
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-tglu-9/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_atomic_transition@plane-toggle-modeset-transition:
    - shard-dg1:          [FAIL][269] ([i915#5956]) -> [PASS][270]
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg1-19/igt@kms_atomic_transition@plane-toggle-modeset-transition.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-13/igt@kms_atomic_transition@plane-toggle-modeset-transition.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-mtlp:         [FAIL][271] ([i915#5138]) -> [PASS][272]
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-mtlp-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-dg1:          [DMESG-WARN][273] ([i915#4391] / [i915#4423]) -> [PASS][274]
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg1-19/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-18/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_cursor_crc@cursor-onscreen-128x42:
    - shard-rkl:          [FAIL][275] ([i915#13566]) -> [PASS][276] +4 other tests pass
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-2/igt@kms_cursor_crc@cursor-onscreen-128x42.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-5/igt@kms_cursor_crc@cursor-onscreen-128x42.html

  * igt@kms_cursor_crc@cursor-onscreen-128x42@pipe-a-hdmi-a-1:
    - shard-tglu:         [FAIL][277] ([i915#13566]) -> [PASS][278] +3 other tests pass
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-tglu-10/igt@kms_cursor_crc@cursor-onscreen-128x42@pipe-a-hdmi-a-1.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-tglu-8/igt@kms_cursor_crc@cursor-onscreen-128x42@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-random-128x128:
    - shard-mtlp:         [FAIL][279] ([i915#13566]) -> [PASS][280] +2 other tests pass
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-mtlp-1/igt@kms_cursor_crc@cursor-random-128x128.html
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-4/igt@kms_cursor_crc@cursor-random-128x128.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions:
    - shard-snb:          [SKIP][281] -> [PASS][282]
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-snb4/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-snb4/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html

  * igt@kms_cursor_legacy@torture-move@pipe-b:
    - shard-rkl:          [DMESG-WARN][283] ([i915#12964]) -> [PASS][284] +14 other tests pass
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-1/igt@kms_cursor_legacy@torture-move@pipe-b.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-8/igt@kms_cursor_legacy@torture-move@pipe-b.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-dg2:          [SKIP][285] ([i915#3555]) -> [PASS][286]
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-8/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * igt@kms_dp_aux_dev:
    - shard-dg2:          [SKIP][287] ([i915#1257]) -> [PASS][288]
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-5/igt@kms_dp_aux_dev.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-11/igt@kms_dp_aux_dev.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank:
    - shard-dg1:          [FAIL][289] -> [PASS][290]
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg1-19/igt@kms_flip@flip-vs-blocking-wf-vblank.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-13/igt@kms_flip@flip-vs-blocking-wf-vblank.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-snb:          [INCOMPLETE][291] -> [PASS][292]
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-snb2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu.html
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-snb2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-dg2:          [SKIP][293] ([i915#3555] / [i915#8228]) -> [PASS][294] +1 other test pass
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-8/igt@kms_hdr@static-toggle-dpms.html
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-mtlp:         [FAIL][295] ([i915#12913]) -> [PASS][296]
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-mtlp-2/igt@kms_pm_dc@dc6-dpms.html
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-mtlp-7/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-dg2:          [SKIP][297] ([i915#9519]) -> [PASS][298] +1 other test pass
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-2/igt@kms_pm_rpm@dpms-lpsp.html
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-4/igt@kms_pm_rpm@dpms-lpsp.html
    - shard-rkl:          [SKIP][299] ([i915#9519]) -> [PASS][300]
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-8/igt@kms_pm_rpm@dpms-lpsp.html
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-2/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@perf_pmu@most-busy-idle-check-all@rcs0:
    - shard-rkl:          [FAIL][301] ([i915#4349]) -> [PASS][302]
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-5/igt@perf_pmu@most-busy-idle-check-all@rcs0.html
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-3/igt@perf_pmu@most-busy-idle-check-all@rcs0.html

  
#### Warnings ####

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-dg1:          [SKIP][303] ([i915#4423] / [i915#4538] / [i915#5286]) -> [SKIP][304] ([i915#4538] / [i915#5286])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg1-12/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-12/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
    - shard-dg1:          [SKIP][305] ([i915#4423] / [i915#4538]) -> [SKIP][306] ([i915#4538])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg1-13/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg1-18/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html

  * igt@kms_content_protection@legacy:
    - shard-dg2:          [SKIP][307] ([i915#7118] / [i915#9424]) -> [FAIL][308] ([i915#7173])
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-7/igt@kms_content_protection@legacy.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@type1:
    - shard-dg2:          [SKIP][309] ([i915#7118] / [i915#7162] / [i915#9424]) -> [SKIP][310] ([i915#7118] / [i915#9424])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-10/igt@kms_content_protection@type1.html
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-8/igt@kms_content_protection@type1.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt:
    - shard-dg2:          [SKIP][311] ([i915#3458]) -> [SKIP][312] ([i915#10433] / [i915#3458]) +2 other tests skip
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-rkl:          [SKIP][313] ([i915#9340]) -> [SKIP][314] ([i915#3828])
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-8/igt@kms_pm_lpsp@kms-lpsp.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-7/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@fences-dpms:
    - shard-dg2:          [SKIP][315] ([i915#12916]) -> [SKIP][316] ([i915#4077])
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-dg2-7/igt@kms_pm_rpm@fences-dpms.html
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-dg2-10/igt@kms_pm_rpm@fences-dpms.html

  * igt@perf_pmu@most-busy-idle-check-all:
    - shard-rkl:          [FAIL][317] ([i915#4349]) -> [DMESG-WARN][318] ([i915#12964])
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16202/shard-rkl-5/igt@perf_pmu@most-busy-idle-check-all.html
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_145641v1/shard-rkl-3/igt@perf_pmu@most-busy-idle-check-all.html

  
  [Intel XE#1522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1522
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#10887]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10887
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
  [i915#11808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11808
  [i915#11832]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11832
  [i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920
  [i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12339
  [i915#12353]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12353
  [i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388
  [i915#12392]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12392
  [i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
  [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
  [i915#12817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12817
  [i915#12913]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12913
  [i915#12916]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12916
  [i915#12917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12917
  [i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
  [i915#12967]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12967
  [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
  [i915#13193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13193
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13427]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13427
  [i915#13522]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13522
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
  [i915#13723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13723
  [i915#13734]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13734
  [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
  [i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781
  [i915#13798]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13798
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
  [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2681
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
  [i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323
  [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
  [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
  [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
  [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
  [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
  [i915#4070]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
  [i915#4391]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4391
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537
  [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
  [i915#4816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4816
  [i915#4818]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4818
  [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
  [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
  [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
  [i915#4958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4958
  [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5465]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5465
  [i915#5507]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5507
  [i915#5566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5566
  [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
  [i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880
  [i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
  [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
  [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
  [i915#7162]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7162
  [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
  [i915#7443]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7443
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
  [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
  [i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414
  [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
  [i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
  [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
  [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709
  [i915#8806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8806
  [i915#8812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8812
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337
  [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
  [i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412
  [i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
  [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
  [i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
  [i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531
  [i915#9561]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9561
  [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9820
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


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

  * Linux: CI_DRM_16202 -> Patchwork_145641v1

  CI-20190529: 20190529
  CI_DRM_16202: 4e4a83bc30b77bb710641f0b43e6098bd04c5044 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8252: e266af0feec344315b07d8af186226e467d02ecf @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_145641v1: 4e4a83bc30b77bb710641f0b43e6098bd04c5044 @ 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_145641v1/index.html

[-- Attachment #2: Type: text/html, Size: 107026 bytes --]

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

* Re: [PATCH 0/3] drm/i915/display: add some sub-structs for clarity
  2025-02-28 12:49 [PATCH 0/3] drm/i915/display: add some sub-structs for clarity Jani Nikula
                   ` (6 preceding siblings ...)
  2025-03-01  1:15 ` ✗ i915.CI.Full: failure " Patchwork
@ 2025-03-03 10:15 ` Jani Nikula
  7 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2025-03-03 10:15 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: imre.deak, Suraj Kandpal

On Fri, 28 Feb 2025, Jani Nikula <jani.nikula@intel.com> wrote:
> Jani Nikula (3):
>   drm/i915/mst: add mst sub-struct to struct intel_dp
>   drm/i915/mst: add mst sub-struct to struct intel_connector
>   drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port

Thanks for the reviews, pushed to din.

BR,
Jani.

>
>  drivers/gpu/drm/i915/display/g4x_dp.c         |   2 +-
>  drivers/gpu/drm/i915/display/g4x_hdmi.c       |   2 +-
>  .../gpu/drm/i915/display/intel_connector.c    |   4 +-
>  drivers/gpu/drm/i915/display/intel_ddi.c      |   6 +-
>  .../drm/i915/display/intel_display_debugfs.c  |   6 +-
>  .../drm/i915/display/intel_display_types.h    |  44 ++---
>  drivers/gpu/drm/i915/display/intel_dp.c       |  38 ++---
>  drivers/gpu/drm/i915/display/intel_dp_hdcp.c  |   8 +-
>  drivers/gpu/drm/i915/display/intel_dp_mst.c   | 154 +++++++++---------
>  drivers/gpu/drm/i915/display/intel_hdcp.c     |  94 +++++------
>  10 files changed, 180 insertions(+), 178 deletions(-)

-- 
Jani Nikula, Intel

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

end of thread, other threads:[~2025-03-03 10:15 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-28 12:49 [PATCH 0/3] drm/i915/display: add some sub-structs for clarity Jani Nikula
2025-02-28 12:49 ` [PATCH 1/3] drm/i915/mst: add mst sub-struct to struct intel_dp Jani Nikula
2025-02-28 15:52   ` Imre Deak
2025-02-28 12:49 ` [PATCH 2/3] drm/i915/mst: add mst sub-struct to struct intel_connector Jani Nikula
2025-02-28 15:52   ` Imre Deak
2025-02-28 12:49 ` [PATCH 3/3] drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port Jani Nikula
2025-02-28 15:13   ` Kandpal, Suraj
2025-02-28 13:52 ` ✗ Fi.CI.BUILD: warning for drm/i915/display: add some sub-structs for clarity Patchwork
2025-02-28 13:53 ` ✗ Fi.CI.CHECKPATCH: " Patchwork
2025-02-28 14:15 ` ✓ i915.CI.BAT: success " Patchwork
2025-03-01  1:15 ` ✗ i915.CI.Full: failure " Patchwork
2025-03-03 10:15 ` [PATCH 0/3] " Jani Nikula

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox