Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] HDCP intel_display refactors
@ 2024-09-10  7:47 Suraj Kandpal
  2024-09-10  7:47 ` [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp Suraj Kandpal
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Suraj Kandpal @ 2024-09-10  7:47 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: uma.shankar, ankit.k.nautiyal, jani.nikula, Suraj Kandpal

Refactors related to intel_hdcp/xe_hdcp in which we replace
drm_i915_private usage with intel_display wherever possible for
the ongoing efforts to try use intel_display structure more.

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>

Suraj Kandpal (2):
  drm/i915/hdcp: Move to using intel_display in intel_hdcp
  drm/i915/hdcp: Use intel_display in hdcp_gsc

 drivers/gpu/drm/i915/display/intel_hdcp.c     | 673 +++++++++---------
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.c |  40 +-
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.h |   9 +-
 .../drm/i915/display/intel_hdcp_gsc_message.c |  44 +-
 .../drm/i915/display/intel_hdcp_gsc_message.h |   3 +-
 drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      |  30 +-
 6 files changed, 406 insertions(+), 393 deletions(-)

-- 
2.43.2


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

* [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp
  2024-09-10  7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal
@ 2024-09-10  7:47 ` Suraj Kandpal
  2024-09-10  9:11   ` Jani Nikula
  2024-09-10  7:47 ` [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc Suraj Kandpal
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Suraj Kandpal @ 2024-09-10  7:47 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: uma.shankar, ankit.k.nautiyal, jani.nikula, Suraj Kandpal

Move to using intel_display wherever possible in intel_hdcp.c
as a part of code refactor.

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_hdcp.c     | 669 +++++++++---------
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.c |   9 +-
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.h |   5 +-
 .../drm/i915/display/intel_hdcp_gsc_message.h |   3 +-
 drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      |   7 +-
 5 files changed, 352 insertions(+), 341 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index ebec03bc88e9..964372f4343b 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -36,20 +36,20 @@ static void
 intel_hdcp_disable_hdcp_line_rekeying(struct intel_encoder *encoder,
 				      struct intel_hdcp *hdcp)
 {
-	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_display *display = to_intel_display(encoder->base.dev);
 
 	/* Here we assume HDMI is in TMDS mode of operation */
 	if (encoder->type != INTEL_OUTPUT_HDMI)
 		return;
 
-	if (DISPLAY_VER(dev_priv) >= 14) {
-		if (IS_DISPLAY_VER_STEP(dev_priv, IP_VER(14, 0), STEP_D0, STEP_FOREVER))
-			intel_de_rmw(dev_priv, MTL_CHICKEN_TRANS(hdcp->cpu_transcoder),
+	if (DISPLAY_VER(display) >= 14) {
+		if (IS_DISPLAY_VER_STEP(display, IP_VER(14, 0), STEP_D0, STEP_FOREVER))
+			intel_de_rmw(display, MTL_CHICKEN_TRANS(hdcp->cpu_transcoder),
 				     0, HDCP_LINE_REKEY_DISABLE);
-		else if (IS_DISPLAY_VER_STEP(dev_priv, IP_VER(14, 1), STEP_B0, STEP_FOREVER) ||
-			 IS_DISPLAY_VER_STEP(dev_priv, IP_VER(20, 0), STEP_B0, STEP_FOREVER))
-			intel_de_rmw(dev_priv,
-				     TRANS_DDI_FUNC_CTL(dev_priv, hdcp->cpu_transcoder),
+		else if (IS_DISPLAY_VER_STEP(display, IP_VER(14, 1), STEP_B0, STEP_FOREVER) ||
+			 IS_DISPLAY_VER_STEP(display, IP_VER(20, 0), STEP_B0, STEP_FOREVER))
+			intel_de_rmw(display,
+				     TRANS_DDI_FUNC_CTL(display, hdcp->cpu_transcoder),
 				     0, TRANS_DDI_HDCP_LINE_REKEY_DISABLE);
 	}
 }
@@ -99,7 +99,7 @@ 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 drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	struct intel_display *display = to_intel_display(dig_port->base.base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
 	bool enforce_type0 = false;
 	int k;
@@ -112,7 +112,7 @@ intel_hdcp_required_content_stream(struct intel_atomic_state *state,
 	if (!dig_port->hdcp_mst_type1_capable)
 		enforce_type0 = true;
 
-	drm_connector_list_iter_begin(&i915->drm, &conn_iter);
+	drm_connector_list_iter_begin(display->drm, &conn_iter);
 	for_each_intel_connector_iter(connector, &conn_iter) {
 		if (connector->base.status == connector_status_disconnected)
 			continue;
@@ -134,7 +134,7 @@ intel_hdcp_required_content_stream(struct intel_atomic_state *state,
 	}
 	drm_connector_list_iter_end(&conn_iter);
 
-	if (drm_WARN_ON(&i915->drm, data->k > INTEL_NUM_PIPES(i915) || data->k == 0))
+	if (drm_WARN_ON(display->drm, data->k > INTEL_NUM_PIPES(display) || data->k == 0))
 		return -EINVAL;
 
 	/*
@@ -182,7 +182,7 @@ static
 int intel_hdcp_read_valid_bksv(struct intel_digital_port *dig_port,
 			       const struct intel_hdcp_shim *shim, u8 *bksv)
 {
-	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	struct intel_display *display = to_intel_display(dig_port->base.base.dev);
 	int ret, i, tries = 2;
 
 	/* HDCP spec states that we must retry the bksv if it is invalid */
@@ -194,7 +194,7 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *dig_port,
 			break;
 	}
 	if (i == tries) {
-		drm_dbg_kms(&i915->drm, "Bksv is invalid\n");
+		drm_dbg_kms(display->drm, "Bksv is invalid\n");
 		return -ENODEV;
 	}
 
@@ -233,7 +233,7 @@ bool intel_hdcp_get_capability(struct intel_connector *connector)
  */
 static bool intel_hdcp2_prerequisite(struct intel_connector *connector)
 {
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 
 	/* I915 support for HDCP2.2 */
@@ -241,18 +241,18 @@ static bool intel_hdcp2_prerequisite(struct intel_connector *connector)
 		return false;
 
 	/* If MTL+ make sure gsc is loaded and proxy is setup */
-	if (intel_hdcp_gsc_cs_required(i915)) {
-		if (!intel_hdcp_gsc_check_status(i915))
+	if (intel_hdcp_gsc_cs_required(display)) {
+		if (!intel_hdcp_gsc_check_status(display))
 			return false;
 	}
 
 	/* MEI/GSC interface is solid depending on which is used */
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	if (!i915->display.hdcp.comp_added ||  !i915->display.hdcp.arbiter) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	if (!display->hdcp.comp_added || !display->hdcp.arbiter) {
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return false;
 	}
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return true;
 }
@@ -288,19 +288,19 @@ void intel_hdcp_get_remote_capability(struct intel_connector *connector,
 		*hdcp2_capable = false;
 }
 
-static bool intel_hdcp_in_use(struct drm_i915_private *i915,
+static bool intel_hdcp_in_use(struct intel_display *display,
 			      enum transcoder cpu_transcoder, enum port port)
 {
-	return intel_de_read(i915,
-			     HDCP_STATUS(i915, cpu_transcoder, port)) &
+	return intel_de_read(display,
+			     HDCP_STATUS(display, cpu_transcoder, port)) &
 		HDCP_STATUS_ENC;
 }
 
-static bool intel_hdcp2_in_use(struct drm_i915_private *i915,
+static bool intel_hdcp2_in_use(struct intel_display *display,
 			       enum transcoder cpu_transcoder, enum port port)
 {
-	return intel_de_read(i915,
-			     HDCP2_STATUS(i915, cpu_transcoder, port)) &
+	return intel_de_read(display,
+			     HDCP2_STATUS(display, cpu_transcoder, port)) &
 		LINK_ENCRYPTION_STATUS;
 }
 
@@ -325,8 +325,9 @@ static int intel_hdcp_poll_ksv_fifo(struct intel_digital_port *dig_port,
 	return 0;
 }
 
-static bool hdcp_key_loadable(struct drm_i915_private *i915)
+static bool hdcp_key_loadable(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	enum i915_power_well_id id;
 	intel_wakeref_t wakeref;
 	bool enabled = false;
@@ -353,19 +354,20 @@ static bool hdcp_key_loadable(struct drm_i915_private *i915)
 	return enabled;
 }
 
-static void intel_hdcp_clear_keys(struct drm_i915_private *i915)
+static void intel_hdcp_clear_keys(struct intel_display *display)
 {
-	intel_de_write(i915, HDCP_KEY_CONF, HDCP_CLEAR_KEYS_TRIGGER);
-	intel_de_write(i915, HDCP_KEY_STATUS,
+	intel_de_write(display, HDCP_KEY_CONF, HDCP_CLEAR_KEYS_TRIGGER);
+	intel_de_write(display, HDCP_KEY_STATUS,
 		       HDCP_KEY_LOAD_DONE | HDCP_KEY_LOAD_STATUS | HDCP_FUSE_IN_PROGRESS | HDCP_FUSE_ERROR | HDCP_FUSE_DONE);
 }
 
-static int intel_hdcp_load_keys(struct drm_i915_private *i915)
+static int intel_hdcp_load_keys(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	int ret;
 	u32 val;
 
-	val = intel_de_read(i915, HDCP_KEY_STATUS);
+	val = intel_de_read(display, HDCP_KEY_STATUS);
 	if ((val & HDCP_KEY_LOAD_DONE) && (val & HDCP_KEY_LOAD_STATUS))
 		return 0;
 
@@ -374,7 +376,7 @@ static int intel_hdcp_load_keys(struct drm_i915_private *i915)
 	 * out of reset. So if Key is not already loaded, its an error state.
 	 */
 	if (IS_HASWELL(i915) || IS_BROADWELL(i915))
-		if (!(intel_de_read(i915, HDCP_KEY_STATUS) & HDCP_KEY_LOAD_DONE))
+		if (!(intel_de_read(display, HDCP_KEY_STATUS) & HDCP_KEY_LOAD_DONE))
 			return -ENXIO;
 
 	/*
@@ -385,20 +387,20 @@ static int intel_hdcp_load_keys(struct drm_i915_private *i915)
 	 * process from other platforms. These platforms use the GT Driver
 	 * Mailbox interface.
 	 */
-	if (DISPLAY_VER(i915) == 9 && !IS_BROXTON(i915)) {
+	if (DISPLAY_VER(display) == 9 && !IS_BROXTON(i915)) {
 		ret = snb_pcode_write(&i915->uncore, SKL_PCODE_LOAD_HDCP_KEYS, 1);
 		if (ret) {
-			drm_err(&i915->drm,
+			drm_err(display->drm,
 				"Failed to initiate HDCP key load (%d)\n",
 				ret);
 			return ret;
 		}
 	} else {
-		intel_de_write(i915, HDCP_KEY_CONF, HDCP_KEY_LOAD_TRIGGER);
+		intel_de_write(display, HDCP_KEY_CONF, HDCP_KEY_LOAD_TRIGGER);
 	}
 
 	/* Wait for the keys to load (500us) */
-	ret = intel_de_wait_custom(i915, HDCP_KEY_STATUS,
+	ret = intel_de_wait_custom(display, HDCP_KEY_STATUS,
 				   HDCP_KEY_LOAD_DONE, HDCP_KEY_LOAD_DONE,
 				   10, 1, &val);
 	if (ret)
@@ -407,27 +409,27 @@ static int intel_hdcp_load_keys(struct drm_i915_private *i915)
 		return -ENXIO;
 
 	/* Send Aksv over to PCH display for use in authentication */
-	intel_de_write(i915, HDCP_KEY_CONF, HDCP_AKSV_SEND_TRIGGER);
+	intel_de_write(display, HDCP_KEY_CONF, HDCP_AKSV_SEND_TRIGGER);
 
 	return 0;
 }
 
 /* Returns updated SHA-1 index */
-static int intel_write_sha_text(struct drm_i915_private *i915, u32 sha_text)
+static int intel_write_sha_text(struct intel_display *display, u32 sha_text)
 {
-	intel_de_write(i915, HDCP_SHA_TEXT, sha_text);
-	if (intel_de_wait_for_set(i915, HDCP_REP_CTL, HDCP_SHA1_READY, 1)) {
-		drm_err(&i915->drm, "Timed out waiting for SHA1 ready\n");
+	intel_de_write(display, HDCP_SHA_TEXT, sha_text);
+	if (intel_de_wait_for_set(display, HDCP_REP_CTL, HDCP_SHA1_READY, 1)) {
+		drm_err(display->drm, "Timed out waiting for SHA1 ready\n");
 		return -ETIMEDOUT;
 	}
 	return 0;
 }
 
 static
-u32 intel_hdcp_get_repeater_ctl(struct drm_i915_private *i915,
+u32 intel_hdcp_get_repeater_ctl(struct intel_display *display,
 				enum transcoder cpu_transcoder, enum port port)
 {
-	if (DISPLAY_VER(i915) >= 12) {
+	if (DISPLAY_VER(display) >= 12) {
 		switch (cpu_transcoder) {
 		case TRANSCODER_A:
 			return HDCP_TRANSA_REP_PRESENT |
@@ -442,7 +444,7 @@ u32 intel_hdcp_get_repeater_ctl(struct drm_i915_private *i915,
 			return HDCP_TRANSD_REP_PRESENT |
 			       HDCP_TRANSD_SHA1_M0;
 		default:
-			drm_err(&i915->drm, "Unknown transcoder %d\n",
+			drm_err(display->drm, "Unknown transcoder %d\n",
 				cpu_transcoder);
 			return 0;
 		}
@@ -460,7 +462,7 @@ u32 intel_hdcp_get_repeater_ctl(struct drm_i915_private *i915,
 	case PORT_E:
 		return HDCP_DDIE_REP_PRESENT | HDCP_DDIE_SHA1_M0;
 	default:
-		drm_err(&i915->drm, "Unknown port %d\n", port);
+		drm_err(display->drm, "Unknown port %d\n", port);
 		return 0;
 	}
 }
@@ -471,7 +473,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 				u8 *ksv_fifo, u8 num_downstream, u8 *bstatus)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
 	enum port port = dig_port->base.port;
 	u32 vprime, sha_text, sha_leftovers, rep_ctl;
@@ -482,7 +484,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 		ret = shim->read_v_prime_part(dig_port, i, &vprime);
 		if (ret)
 			return ret;
-		intel_de_write(i915, HDCP_SHA_V_PRIME(i), vprime);
+		intel_de_write(display, HDCP_SHA_V_PRIME(i), vprime);
 	}
 
 	/*
@@ -498,8 +500,8 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 	sha_idx = 0;
 	sha_text = 0;
 	sha_leftovers = 0;
-	rep_ctl = intel_hdcp_get_repeater_ctl(i915, cpu_transcoder, port);
-	intel_de_write(i915, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
+	rep_ctl = intel_hdcp_get_repeater_ctl(display, cpu_transcoder, port);
+	intel_de_write(display, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
 	for (i = 0; i < num_downstream; i++) {
 		unsigned int sha_empty;
 		u8 *ksv = &ksv_fifo[i * DRM_HDCP_KSV_LEN];
@@ -511,14 +513,14 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 			sha_text |= ksv[j] << off;
 		}
 
-		ret = intel_write_sha_text(i915, sha_text);
+		ret = intel_write_sha_text(display, sha_text);
 		if (ret < 0)
 			return ret;
 
 		/* Programming guide writes this every 64 bytes */
 		sha_idx += sizeof(sha_text);
 		if (!(sha_idx % 64))
-			intel_de_write(i915, HDCP_REP_CTL,
+			intel_de_write(display, HDCP_REP_CTL,
 				       rep_ctl | HDCP_SHA1_TEXT_32);
 
 		/* Store the leftover bytes from the ksv in sha_text */
@@ -535,7 +537,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 		if (sizeof(sha_text) > sha_leftovers)
 			continue;
 
-		ret = intel_write_sha_text(i915, sha_text);
+		ret = intel_write_sha_text(display, sha_text);
 		if (ret < 0)
 			return ret;
 		sha_leftovers = 0;
@@ -551,73 +553,73 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 	 */
 	if (sha_leftovers == 0) {
 		/* Write 16 bits of text, 16 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_16);
-		ret = intel_write_sha_text(i915,
+		ret = intel_write_sha_text(display,
 					   bstatus[0] << 8 | bstatus[1]);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 		/* Write 32 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_0);
-		ret = intel_write_sha_text(i915, 0);
+		ret = intel_write_sha_text(display, 0);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 		/* Write 16 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_16);
-		ret = intel_write_sha_text(i915, 0);
+		ret = intel_write_sha_text(display, 0);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 	} else if (sha_leftovers == 1) {
 		/* Write 24 bits of text, 8 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_24);
 		sha_text |= bstatus[0] << 16 | bstatus[1] << 8;
 		/* Only 24-bits of data, must be in the LSB */
 		sha_text = (sha_text & 0xffffff00) >> 8;
-		ret = intel_write_sha_text(i915, sha_text);
+		ret = intel_write_sha_text(display, sha_text);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 		/* Write 32 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_0);
-		ret = intel_write_sha_text(i915, 0);
+		ret = intel_write_sha_text(display, 0);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 		/* Write 24 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_8);
-		ret = intel_write_sha_text(i915, 0);
+		ret = intel_write_sha_text(display, 0);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 	} else if (sha_leftovers == 2) {
 		/* Write 32 bits of text */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_32);
 		sha_text |= bstatus[0] << 8 | bstatus[1];
-		ret = intel_write_sha_text(i915, sha_text);
+		ret = intel_write_sha_text(display, sha_text);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 		/* Write 64 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_0);
 		for (i = 0; i < 2; i++) {
-			ret = intel_write_sha_text(i915, 0);
+			ret = intel_write_sha_text(display, 0);
 			if (ret < 0)
 				return ret;
 			sha_idx += sizeof(sha_text);
@@ -627,56 +629,56 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 		 * Terminate the SHA-1 stream by hand. For the other leftover
 		 * cases this is appended by the hardware.
 		 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_32);
 		sha_text = DRM_HDCP_SHA1_TERMINATOR << 24;
-		ret = intel_write_sha_text(i915, sha_text);
+		ret = intel_write_sha_text(display, sha_text);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 	} else if (sha_leftovers == 3) {
 		/* Write 32 bits of text (filled from LSB) */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_32);
 		sha_text |= bstatus[0];
-		ret = intel_write_sha_text(i915, sha_text);
+		ret = intel_write_sha_text(display, sha_text);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 		/* Write 8 bits of text (filled from LSB), 24 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_8);
-		ret = intel_write_sha_text(i915, bstatus[1]);
+		ret = intel_write_sha_text(display, bstatus[1]);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 		/* Write 32 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_0);
-		ret = intel_write_sha_text(i915, 0);
+		ret = intel_write_sha_text(display, 0);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 
 		/* Write 8 bits of M0 */
-		intel_de_write(i915, HDCP_REP_CTL,
+		intel_de_write(display, HDCP_REP_CTL,
 			       rep_ctl | HDCP_SHA1_TEXT_24);
-		ret = intel_write_sha_text(i915, 0);
+		ret = intel_write_sha_text(display, 0);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
 	} else {
-		drm_dbg_kms(&i915->drm, "Invalid number of leftovers %d\n",
+		drm_dbg_kms(display->drm, "Invalid number of leftovers %d\n",
 			    sha_leftovers);
 		return -EINVAL;
 	}
 
-	intel_de_write(i915, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
+	intel_de_write(display, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
 	/* Fill up to 64-4 bytes with zeros (leave the last write for length) */
 	while ((sha_idx % 64) < (64 - sizeof(sha_text))) {
-		ret = intel_write_sha_text(i915, 0);
+		ret = intel_write_sha_text(display, 0);
 		if (ret < 0)
 			return ret;
 		sha_idx += sizeof(sha_text);
@@ -688,20 +690,20 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 	 *  - 10 bytes for BINFO/BSTATUS(2), M0(8)
 	 */
 	sha_text = (num_downstream * 5 + 10) * 8;
-	ret = intel_write_sha_text(i915, sha_text);
+	ret = intel_write_sha_text(display, sha_text);
 	if (ret < 0)
 		return ret;
 
 	/* Tell the HW we're done with the hash and wait for it to ACK */
-	intel_de_write(i915, HDCP_REP_CTL,
+	intel_de_write(display, HDCP_REP_CTL,
 		       rep_ctl | HDCP_SHA1_COMPLETE_HASH);
-	if (intel_de_wait_for_set(i915, HDCP_REP_CTL,
+	if (intel_de_wait_for_set(display, HDCP_REP_CTL,
 				  HDCP_SHA1_COMPLETE, 1)) {
-		drm_err(&i915->drm, "Timed out waiting for SHA1 complete\n");
+		drm_err(display->drm, "Timed out waiting for SHA1 complete\n");
 		return -ETIMEDOUT;
 	}
-	if (!(intel_de_read(i915, HDCP_REP_CTL) & HDCP_SHA1_V_MATCH)) {
-		drm_dbg_kms(&i915->drm, "SHA-1 mismatch, HDCP failed\n");
+	if (!(intel_de_read(display, HDCP_REP_CTL) & HDCP_SHA1_V_MATCH)) {
+		drm_dbg_kms(display->drm, "SHA-1 mismatch, HDCP failed\n");
 		return -ENXIO;
 	}
 
@@ -713,14 +715,14 @@ static
 int intel_hdcp_auth_downstream(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
 	u8 bstatus[2], num_downstream, *ksv_fifo;
 	int ret, i, tries = 3;
 
 	ret = intel_hdcp_poll_ksv_fifo(dig_port, shim);
 	if (ret) {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "KSV list failed to become ready (%d)\n", ret);
 		return ret;
 	}
@@ -731,7 +733,7 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
 
 	if (DRM_HDCP_MAX_DEVICE_EXCEEDED(bstatus[0]) ||
 	    DRM_HDCP_MAX_CASCADE_EXCEEDED(bstatus[1])) {
-		drm_dbg_kms(&i915->drm, "Max Topology Limit Exceeded\n");
+		drm_dbg_kms(display->drm, "Max Topology Limit Exceeded\n");
 		return -EPERM;
 	}
 
@@ -744,14 +746,14 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
 	 */
 	num_downstream = DRM_HDCP_NUM_DOWNSTREAM(bstatus[0]);
 	if (num_downstream == 0) {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "Repeater with zero downstream devices\n");
 		return -EINVAL;
 	}
 
 	ksv_fifo = kcalloc(DRM_HDCP_KSV_LEN, num_downstream, GFP_KERNEL);
 	if (!ksv_fifo) {
-		drm_dbg_kms(&i915->drm, "Out of mem: ksv_fifo\n");
+		drm_dbg_kms(display->drm, "Out of mem: ksv_fifo\n");
 		return -ENOMEM;
 	}
 
@@ -759,9 +761,9 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
 	if (ret)
 		goto err;
 
-	if (drm_hdcp_check_ksvs_revoked(&i915->drm, ksv_fifo,
+	if (drm_hdcp_check_ksvs_revoked(display->drm, ksv_fifo,
 					num_downstream) > 0) {
-		drm_err(&i915->drm, "Revoked Ksv(s) in ksv_fifo\n");
+		drm_err(display->drm, "Revoked Ksv(s) in ksv_fifo\n");
 		ret = -EPERM;
 		goto err;
 	}
@@ -779,12 +781,12 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
 	}
 
 	if (i == tries) {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "V Prime validation failed.(%d)\n", ret);
 		goto err;
 	}
 
-	drm_dbg_kms(&i915->drm, "HDCP is enabled (%d downstream devices)\n",
+	drm_dbg_kms(display->drm, "HDCP is enabled (%d downstream devices)\n",
 		    num_downstream);
 	ret = 0;
 err:
@@ -796,7 +798,7 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
 static int intel_hdcp_auth(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	const struct intel_hdcp_shim *shim = hdcp->shim;
 	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
@@ -828,7 +830,7 @@ static int intel_hdcp_auth(struct intel_connector *connector)
 		if (ret)
 			return ret;
 		if (!hdcp_capable) {
-			drm_dbg_kms(&i915->drm,
+			drm_dbg_kms(display->drm,
 				    "Panel is not HDCP capable\n");
 			return -EINVAL;
 		}
@@ -836,24 +838,24 @@ static int intel_hdcp_auth(struct intel_connector *connector)
 
 	/* Initialize An with 2 random values and acquire it */
 	for (i = 0; i < 2; i++)
-		intel_de_write(i915,
-			       HDCP_ANINIT(i915, cpu_transcoder, port),
+		intel_de_write(display,
+			       HDCP_ANINIT(display, cpu_transcoder, port),
 			       get_random_u32());
-	intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port),
+	intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port),
 		       HDCP_CONF_CAPTURE_AN);
 
 	/* Wait for An to be acquired */
-	if (intel_de_wait_for_set(i915,
-				  HDCP_STATUS(i915, cpu_transcoder, port),
+	if (intel_de_wait_for_set(display,
+				  HDCP_STATUS(display, cpu_transcoder, port),
 				  HDCP_STATUS_AN_READY, 1)) {
-		drm_err(&i915->drm, "Timed out waiting for An\n");
+		drm_err(display->drm, "Timed out waiting for An\n");
 		return -ETIMEDOUT;
 	}
 
-	an.reg[0] = intel_de_read(i915,
-				  HDCP_ANLO(i915, cpu_transcoder, port));
-	an.reg[1] = intel_de_read(i915,
-				  HDCP_ANHI(i915, cpu_transcoder, port));
+	an.reg[0] = intel_de_read(display,
+				  HDCP_ANLO(display, cpu_transcoder, port));
+	an.reg[1] = intel_de_read(display,
+				  HDCP_ANHI(display, cpu_transcoder, port));
 	ret = shim->write_an_aksv(dig_port, an.shim);
 	if (ret)
 		return ret;
@@ -866,34 +868,34 @@ static int intel_hdcp_auth(struct intel_connector *connector)
 	if (ret < 0)
 		return ret;
 
-	if (drm_hdcp_check_ksvs_revoked(&i915->drm, bksv.shim, 1) > 0) {
-		drm_err(&i915->drm, "BKSV is revoked\n");
+	if (drm_hdcp_check_ksvs_revoked(display->drm, bksv.shim, 1) > 0) {
+		drm_err(display->drm, "BKSV is revoked\n");
 		return -EPERM;
 	}
 
-	intel_de_write(i915, HDCP_BKSVLO(i915, cpu_transcoder, port),
+	intel_de_write(display, HDCP_BKSVLO(display, cpu_transcoder, port),
 		       bksv.reg[0]);
-	intel_de_write(i915, HDCP_BKSVHI(i915, cpu_transcoder, port),
+	intel_de_write(display, HDCP_BKSVHI(display, cpu_transcoder, port),
 		       bksv.reg[1]);
 
 	ret = shim->repeater_present(dig_port, &repeater_present);
 	if (ret)
 		return ret;
 	if (repeater_present)
-		intel_de_write(i915, HDCP_REP_CTL,
-			       intel_hdcp_get_repeater_ctl(i915, cpu_transcoder, port));
+		intel_de_write(display, HDCP_REP_CTL,
+			       intel_hdcp_get_repeater_ctl(display, cpu_transcoder, port));
 
 	ret = shim->toggle_signalling(dig_port, cpu_transcoder, true);
 	if (ret)
 		return ret;
 
-	intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port),
+	intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port),
 		       HDCP_CONF_AUTH_AND_ENC);
 
 	/* Wait for R0 ready */
-	if (wait_for(intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)) &
+	if (wait_for(intel_de_read(display, HDCP_STATUS(display, cpu_transcoder, port)) &
 		     (HDCP_STATUS_R0_READY | HDCP_STATUS_ENC), 1)) {
-		drm_err(&i915->drm, "Timed out waiting for R0 ready\n");
+		drm_err(display->drm, "Timed out waiting for R0 ready\n");
 		return -ETIMEDOUT;
 	}
 
@@ -919,30 +921,30 @@ static int intel_hdcp_auth(struct intel_connector *connector)
 		ret = shim->read_ri_prime(dig_port, ri.shim);
 		if (ret)
 			return ret;
-		intel_de_write(i915,
-			       HDCP_RPRIME(i915, cpu_transcoder, port),
+		intel_de_write(display,
+			       HDCP_RPRIME(display, cpu_transcoder, port),
 			       ri.reg);
 
 		/* Wait for Ri prime match */
-		if (!wait_for(intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)) &
+		if (!wait_for(intel_de_read(display, HDCP_STATUS(display, cpu_transcoder, port)) &
 			      (HDCP_STATUS_RI_MATCH | HDCP_STATUS_ENC), 1))
 			break;
 	}
 
 	if (i == tries) {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "Timed out waiting for Ri prime match (%x)\n",
-			    intel_de_read(i915,
-					  HDCP_STATUS(i915, cpu_transcoder, port)));
+			    intel_de_read(display,
+					  HDCP_STATUS(display, cpu_transcoder, port)));
 		return -ETIMEDOUT;
 	}
 
 	/* Wait for encryption confirmation */
-	if (intel_de_wait_for_set(i915,
-				  HDCP_STATUS(i915, cpu_transcoder, port),
+	if (intel_de_wait_for_set(display,
+				  HDCP_STATUS(display, cpu_transcoder, port),
 				  HDCP_STATUS_ENC,
 				  HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
-		drm_err(&i915->drm, "Timed out waiting for encryption\n");
+		drm_err(display->drm, "Timed out waiting for encryption\n");
 		return -ETIMEDOUT;
 	}
 
@@ -950,42 +952,42 @@ static int intel_hdcp_auth(struct intel_connector *connector)
 	if (shim->stream_encryption) {
 		ret = shim->stream_encryption(connector, true);
 		if (ret) {
-			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 1.4 stream enc\n",
+			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 1.4 stream enc\n",
 				connector->base.base.id, connector->base.name);
 			return ret;
 		}
-		drm_dbg_kms(&i915->drm, "HDCP 1.4 transcoder: %s stream encrypted\n",
+		drm_dbg_kms(display->drm, "HDCP 1.4 transcoder: %s stream encrypted\n",
 			    transcoder_name(hdcp->stream_transcoder));
 	}
 
 	if (repeater_present)
 		return intel_hdcp_auth_downstream(connector);
 
-	drm_dbg_kms(&i915->drm, "HDCP is enabled (no repeater present)\n");
+	drm_dbg_kms(display->drm, "HDCP is enabled (no repeater present)\n");
 	return 0;
 }
 
 static int _intel_hdcp_disable(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = dig_port->base.port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	u32 repeater_ctl;
 	int ret;
 
-	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP is being disabled...\n",
+	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being disabled...\n",
 		    connector->base.base.id, connector->base.name);
 
 	if (hdcp->shim->stream_encryption) {
 		ret = hdcp->shim->stream_encryption(connector, false);
 		if (ret) {
-			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 1.4 stream enc\n",
+			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 1.4 stream enc\n",
 				connector->base.base.id, connector->base.name);
 			return ret;
 		}
-		drm_dbg_kms(&i915->drm, "HDCP 1.4 transcoder: %s stream encryption disabled\n",
+		drm_dbg_kms(display->drm, "HDCP 1.4 transcoder: %s stream encryption disabled\n",
 			    transcoder_name(hdcp->stream_transcoder));
 		/*
 		 * If there are other connectors on this port using HDCP,
@@ -997,51 +999,51 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
 	}
 
 	hdcp->hdcp_encrypted = false;
-	intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port), 0);
-	if (intel_de_wait_for_clear(i915,
-				    HDCP_STATUS(i915, cpu_transcoder, port),
+	intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port), 0);
+	if (intel_de_wait_for_clear(display,
+				    HDCP_STATUS(display, cpu_transcoder, port),
 				    ~0, HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
-		drm_err(&i915->drm,
+		drm_err(display->drm,
 			"Failed to disable HDCP, timeout clearing status\n");
 		return -ETIMEDOUT;
 	}
 
-	repeater_ctl = intel_hdcp_get_repeater_ctl(i915, cpu_transcoder,
+	repeater_ctl = intel_hdcp_get_repeater_ctl(display, cpu_transcoder,
 						   port);
-	intel_de_rmw(i915, HDCP_REP_CTL, repeater_ctl, 0);
+	intel_de_rmw(display, HDCP_REP_CTL, repeater_ctl, 0);
 
 	ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder, false);
 	if (ret) {
-		drm_err(&i915->drm, "Failed to disable HDCP signalling\n");
+		drm_err(display->drm, "Failed to disable HDCP signalling\n");
 		return ret;
 	}
 
-	drm_dbg_kms(&i915->drm, "HDCP is disabled\n");
+	drm_dbg_kms(display->drm, "HDCP is disabled\n");
 	return 0;
 }
 
 static int intel_hdcp1_enable(struct intel_connector *connector)
 {
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	int i, ret, tries = 3;
 
-	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP is being enabled...\n",
+	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being enabled...\n",
 		    connector->base.base.id, connector->base.name);
 
-	if (!hdcp_key_loadable(i915)) {
-		drm_err(&i915->drm, "HDCP key Load is not possible\n");
+	if (!hdcp_key_loadable(display)) {
+		drm_err(display->drm, "HDCP key Load is not possible\n");
 		return -ENXIO;
 	}
 
 	for (i = 0; i < KEY_LOAD_TRIES; i++) {
-		ret = intel_hdcp_load_keys(i915);
+		ret = intel_hdcp_load_keys(display);
 		if (!ret)
 			break;
-		intel_hdcp_clear_keys(i915);
+		intel_hdcp_clear_keys(display);
 	}
 	if (ret) {
-		drm_err(&i915->drm, "Could not load HDCP keys, (%d)\n",
+		drm_err(display->drm, "Could not load HDCP keys, (%d)\n",
 			ret);
 		return ret;
 	}
@@ -1054,13 +1056,13 @@ static int intel_hdcp1_enable(struct intel_connector *connector)
 			return 0;
 		}
 
-		drm_dbg_kms(&i915->drm, "HDCP Auth failure (%d)\n", ret);
+		drm_dbg_kms(display->drm, "HDCP Auth failure (%d)\n", ret);
 
 		/* Ensuring HDCP encryption and signalling are stopped. */
 		_intel_hdcp_disable(connector);
 	}
 
-	drm_dbg_kms(&i915->drm,
+	drm_dbg_kms(display->drm,
 		    "HDCP authentication failed (%d tries/%d)\n", tries, ret);
 	return ret;
 }
@@ -1074,9 +1076,9 @@ static void intel_hdcp_update_value(struct intel_connector *connector,
 				    u64 value, bool update_property)
 {
 	struct drm_device *dev = connector->base.dev;
+	struct drm_i915_private *i915 = to_i915(dev);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 
 	drm_WARN_ON(connector->base.dev, !mutex_is_locked(&hdcp->mutex));
 
@@ -1103,7 +1105,7 @@ static void intel_hdcp_update_value(struct intel_connector *connector,
 static int intel_hdcp_check_link(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = dig_port->base.port;
 	enum transcoder cpu_transcoder;
@@ -1121,12 +1123,12 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
 		goto out;
 	}
 
-	if (drm_WARN_ON(&i915->drm,
-			!intel_hdcp_in_use(i915, cpu_transcoder, port))) {
-		drm_err(&i915->drm,
+	if (drm_WARN_ON(display->drm,
+			!intel_hdcp_in_use(display, cpu_transcoder, port))) {
+		drm_err(display->drm,
 			"[CONNECTOR:%d:%s] HDCP link stopped encryption,%x\n",
 			connector->base.base.id, connector->base.name,
-			intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)));
+			intel_de_read(display, HDCP_STATUS(display, cpu_transcoder, port)));
 		ret = -ENXIO;
 		intel_hdcp_update_value(connector,
 					DRM_MODE_CONTENT_PROTECTION_DESIRED,
@@ -1142,13 +1144,13 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
 		goto out;
 	}
 
-	drm_dbg_kms(&i915->drm,
+	drm_dbg_kms(display->drm,
 		    "[CONNECTOR:%d:%s] HDCP link failed, retrying authentication\n",
 		    connector->base.base.id, connector->base.name);
 
 	ret = _intel_hdcp_disable(connector);
 	if (ret) {
-		drm_err(&i915->drm, "Failed to disable hdcp (%d)\n", ret);
+		drm_err(display->drm, "Failed to disable hdcp (%d)\n", ret);
 		intel_hdcp_update_value(connector,
 					DRM_MODE_CONTENT_PROTECTION_DESIRED,
 					true);
@@ -1169,9 +1171,9 @@ static void intel_hdcp_prop_work(struct work_struct *work)
 	struct intel_hdcp *hdcp = container_of(work, struct intel_hdcp,
 					       prop_work);
 	struct intel_connector *connector = intel_hdcp_to_connector(hdcp);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 
-	drm_modeset_lock(&i915->drm.mode_config.connection_mutex, NULL);
+	drm_modeset_lock(&display->drm->mode_config.connection_mutex, NULL);
 	mutex_lock(&hdcp->mutex);
 
 	/*
@@ -1184,7 +1186,7 @@ static void intel_hdcp_prop_work(struct work_struct *work)
 						   hdcp->value);
 
 	mutex_unlock(&hdcp->mutex);
-	drm_modeset_unlock(&i915->drm.mode_config.connection_mutex);
+	drm_modeset_unlock(&display->drm->mode_config.connection_mutex);
 
 	drm_connector_put(&connector->base);
 }
@@ -1200,24 +1202,24 @@ hdcp2_prepare_ake_init(struct intel_connector *connector,
 		       struct hdcp2_ake_init *ake_data)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
 	ret = arbiter->ops->initiate_hdcp2_session(arbiter->hdcp_dev, data, ake_data);
 	if (ret)
-		drm_dbg_kms(&i915->drm, "Prepare_ake_init failed. %d\n",
+		drm_dbg_kms(display->drm, "Prepare_ake_init failed. %d\n",
 			    ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1230,16 +1232,16 @@ hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector,
 				size_t *msg_sz)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
@@ -1247,9 +1249,9 @@ hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector,
 							 rx_cert, paired,
 							 ek_pub_km, msg_sz);
 	if (ret < 0)
-		drm_dbg_kms(&i915->drm, "Verify rx_cert failed. %d\n",
+		drm_dbg_kms(display->drm, "Verify rx_cert failed. %d\n",
 			    ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1258,23 +1260,23 @@ static int hdcp2_verify_hprime(struct intel_connector *connector,
 			       struct hdcp2_ake_send_hprime *rx_hprime)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
 	ret = arbiter->ops->verify_hprime(arbiter->hdcp_dev, data, rx_hprime);
 	if (ret < 0)
-		drm_dbg_kms(&i915->drm, "Verify hprime failed. %d\n", ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		drm_dbg_kms(display->drm, "Verify hprime failed. %d\n", ret);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1284,24 +1286,24 @@ hdcp2_store_pairing_info(struct intel_connector *connector,
 			 struct hdcp2_ake_send_pairing_info *pairing_info)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
 	ret = arbiter->ops->store_pairing_info(arbiter->hdcp_dev, data, pairing_info);
 	if (ret < 0)
-		drm_dbg_kms(&i915->drm, "Store pairing info failed. %d\n",
+		drm_dbg_kms(display->drm, "Store pairing info failed. %d\n",
 			    ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1311,24 +1313,24 @@ hdcp2_prepare_lc_init(struct intel_connector *connector,
 		      struct hdcp2_lc_init *lc_init)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
 	ret = arbiter->ops->initiate_locality_check(arbiter->hdcp_dev, data, lc_init);
 	if (ret < 0)
-		drm_dbg_kms(&i915->drm, "Prepare lc_init failed. %d\n",
+		drm_dbg_kms(display->drm, "Prepare lc_init failed. %d\n",
 			    ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1338,24 +1340,24 @@ hdcp2_verify_lprime(struct intel_connector *connector,
 		    struct hdcp2_lc_send_lprime *rx_lprime)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
 	ret = arbiter->ops->verify_lprime(arbiter->hdcp_dev, data, rx_lprime);
 	if (ret < 0)
-		drm_dbg_kms(&i915->drm, "Verify L_Prime failed. %d\n",
+		drm_dbg_kms(display->drm, "Verify L_Prime failed. %d\n",
 			    ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1364,24 +1366,24 @@ static int hdcp2_prepare_skey(struct intel_connector *connector,
 			      struct hdcp2_ske_send_eks *ske_data)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
 	ret = arbiter->ops->get_session_key(arbiter->hdcp_dev, data, ske_data);
 	if (ret < 0)
-		drm_dbg_kms(&i915->drm, "Get session key failed. %d\n",
+		drm_dbg_kms(display->drm, "Get session key failed. %d\n",
 			    ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1393,16 +1395,16 @@ hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector,
 				      struct hdcp2_rep_send_ack *rep_send_ack)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
@@ -1411,9 +1413,9 @@ hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector,
 							    rep_topology,
 							    rep_send_ack);
 	if (ret < 0)
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "Verify rep topology failed. %d\n", ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1423,23 +1425,23 @@ hdcp2_verify_mprime(struct intel_connector *connector,
 		    struct hdcp2_rep_stream_ready *stream_ready)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
 	ret = arbiter->ops->verify_mprime(arbiter->hdcp_dev, data, stream_ready);
 	if (ret < 0)
-		drm_dbg_kms(&i915->drm, "Verify mprime failed. %d\n", ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		drm_dbg_kms(display->drm, "Verify mprime failed. %d\n", ret);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1447,24 +1449,24 @@ hdcp2_verify_mprime(struct intel_connector *connector,
 static int hdcp2_authenticate_port(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
 	ret = arbiter->ops->enable_hdcp_authentication(arbiter->hdcp_dev, data);
 	if (ret < 0)
-		drm_dbg_kms(&i915->drm, "Enable hdcp auth failed. %d\n",
+		drm_dbg_kms(display->drm, "Enable hdcp auth failed. %d\n",
 			    ret);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1472,21 +1474,21 @@ static int hdcp2_authenticate_port(struct intel_connector *connector)
 static int hdcp2_close_session(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	arbiter = i915->display.hdcp.arbiter;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	arbiter = display->hdcp.arbiter;
 
 	if (!arbiter || !arbiter->ops) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return -EINVAL;
 	}
 
 	ret = arbiter->ops->close_hdcp_session(arbiter->hdcp_dev,
 					     &dig_port->hdcp_port_data);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
@@ -1499,7 +1501,7 @@ static int hdcp2_deauthenticate_port(struct intel_connector *connector)
 /* Authentication flow starts from here */
 static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
 {
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	union {
 		struct hdcp2_ake_init ake_init;
@@ -1531,16 +1533,16 @@ static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
 		return ret;
 
 	if (msgs.send_cert.rx_caps[0] != HDCP_2_2_RX_CAPS_VERSION_VAL) {
-		drm_dbg_kms(&i915->drm, "cert.rx_caps dont claim HDCP2.2\n");
+		drm_dbg_kms(display->drm, "cert.rx_caps dont claim HDCP2.2\n");
 		return -EINVAL;
 	}
 
 	hdcp->is_repeater = HDCP_2_2_RX_REPEATER(msgs.send_cert.rx_caps[2]);
 
-	if (drm_hdcp_check_ksvs_revoked(&i915->drm,
+	if (drm_hdcp_check_ksvs_revoked(display->drm,
 					msgs.send_cert.cert_rx.receiver_id,
 					1) > 0) {
-		drm_err(&i915->drm, "Receiver ID is revoked\n");
+		drm_err(display->drm, "Receiver ID is revoked\n");
 		return -EPERM;
 	}
 
@@ -1692,7 +1694,7 @@ static
 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	union {
 		struct hdcp2_rep_send_receiverid_list recvid_list;
@@ -1712,7 +1714,7 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 
 	if (HDCP_2_2_MAX_CASCADE_EXCEEDED(rx_info[1]) ||
 	    HDCP_2_2_MAX_DEVS_EXCEEDED(rx_info[1])) {
-		drm_dbg_kms(&i915->drm, "Topology Max Size Exceeded\n");
+		drm_dbg_kms(display->drm, "Topology Max Size Exceeded\n");
 		return -EINVAL;
 	}
 
@@ -1725,7 +1727,7 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 		!HDCP_2_2_HDCP_2_0_REP_CONNECTED(rx_info[1]);
 
 	if (!dig_port->hdcp_mst_type1_capable && hdcp->content_type) {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "HDCP1.x or 2.0 Legacy Device Downstream\n");
 		return -EINVAL;
 	}
@@ -1735,23 +1737,23 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 		drm_hdcp_be24_to_cpu((const u8 *)msgs.recvid_list.seq_num_v);
 
 	if (!hdcp->hdcp2_encrypted && seq_num_v) {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "Non zero Seq_num_v at first RecvId_List msg\n");
 		return -EINVAL;
 	}
 
 	if (seq_num_v < hdcp->seq_num_v) {
 		/* Roll over of the seq_num_v from repeater. Reauthenticate. */
-		drm_dbg_kms(&i915->drm, "Seq_num_v roll over.\n");
+		drm_dbg_kms(display->drm, "Seq_num_v roll over.\n");
 		return -EINVAL;
 	}
 
 	device_cnt = (HDCP_2_2_DEV_COUNT_HI(rx_info[0]) << 4 |
 		      HDCP_2_2_DEV_COUNT_LO(rx_info[1]));
-	if (drm_hdcp_check_ksvs_revoked(&i915->drm,
+	if (drm_hdcp_check_ksvs_revoked(display->drm,
 					msgs.recvid_list.receiver_ids,
 					device_cnt) > 0) {
-		drm_err(&i915->drm, "Revoked receiver ID(s) is in list\n");
+		drm_err(display->drm, "Revoked receiver ID(s) is in list\n");
 		return -EPERM;
 	}
 
@@ -1772,27 +1774,27 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 
 static int hdcp2_authenticate_sink(struct intel_connector *connector)
 {
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	const struct intel_hdcp_shim *shim = hdcp->shim;
 	int ret;
 
 	ret = hdcp2_authentication_key_exchange(connector);
 	if (ret < 0) {
-		drm_dbg_kms(&i915->drm, "AKE Failed. Err : %d\n", ret);
+		drm_dbg_kms(display->drm, "AKE Failed. Err : %d\n", ret);
 		return ret;
 	}
 
 	ret = hdcp2_locality_check(connector);
 	if (ret < 0) {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "Locality Check failed. Err : %d\n", ret);
 		return ret;
 	}
 
 	ret = hdcp2_session_key_exchange(connector);
 	if (ret < 0) {
-		drm_dbg_kms(&i915->drm, "SKE Failed. Err : %d\n", ret);
+		drm_dbg_kms(display->drm, "SKE Failed. Err : %d\n", ret);
 		return ret;
 	}
 
@@ -1807,7 +1809,7 @@ static int hdcp2_authenticate_sink(struct intel_connector *connector)
 	if (hdcp->is_repeater) {
 		ret = hdcp2_authenticate_repeater_topology(connector);
 		if (ret < 0) {
-			drm_dbg_kms(&i915->drm,
+			drm_dbg_kms(display->drm,
 				    "Repeater Auth Failed. Err: %d\n", ret);
 			return ret;
 		}
@@ -1819,16 +1821,16 @@ static int hdcp2_authenticate_sink(struct intel_connector *connector)
 static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	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;
 	int ret = 0;
 
-	if (!(intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) &
+	if (!(intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) &
 			    LINK_ENCRYPTION_STATUS)) {
-		drm_err(&i915->drm, "[CONNECTOR:%d:%s] HDCP 2.2 Link is not encrypted\n",
+		drm_err(display->drm, "[CONNECTOR:%d:%s] HDCP 2.2 Link is not encrypted\n",
 			connector->base.base.id, connector->base.name);
 		ret = -EPERM;
 		goto link_recover;
@@ -1837,11 +1839,11 @@ static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
 	if (hdcp->shim->stream_2_2_encryption) {
 		ret = hdcp->shim->stream_2_2_encryption(connector, true);
 		if (ret) {
-			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 2.2 stream enc\n",
+			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 2.2 stream enc\n",
 				connector->base.base.id, connector->base.name);
 			return ret;
 		}
-		drm_dbg_kms(&i915->drm, "HDCP 2.2 transcoder: %s stream encrypted\n",
+		drm_dbg_kms(display->drm, "HDCP 2.2 transcoder: %s stream encrypted\n",
 			    transcoder_name(hdcp->stream_transcoder));
 	}
 
@@ -1849,7 +1851,7 @@ static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
 
 link_recover:
 	if (hdcp2_deauthenticate_port(connector) < 0)
-		drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
+		drm_dbg_kms(display->drm, "Port deauth failed.\n");
 
 	dig_port->hdcp_auth_status = false;
 	data->k = 0;
@@ -1860,34 +1862,34 @@ static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
 static int hdcp2_enable_encryption(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = dig_port->base.port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
 
-	drm_WARN_ON(&i915->drm,
-		    intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) &
+	drm_WARN_ON(display->drm,
+		    intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) &
 		    LINK_ENCRYPTION_STATUS);
 	if (hdcp->shim->toggle_signalling) {
 		ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder,
 						    true);
 		if (ret) {
-			drm_err(&i915->drm,
+			drm_err(display->drm,
 				"Failed to enable HDCP signalling. %d\n",
 				ret);
 			return ret;
 		}
 	}
 
-	if (intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) &
+	if (intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) &
 	    LINK_AUTH_STATUS)
 		/* Link is Authenticated. Now set for Encryption */
-		intel_de_rmw(i915, HDCP2_CTL(i915, cpu_transcoder, port),
+		intel_de_rmw(display, HDCP2_CTL(display, cpu_transcoder, port),
 			     0, CTL_LINK_ENCRYPTION_REQ);
 
-	ret = intel_de_wait_for_set(i915,
-				    HDCP2_STATUS(i915, cpu_transcoder,
+	ret = intel_de_wait_for_set(display,
+				    HDCP2_STATUS(display, cpu_transcoder,
 						 port),
 				    LINK_ENCRYPTION_STATUS,
 				    HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
@@ -1899,31 +1901,32 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
 static int hdcp2_disable_encryption(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = dig_port->base.port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
 
-	drm_WARN_ON(&i915->drm, !(intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) &
-				      LINK_ENCRYPTION_STATUS));
+	drm_WARN_ON(display->drm,
+		    !(intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) &
+				    LINK_ENCRYPTION_STATUS));
 
-	intel_de_rmw(i915, HDCP2_CTL(i915, cpu_transcoder, port),
+	intel_de_rmw(display, HDCP2_CTL(display, cpu_transcoder, port),
 		     CTL_LINK_ENCRYPTION_REQ, 0);
 
-	ret = intel_de_wait_for_clear(i915,
-				      HDCP2_STATUS(i915, cpu_transcoder,
+	ret = intel_de_wait_for_clear(display,
+				      HDCP2_STATUS(display, cpu_transcoder,
 						   port),
 				      LINK_ENCRYPTION_STATUS,
 				      HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
 	if (ret == -ETIMEDOUT)
-		drm_dbg_kms(&i915->drm, "Disable Encryption Timedout");
+		drm_dbg_kms(display->drm, "Disable Encryption Timedout");
 
 	if (hdcp->shim->toggle_signalling) {
 		ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder,
 						    false);
 		if (ret) {
-			drm_err(&i915->drm,
+			drm_err(display->drm,
 				"Failed to disable HDCP signalling. %d\n",
 				ret);
 			return ret;
@@ -1936,7 +1939,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
 static int
 hdcp2_propagate_stream_management_info(struct intel_connector *connector)
 {
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	int i, tries = 3, ret;
 
 	if (!connector->hdcp.is_repeater)
@@ -1949,12 +1952,12 @@ hdcp2_propagate_stream_management_info(struct intel_connector *connector)
 
 		/* Lets restart the auth incase of seq_num_m roll over */
 		if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) {
-			drm_dbg_kms(&i915->drm,
+			drm_dbg_kms(display->drm,
 				    "seq_num_m roll over.(%d)\n", ret);
 			break;
 		}
 
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "HDCP2 stream management %d of %d Failed.(%d)\n",
 			    i + 1, tries, ret);
 	}
@@ -1966,7 +1969,7 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 					  struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	int ret = 0, i, tries = 3;
 
 	for (i = 0; i < tries && !dig_port->hdcp_auth_status; i++) {
@@ -1974,7 +1977,7 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 		if (!ret) {
 			ret = intel_hdcp_prepare_streams(state, connector);
 			if (ret) {
-				drm_dbg_kms(&i915->drm,
+				drm_dbg_kms(display->drm,
 					    "Prepare stream failed.(%d)\n",
 					    ret);
 				break;
@@ -1982,7 +1985,7 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 
 			ret = hdcp2_propagate_stream_management_info(connector);
 			if (ret) {
-				drm_dbg_kms(&i915->drm,
+				drm_dbg_kms(display->drm,
 					    "Stream management failed.(%d)\n",
 					    ret);
 				break;
@@ -1991,15 +1994,15 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 			ret = hdcp2_authenticate_port(connector);
 			if (!ret)
 				break;
-			drm_dbg_kms(&i915->drm, "HDCP2 port auth failed.(%d)\n",
+			drm_dbg_kms(display->drm, "HDCP2 port auth failed.(%d)\n",
 				    ret);
 		}
 
 		/* Clearing the mei hdcp session */
-		drm_dbg_kms(&i915->drm, "HDCP2.2 Auth %d of %d Failed.(%d)\n",
+		drm_dbg_kms(display->drm, "HDCP2.2 Auth %d of %d Failed.(%d)\n",
 			    i + 1, tries, ret);
 		if (hdcp2_deauthenticate_port(connector) < 0)
-			drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
+			drm_dbg_kms(display->drm, "Port deauth failed.\n");
 	}
 
 	if (!ret && !dig_port->hdcp_auth_status) {
@@ -2010,10 +2013,10 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 		msleep(HDCP_2_2_DELAY_BEFORE_ENCRYPTION_EN);
 		ret = hdcp2_enable_encryption(connector);
 		if (ret < 0) {
-			drm_dbg_kms(&i915->drm,
+			drm_dbg_kms(display->drm,
 				    "Encryption Enable Failed.(%d)\n", ret);
 			if (hdcp2_deauthenticate_port(connector) < 0)
-				drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
+				drm_dbg_kms(display->drm, "Port deauth failed.\n");
 		}
 	}
 
@@ -2026,11 +2029,11 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 static int _intel_hdcp2_enable(struct intel_atomic_state *state,
 			       struct intel_connector *connector)
 {
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	int ret;
 
-	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being enabled. Type: %d\n",
+	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being enabled. Type: %d\n",
 		    connector->base.base.id, connector->base.name,
 		    hdcp->content_type);
 
@@ -2038,12 +2041,12 @@ static int _intel_hdcp2_enable(struct intel_atomic_state *state,
 
 	ret = hdcp2_authenticate_and_encrypt(state, connector);
 	if (ret) {
-		drm_dbg_kms(&i915->drm, "HDCP2 Type%d  Enabling Failed. (%d)\n",
+		drm_dbg_kms(display->drm, "HDCP2 Type%d  Enabling Failed. (%d)\n",
 			    hdcp->content_type, ret);
 		return ret;
 	}
 
-	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP2.2 is enabled. Type %d\n",
+	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is enabled. Type %d\n",
 		    connector->base.base.id, connector->base.name,
 		    hdcp->content_type);
 
@@ -2055,22 +2058,22 @@ static int
 _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	int ret;
 
-	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being Disabled\n",
+	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being Disabled\n",
 		    connector->base.base.id, connector->base.name);
 
 	if (hdcp->shim->stream_2_2_encryption) {
 		ret = hdcp->shim->stream_2_2_encryption(connector, false);
 		if (ret) {
-			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 2.2 stream enc\n",
+			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 2.2 stream enc\n",
 				connector->base.base.id, connector->base.name);
 			return ret;
 		}
-		drm_dbg_kms(&i915->drm, "HDCP 2.2 transcoder: %s stream encryption disabled\n",
+		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)
@@ -2080,7 +2083,7 @@ _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
 	ret = hdcp2_disable_encryption(connector);
 
 	if (hdcp2_deauthenticate_port(connector) < 0)
-		drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
+		drm_dbg_kms(display->drm, "Port deauth failed.\n");
 
 	connector->hdcp.hdcp2_encrypted = false;
 	dig_port->hdcp_auth_status = false;
@@ -2093,7 +2096,7 @@ _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
 static int intel_hdcp2_check_link(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = dig_port->base.port;
 	enum transcoder cpu_transcoder;
@@ -2110,11 +2113,11 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
 		goto out;
 	}
 
-	if (drm_WARN_ON(&i915->drm,
-			!intel_hdcp2_in_use(i915, cpu_transcoder, port))) {
-		drm_err(&i915->drm,
+	if (drm_WARN_ON(display->drm,
+			!intel_hdcp2_in_use(display, cpu_transcoder, port))) {
+		drm_err(display->drm,
 			"HDCP2.2 link stopped the encryption, %x\n",
-			intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)));
+			intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)));
 		ret = -ENXIO;
 		_intel_hdcp2_disable(connector, true);
 		intel_hdcp_update_value(connector,
@@ -2137,17 +2140,17 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
 		if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
 			goto out;
 
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "HDCP2.2 Downstream topology change\n");
 	} else {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "[CONNECTOR:%d:%s] HDCP2.2 link failed, retrying auth\n",
 			    connector->base.base.id, connector->base.name);
 	}
 
 	ret = _intel_hdcp2_disable(connector, true);
 	if (ret) {
-		drm_err(&i915->drm,
+		drm_err(display->drm,
 			"[CONNECTOR:%d:%s] Failed to disable hdcp2.2 (%d)\n",
 			connector->base.base.id, connector->base.name, ret);
 		intel_hdcp_update_value(connector,
@@ -2186,13 +2189,12 @@ static int i915_hdcp_component_bind(struct device *drv_kdev,
 				    struct device *mei_kdev, void *data)
 {
 	struct intel_display *display = to_intel_display(drv_kdev);
-	struct drm_i915_private *i915 = to_i915(display->drm);
 
-	drm_dbg(&i915->drm, "I915 HDCP comp bind\n");
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	i915->display.hdcp.arbiter = (struct i915_hdcp_arbiter *)data;
-	i915->display.hdcp.arbiter->hdcp_dev = mei_kdev;
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	drm_dbg(display->drm, "I915 HDCP comp bind\n");
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	display->hdcp.arbiter = (struct i915_hdcp_arbiter *)data;
+	display->hdcp.arbiter->hdcp_dev = mei_kdev;
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return 0;
 }
@@ -2201,12 +2203,11 @@ static void i915_hdcp_component_unbind(struct device *drv_kdev,
 				       struct device *mei_kdev, void *data)
 {
 	struct intel_display *display = to_intel_display(drv_kdev);
-	struct drm_i915_private *i915 = to_i915(display->drm);
 
-	drm_dbg(&i915->drm, "I915 HDCP comp unbind\n");
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	i915->display.hdcp.arbiter = NULL;
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	drm_dbg(display->drm, "I915 HDCP comp unbind\n");
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	display->hdcp.arbiter = NULL;
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 }
 
 static const struct component_ops i915_hdcp_ops = {
@@ -2240,11 +2241,11 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
 				     struct intel_digital_port *dig_port,
 				     const struct intel_hdcp_shim *shim)
 {
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
 	enum port port = dig_port->base.port;
 
-	if (DISPLAY_VER(i915) < 12)
+	if (DISPLAY_VER(display) < 12)
 		data->hdcp_ddi = intel_get_hdcp_ddi_index(port);
 	else
 		/*
@@ -2264,11 +2265,11 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
 	data->protocol = (u8)shim->protocol;
 
 	if (!data->streams)
-		data->streams = kcalloc(INTEL_NUM_PIPES(i915),
+		data->streams = kcalloc(INTEL_NUM_PIPES(display),
 					sizeof(struct hdcp2_streamid_type),
 					GFP_KERNEL);
 	if (!data->streams) {
-		drm_err(&i915->drm, "Out of Memory\n");
+		drm_err(display->drm, "Out of Memory\n");
 		return -ENOMEM;
 	}
 
@@ -2277,13 +2278,15 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
 
 static bool is_hdcp2_supported(struct drm_i915_private *i915)
 {
-	if (intel_hdcp_gsc_cs_required(i915))
+	struct intel_display *display = to_intel_display(&i915->drm);
+
+	if (intel_hdcp_gsc_cs_required(display))
 		return true;
 
 	if (!IS_ENABLED(CONFIG_INTEL_MEI_HDCP))
 		return false;
 
-	return (DISPLAY_VER(i915) >= 10 ||
+	return (DISPLAY_VER(display) >= 10 ||
 		IS_KABYLAKE(i915) ||
 		IS_COFFEELAKE(i915) ||
 		IS_COMETLAKE(i915));
@@ -2291,28 +2294,29 @@ static bool is_hdcp2_supported(struct drm_i915_private *i915)
 
 void intel_hdcp_component_init(struct drm_i915_private *i915)
 {
+	struct intel_display *display = to_intel_display(&i915->drm);
 	int ret;
 
 	if (!is_hdcp2_supported(i915))
 		return;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	drm_WARN_ON(&i915->drm, i915->display.hdcp.comp_added);
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	drm_WARN_ON(display->drm, display->hdcp.comp_added);
 
-	i915->display.hdcp.comp_added = true;
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
-	if (intel_hdcp_gsc_cs_required(i915))
+	display->hdcp.comp_added = true;
+	mutex_unlock(&display->hdcp.hdcp_mutex);
+	if (intel_hdcp_gsc_cs_required(display))
 		ret = intel_hdcp_gsc_init(i915);
 	else
-		ret = component_add_typed(i915->drm.dev, &i915_hdcp_ops,
+		ret = component_add_typed(display->drm->dev, &i915_hdcp_ops,
 					  I915_COMPONENT_HDCP);
 
 	if (ret < 0) {
-		drm_dbg_kms(&i915->drm, "Failed at fw component add(%d)\n",
+		drm_dbg_kms(display->drm, "Failed at fw component add(%d)\n",
 			    ret);
-		mutex_lock(&i915->display.hdcp.hdcp_mutex);
-		i915->display.hdcp.comp_added = false;
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+		mutex_lock(&display->hdcp.hdcp_mutex);
+		display->hdcp.comp_added = false;
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return;
 	}
 }
@@ -2321,13 +2325,13 @@ static void intel_hdcp2_init(struct intel_connector *connector,
 			     struct intel_digital_port *dig_port,
 			     const struct intel_hdcp_shim *shim)
 {
-	struct drm_i915_private *i915 = to_i915(connector->base.dev);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	int ret;
 
 	ret = initialize_hdcp_port_data(connector, dig_port, shim);
 	if (ret) {
-		drm_dbg_kms(&i915->drm, "Mei hdcp data init failed\n");
+		drm_dbg_kms(display->drm, "Mei hdcp data init failed\n");
 		return;
 	}
 
@@ -2374,6 +2378,7 @@ static int _intel_hdcp_enable(struct intel_atomic_state *state,
 	struct drm_i915_private *i915 = to_i915(encoder->base.dev);
 	struct intel_connector *connector =
 		to_intel_connector(conn_state->connector);
+	struct intel_display *display = to_intel_display(connector->base.dev);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	unsigned long check_link_interval = DRM_HDCP_CHECK_PERIOD_MS;
@@ -2383,14 +2388,14 @@ static int _intel_hdcp_enable(struct intel_atomic_state *state,
 		return -ENOENT;
 
 	if (!connector->encoder) {
-		drm_err(&i915->drm, "[CONNECTOR:%d:%s] encoder is not initialized\n",
+		drm_err(display->drm, "[CONNECTOR:%d:%s] encoder is not initialized\n",
 			connector->base.base.id, connector->base.name);
 		return -ENODEV;
 	}
 
 	mutex_lock(&hdcp->mutex);
 	mutex_lock(&dig_port->hdcp_mutex);
-	drm_WARN_ON(&i915->drm,
+	drm_WARN_ON(display->drm,
 		    hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
 	hdcp->content_type = (u8)conn_state->hdcp_content_type;
 
@@ -2552,19 +2557,21 @@ void intel_hdcp_update_pipe(struct intel_atomic_state *state,
 
 void intel_hdcp_component_fini(struct drm_i915_private *i915)
 {
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	if (!i915->display.hdcp.comp_added) {
-		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	struct intel_display *display = to_intel_display(&i915->drm);
+
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	if (!display->hdcp.comp_added) {
+		mutex_unlock(&display->hdcp.hdcp_mutex);
 		return;
 	}
 
-	i915->display.hdcp.comp_added = false;
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	display->hdcp.comp_added = false;
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
-	if (intel_hdcp_gsc_cs_required(i915))
+	if (intel_hdcp_gsc_cs_required(display))
 		intel_hdcp_gsc_fini(i915);
 	else
-		component_del(i915->drm.dev, &i915_hdcp_ops);
+		component_del(display->drm->dev, &i915_hdcp_ops);
 }
 
 void intel_hdcp_cleanup(struct intel_connector *connector)
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
index 16afeb8a3a8d..dc5cc1d54c85 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
@@ -19,18 +19,19 @@ struct intel_hdcp_gsc_message {
 	void *hdcp_cmd_out;
 };
 
-bool intel_hdcp_gsc_cs_required(struct drm_i915_private *i915)
+bool intel_hdcp_gsc_cs_required(struct intel_display *display)
 {
-	return DISPLAY_VER(i915) >= 14;
+	return DISPLAY_VER(display) >= 14;
 }
 
-bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915)
+bool intel_hdcp_gsc_check_status(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct intel_gt *gt = i915->media_gt;
 	struct intel_gsc_uc *gsc = gt ? &gt->uc.gsc : NULL;
 
 	if (!gsc || !intel_uc_fw_is_running(&gsc->fw)) {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "GSC components required for HDCP2.2 are not ready\n");
 		return false;
 	}
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
index 5f610df61cc9..b6aabd855478 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
@@ -10,14 +10,15 @@
 #include <linux/types.h>
 
 struct drm_i915_private;
+struct intel_display;
 struct intel_hdcp_gsc_message;
 
-bool intel_hdcp_gsc_cs_required(struct drm_i915_private *i915);
+bool intel_hdcp_gsc_cs_required(struct intel_display *display);
 ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
 				size_t msg_in_len, u8 *msg_out,
 				size_t msg_out_len);
 int intel_hdcp_gsc_init(struct drm_i915_private *i915);
 void intel_hdcp_gsc_fini(struct drm_i915_private *i915);
-bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915);
+bool intel_hdcp_gsc_check_status(struct intel_display *display);
 
 #endif /* __INTEL_HDCP_GCS_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
index ce199d6f6232..2d597f27e931 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
@@ -22,11 +22,12 @@ struct hdcp2_ske_send_eks;
 struct hdcp2_rep_send_receiverid_list;
 struct hdcp2_rep_send_ack;
 struct hdcp2_rep_stream_ready;
+struct intel_display;
 
 ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
 				size_t msg_in_len, u8 *msg_out,
 				size_t msg_out_len);
-bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915);
+bool intel_hdcp_gsc_check_status(struct intel_display *display);
 int
 intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
 				struct hdcp2_ake_init *ake_data);
diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
index 6619a40aed15..5badf90b26de 100644
--- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
+++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
@@ -30,13 +30,14 @@ struct intel_hdcp_gsc_message {
 
 #define HDCP_GSC_HEADER_SIZE sizeof(struct intel_gsc_mtl_header)
 
-bool intel_hdcp_gsc_cs_required(struct xe_device *xe)
+bool intel_hdcp_gsc_cs_required(struct intel_display *display)
 {
-	return DISPLAY_VER(xe) >= 14;
+	return DISPLAY_VER(display) >= 14;
 }
 
-bool intel_hdcp_gsc_check_status(struct xe_device *xe)
+bool intel_hdcp_gsc_check_status(struct intel_display *display)
 {
+	struct xe_device *xe = to_xe_device(display->drm);
 	struct xe_tile *tile = xe_device_get_root_tile(xe);
 	struct xe_gt *gt = tile->media_gt;
 	struct xe_gsc *gsc = &gt->uc.gsc;
-- 
2.43.2


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

* [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc
  2024-09-10  7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal
  2024-09-10  7:47 ` [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp Suraj Kandpal
@ 2024-09-10  7:47 ` Suraj Kandpal
  2024-09-10  9:18   ` Jani Nikula
  2024-09-10 13:30 ` ✓ Fi.CI.BAT: success for HDCP intel_display refactors Patchwork
  2024-09-11  6:52 ` ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 1 reply; 10+ messages in thread
From: Suraj Kandpal @ 2024-09-10  7:47 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: uma.shankar, ankit.k.nautiyal, jani.nikula, Suraj Kandpal

Use intel_display structure instead of drm_i915_private wherever
possible in hdcp_gsc related files.

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_hdcp.c     |  4 +-
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.c | 31 ++++++-------
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.h |  4 +-
 .../drm/i915/display/intel_hdcp_gsc_message.c | 44 +++++++++----------
 drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      | 23 +++++-----
 5 files changed, 54 insertions(+), 52 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 964372f4343b..efc62711274f 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -2306,7 +2306,7 @@ void intel_hdcp_component_init(struct drm_i915_private *i915)
 	display->hdcp.comp_added = true;
 	mutex_unlock(&display->hdcp.hdcp_mutex);
 	if (intel_hdcp_gsc_cs_required(display))
-		ret = intel_hdcp_gsc_init(i915);
+		ret = intel_hdcp_gsc_init(display);
 	else
 		ret = component_add_typed(display->drm->dev, &i915_hdcp_ops,
 					  I915_COMPONENT_HDCP);
@@ -2569,7 +2569,7 @@ void intel_hdcp_component_fini(struct drm_i915_private *i915)
 	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	if (intel_hdcp_gsc_cs_required(display))
-		intel_hdcp_gsc_fini(i915);
+		intel_hdcp_gsc_fini(display);
 	else
 		component_del(display->drm->dev, &i915_hdcp_ops);
 }
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
index dc5cc1d54c85..55965844d829 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
@@ -107,8 +107,9 @@ static const struct i915_hdcp_ops gsc_hdcp_ops = {
 	.close_hdcp_session = intel_hdcp_gsc_close_session,
 };
 
-static int intel_hdcp_gsc_hdcp2_init(struct drm_i915_private *i915)
+static int intel_hdcp_gsc_hdcp2_init(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct intel_hdcp_gsc_message *hdcp_message;
 	int ret;
 
@@ -121,19 +122,19 @@ static int intel_hdcp_gsc_hdcp2_init(struct drm_i915_private *i915)
 	 * NOTE: No need to lock the comp mutex here as it is already
 	 * going to be taken before this function called
 	 */
-	i915->display.hdcp.hdcp_message = hdcp_message;
+	display->hdcp.hdcp_message = hdcp_message;
 	ret = intel_hdcp_gsc_initialize_message(i915, hdcp_message);
 
 	if (ret)
-		drm_err(&i915->drm, "Could not initialize hdcp_message\n");
+		drm_err(display->drm, "Could not initialize hdcp_message\n");
 
 	return ret;
 }
 
-static void intel_hdcp_gsc_free_message(struct drm_i915_private *i915)
+static void intel_hdcp_gsc_free_message(struct intel_display *display)
 {
 	struct intel_hdcp_gsc_message *hdcp_message =
-					i915->display.hdcp.hdcp_message;
+					display->hdcp.hdcp_message;
 
 	hdcp_message->hdcp_cmd_in = NULL;
 	hdcp_message->hdcp_cmd_out = NULL;
@@ -141,7 +142,7 @@ static void intel_hdcp_gsc_free_message(struct drm_i915_private *i915)
 	kfree(hdcp_message);
 }
 
-int intel_hdcp_gsc_init(struct drm_i915_private *i915)
+int intel_hdcp_gsc_init(struct intel_display *display)
 {
 	struct i915_hdcp_arbiter *data;
 	int ret;
@@ -150,20 +151,20 @@ int intel_hdcp_gsc_init(struct drm_i915_private *i915)
 	if (!data)
 		return -ENOMEM;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	i915->display.hdcp.arbiter = data;
-	i915->display.hdcp.arbiter->hdcp_dev = i915->drm.dev;
-	i915->display.hdcp.arbiter->ops = &gsc_hdcp_ops;
-	ret = intel_hdcp_gsc_hdcp2_init(i915);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	display->hdcp.arbiter = data;
+	display->hdcp.arbiter->hdcp_dev = display->drm->dev;
+	display->hdcp.arbiter->ops = &gsc_hdcp_ops;
+	ret = intel_hdcp_gsc_hdcp2_init(display);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
 
-void intel_hdcp_gsc_fini(struct drm_i915_private *i915)
+void intel_hdcp_gsc_fini(struct intel_display *display)
 {
-	intel_hdcp_gsc_free_message(i915);
-	kfree(i915->display.hdcp.arbiter);
+	intel_hdcp_gsc_free_message(display);
+	kfree(display->hdcp.arbiter);
 }
 
 static int intel_gsc_send_sync(struct drm_i915_private *i915,
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
index b6aabd855478..5695a5e4f609 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
@@ -17,8 +17,8 @@ bool intel_hdcp_gsc_cs_required(struct intel_display *display);
 ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
 				size_t msg_in_len, u8 *msg_out,
 				size_t msg_out_len);
-int intel_hdcp_gsc_init(struct drm_i915_private *i915);
-void intel_hdcp_gsc_fini(struct drm_i915_private *i915);
+int intel_hdcp_gsc_init(struct intel_display *display);
+void intel_hdcp_gsc_fini(struct intel_display *display);
 bool intel_hdcp_gsc_check_status(struct intel_display *display);
 
 #endif /* __INTEL_HDCP_GCS_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
index 35bdb532bbb3..129104fa9b16 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
@@ -46,12 +46,12 @@ intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
 				       (u8 *)&session_init_out,
 				       sizeof(session_init_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (session_init_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
 			    WIRED_INITIATE_HDCP2_SESSION,
 			    session_init_out.header.status);
 		return -EIO;
@@ -108,12 +108,12 @@ intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev,
 				       (u8 *)&verify_rxcert_out,
 				       sizeof(verify_rxcert_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed: %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed: %zd\n", byte);
 		return byte;
 	}
 
 	if (verify_rxcert_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
 			    WIRED_VERIFY_RECEIVER_CERT,
 			    verify_rxcert_out.header.status);
 		return -EIO;
@@ -171,12 +171,12 @@ intel_hdcp_gsc_verify_hprime(struct device *dev, struct hdcp_port_data *data,
 				       (u8 *)&send_hprime_out,
 				       sizeof(send_hprime_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (send_hprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
 			    WIRED_AKE_SEND_HPRIME, send_hprime_out.header.status);
 		return -EIO;
 	}
@@ -222,12 +222,12 @@ intel_hdcp_gsc_store_pairing_info(struct device *dev, struct hdcp_port_data *dat
 				       (u8 *)&pairing_info_out,
 				       sizeof(pairing_info_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (pairing_info_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. Status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. Status: 0x%X\n",
 			    WIRED_AKE_SEND_PAIRING_INFO,
 			    pairing_info_out.header.status);
 		return -EIO;
@@ -269,12 +269,12 @@ intel_hdcp_gsc_initiate_locality_check(struct device *dev,
 	byte = intel_hdcp_gsc_msg_send(i915, (u8 *)&lc_init_in, sizeof(lc_init_in),
 				       (u8 *)&lc_init_out, sizeof(lc_init_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (lc_init_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. status: 0x%X\n",
 			    WIRED_INIT_LOCALITY_CHECK, lc_init_out.header.status);
 		return -EIO;
 	}
@@ -323,12 +323,12 @@ intel_hdcp_gsc_verify_lprime(struct device *dev, struct hdcp_port_data *data,
 				       (u8 *)&verify_lprime_out,
 				       sizeof(verify_lprime_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (verify_lprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_VALIDATE_LOCALITY,
 			    verify_lprime_out.header.status);
 		return -EIO;
@@ -369,12 +369,12 @@ int intel_hdcp_gsc_get_session_key(struct device *dev,
 	byte = intel_hdcp_gsc_msg_send(i915, (u8 *)&get_skey_in, sizeof(get_skey_in),
 				       (u8 *)&get_skey_out, sizeof(get_skey_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (get_skey_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_GET_SESSION_KEY, get_skey_out.header.status);
 		return -EIO;
 	}
@@ -435,12 +435,12 @@ intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,
 				       (u8 *)&verify_repeater_out,
 				       sizeof(verify_repeater_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (verify_repeater_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_VERIFY_REPEATER,
 			    verify_repeater_out.header.status);
 		return -EIO;
@@ -504,12 +504,12 @@ int intel_hdcp_gsc_verify_mprime(struct device *dev,
 				       sizeof(verify_mprime_out));
 	kfree(verify_mprime_in);
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (verify_mprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_REPEATER_AUTH_STREAM_REQ,
 			    verify_mprime_out.header.status);
 		return -EIO;
@@ -552,12 +552,12 @@ int intel_hdcp_gsc_enable_authentication(struct device *dev,
 				       (u8 *)&enable_auth_out,
 				       sizeof(enable_auth_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (enable_auth_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_ENABLE_AUTH, enable_auth_out.header.status);
 		return -EIO;
 	}
@@ -599,12 +599,12 @@ intel_hdcp_gsc_close_session(struct device *dev, struct hdcp_port_data *data)
 				       (u8 *)&session_close_out,
 				       sizeof(session_close_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (session_close_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "Session Close Failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "Session Close Failed. status: 0x%X\n",
 			    session_close_out.header.status);
 		return -EIO;
 	}
diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
index 5badf90b26de..437839b8c847 100644
--- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
+++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
@@ -138,42 +138,43 @@ static const struct i915_hdcp_ops gsc_hdcp_ops = {
 	.close_hdcp_session = intel_hdcp_gsc_close_session,
 };
 
-int intel_hdcp_gsc_init(struct xe_device *xe)
+int intel_hdcp_gsc_init(struct intel_display *display)
 {
 	struct i915_hdcp_arbiter *data;
+	struct xe_device *xe = to_xe_device(display->drm);
 	int ret;
 
 	data = kzalloc(sizeof(*data), GFP_KERNEL);
 	if (!data)
 		return -ENOMEM;
 
-	mutex_lock(&xe->display.hdcp.hdcp_mutex);
-	xe->display.hdcp.arbiter = data;
-	xe->display.hdcp.arbiter->hdcp_dev = xe->drm.dev;
-	xe->display.hdcp.arbiter->ops = &gsc_hdcp_ops;
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	display->hdcp.arbiter = data;
+	display->hdcp.arbiter->hdcp_dev = display->drm->dev;
+	display->hdcp.arbiter->ops = &gsc_hdcp_ops;
 	ret = intel_hdcp_gsc_hdcp2_init(xe);
 	if (ret)
 		kfree(data);
 
-	mutex_unlock(&xe->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
 
-void intel_hdcp_gsc_fini(struct xe_device *xe)
+void intel_hdcp_gsc_fini(struct intel_display *display)
 {
 	struct intel_hdcp_gsc_message *hdcp_message =
-					xe->display.hdcp.hdcp_message;
-	struct i915_hdcp_arbiter *arb = xe->display.hdcp.arbiter;
+					display->hdcp.hdcp_message;
+	struct i915_hdcp_arbiter *arb = display->hdcp.arbiter;
 
 	if (hdcp_message) {
 		xe_bo_unpin_map_no_vm(hdcp_message->hdcp_bo);
 		kfree(hdcp_message);
-		xe->display.hdcp.hdcp_message = NULL;
+		display->hdcp.hdcp_message = NULL;
 	}
 
 	kfree(arb);
-	xe->display.hdcp.arbiter = NULL;
+	display->hdcp.arbiter = NULL;
 }
 
 static int xe_gsc_send_sync(struct xe_device *xe,
-- 
2.43.2


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

* Re: [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp
  2024-09-10  7:47 ` [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp Suraj Kandpal
@ 2024-09-10  9:11   ` Jani Nikula
  2024-09-10 12:54     ` Kandpal, Suraj
  0 siblings, 1 reply; 10+ messages in thread
From: Jani Nikula @ 2024-09-10  9:11 UTC (permalink / raw)
  To: Suraj Kandpal, intel-gfx, intel-xe
  Cc: uma.shankar, ankit.k.nautiyal, Suraj Kandpal

On Tue, 10 Sep 2024, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> Move to using intel_display wherever possible in intel_hdcp.c
> as a part of code refactor.

Overall good stuff, thanks for doing this!

A bunch of nitpicks inline, almost all of them boil down to these two:

- to_intel_display() uses _Generic(), pass in the simplest pointer
  available, with fewest dereference, and let the macro do its magic.

- Declare struct intel_display * as the first local variable or as early
  as possible.

I want to try to keep an uniform style when we're anyway doing the
refactors, and the more code follows the style, the more likely it is to
be followed elsewhere too.


BR,
Jani.


>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_hdcp.c     | 669 +++++++++---------
>  drivers/gpu/drm/i915/display/intel_hdcp_gsc.c |   9 +-
>  drivers/gpu/drm/i915/display/intel_hdcp_gsc.h |   5 +-
>  .../drm/i915/display/intel_hdcp_gsc_message.h |   3 +-
>  drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      |   7 +-
>  5 files changed, 352 insertions(+), 341 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index ebec03bc88e9..964372f4343b 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -36,20 +36,20 @@ static void
>  intel_hdcp_disable_hdcp_line_rekeying(struct intel_encoder *encoder,
>  				      struct intel_hdcp *hdcp)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_display *display = to_intel_display(encoder->base.dev);

to_intel_display(encoder)

>  
>  	/* Here we assume HDMI is in TMDS mode of operation */
>  	if (encoder->type != INTEL_OUTPUT_HDMI)
>  		return;
>  
> -	if (DISPLAY_VER(dev_priv) >= 14) {
> -		if (IS_DISPLAY_VER_STEP(dev_priv, IP_VER(14, 0), STEP_D0, STEP_FOREVER))
> -			intel_de_rmw(dev_priv, MTL_CHICKEN_TRANS(hdcp->cpu_transcoder),
> +	if (DISPLAY_VER(display) >= 14) {
> +		if (IS_DISPLAY_VER_STEP(display, IP_VER(14, 0), STEP_D0, STEP_FOREVER))
> +			intel_de_rmw(display, MTL_CHICKEN_TRANS(hdcp->cpu_transcoder),
>  				     0, HDCP_LINE_REKEY_DISABLE);
> -		else if (IS_DISPLAY_VER_STEP(dev_priv, IP_VER(14, 1), STEP_B0, STEP_FOREVER) ||
> -			 IS_DISPLAY_VER_STEP(dev_priv, IP_VER(20, 0), STEP_B0, STEP_FOREVER))
> -			intel_de_rmw(dev_priv,
> -				     TRANS_DDI_FUNC_CTL(dev_priv, hdcp->cpu_transcoder),
> +		else if (IS_DISPLAY_VER_STEP(display, IP_VER(14, 1), STEP_B0, STEP_FOREVER) ||
> +			 IS_DISPLAY_VER_STEP(display, IP_VER(20, 0), STEP_B0, STEP_FOREVER))
> +			intel_de_rmw(display,
> +				     TRANS_DDI_FUNC_CTL(display, hdcp->cpu_transcoder),
>  				     0, TRANS_DDI_HDCP_LINE_REKEY_DISABLE);
>  	}
>  }
> @@ -99,7 +99,7 @@ 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 drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +	struct intel_display *display = to_intel_display(dig_port->base.base.dev);

Please declare this as the first line in a function where ever possible.

to_intel_display(state)

or

to_intel_display(dig_port)

is enough.

>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
>  	bool enforce_type0 = false;
>  	int k;
> @@ -112,7 +112,7 @@ intel_hdcp_required_content_stream(struct intel_atomic_state *state,
>  	if (!dig_port->hdcp_mst_type1_capable)
>  		enforce_type0 = true;
>  
> -	drm_connector_list_iter_begin(&i915->drm, &conn_iter);
> +	drm_connector_list_iter_begin(display->drm, &conn_iter);
>  	for_each_intel_connector_iter(connector, &conn_iter) {
>  		if (connector->base.status == connector_status_disconnected)
>  			continue;
> @@ -134,7 +134,7 @@ intel_hdcp_required_content_stream(struct intel_atomic_state *state,
>  	}
>  	drm_connector_list_iter_end(&conn_iter);
>  
> -	if (drm_WARN_ON(&i915->drm, data->k > INTEL_NUM_PIPES(i915) || data->k == 0))
> +	if (drm_WARN_ON(display->drm, data->k > INTEL_NUM_PIPES(display) || data->k == 0))
>  		return -EINVAL;
>  
>  	/*
> @@ -182,7 +182,7 @@ static
>  int intel_hdcp_read_valid_bksv(struct intel_digital_port *dig_port,
>  			       const struct intel_hdcp_shim *shim, u8 *bksv)
>  {
> -	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +	struct intel_display *display = to_intel_display(dig_port->base.base.dev);

to_intel_display(dig_port). Ditto for every place before. See what
inputs the _Generic() in to_intel_display() supports, and choose the one
with the fewest indirections.

>  	int ret, i, tries = 2;
>  
>  	/* HDCP spec states that we must retry the bksv if it is invalid */
> @@ -194,7 +194,7 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *dig_port,
>  			break;
>  	}
>  	if (i == tries) {
> -		drm_dbg_kms(&i915->drm, "Bksv is invalid\n");
> +		drm_dbg_kms(display->drm, "Bksv is invalid\n");
>  		return -ENODEV;
>  	}
>  
> @@ -233,7 +233,7 @@ bool intel_hdcp_get_capability(struct intel_connector *connector)
>   */
>  static bool intel_hdcp2_prerequisite(struct intel_connector *connector)
>  {
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  
>  	/* I915 support for HDCP2.2 */
> @@ -241,18 +241,18 @@ static bool intel_hdcp2_prerequisite(struct intel_connector *connector)
>  		return false;
>  
>  	/* If MTL+ make sure gsc is loaded and proxy is setup */
> -	if (intel_hdcp_gsc_cs_required(i915)) {
> -		if (!intel_hdcp_gsc_check_status(i915))
> +	if (intel_hdcp_gsc_cs_required(display)) {
> +		if (!intel_hdcp_gsc_check_status(display))
>  			return false;
>  	}
>  
>  	/* MEI/GSC interface is solid depending on which is used */
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	if (!i915->display.hdcp.comp_added ||  !i915->display.hdcp.arbiter) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	if (!display->hdcp.comp_added || !display->hdcp.arbiter) {
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return false;
>  	}
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return true;
>  }
> @@ -288,19 +288,19 @@ void intel_hdcp_get_remote_capability(struct intel_connector *connector,
>  		*hdcp2_capable = false;
>  }
>  
> -static bool intel_hdcp_in_use(struct drm_i915_private *i915,
> +static bool intel_hdcp_in_use(struct intel_display *display,
>  			      enum transcoder cpu_transcoder, enum port port)
>  {
> -	return intel_de_read(i915,
> -			     HDCP_STATUS(i915, cpu_transcoder, port)) &
> +	return intel_de_read(display,
> +			     HDCP_STATUS(display, cpu_transcoder, port)) &
>  		HDCP_STATUS_ENC;
>  }
>  
> -static bool intel_hdcp2_in_use(struct drm_i915_private *i915,
> +static bool intel_hdcp2_in_use(struct intel_display *display,
>  			       enum transcoder cpu_transcoder, enum port port)
>  {
> -	return intel_de_read(i915,
> -			     HDCP2_STATUS(i915, cpu_transcoder, port)) &
> +	return intel_de_read(display,
> +			     HDCP2_STATUS(display, cpu_transcoder, port)) &
>  		LINK_ENCRYPTION_STATUS;
>  }
>  
> @@ -325,8 +325,9 @@ static int intel_hdcp_poll_ksv_fifo(struct intel_digital_port *dig_port,
>  	return 0;
>  }
>  
> -static bool hdcp_key_loadable(struct drm_i915_private *i915)
> +static bool hdcp_key_loadable(struct intel_display *display)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	enum i915_power_well_id id;
>  	intel_wakeref_t wakeref;
>  	bool enabled = false;
> @@ -353,19 +354,20 @@ static bool hdcp_key_loadable(struct drm_i915_private *i915)
>  	return enabled;
>  }
>  
> -static void intel_hdcp_clear_keys(struct drm_i915_private *i915)
> +static void intel_hdcp_clear_keys(struct intel_display *display)
>  {
> -	intel_de_write(i915, HDCP_KEY_CONF, HDCP_CLEAR_KEYS_TRIGGER);
> -	intel_de_write(i915, HDCP_KEY_STATUS,
> +	intel_de_write(display, HDCP_KEY_CONF, HDCP_CLEAR_KEYS_TRIGGER);
> +	intel_de_write(display, HDCP_KEY_STATUS,
>  		       HDCP_KEY_LOAD_DONE | HDCP_KEY_LOAD_STATUS | HDCP_FUSE_IN_PROGRESS | HDCP_FUSE_ERROR | HDCP_FUSE_DONE);
>  }
>  
> -static int intel_hdcp_load_keys(struct drm_i915_private *i915)
> +static int intel_hdcp_load_keys(struct intel_display *display)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	int ret;
>  	u32 val;
>  
> -	val = intel_de_read(i915, HDCP_KEY_STATUS);
> +	val = intel_de_read(display, HDCP_KEY_STATUS);
>  	if ((val & HDCP_KEY_LOAD_DONE) && (val & HDCP_KEY_LOAD_STATUS))
>  		return 0;
>  
> @@ -374,7 +376,7 @@ static int intel_hdcp_load_keys(struct drm_i915_private *i915)
>  	 * out of reset. So if Key is not already loaded, its an error state.
>  	 */
>  	if (IS_HASWELL(i915) || IS_BROADWELL(i915))
> -		if (!(intel_de_read(i915, HDCP_KEY_STATUS) & HDCP_KEY_LOAD_DONE))
> +		if (!(intel_de_read(display, HDCP_KEY_STATUS) & HDCP_KEY_LOAD_DONE))
>  			return -ENXIO;
>  
>  	/*
> @@ -385,20 +387,20 @@ static int intel_hdcp_load_keys(struct drm_i915_private *i915)
>  	 * process from other platforms. These platforms use the GT Driver
>  	 * Mailbox interface.
>  	 */
> -	if (DISPLAY_VER(i915) == 9 && !IS_BROXTON(i915)) {
> +	if (DISPLAY_VER(display) == 9 && !IS_BROXTON(i915)) {
>  		ret = snb_pcode_write(&i915->uncore, SKL_PCODE_LOAD_HDCP_KEYS, 1);
>  		if (ret) {
> -			drm_err(&i915->drm,
> +			drm_err(display->drm,
>  				"Failed to initiate HDCP key load (%d)\n",
>  				ret);
>  			return ret;
>  		}
>  	} else {
> -		intel_de_write(i915, HDCP_KEY_CONF, HDCP_KEY_LOAD_TRIGGER);
> +		intel_de_write(display, HDCP_KEY_CONF, HDCP_KEY_LOAD_TRIGGER);
>  	}
>  
>  	/* Wait for the keys to load (500us) */
> -	ret = intel_de_wait_custom(i915, HDCP_KEY_STATUS,
> +	ret = intel_de_wait_custom(display, HDCP_KEY_STATUS,
>  				   HDCP_KEY_LOAD_DONE, HDCP_KEY_LOAD_DONE,
>  				   10, 1, &val);
>  	if (ret)
> @@ -407,27 +409,27 @@ static int intel_hdcp_load_keys(struct drm_i915_private *i915)
>  		return -ENXIO;
>  
>  	/* Send Aksv over to PCH display for use in authentication */
> -	intel_de_write(i915, HDCP_KEY_CONF, HDCP_AKSV_SEND_TRIGGER);
> +	intel_de_write(display, HDCP_KEY_CONF, HDCP_AKSV_SEND_TRIGGER);
>  
>  	return 0;
>  }
>  
>  /* Returns updated SHA-1 index */
> -static int intel_write_sha_text(struct drm_i915_private *i915, u32 sha_text)
> +static int intel_write_sha_text(struct intel_display *display, u32 sha_text)
>  {
> -	intel_de_write(i915, HDCP_SHA_TEXT, sha_text);
> -	if (intel_de_wait_for_set(i915, HDCP_REP_CTL, HDCP_SHA1_READY, 1)) {
> -		drm_err(&i915->drm, "Timed out waiting for SHA1 ready\n");
> +	intel_de_write(display, HDCP_SHA_TEXT, sha_text);
> +	if (intel_de_wait_for_set(display, HDCP_REP_CTL, HDCP_SHA1_READY, 1)) {
> +		drm_err(display->drm, "Timed out waiting for SHA1 ready\n");
>  		return -ETIMEDOUT;
>  	}
>  	return 0;
>  }
>  
>  static
> -u32 intel_hdcp_get_repeater_ctl(struct drm_i915_private *i915,
> +u32 intel_hdcp_get_repeater_ctl(struct intel_display *display,
>  				enum transcoder cpu_transcoder, enum port port)
>  {
> -	if (DISPLAY_VER(i915) >= 12) {
> +	if (DISPLAY_VER(display) >= 12) {
>  		switch (cpu_transcoder) {
>  		case TRANSCODER_A:
>  			return HDCP_TRANSA_REP_PRESENT |
> @@ -442,7 +444,7 @@ u32 intel_hdcp_get_repeater_ctl(struct drm_i915_private *i915,
>  			return HDCP_TRANSD_REP_PRESENT |
>  			       HDCP_TRANSD_SHA1_M0;
>  		default:
> -			drm_err(&i915->drm, "Unknown transcoder %d\n",
> +			drm_err(display->drm, "Unknown transcoder %d\n",
>  				cpu_transcoder);
>  			return 0;
>  		}
> @@ -460,7 +462,7 @@ u32 intel_hdcp_get_repeater_ctl(struct drm_i915_private *i915,
>  	case PORT_E:
>  		return HDCP_DDIE_REP_PRESENT | HDCP_DDIE_SHA1_M0;
>  	default:
> -		drm_err(&i915->drm, "Unknown port %d\n", port);
> +		drm_err(display->drm, "Unknown port %d\n", port);
>  		return 0;
>  	}
>  }
> @@ -471,7 +473,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>  				u8 *ksv_fifo, u8 num_downstream, u8 *bstatus)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);

Declare struct intel_display *display first. Ditto everywhere.

>  	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
>  	enum port port = dig_port->base.port;
>  	u32 vprime, sha_text, sha_leftovers, rep_ctl;
> @@ -482,7 +484,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>  		ret = shim->read_v_prime_part(dig_port, i, &vprime);
>  		if (ret)
>  			return ret;
> -		intel_de_write(i915, HDCP_SHA_V_PRIME(i), vprime);
> +		intel_de_write(display, HDCP_SHA_V_PRIME(i), vprime);
>  	}
>  
>  	/*
> @@ -498,8 +500,8 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>  	sha_idx = 0;
>  	sha_text = 0;
>  	sha_leftovers = 0;
> -	rep_ctl = intel_hdcp_get_repeater_ctl(i915, cpu_transcoder, port);
> -	intel_de_write(i915, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
> +	rep_ctl = intel_hdcp_get_repeater_ctl(display, cpu_transcoder, port);
> +	intel_de_write(display, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
>  	for (i = 0; i < num_downstream; i++) {
>  		unsigned int sha_empty;
>  		u8 *ksv = &ksv_fifo[i * DRM_HDCP_KSV_LEN];
> @@ -511,14 +513,14 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>  			sha_text |= ksv[j] << off;
>  		}
>  
> -		ret = intel_write_sha_text(i915, sha_text);
> +		ret = intel_write_sha_text(display, sha_text);
>  		if (ret < 0)
>  			return ret;
>  
>  		/* Programming guide writes this every 64 bytes */
>  		sha_idx += sizeof(sha_text);
>  		if (!(sha_idx % 64))
> -			intel_de_write(i915, HDCP_REP_CTL,
> +			intel_de_write(display, HDCP_REP_CTL,
>  				       rep_ctl | HDCP_SHA1_TEXT_32);
>  
>  		/* Store the leftover bytes from the ksv in sha_text */
> @@ -535,7 +537,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>  		if (sizeof(sha_text) > sha_leftovers)
>  			continue;
>  
> -		ret = intel_write_sha_text(i915, sha_text);
> +		ret = intel_write_sha_text(display, sha_text);
>  		if (ret < 0)
>  			return ret;
>  		sha_leftovers = 0;
> @@ -551,73 +553,73 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>  	 */
>  	if (sha_leftovers == 0) {
>  		/* Write 16 bits of text, 16 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_16);
> -		ret = intel_write_sha_text(i915,
> +		ret = intel_write_sha_text(display,
>  					   bstatus[0] << 8 | bstatus[1]);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  		/* Write 32 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_0);
> -		ret = intel_write_sha_text(i915, 0);
> +		ret = intel_write_sha_text(display, 0);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  		/* Write 16 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_16);
> -		ret = intel_write_sha_text(i915, 0);
> +		ret = intel_write_sha_text(display, 0);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  	} else if (sha_leftovers == 1) {
>  		/* Write 24 bits of text, 8 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_24);
>  		sha_text |= bstatus[0] << 16 | bstatus[1] << 8;
>  		/* Only 24-bits of data, must be in the LSB */
>  		sha_text = (sha_text & 0xffffff00) >> 8;
> -		ret = intel_write_sha_text(i915, sha_text);
> +		ret = intel_write_sha_text(display, sha_text);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  		/* Write 32 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_0);
> -		ret = intel_write_sha_text(i915, 0);
> +		ret = intel_write_sha_text(display, 0);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  		/* Write 24 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_8);
> -		ret = intel_write_sha_text(i915, 0);
> +		ret = intel_write_sha_text(display, 0);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  	} else if (sha_leftovers == 2) {
>  		/* Write 32 bits of text */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_32);
>  		sha_text |= bstatus[0] << 8 | bstatus[1];
> -		ret = intel_write_sha_text(i915, sha_text);
> +		ret = intel_write_sha_text(display, sha_text);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  		/* Write 64 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_0);
>  		for (i = 0; i < 2; i++) {
> -			ret = intel_write_sha_text(i915, 0);
> +			ret = intel_write_sha_text(display, 0);
>  			if (ret < 0)
>  				return ret;
>  			sha_idx += sizeof(sha_text);
> @@ -627,56 +629,56 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>  		 * Terminate the SHA-1 stream by hand. For the other leftover
>  		 * cases this is appended by the hardware.
>  		 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_32);
>  		sha_text = DRM_HDCP_SHA1_TERMINATOR << 24;
> -		ret = intel_write_sha_text(i915, sha_text);
> +		ret = intel_write_sha_text(display, sha_text);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  	} else if (sha_leftovers == 3) {
>  		/* Write 32 bits of text (filled from LSB) */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_32);
>  		sha_text |= bstatus[0];
> -		ret = intel_write_sha_text(i915, sha_text);
> +		ret = intel_write_sha_text(display, sha_text);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  		/* Write 8 bits of text (filled from LSB), 24 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_8);
> -		ret = intel_write_sha_text(i915, bstatus[1]);
> +		ret = intel_write_sha_text(display, bstatus[1]);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  		/* Write 32 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_0);
> -		ret = intel_write_sha_text(i915, 0);
> +		ret = intel_write_sha_text(display, 0);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  
>  		/* Write 8 bits of M0 */
> -		intel_de_write(i915, HDCP_REP_CTL,
> +		intel_de_write(display, HDCP_REP_CTL,
>  			       rep_ctl | HDCP_SHA1_TEXT_24);
> -		ret = intel_write_sha_text(i915, 0);
> +		ret = intel_write_sha_text(display, 0);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
>  	} else {
> -		drm_dbg_kms(&i915->drm, "Invalid number of leftovers %d\n",
> +		drm_dbg_kms(display->drm, "Invalid number of leftovers %d\n",
>  			    sha_leftovers);
>  		return -EINVAL;
>  	}
>  
> -	intel_de_write(i915, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
> +	intel_de_write(display, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
>  	/* Fill up to 64-4 bytes with zeros (leave the last write for length) */
>  	while ((sha_idx % 64) < (64 - sizeof(sha_text))) {
> -		ret = intel_write_sha_text(i915, 0);
> +		ret = intel_write_sha_text(display, 0);
>  		if (ret < 0)
>  			return ret;
>  		sha_idx += sizeof(sha_text);
> @@ -688,20 +690,20 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>  	 *  - 10 bytes for BINFO/BSTATUS(2), M0(8)
>  	 */
>  	sha_text = (num_downstream * 5 + 10) * 8;
> -	ret = intel_write_sha_text(i915, sha_text);
> +	ret = intel_write_sha_text(display, sha_text);
>  	if (ret < 0)
>  		return ret;
>  
>  	/* Tell the HW we're done with the hash and wait for it to ACK */
> -	intel_de_write(i915, HDCP_REP_CTL,
> +	intel_de_write(display, HDCP_REP_CTL,
>  		       rep_ctl | HDCP_SHA1_COMPLETE_HASH);
> -	if (intel_de_wait_for_set(i915, HDCP_REP_CTL,
> +	if (intel_de_wait_for_set(display, HDCP_REP_CTL,
>  				  HDCP_SHA1_COMPLETE, 1)) {
> -		drm_err(&i915->drm, "Timed out waiting for SHA1 complete\n");
> +		drm_err(display->drm, "Timed out waiting for SHA1 complete\n");
>  		return -ETIMEDOUT;
>  	}
> -	if (!(intel_de_read(i915, HDCP_REP_CTL) & HDCP_SHA1_V_MATCH)) {
> -		drm_dbg_kms(&i915->drm, "SHA-1 mismatch, HDCP failed\n");
> +	if (!(intel_de_read(display, HDCP_REP_CTL) & HDCP_SHA1_V_MATCH)) {
> +		drm_dbg_kms(display->drm, "SHA-1 mismatch, HDCP failed\n");
>  		return -ENXIO;
>  	}
>  
> @@ -713,14 +715,14 @@ static
>  int intel_hdcp_auth_downstream(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
>  	u8 bstatus[2], num_downstream, *ksv_fifo;
>  	int ret, i, tries = 3;
>  
>  	ret = intel_hdcp_poll_ksv_fifo(dig_port, shim);
>  	if (ret) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "KSV list failed to become ready (%d)\n", ret);
>  		return ret;
>  	}
> @@ -731,7 +733,7 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
>  
>  	if (DRM_HDCP_MAX_DEVICE_EXCEEDED(bstatus[0]) ||
>  	    DRM_HDCP_MAX_CASCADE_EXCEEDED(bstatus[1])) {
> -		drm_dbg_kms(&i915->drm, "Max Topology Limit Exceeded\n");
> +		drm_dbg_kms(display->drm, "Max Topology Limit Exceeded\n");
>  		return -EPERM;
>  	}
>  
> @@ -744,14 +746,14 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
>  	 */
>  	num_downstream = DRM_HDCP_NUM_DOWNSTREAM(bstatus[0]);
>  	if (num_downstream == 0) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "Repeater with zero downstream devices\n");
>  		return -EINVAL;
>  	}
>  
>  	ksv_fifo = kcalloc(DRM_HDCP_KSV_LEN, num_downstream, GFP_KERNEL);
>  	if (!ksv_fifo) {
> -		drm_dbg_kms(&i915->drm, "Out of mem: ksv_fifo\n");
> +		drm_dbg_kms(display->drm, "Out of mem: ksv_fifo\n");
>  		return -ENOMEM;
>  	}
>  
> @@ -759,9 +761,9 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
>  	if (ret)
>  		goto err;
>  
> -	if (drm_hdcp_check_ksvs_revoked(&i915->drm, ksv_fifo,
> +	if (drm_hdcp_check_ksvs_revoked(display->drm, ksv_fifo,
>  					num_downstream) > 0) {
> -		drm_err(&i915->drm, "Revoked Ksv(s) in ksv_fifo\n");
> +		drm_err(display->drm, "Revoked Ksv(s) in ksv_fifo\n");
>  		ret = -EPERM;
>  		goto err;
>  	}
> @@ -779,12 +781,12 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
>  	}
>  
>  	if (i == tries) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "V Prime validation failed.(%d)\n", ret);
>  		goto err;
>  	}
>  
> -	drm_dbg_kms(&i915->drm, "HDCP is enabled (%d downstream devices)\n",
> +	drm_dbg_kms(display->drm, "HDCP is enabled (%d downstream devices)\n",
>  		    num_downstream);
>  	ret = 0;
>  err:
> @@ -796,7 +798,7 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
>  static int intel_hdcp_auth(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	const struct intel_hdcp_shim *shim = hdcp->shim;
>  	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
> @@ -828,7 +830,7 @@ static int intel_hdcp_auth(struct intel_connector *connector)
>  		if (ret)
>  			return ret;
>  		if (!hdcp_capable) {
> -			drm_dbg_kms(&i915->drm,
> +			drm_dbg_kms(display->drm,
>  				    "Panel is not HDCP capable\n");
>  			return -EINVAL;
>  		}
> @@ -836,24 +838,24 @@ static int intel_hdcp_auth(struct intel_connector *connector)
>  
>  	/* Initialize An with 2 random values and acquire it */
>  	for (i = 0; i < 2; i++)
> -		intel_de_write(i915,
> -			       HDCP_ANINIT(i915, cpu_transcoder, port),
> +		intel_de_write(display,
> +			       HDCP_ANINIT(display, cpu_transcoder, port),
>  			       get_random_u32());
> -	intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port),
> +	intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port),
>  		       HDCP_CONF_CAPTURE_AN);
>  
>  	/* Wait for An to be acquired */
> -	if (intel_de_wait_for_set(i915,
> -				  HDCP_STATUS(i915, cpu_transcoder, port),
> +	if (intel_de_wait_for_set(display,
> +				  HDCP_STATUS(display, cpu_transcoder, port),
>  				  HDCP_STATUS_AN_READY, 1)) {
> -		drm_err(&i915->drm, "Timed out waiting for An\n");
> +		drm_err(display->drm, "Timed out waiting for An\n");
>  		return -ETIMEDOUT;
>  	}
>  
> -	an.reg[0] = intel_de_read(i915,
> -				  HDCP_ANLO(i915, cpu_transcoder, port));
> -	an.reg[1] = intel_de_read(i915,
> -				  HDCP_ANHI(i915, cpu_transcoder, port));
> +	an.reg[0] = intel_de_read(display,
> +				  HDCP_ANLO(display, cpu_transcoder, port));
> +	an.reg[1] = intel_de_read(display,
> +				  HDCP_ANHI(display, cpu_transcoder, port));
>  	ret = shim->write_an_aksv(dig_port, an.shim);
>  	if (ret)
>  		return ret;
> @@ -866,34 +868,34 @@ static int intel_hdcp_auth(struct intel_connector *connector)
>  	if (ret < 0)
>  		return ret;
>  
> -	if (drm_hdcp_check_ksvs_revoked(&i915->drm, bksv.shim, 1) > 0) {
> -		drm_err(&i915->drm, "BKSV is revoked\n");
> +	if (drm_hdcp_check_ksvs_revoked(display->drm, bksv.shim, 1) > 0) {
> +		drm_err(display->drm, "BKSV is revoked\n");
>  		return -EPERM;
>  	}
>  
> -	intel_de_write(i915, HDCP_BKSVLO(i915, cpu_transcoder, port),
> +	intel_de_write(display, HDCP_BKSVLO(display, cpu_transcoder, port),
>  		       bksv.reg[0]);
> -	intel_de_write(i915, HDCP_BKSVHI(i915, cpu_transcoder, port),
> +	intel_de_write(display, HDCP_BKSVHI(display, cpu_transcoder, port),
>  		       bksv.reg[1]);
>  
>  	ret = shim->repeater_present(dig_port, &repeater_present);
>  	if (ret)
>  		return ret;
>  	if (repeater_present)
> -		intel_de_write(i915, HDCP_REP_CTL,
> -			       intel_hdcp_get_repeater_ctl(i915, cpu_transcoder, port));
> +		intel_de_write(display, HDCP_REP_CTL,
> +			       intel_hdcp_get_repeater_ctl(display, cpu_transcoder, port));
>  
>  	ret = shim->toggle_signalling(dig_port, cpu_transcoder, true);
>  	if (ret)
>  		return ret;
>  
> -	intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port),
> +	intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port),
>  		       HDCP_CONF_AUTH_AND_ENC);
>  
>  	/* Wait for R0 ready */
> -	if (wait_for(intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)) &
> +	if (wait_for(intel_de_read(display, HDCP_STATUS(display, cpu_transcoder, port)) &
>  		     (HDCP_STATUS_R0_READY | HDCP_STATUS_ENC), 1)) {
> -		drm_err(&i915->drm, "Timed out waiting for R0 ready\n");
> +		drm_err(display->drm, "Timed out waiting for R0 ready\n");
>  		return -ETIMEDOUT;
>  	}
>  
> @@ -919,30 +921,30 @@ static int intel_hdcp_auth(struct intel_connector *connector)
>  		ret = shim->read_ri_prime(dig_port, ri.shim);
>  		if (ret)
>  			return ret;
> -		intel_de_write(i915,
> -			       HDCP_RPRIME(i915, cpu_transcoder, port),
> +		intel_de_write(display,
> +			       HDCP_RPRIME(display, cpu_transcoder, port),
>  			       ri.reg);
>  
>  		/* Wait for Ri prime match */
> -		if (!wait_for(intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)) &
> +		if (!wait_for(intel_de_read(display, HDCP_STATUS(display, cpu_transcoder, port)) &
>  			      (HDCP_STATUS_RI_MATCH | HDCP_STATUS_ENC), 1))
>  			break;
>  	}
>  
>  	if (i == tries) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "Timed out waiting for Ri prime match (%x)\n",
> -			    intel_de_read(i915,
> -					  HDCP_STATUS(i915, cpu_transcoder, port)));
> +			    intel_de_read(display,
> +					  HDCP_STATUS(display, cpu_transcoder, port)));
>  		return -ETIMEDOUT;
>  	}
>  
>  	/* Wait for encryption confirmation */
> -	if (intel_de_wait_for_set(i915,
> -				  HDCP_STATUS(i915, cpu_transcoder, port),
> +	if (intel_de_wait_for_set(display,
> +				  HDCP_STATUS(display, cpu_transcoder, port),
>  				  HDCP_STATUS_ENC,
>  				  HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
> -		drm_err(&i915->drm, "Timed out waiting for encryption\n");
> +		drm_err(display->drm, "Timed out waiting for encryption\n");
>  		return -ETIMEDOUT;
>  	}
>  
> @@ -950,42 +952,42 @@ static int intel_hdcp_auth(struct intel_connector *connector)
>  	if (shim->stream_encryption) {
>  		ret = shim->stream_encryption(connector, true);
>  		if (ret) {
> -			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 1.4 stream enc\n",
> +			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 1.4 stream enc\n",
>  				connector->base.base.id, connector->base.name);
>  			return ret;
>  		}
> -		drm_dbg_kms(&i915->drm, "HDCP 1.4 transcoder: %s stream encrypted\n",
> +		drm_dbg_kms(display->drm, "HDCP 1.4 transcoder: %s stream encrypted\n",
>  			    transcoder_name(hdcp->stream_transcoder));
>  	}
>  
>  	if (repeater_present)
>  		return intel_hdcp_auth_downstream(connector);
>  
> -	drm_dbg_kms(&i915->drm, "HDCP is enabled (no repeater present)\n");
> +	drm_dbg_kms(display->drm, "HDCP is enabled (no repeater present)\n");
>  	return 0;
>  }
>  
>  static int _intel_hdcp_disable(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = dig_port->base.port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	u32 repeater_ctl;
>  	int ret;
>  
> -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP is being disabled...\n",
> +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being disabled...\n",
>  		    connector->base.base.id, connector->base.name);
>  
>  	if (hdcp->shim->stream_encryption) {
>  		ret = hdcp->shim->stream_encryption(connector, false);
>  		if (ret) {
> -			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 1.4 stream enc\n",
> +			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 1.4 stream enc\n",
>  				connector->base.base.id, connector->base.name);
>  			return ret;
>  		}
> -		drm_dbg_kms(&i915->drm, "HDCP 1.4 transcoder: %s stream encryption disabled\n",
> +		drm_dbg_kms(display->drm, "HDCP 1.4 transcoder: %s stream encryption disabled\n",
>  			    transcoder_name(hdcp->stream_transcoder));
>  		/*
>  		 * If there are other connectors on this port using HDCP,
> @@ -997,51 +999,51 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
>  	}
>  
>  	hdcp->hdcp_encrypted = false;
> -	intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port), 0);
> -	if (intel_de_wait_for_clear(i915,
> -				    HDCP_STATUS(i915, cpu_transcoder, port),
> +	intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port), 0);
> +	if (intel_de_wait_for_clear(display,
> +				    HDCP_STATUS(display, cpu_transcoder, port),
>  				    ~0, HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
> -		drm_err(&i915->drm,
> +		drm_err(display->drm,
>  			"Failed to disable HDCP, timeout clearing status\n");
>  		return -ETIMEDOUT;
>  	}
>  
> -	repeater_ctl = intel_hdcp_get_repeater_ctl(i915, cpu_transcoder,
> +	repeater_ctl = intel_hdcp_get_repeater_ctl(display, cpu_transcoder,
>  						   port);
> -	intel_de_rmw(i915, HDCP_REP_CTL, repeater_ctl, 0);
> +	intel_de_rmw(display, HDCP_REP_CTL, repeater_ctl, 0);
>  
>  	ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder, false);
>  	if (ret) {
> -		drm_err(&i915->drm, "Failed to disable HDCP signalling\n");
> +		drm_err(display->drm, "Failed to disable HDCP signalling\n");
>  		return ret;
>  	}
>  
> -	drm_dbg_kms(&i915->drm, "HDCP is disabled\n");
> +	drm_dbg_kms(display->drm, "HDCP is disabled\n");
>  	return 0;
>  }
>  
>  static int intel_hdcp1_enable(struct intel_connector *connector)
>  {
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	int i, ret, tries = 3;
>  
> -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP is being enabled...\n",
> +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being enabled...\n",
>  		    connector->base.base.id, connector->base.name);
>  
> -	if (!hdcp_key_loadable(i915)) {
> -		drm_err(&i915->drm, "HDCP key Load is not possible\n");
> +	if (!hdcp_key_loadable(display)) {
> +		drm_err(display->drm, "HDCP key Load is not possible\n");
>  		return -ENXIO;
>  	}
>  
>  	for (i = 0; i < KEY_LOAD_TRIES; i++) {
> -		ret = intel_hdcp_load_keys(i915);
> +		ret = intel_hdcp_load_keys(display);
>  		if (!ret)
>  			break;
> -		intel_hdcp_clear_keys(i915);
> +		intel_hdcp_clear_keys(display);
>  	}
>  	if (ret) {
> -		drm_err(&i915->drm, "Could not load HDCP keys, (%d)\n",
> +		drm_err(display->drm, "Could not load HDCP keys, (%d)\n",
>  			ret);
>  		return ret;
>  	}
> @@ -1054,13 +1056,13 @@ static int intel_hdcp1_enable(struct intel_connector *connector)
>  			return 0;
>  		}
>  
> -		drm_dbg_kms(&i915->drm, "HDCP Auth failure (%d)\n", ret);
> +		drm_dbg_kms(display->drm, "HDCP Auth failure (%d)\n", ret);
>  
>  		/* Ensuring HDCP encryption and signalling are stopped. */
>  		_intel_hdcp_disable(connector);
>  	}
>  
> -	drm_dbg_kms(&i915->drm,
> +	drm_dbg_kms(display->drm,
>  		    "HDCP authentication failed (%d tries/%d)\n", tries, ret);
>  	return ret;
>  }
> @@ -1074,9 +1076,9 @@ static void intel_hdcp_update_value(struct intel_connector *connector,
>  				    u64 value, bool update_property)
>  {
>  	struct drm_device *dev = connector->base.dev;
> +	struct drm_i915_private *i915 = to_i915(dev);

Please add the struct intel_display * anyway, and use
to_i915(display->drm). Generally we don't want struct drm_device local
variables (but yeah it's already there).

>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  
>  	drm_WARN_ON(connector->base.dev, !mutex_is_locked(&hdcp->mutex));
>  
> @@ -1103,7 +1105,7 @@ static void intel_hdcp_update_value(struct intel_connector *connector,
>  static int intel_hdcp_check_link(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = dig_port->base.port;
>  	enum transcoder cpu_transcoder;
> @@ -1121,12 +1123,12 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
>  		goto out;
>  	}
>  
> -	if (drm_WARN_ON(&i915->drm,
> -			!intel_hdcp_in_use(i915, cpu_transcoder, port))) {
> -		drm_err(&i915->drm,
> +	if (drm_WARN_ON(display->drm,
> +			!intel_hdcp_in_use(display, cpu_transcoder, port))) {
> +		drm_err(display->drm,
>  			"[CONNECTOR:%d:%s] HDCP link stopped encryption,%x\n",
>  			connector->base.base.id, connector->base.name,
> -			intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)));
> +			intel_de_read(display, HDCP_STATUS(display, cpu_transcoder, port)));
>  		ret = -ENXIO;
>  		intel_hdcp_update_value(connector,
>  					DRM_MODE_CONTENT_PROTECTION_DESIRED,
> @@ -1142,13 +1144,13 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
>  		goto out;
>  	}
>  
> -	drm_dbg_kms(&i915->drm,
> +	drm_dbg_kms(display->drm,
>  		    "[CONNECTOR:%d:%s] HDCP link failed, retrying authentication\n",
>  		    connector->base.base.id, connector->base.name);
>  
>  	ret = _intel_hdcp_disable(connector);
>  	if (ret) {
> -		drm_err(&i915->drm, "Failed to disable hdcp (%d)\n", ret);
> +		drm_err(display->drm, "Failed to disable hdcp (%d)\n", ret);
>  		intel_hdcp_update_value(connector,
>  					DRM_MODE_CONTENT_PROTECTION_DESIRED,
>  					true);
> @@ -1169,9 +1171,9 @@ static void intel_hdcp_prop_work(struct work_struct *work)
>  	struct intel_hdcp *hdcp = container_of(work, struct intel_hdcp,
>  					       prop_work);
>  	struct intel_connector *connector = intel_hdcp_to_connector(hdcp);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  
> -	drm_modeset_lock(&i915->drm.mode_config.connection_mutex, NULL);
> +	drm_modeset_lock(&display->drm->mode_config.connection_mutex, NULL);
>  	mutex_lock(&hdcp->mutex);
>  
>  	/*
> @@ -1184,7 +1186,7 @@ static void intel_hdcp_prop_work(struct work_struct *work)
>  						   hdcp->value);
>  
>  	mutex_unlock(&hdcp->mutex);
> -	drm_modeset_unlock(&i915->drm.mode_config.connection_mutex);
> +	drm_modeset_unlock(&display->drm->mode_config.connection_mutex);
>  
>  	drm_connector_put(&connector->base);
>  }
> @@ -1200,24 +1202,24 @@ hdcp2_prepare_ake_init(struct intel_connector *connector,
>  		       struct hdcp2_ake_init *ake_data)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
>  	ret = arbiter->ops->initiate_hdcp2_session(arbiter->hdcp_dev, data, ake_data);
>  	if (ret)
> -		drm_dbg_kms(&i915->drm, "Prepare_ake_init failed. %d\n",
> +		drm_dbg_kms(display->drm, "Prepare_ake_init failed. %d\n",
>  			    ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1230,16 +1232,16 @@ hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector,
>  				size_t *msg_sz)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
> @@ -1247,9 +1249,9 @@ hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector,
>  							 rx_cert, paired,
>  							 ek_pub_km, msg_sz);
>  	if (ret < 0)
> -		drm_dbg_kms(&i915->drm, "Verify rx_cert failed. %d\n",
> +		drm_dbg_kms(display->drm, "Verify rx_cert failed. %d\n",
>  			    ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1258,23 +1260,23 @@ static int hdcp2_verify_hprime(struct intel_connector *connector,
>  			       struct hdcp2_ake_send_hprime *rx_hprime)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
>  	ret = arbiter->ops->verify_hprime(arbiter->hdcp_dev, data, rx_hprime);
>  	if (ret < 0)
> -		drm_dbg_kms(&i915->drm, "Verify hprime failed. %d\n", ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		drm_dbg_kms(display->drm, "Verify hprime failed. %d\n", ret);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1284,24 +1286,24 @@ hdcp2_store_pairing_info(struct intel_connector *connector,
>  			 struct hdcp2_ake_send_pairing_info *pairing_info)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
>  	ret = arbiter->ops->store_pairing_info(arbiter->hdcp_dev, data, pairing_info);
>  	if (ret < 0)
> -		drm_dbg_kms(&i915->drm, "Store pairing info failed. %d\n",
> +		drm_dbg_kms(display->drm, "Store pairing info failed. %d\n",
>  			    ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1311,24 +1313,24 @@ hdcp2_prepare_lc_init(struct intel_connector *connector,
>  		      struct hdcp2_lc_init *lc_init)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
>  	ret = arbiter->ops->initiate_locality_check(arbiter->hdcp_dev, data, lc_init);
>  	if (ret < 0)
> -		drm_dbg_kms(&i915->drm, "Prepare lc_init failed. %d\n",
> +		drm_dbg_kms(display->drm, "Prepare lc_init failed. %d\n",
>  			    ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1338,24 +1340,24 @@ hdcp2_verify_lprime(struct intel_connector *connector,
>  		    struct hdcp2_lc_send_lprime *rx_lprime)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
>  	ret = arbiter->ops->verify_lprime(arbiter->hdcp_dev, data, rx_lprime);
>  	if (ret < 0)
> -		drm_dbg_kms(&i915->drm, "Verify L_Prime failed. %d\n",
> +		drm_dbg_kms(display->drm, "Verify L_Prime failed. %d\n",
>  			    ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1364,24 +1366,24 @@ static int hdcp2_prepare_skey(struct intel_connector *connector,
>  			      struct hdcp2_ske_send_eks *ske_data)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
>  	ret = arbiter->ops->get_session_key(arbiter->hdcp_dev, data, ske_data);
>  	if (ret < 0)
> -		drm_dbg_kms(&i915->drm, "Get session key failed. %d\n",
> +		drm_dbg_kms(display->drm, "Get session key failed. %d\n",
>  			    ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1393,16 +1395,16 @@ hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector,
>  				      struct hdcp2_rep_send_ack *rep_send_ack)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
> @@ -1411,9 +1413,9 @@ hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector,
>  							    rep_topology,
>  							    rep_send_ack);
>  	if (ret < 0)
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "Verify rep topology failed. %d\n", ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1423,23 +1425,23 @@ hdcp2_verify_mprime(struct intel_connector *connector,
>  		    struct hdcp2_rep_stream_ready *stream_ready)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
>  	ret = arbiter->ops->verify_mprime(arbiter->hdcp_dev, data, stream_ready);
>  	if (ret < 0)
> -		drm_dbg_kms(&i915->drm, "Verify mprime failed. %d\n", ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		drm_dbg_kms(display->drm, "Verify mprime failed. %d\n", ret);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1447,24 +1449,24 @@ hdcp2_verify_mprime(struct intel_connector *connector,
>  static int hdcp2_authenticate_port(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
>  	ret = arbiter->ops->enable_hdcp_authentication(arbiter->hdcp_dev, data);
>  	if (ret < 0)
> -		drm_dbg_kms(&i915->drm, "Enable hdcp auth failed. %d\n",
> +		drm_dbg_kms(display->drm, "Enable hdcp auth failed. %d\n",
>  			    ret);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1472,21 +1474,21 @@ static int hdcp2_authenticate_port(struct intel_connector *connector)
>  static int hdcp2_close_session(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	arbiter = i915->display.hdcp.arbiter;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	arbiter = display->hdcp.arbiter;
>  
>  	if (!arbiter || !arbiter->ops) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return -EINVAL;
>  	}
>  
>  	ret = arbiter->ops->close_hdcp_session(arbiter->hdcp_dev,
>  					     &dig_port->hdcp_port_data);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
> @@ -1499,7 +1501,7 @@ static int hdcp2_deauthenticate_port(struct intel_connector *connector)
>  /* Authentication flow starts from here */
>  static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
>  {
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	union {
>  		struct hdcp2_ake_init ake_init;
> @@ -1531,16 +1533,16 @@ static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
>  		return ret;
>  
>  	if (msgs.send_cert.rx_caps[0] != HDCP_2_2_RX_CAPS_VERSION_VAL) {
> -		drm_dbg_kms(&i915->drm, "cert.rx_caps dont claim HDCP2.2\n");
> +		drm_dbg_kms(display->drm, "cert.rx_caps dont claim HDCP2.2\n");
>  		return -EINVAL;
>  	}
>  
>  	hdcp->is_repeater = HDCP_2_2_RX_REPEATER(msgs.send_cert.rx_caps[2]);
>  
> -	if (drm_hdcp_check_ksvs_revoked(&i915->drm,
> +	if (drm_hdcp_check_ksvs_revoked(display->drm,
>  					msgs.send_cert.cert_rx.receiver_id,
>  					1) > 0) {
> -		drm_err(&i915->drm, "Receiver ID is revoked\n");
> +		drm_err(display->drm, "Receiver ID is revoked\n");
>  		return -EPERM;
>  	}
>  
> @@ -1692,7 +1694,7 @@ static
>  int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	union {
>  		struct hdcp2_rep_send_receiverid_list recvid_list;
> @@ -1712,7 +1714,7 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
>  
>  	if (HDCP_2_2_MAX_CASCADE_EXCEEDED(rx_info[1]) ||
>  	    HDCP_2_2_MAX_DEVS_EXCEEDED(rx_info[1])) {
> -		drm_dbg_kms(&i915->drm, "Topology Max Size Exceeded\n");
> +		drm_dbg_kms(display->drm, "Topology Max Size Exceeded\n");
>  		return -EINVAL;
>  	}
>  
> @@ -1725,7 +1727,7 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
>  		!HDCP_2_2_HDCP_2_0_REP_CONNECTED(rx_info[1]);
>  
>  	if (!dig_port->hdcp_mst_type1_capable && hdcp->content_type) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "HDCP1.x or 2.0 Legacy Device Downstream\n");
>  		return -EINVAL;
>  	}
> @@ -1735,23 +1737,23 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
>  		drm_hdcp_be24_to_cpu((const u8 *)msgs.recvid_list.seq_num_v);
>  
>  	if (!hdcp->hdcp2_encrypted && seq_num_v) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "Non zero Seq_num_v at first RecvId_List msg\n");
>  		return -EINVAL;
>  	}
>  
>  	if (seq_num_v < hdcp->seq_num_v) {
>  		/* Roll over of the seq_num_v from repeater. Reauthenticate. */
> -		drm_dbg_kms(&i915->drm, "Seq_num_v roll over.\n");
> +		drm_dbg_kms(display->drm, "Seq_num_v roll over.\n");
>  		return -EINVAL;
>  	}
>  
>  	device_cnt = (HDCP_2_2_DEV_COUNT_HI(rx_info[0]) << 4 |
>  		      HDCP_2_2_DEV_COUNT_LO(rx_info[1]));
> -	if (drm_hdcp_check_ksvs_revoked(&i915->drm,
> +	if (drm_hdcp_check_ksvs_revoked(display->drm,
>  					msgs.recvid_list.receiver_ids,
>  					device_cnt) > 0) {
> -		drm_err(&i915->drm, "Revoked receiver ID(s) is in list\n");
> +		drm_err(display->drm, "Revoked receiver ID(s) is in list\n");
>  		return -EPERM;
>  	}
>  
> @@ -1772,27 +1774,27 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
>  
>  static int hdcp2_authenticate_sink(struct intel_connector *connector)
>  {
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	const struct intel_hdcp_shim *shim = hdcp->shim;
>  	int ret;
>  
>  	ret = hdcp2_authentication_key_exchange(connector);
>  	if (ret < 0) {
> -		drm_dbg_kms(&i915->drm, "AKE Failed. Err : %d\n", ret);
> +		drm_dbg_kms(display->drm, "AKE Failed. Err : %d\n", ret);
>  		return ret;
>  	}
>  
>  	ret = hdcp2_locality_check(connector);
>  	if (ret < 0) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "Locality Check failed. Err : %d\n", ret);
>  		return ret;
>  	}
>  
>  	ret = hdcp2_session_key_exchange(connector);
>  	if (ret < 0) {
> -		drm_dbg_kms(&i915->drm, "SKE Failed. Err : %d\n", ret);
> +		drm_dbg_kms(display->drm, "SKE Failed. Err : %d\n", ret);
>  		return ret;
>  	}
>  
> @@ -1807,7 +1809,7 @@ static int hdcp2_authenticate_sink(struct intel_connector *connector)
>  	if (hdcp->is_repeater) {
>  		ret = hdcp2_authenticate_repeater_topology(connector);
>  		if (ret < 0) {
> -			drm_dbg_kms(&i915->drm,
> +			drm_dbg_kms(display->drm,
>  				    "Repeater Auth Failed. Err: %d\n", ret);
>  			return ret;
>  		}
> @@ -1819,16 +1821,16 @@ static int hdcp2_authenticate_sink(struct intel_connector *connector)
>  static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	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;
>  	int ret = 0;
>  
> -	if (!(intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) &
> +	if (!(intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) &
>  			    LINK_ENCRYPTION_STATUS)) {
> -		drm_err(&i915->drm, "[CONNECTOR:%d:%s] HDCP 2.2 Link is not encrypted\n",
> +		drm_err(display->drm, "[CONNECTOR:%d:%s] HDCP 2.2 Link is not encrypted\n",
>  			connector->base.base.id, connector->base.name);
>  		ret = -EPERM;
>  		goto link_recover;
> @@ -1837,11 +1839,11 @@ static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
>  	if (hdcp->shim->stream_2_2_encryption) {
>  		ret = hdcp->shim->stream_2_2_encryption(connector, true);
>  		if (ret) {
> -			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 2.2 stream enc\n",
> +			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 2.2 stream enc\n",
>  				connector->base.base.id, connector->base.name);
>  			return ret;
>  		}
> -		drm_dbg_kms(&i915->drm, "HDCP 2.2 transcoder: %s stream encrypted\n",
> +		drm_dbg_kms(display->drm, "HDCP 2.2 transcoder: %s stream encrypted\n",
>  			    transcoder_name(hdcp->stream_transcoder));
>  	}
>  
> @@ -1849,7 +1851,7 @@ static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
>  
>  link_recover:
>  	if (hdcp2_deauthenticate_port(connector) < 0)
> -		drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
> +		drm_dbg_kms(display->drm, "Port deauth failed.\n");
>  
>  	dig_port->hdcp_auth_status = false;
>  	data->k = 0;
> @@ -1860,34 +1862,34 @@ static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
>  static int hdcp2_enable_encryption(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = dig_port->base.port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	int ret;
>  
> -	drm_WARN_ON(&i915->drm,
> -		    intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) &
> +	drm_WARN_ON(display->drm,
> +		    intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) &
>  		    LINK_ENCRYPTION_STATUS);
>  	if (hdcp->shim->toggle_signalling) {
>  		ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder,
>  						    true);
>  		if (ret) {
> -			drm_err(&i915->drm,
> +			drm_err(display->drm,
>  				"Failed to enable HDCP signalling. %d\n",
>  				ret);
>  			return ret;
>  		}
>  	}
>  
> -	if (intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) &
> +	if (intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) &
>  	    LINK_AUTH_STATUS)
>  		/* Link is Authenticated. Now set for Encryption */
> -		intel_de_rmw(i915, HDCP2_CTL(i915, cpu_transcoder, port),
> +		intel_de_rmw(display, HDCP2_CTL(display, cpu_transcoder, port),
>  			     0, CTL_LINK_ENCRYPTION_REQ);
>  
> -	ret = intel_de_wait_for_set(i915,
> -				    HDCP2_STATUS(i915, cpu_transcoder,
> +	ret = intel_de_wait_for_set(display,
> +				    HDCP2_STATUS(display, cpu_transcoder,
>  						 port),
>  				    LINK_ENCRYPTION_STATUS,
>  				    HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
> @@ -1899,31 +1901,32 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
>  static int hdcp2_disable_encryption(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = dig_port->base.port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	int ret;
>  
> -	drm_WARN_ON(&i915->drm, !(intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) &
> -				      LINK_ENCRYPTION_STATUS));
> +	drm_WARN_ON(display->drm,
> +		    !(intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) &
> +				    LINK_ENCRYPTION_STATUS));
>  
> -	intel_de_rmw(i915, HDCP2_CTL(i915, cpu_transcoder, port),
> +	intel_de_rmw(display, HDCP2_CTL(display, cpu_transcoder, port),
>  		     CTL_LINK_ENCRYPTION_REQ, 0);
>  
> -	ret = intel_de_wait_for_clear(i915,
> -				      HDCP2_STATUS(i915, cpu_transcoder,
> +	ret = intel_de_wait_for_clear(display,
> +				      HDCP2_STATUS(display, cpu_transcoder,
>  						   port),
>  				      LINK_ENCRYPTION_STATUS,
>  				      HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
>  	if (ret == -ETIMEDOUT)
> -		drm_dbg_kms(&i915->drm, "Disable Encryption Timedout");
> +		drm_dbg_kms(display->drm, "Disable Encryption Timedout");
>  
>  	if (hdcp->shim->toggle_signalling) {
>  		ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder,
>  						    false);
>  		if (ret) {
> -			drm_err(&i915->drm,
> +			drm_err(display->drm,
>  				"Failed to disable HDCP signalling. %d\n",
>  				ret);
>  			return ret;
> @@ -1936,7 +1939,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
>  static int
>  hdcp2_propagate_stream_management_info(struct intel_connector *connector)
>  {
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	int i, tries = 3, ret;
>  
>  	if (!connector->hdcp.is_repeater)
> @@ -1949,12 +1952,12 @@ hdcp2_propagate_stream_management_info(struct intel_connector *connector)
>  
>  		/* Lets restart the auth incase of seq_num_m roll over */
>  		if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) {
> -			drm_dbg_kms(&i915->drm,
> +			drm_dbg_kms(display->drm,
>  				    "seq_num_m roll over.(%d)\n", ret);
>  			break;
>  		}
>  
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "HDCP2 stream management %d of %d Failed.(%d)\n",
>  			    i + 1, tries, ret);
>  	}
> @@ -1966,7 +1969,7 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
>  					  struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	int ret = 0, i, tries = 3;
>  
>  	for (i = 0; i < tries && !dig_port->hdcp_auth_status; i++) {
> @@ -1974,7 +1977,7 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
>  		if (!ret) {
>  			ret = intel_hdcp_prepare_streams(state, connector);
>  			if (ret) {
> -				drm_dbg_kms(&i915->drm,
> +				drm_dbg_kms(display->drm,
>  					    "Prepare stream failed.(%d)\n",
>  					    ret);
>  				break;
> @@ -1982,7 +1985,7 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
>  
>  			ret = hdcp2_propagate_stream_management_info(connector);
>  			if (ret) {
> -				drm_dbg_kms(&i915->drm,
> +				drm_dbg_kms(display->drm,
>  					    "Stream management failed.(%d)\n",
>  					    ret);
>  				break;
> @@ -1991,15 +1994,15 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
>  			ret = hdcp2_authenticate_port(connector);
>  			if (!ret)
>  				break;
> -			drm_dbg_kms(&i915->drm, "HDCP2 port auth failed.(%d)\n",
> +			drm_dbg_kms(display->drm, "HDCP2 port auth failed.(%d)\n",
>  				    ret);
>  		}
>  
>  		/* Clearing the mei hdcp session */
> -		drm_dbg_kms(&i915->drm, "HDCP2.2 Auth %d of %d Failed.(%d)\n",
> +		drm_dbg_kms(display->drm, "HDCP2.2 Auth %d of %d Failed.(%d)\n",
>  			    i + 1, tries, ret);
>  		if (hdcp2_deauthenticate_port(connector) < 0)
> -			drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
> +			drm_dbg_kms(display->drm, "Port deauth failed.\n");
>  	}
>  
>  	if (!ret && !dig_port->hdcp_auth_status) {
> @@ -2010,10 +2013,10 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
>  		msleep(HDCP_2_2_DELAY_BEFORE_ENCRYPTION_EN);
>  		ret = hdcp2_enable_encryption(connector);
>  		if (ret < 0) {
> -			drm_dbg_kms(&i915->drm,
> +			drm_dbg_kms(display->drm,
>  				    "Encryption Enable Failed.(%d)\n", ret);
>  			if (hdcp2_deauthenticate_port(connector) < 0)
> -				drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
> +				drm_dbg_kms(display->drm, "Port deauth failed.\n");
>  		}
>  	}
>  
> @@ -2026,11 +2029,11 @@ static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
>  static int _intel_hdcp2_enable(struct intel_atomic_state *state,
>  			       struct intel_connector *connector)
>  {
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	int ret;
>  
> -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being enabled. Type: %d\n",
> +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being enabled. Type: %d\n",
>  		    connector->base.base.id, connector->base.name,
>  		    hdcp->content_type);
>  
> @@ -2038,12 +2041,12 @@ static int _intel_hdcp2_enable(struct intel_atomic_state *state,
>  
>  	ret = hdcp2_authenticate_and_encrypt(state, connector);
>  	if (ret) {
> -		drm_dbg_kms(&i915->drm, "HDCP2 Type%d  Enabling Failed. (%d)\n",
> +		drm_dbg_kms(display->drm, "HDCP2 Type%d  Enabling Failed. (%d)\n",
>  			    hdcp->content_type, ret);
>  		return ret;
>  	}
>  
> -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP2.2 is enabled. Type %d\n",
> +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is enabled. Type %d\n",
>  		    connector->base.base.id, connector->base.name,
>  		    hdcp->content_type);
>  
> @@ -2055,22 +2058,22 @@ static int
>  _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	int ret;
>  
> -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being Disabled\n",
> +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being Disabled\n",
>  		    connector->base.base.id, connector->base.name);
>  
>  	if (hdcp->shim->stream_2_2_encryption) {
>  		ret = hdcp->shim->stream_2_2_encryption(connector, false);
>  		if (ret) {
> -			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 2.2 stream enc\n",
> +			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 2.2 stream enc\n",
>  				connector->base.base.id, connector->base.name);
>  			return ret;
>  		}
> -		drm_dbg_kms(&i915->drm, "HDCP 2.2 transcoder: %s stream encryption disabled\n",
> +		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)
> @@ -2080,7 +2083,7 @@ _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
>  	ret = hdcp2_disable_encryption(connector);
>  
>  	if (hdcp2_deauthenticate_port(connector) < 0)
> -		drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
> +		drm_dbg_kms(display->drm, "Port deauth failed.\n");
>  
>  	connector->hdcp.hdcp2_encrypted = false;
>  	dig_port->hdcp_auth_status = false;
> @@ -2093,7 +2096,7 @@ _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
>  static int intel_hdcp2_check_link(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = dig_port->base.port;
>  	enum transcoder cpu_transcoder;
> @@ -2110,11 +2113,11 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
>  		goto out;
>  	}
>  
> -	if (drm_WARN_ON(&i915->drm,
> -			!intel_hdcp2_in_use(i915, cpu_transcoder, port))) {
> -		drm_err(&i915->drm,
> +	if (drm_WARN_ON(display->drm,
> +			!intel_hdcp2_in_use(display, cpu_transcoder, port))) {
> +		drm_err(display->drm,
>  			"HDCP2.2 link stopped the encryption, %x\n",
> -			intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)));
> +			intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)));
>  		ret = -ENXIO;
>  		_intel_hdcp2_disable(connector, true);
>  		intel_hdcp_update_value(connector,
> @@ -2137,17 +2140,17 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
>  		if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
>  			goto out;
>  
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "HDCP2.2 Downstream topology change\n");
>  	} else {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "[CONNECTOR:%d:%s] HDCP2.2 link failed, retrying auth\n",
>  			    connector->base.base.id, connector->base.name);
>  	}
>  
>  	ret = _intel_hdcp2_disable(connector, true);
>  	if (ret) {
> -		drm_err(&i915->drm,
> +		drm_err(display->drm,
>  			"[CONNECTOR:%d:%s] Failed to disable hdcp2.2 (%d)\n",
>  			connector->base.base.id, connector->base.name, ret);
>  		intel_hdcp_update_value(connector,
> @@ -2186,13 +2189,12 @@ static int i915_hdcp_component_bind(struct device *drv_kdev,
>  				    struct device *mei_kdev, void *data)
>  {
>  	struct intel_display *display = to_intel_display(drv_kdev);
> -	struct drm_i915_private *i915 = to_i915(display->drm);
>  
> -	drm_dbg(&i915->drm, "I915 HDCP comp bind\n");
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	i915->display.hdcp.arbiter = (struct i915_hdcp_arbiter *)data;
> -	i915->display.hdcp.arbiter->hdcp_dev = mei_kdev;
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	drm_dbg(display->drm, "I915 HDCP comp bind\n");
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	display->hdcp.arbiter = (struct i915_hdcp_arbiter *)data;
> +	display->hdcp.arbiter->hdcp_dev = mei_kdev;
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return 0;
>  }
> @@ -2201,12 +2203,11 @@ static void i915_hdcp_component_unbind(struct device *drv_kdev,
>  				       struct device *mei_kdev, void *data)
>  {
>  	struct intel_display *display = to_intel_display(drv_kdev);
> -	struct drm_i915_private *i915 = to_i915(display->drm);
>  
> -	drm_dbg(&i915->drm, "I915 HDCP comp unbind\n");
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	i915->display.hdcp.arbiter = NULL;
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	drm_dbg(display->drm, "I915 HDCP comp unbind\n");
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	display->hdcp.arbiter = NULL;
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  }
>  
>  static const struct component_ops i915_hdcp_ops = {
> @@ -2240,11 +2241,11 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
>  				     struct intel_digital_port *dig_port,
>  				     const struct intel_hdcp_shim *shim)
>  {
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
>  	enum port port = dig_port->base.port;
>  
> -	if (DISPLAY_VER(i915) < 12)
> +	if (DISPLAY_VER(display) < 12)
>  		data->hdcp_ddi = intel_get_hdcp_ddi_index(port);
>  	else
>  		/*
> @@ -2264,11 +2265,11 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
>  	data->protocol = (u8)shim->protocol;
>  
>  	if (!data->streams)
> -		data->streams = kcalloc(INTEL_NUM_PIPES(i915),
> +		data->streams = kcalloc(INTEL_NUM_PIPES(display),
>  					sizeof(struct hdcp2_streamid_type),
>  					GFP_KERNEL);
>  	if (!data->streams) {
> -		drm_err(&i915->drm, "Out of Memory\n");
> +		drm_err(display->drm, "Out of Memory\n");
>  		return -ENOMEM;
>  	}
>  
> @@ -2277,13 +2278,15 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
>  
>  static bool is_hdcp2_supported(struct drm_i915_private *i915)
>  {
> -	if (intel_hdcp_gsc_cs_required(i915))
> +	struct intel_display *display = to_intel_display(&i915->drm);
> +
> +	if (intel_hdcp_gsc_cs_required(display))
>  		return true;
>  
>  	if (!IS_ENABLED(CONFIG_INTEL_MEI_HDCP))
>  		return false;
>  
> -	return (DISPLAY_VER(i915) >= 10 ||
> +	return (DISPLAY_VER(display) >= 10 ||
>  		IS_KABYLAKE(i915) ||
>  		IS_COFFEELAKE(i915) ||
>  		IS_COMETLAKE(i915));
> @@ -2291,28 +2294,29 @@ static bool is_hdcp2_supported(struct drm_i915_private *i915)
>  
>  void intel_hdcp_component_init(struct drm_i915_private *i915)
>  {
> +	struct intel_display *display = to_intel_display(&i915->drm);
>  	int ret;
>  
>  	if (!is_hdcp2_supported(i915))
>  		return;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	drm_WARN_ON(&i915->drm, i915->display.hdcp.comp_added);
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	drm_WARN_ON(display->drm, display->hdcp.comp_added);
>  
> -	i915->display.hdcp.comp_added = true;
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> -	if (intel_hdcp_gsc_cs_required(i915))
> +	display->hdcp.comp_added = true;
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
> +	if (intel_hdcp_gsc_cs_required(display))
>  		ret = intel_hdcp_gsc_init(i915);
>  	else
> -		ret = component_add_typed(i915->drm.dev, &i915_hdcp_ops,
> +		ret = component_add_typed(display->drm->dev, &i915_hdcp_ops,
>  					  I915_COMPONENT_HDCP);
>  
>  	if (ret < 0) {
> -		drm_dbg_kms(&i915->drm, "Failed at fw component add(%d)\n",
> +		drm_dbg_kms(display->drm, "Failed at fw component add(%d)\n",
>  			    ret);
> -		mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -		i915->display.hdcp.comp_added = false;
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +		mutex_lock(&display->hdcp.hdcp_mutex);
> +		display->hdcp.comp_added = false;
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return;
>  	}
>  }
> @@ -2321,13 +2325,13 @@ static void intel_hdcp2_init(struct intel_connector *connector,
>  			     struct intel_digital_port *dig_port,
>  			     const struct intel_hdcp_shim *shim)
>  {
> -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	int ret;
>  
>  	ret = initialize_hdcp_port_data(connector, dig_port, shim);
>  	if (ret) {
> -		drm_dbg_kms(&i915->drm, "Mei hdcp data init failed\n");
> +		drm_dbg_kms(display->drm, "Mei hdcp data init failed\n");
>  		return;
>  	}
>  
> @@ -2374,6 +2378,7 @@ static int _intel_hdcp_enable(struct intel_atomic_state *state,
>  	struct drm_i915_private *i915 = to_i915(encoder->base.dev);
>  	struct intel_connector *connector =
>  		to_intel_connector(conn_state->connector);
> +	struct intel_display *display = to_intel_display(connector->base.dev);
>  	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	unsigned long check_link_interval = DRM_HDCP_CHECK_PERIOD_MS;
> @@ -2383,14 +2388,14 @@ static int _intel_hdcp_enable(struct intel_atomic_state *state,
>  		return -ENOENT;
>  
>  	if (!connector->encoder) {
> -		drm_err(&i915->drm, "[CONNECTOR:%d:%s] encoder is not initialized\n",
> +		drm_err(display->drm, "[CONNECTOR:%d:%s] encoder is not initialized\n",
>  			connector->base.base.id, connector->base.name);
>  		return -ENODEV;
>  	}
>  
>  	mutex_lock(&hdcp->mutex);
>  	mutex_lock(&dig_port->hdcp_mutex);
> -	drm_WARN_ON(&i915->drm,
> +	drm_WARN_ON(display->drm,
>  		    hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
>  	hdcp->content_type = (u8)conn_state->hdcp_content_type;
>  
> @@ -2552,19 +2557,21 @@ void intel_hdcp_update_pipe(struct intel_atomic_state *state,
>  
>  void intel_hdcp_component_fini(struct drm_i915_private *i915)
>  {
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	if (!i915->display.hdcp.comp_added) {
> -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	struct intel_display *display = to_intel_display(&i915->drm);
> +
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	if (!display->hdcp.comp_added) {
> +		mutex_unlock(&display->hdcp.hdcp_mutex);
>  		return;
>  	}
>  
> -	i915->display.hdcp.comp_added = false;
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	display->hdcp.comp_added = false;
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
> -	if (intel_hdcp_gsc_cs_required(i915))
> +	if (intel_hdcp_gsc_cs_required(display))
>  		intel_hdcp_gsc_fini(i915);
>  	else
> -		component_del(i915->drm.dev, &i915_hdcp_ops);
> +		component_del(display->drm->dev, &i915_hdcp_ops);
>  }
>  
>  void intel_hdcp_cleanup(struct intel_connector *connector)
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> index 16afeb8a3a8d..dc5cc1d54c85 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> @@ -19,18 +19,19 @@ struct intel_hdcp_gsc_message {
>  	void *hdcp_cmd_out;
>  };
>  
> -bool intel_hdcp_gsc_cs_required(struct drm_i915_private *i915)
> +bool intel_hdcp_gsc_cs_required(struct intel_display *display)
>  {
> -	return DISPLAY_VER(i915) >= 14;
> +	return DISPLAY_VER(display) >= 14;
>  }
>  
> -bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915)
> +bool intel_hdcp_gsc_check_status(struct intel_display *display)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	struct intel_gt *gt = i915->media_gt;
>  	struct intel_gsc_uc *gsc = gt ? &gt->uc.gsc : NULL;
>  
>  	if (!gsc || !intel_uc_fw_is_running(&gsc->fw)) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "GSC components required for HDCP2.2 are not ready\n");
>  		return false;
>  	}
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> index 5f610df61cc9..b6aabd855478 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> @@ -10,14 +10,15 @@
>  #include <linux/types.h>
>  
>  struct drm_i915_private;
> +struct intel_display;
>  struct intel_hdcp_gsc_message;
>  
> -bool intel_hdcp_gsc_cs_required(struct drm_i915_private *i915);
> +bool intel_hdcp_gsc_cs_required(struct intel_display *display);
>  ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
>  				size_t msg_in_len, u8 *msg_out,
>  				size_t msg_out_len);
>  int intel_hdcp_gsc_init(struct drm_i915_private *i915);
>  void intel_hdcp_gsc_fini(struct drm_i915_private *i915);
> -bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915);
> +bool intel_hdcp_gsc_check_status(struct intel_display *display);
>  
>  #endif /* __INTEL_HDCP_GCS_H__ */
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
> index ce199d6f6232..2d597f27e931 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
> @@ -22,11 +22,12 @@ struct hdcp2_ske_send_eks;
>  struct hdcp2_rep_send_receiverid_list;
>  struct hdcp2_rep_send_ack;
>  struct hdcp2_rep_stream_ready;
> +struct intel_display;
>  
>  ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
>  				size_t msg_in_len, u8 *msg_out,
>  				size_t msg_out_len);
> -bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915);
> +bool intel_hdcp_gsc_check_status(struct intel_display *display);
>  int
>  intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
>  				struct hdcp2_ake_init *ake_data);
> diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> index 6619a40aed15..5badf90b26de 100644
> --- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> +++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> @@ -30,13 +30,14 @@ struct intel_hdcp_gsc_message {
>  
>  #define HDCP_GSC_HEADER_SIZE sizeof(struct intel_gsc_mtl_header)
>  
> -bool intel_hdcp_gsc_cs_required(struct xe_device *xe)
> +bool intel_hdcp_gsc_cs_required(struct intel_display *display)
>  {
> -	return DISPLAY_VER(xe) >= 14;
> +	return DISPLAY_VER(display) >= 14;
>  }
>  
> -bool intel_hdcp_gsc_check_status(struct xe_device *xe)
> +bool intel_hdcp_gsc_check_status(struct intel_display *display)
>  {
> +	struct xe_device *xe = to_xe_device(display->drm);
>  	struct xe_tile *tile = xe_device_get_root_tile(xe);
>  	struct xe_gt *gt = tile->media_gt;
>  	struct xe_gsc *gsc = &gt->uc.gsc;

-- 
Jani Nikula, Intel

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

* Re: [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc
  2024-09-10  7:47 ` [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc Suraj Kandpal
@ 2024-09-10  9:18   ` Jani Nikula
  2024-09-10 12:52     ` Kandpal, Suraj
  0 siblings, 1 reply; 10+ messages in thread
From: Jani Nikula @ 2024-09-10  9:18 UTC (permalink / raw)
  To: Suraj Kandpal, intel-gfx, intel-xe
  Cc: uma.shankar, ankit.k.nautiyal, Suraj Kandpal

On Tue, 10 Sep 2024, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> Use intel_display structure instead of drm_i915_private wherever
> possible in hdcp_gsc related files.
>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_hdcp.c     |  4 +-
>  drivers/gpu/drm/i915/display/intel_hdcp_gsc.c | 31 ++++++-------
>  drivers/gpu/drm/i915/display/intel_hdcp_gsc.h |  4 +-
>  .../drm/i915/display/intel_hdcp_gsc_message.c | 44 +++++++++----------
>  drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      | 23 +++++-----
>  5 files changed, 54 insertions(+), 52 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 964372f4343b..efc62711274f 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -2306,7 +2306,7 @@ void intel_hdcp_component_init(struct drm_i915_private *i915)
>  	display->hdcp.comp_added = true;
>  	mutex_unlock(&display->hdcp.hdcp_mutex);
>  	if (intel_hdcp_gsc_cs_required(display))
> -		ret = intel_hdcp_gsc_init(i915);
> +		ret = intel_hdcp_gsc_init(display);
>  	else
>  		ret = component_add_typed(display->drm->dev, &i915_hdcp_ops,
>  					  I915_COMPONENT_HDCP);
> @@ -2569,7 +2569,7 @@ void intel_hdcp_component_fini(struct drm_i915_private *i915)
>  	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	if (intel_hdcp_gsc_cs_required(display))
> -		intel_hdcp_gsc_fini(i915);
> +		intel_hdcp_gsc_fini(display);
>  	else
>  		component_del(display->drm->dev, &i915_hdcp_ops);
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> index dc5cc1d54c85..55965844d829 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> @@ -107,8 +107,9 @@ static const struct i915_hdcp_ops gsc_hdcp_ops = {
>  	.close_hdcp_session = intel_hdcp_gsc_close_session,
>  };
>  
> -static int intel_hdcp_gsc_hdcp2_init(struct drm_i915_private *i915)
> +static int intel_hdcp_gsc_hdcp2_init(struct intel_display *display)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	struct intel_hdcp_gsc_message *hdcp_message;
>  	int ret;
>  
> @@ -121,19 +122,19 @@ static int intel_hdcp_gsc_hdcp2_init(struct drm_i915_private *i915)
>  	 * NOTE: No need to lock the comp mutex here as it is already
>  	 * going to be taken before this function called
>  	 */
> -	i915->display.hdcp.hdcp_message = hdcp_message;
> +	display->hdcp.hdcp_message = hdcp_message;
>  	ret = intel_hdcp_gsc_initialize_message(i915, hdcp_message);
>  
>  	if (ret)
> -		drm_err(&i915->drm, "Could not initialize hdcp_message\n");
> +		drm_err(display->drm, "Could not initialize hdcp_message\n");
>  
>  	return ret;
>  }
>  
> -static void intel_hdcp_gsc_free_message(struct drm_i915_private *i915)
> +static void intel_hdcp_gsc_free_message(struct intel_display *display)
>  {
>  	struct intel_hdcp_gsc_message *hdcp_message =
> -					i915->display.hdcp.hdcp_message;
> +					display->hdcp.hdcp_message;
>  
>  	hdcp_message->hdcp_cmd_in = NULL;
>  	hdcp_message->hdcp_cmd_out = NULL;
> @@ -141,7 +142,7 @@ static void intel_hdcp_gsc_free_message(struct drm_i915_private *i915)
>  	kfree(hdcp_message);
>  }
>  
> -int intel_hdcp_gsc_init(struct drm_i915_private *i915)
> +int intel_hdcp_gsc_init(struct intel_display *display)
>  {
>  	struct i915_hdcp_arbiter *data;
>  	int ret;
> @@ -150,20 +151,20 @@ int intel_hdcp_gsc_init(struct drm_i915_private *i915)
>  	if (!data)
>  		return -ENOMEM;
>  
> -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> -	i915->display.hdcp.arbiter = data;
> -	i915->display.hdcp.arbiter->hdcp_dev = i915->drm.dev;
> -	i915->display.hdcp.arbiter->ops = &gsc_hdcp_ops;
> -	ret = intel_hdcp_gsc_hdcp2_init(i915);
> -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	display->hdcp.arbiter = data;
> +	display->hdcp.arbiter->hdcp_dev = display->drm->dev;
> +	display->hdcp.arbiter->ops = &gsc_hdcp_ops;
> +	ret = intel_hdcp_gsc_hdcp2_init(display);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
>  
> -void intel_hdcp_gsc_fini(struct drm_i915_private *i915)
> +void intel_hdcp_gsc_fini(struct intel_display *display)
>  {
> -	intel_hdcp_gsc_free_message(i915);
> -	kfree(i915->display.hdcp.arbiter);
> +	intel_hdcp_gsc_free_message(display);
> +	kfree(display->hdcp.arbiter);
>  }
>  
>  static int intel_gsc_send_sync(struct drm_i915_private *i915,
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> index b6aabd855478..5695a5e4f609 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> @@ -17,8 +17,8 @@ bool intel_hdcp_gsc_cs_required(struct intel_display *display);
>  ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
>  				size_t msg_in_len, u8 *msg_out,
>  				size_t msg_out_len);
> -int intel_hdcp_gsc_init(struct drm_i915_private *i915);
> -void intel_hdcp_gsc_fini(struct drm_i915_private *i915);
> +int intel_hdcp_gsc_init(struct intel_display *display);
> +void intel_hdcp_gsc_fini(struct intel_display *display);
>  bool intel_hdcp_gsc_check_status(struct intel_display *display);
>  
>  #endif /* __INTEL_HDCP_GCS_H__ */
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> index 35bdb532bbb3..129104fa9b16 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> @@ -46,12 +46,12 @@ intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
>  				       (u8 *)&session_init_out,
>  				       sizeof(session_init_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (session_init_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
>  			    WIRED_INITIATE_HDCP2_SESSION,
>  			    session_init_out.header.status);
>  		return -EIO;
> @@ -108,12 +108,12 @@ intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev,
>  				       (u8 *)&verify_rxcert_out,
>  				       sizeof(verify_rxcert_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed: %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed: %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (verify_rxcert_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
>  			    WIRED_VERIFY_RECEIVER_CERT,
>  			    verify_rxcert_out.header.status);
>  		return -EIO;
> @@ -171,12 +171,12 @@ intel_hdcp_gsc_verify_hprime(struct device *dev, struct hdcp_port_data *data,
>  				       (u8 *)&send_hprime_out,
>  				       sizeof(send_hprime_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (send_hprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
>  			    WIRED_AKE_SEND_HPRIME, send_hprime_out.header.status);
>  		return -EIO;
>  	}
> @@ -222,12 +222,12 @@ intel_hdcp_gsc_store_pairing_info(struct device *dev, struct hdcp_port_data *dat
>  				       (u8 *)&pairing_info_out,
>  				       sizeof(pairing_info_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (pairing_info_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. Status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. Status: 0x%X\n",
>  			    WIRED_AKE_SEND_PAIRING_INFO,
>  			    pairing_info_out.header.status);
>  		return -EIO;
> @@ -269,12 +269,12 @@ intel_hdcp_gsc_initiate_locality_check(struct device *dev,
>  	byte = intel_hdcp_gsc_msg_send(i915, (u8 *)&lc_init_in, sizeof(lc_init_in),
>  				       (u8 *)&lc_init_out, sizeof(lc_init_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (lc_init_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. status: 0x%X\n",
>  			    WIRED_INIT_LOCALITY_CHECK, lc_init_out.header.status);
>  		return -EIO;
>  	}
> @@ -323,12 +323,12 @@ intel_hdcp_gsc_verify_lprime(struct device *dev, struct hdcp_port_data *data,
>  				       (u8 *)&verify_lprime_out,
>  				       sizeof(verify_lprime_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (verify_lprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
>  			    WIRED_VALIDATE_LOCALITY,
>  			    verify_lprime_out.header.status);
>  		return -EIO;
> @@ -369,12 +369,12 @@ int intel_hdcp_gsc_get_session_key(struct device *dev,
>  	byte = intel_hdcp_gsc_msg_send(i915, (u8 *)&get_skey_in, sizeof(get_skey_in),
>  				       (u8 *)&get_skey_out, sizeof(get_skey_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (get_skey_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
>  			    WIRED_GET_SESSION_KEY, get_skey_out.header.status);
>  		return -EIO;
>  	}
> @@ -435,12 +435,12 @@ intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,
>  				       (u8 *)&verify_repeater_out,
>  				       sizeof(verify_repeater_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (verify_repeater_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
>  			    WIRED_VERIFY_REPEATER,
>  			    verify_repeater_out.header.status);
>  		return -EIO;
> @@ -504,12 +504,12 @@ int intel_hdcp_gsc_verify_mprime(struct device *dev,
>  				       sizeof(verify_mprime_out));
>  	kfree(verify_mprime_in);
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (verify_mprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
>  			    WIRED_REPEATER_AUTH_STREAM_REQ,
>  			    verify_mprime_out.header.status);
>  		return -EIO;
> @@ -552,12 +552,12 @@ int intel_hdcp_gsc_enable_authentication(struct device *dev,
>  				       (u8 *)&enable_auth_out,
>  				       sizeof(enable_auth_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (enable_auth_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
>  			    WIRED_ENABLE_AUTH, enable_auth_out.header.status);
>  		return -EIO;
>  	}
> @@ -599,12 +599,12 @@ intel_hdcp_gsc_close_session(struct device *dev, struct hdcp_port_data *data)
>  				       (u8 *)&session_close_out,
>  				       sizeof(session_close_out));
>  	if (byte < 0) {
> -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
> +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
>  		return byte;
>  	}
>  
>  	if (session_close_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> -		drm_dbg_kms(&i915->drm, "Session Close Failed. status: 0x%X\n",
> +		drm_dbg_kms(display->drm, "Session Close Failed. status: 0x%X\n",
>  			    session_close_out.header.status);
>  		return -EIO;
>  	}
> diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> index 5badf90b26de..437839b8c847 100644
> --- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> +++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> @@ -138,42 +138,43 @@ static const struct i915_hdcp_ops gsc_hdcp_ops = {
>  	.close_hdcp_session = intel_hdcp_gsc_close_session,
>  };
>  
> -int intel_hdcp_gsc_init(struct xe_device *xe)
> +int intel_hdcp_gsc_init(struct intel_display *display)
>  {
>  	struct i915_hdcp_arbiter *data;
> +	struct xe_device *xe = to_xe_device(display->drm);
>  	int ret;
>  
>  	data = kzalloc(sizeof(*data), GFP_KERNEL);
>  	if (!data)
>  		return -ENOMEM;
>  
> -	mutex_lock(&xe->display.hdcp.hdcp_mutex);
> -	xe->display.hdcp.arbiter = data;
> -	xe->display.hdcp.arbiter->hdcp_dev = xe->drm.dev;
> -	xe->display.hdcp.arbiter->ops = &gsc_hdcp_ops;
> +	mutex_lock(&display->hdcp.hdcp_mutex);
> +	display->hdcp.arbiter = data;
> +	display->hdcp.arbiter->hdcp_dev = display->drm->dev;
> +	display->hdcp.arbiter->ops = &gsc_hdcp_ops;
>  	ret = intel_hdcp_gsc_hdcp2_init(xe);

This needs to accept display as well. Or are you going to do the full
xe_hdcp_gsc.c conversion in a separate patch?

BR,
Jani.

>  	if (ret)
>  		kfree(data);
>  
> -	mutex_unlock(&xe->display.hdcp.hdcp_mutex);
> +	mutex_unlock(&display->hdcp.hdcp_mutex);
>  
>  	return ret;
>  }
>  
> -void intel_hdcp_gsc_fini(struct xe_device *xe)
> +void intel_hdcp_gsc_fini(struct intel_display *display)
>  {
>  	struct intel_hdcp_gsc_message *hdcp_message =
> -					xe->display.hdcp.hdcp_message;
> -	struct i915_hdcp_arbiter *arb = xe->display.hdcp.arbiter;
> +					display->hdcp.hdcp_message;
> +	struct i915_hdcp_arbiter *arb = display->hdcp.arbiter;
>  
>  	if (hdcp_message) {
>  		xe_bo_unpin_map_no_vm(hdcp_message->hdcp_bo);
>  		kfree(hdcp_message);
> -		xe->display.hdcp.hdcp_message = NULL;
> +		display->hdcp.hdcp_message = NULL;
>  	}
>  
>  	kfree(arb);
> -	xe->display.hdcp.arbiter = NULL;
> +	display->hdcp.arbiter = NULL;
>  }
>  
>  static int xe_gsc_send_sync(struct xe_device *xe,

-- 
Jani Nikula, Intel

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

* RE: [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc
  2024-09-10  9:18   ` Jani Nikula
@ 2024-09-10 12:52     ` Kandpal, Suraj
  0 siblings, 0 replies; 10+ messages in thread
From: Kandpal, Suraj @ 2024-09-10 12:52 UTC (permalink / raw)
  To: Nikula, Jani, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org
  Cc: Shankar, Uma, Nautiyal, Ankit K



> -----Original Message-----
> From: Nikula, Jani <jani.nikula@intel.com>
> Sent: Tuesday, September 10, 2024 2:49 PM
> To: Kandpal, Suraj <suraj.kandpal@intel.com>; intel-
> gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Shankar, Uma <uma.shankar@intel.com>; Nautiyal, Ankit K
> <ankit.k.nautiyal@intel.com>; Kandpal, Suraj <suraj.kandpal@intel.com>
> Subject: Re: [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc
> 
> On Tue, 10 Sep 2024, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> > Use intel_display structure instead of drm_i915_private wherever
> > possible in hdcp_gsc related files.
> >
> > Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_hdcp.c     |  4 +-
> >  drivers/gpu/drm/i915/display/intel_hdcp_gsc.c | 31 ++++++-------
> > drivers/gpu/drm/i915/display/intel_hdcp_gsc.h |  4 +-
> > .../drm/i915/display/intel_hdcp_gsc_message.c | 44 +++++++++----------
> >  drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      | 23 +++++-----
> >  5 files changed, 54 insertions(+), 52 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > index 964372f4343b..efc62711274f 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > @@ -2306,7 +2306,7 @@ void intel_hdcp_component_init(struct
> drm_i915_private *i915)
> >  	display->hdcp.comp_added = true;
> >  	mutex_unlock(&display->hdcp.hdcp_mutex);
> >  	if (intel_hdcp_gsc_cs_required(display))
> > -		ret = intel_hdcp_gsc_init(i915);
> > +		ret = intel_hdcp_gsc_init(display);
> >  	else
> >  		ret = component_add_typed(display->drm->dev,
> &i915_hdcp_ops,
> >  					  I915_COMPONENT_HDCP);
> > @@ -2569,7 +2569,7 @@ void intel_hdcp_component_fini(struct
> drm_i915_private *i915)
> >  	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	if (intel_hdcp_gsc_cs_required(display))
> > -		intel_hdcp_gsc_fini(i915);
> > +		intel_hdcp_gsc_fini(display);
> >  	else
> >  		component_del(display->drm->dev, &i915_hdcp_ops);  } diff
> --git
> > a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> > b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> > index dc5cc1d54c85..55965844d829 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> > @@ -107,8 +107,9 @@ static const struct i915_hdcp_ops gsc_hdcp_ops = {
> >  	.close_hdcp_session = intel_hdcp_gsc_close_session,  };
> >
> > -static int intel_hdcp_gsc_hdcp2_init(struct drm_i915_private *i915)
> > +static int intel_hdcp_gsc_hdcp2_init(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	struct intel_hdcp_gsc_message *hdcp_message;
> >  	int ret;
> >
> > @@ -121,19 +122,19 @@ static int intel_hdcp_gsc_hdcp2_init(struct
> drm_i915_private *i915)
> >  	 * NOTE: No need to lock the comp mutex here as it is already
> >  	 * going to be taken before this function called
> >  	 */
> > -	i915->display.hdcp.hdcp_message = hdcp_message;
> > +	display->hdcp.hdcp_message = hdcp_message;
> >  	ret = intel_hdcp_gsc_initialize_message(i915, hdcp_message);
> >
> >  	if (ret)
> > -		drm_err(&i915->drm, "Could not initialize
> hdcp_message\n");
> > +		drm_err(display->drm, "Could not initialize
> hdcp_message\n");
> >
> >  	return ret;
> >  }
> >
> > -static void intel_hdcp_gsc_free_message(struct drm_i915_private
> > *i915)
> > +static void intel_hdcp_gsc_free_message(struct intel_display
> > +*display)
> >  {
> >  	struct intel_hdcp_gsc_message *hdcp_message =
> > -					i915->display.hdcp.hdcp_message;
> > +					display->hdcp.hdcp_message;
> >
> >  	hdcp_message->hdcp_cmd_in = NULL;
> >  	hdcp_message->hdcp_cmd_out = NULL;
> > @@ -141,7 +142,7 @@ static void intel_hdcp_gsc_free_message(struct
> drm_i915_private *i915)
> >  	kfree(hdcp_message);
> >  }
> >
> > -int intel_hdcp_gsc_init(struct drm_i915_private *i915)
> > +int intel_hdcp_gsc_init(struct intel_display *display)
> >  {
> >  	struct i915_hdcp_arbiter *data;
> >  	int ret;
> > @@ -150,20 +151,20 @@ int intel_hdcp_gsc_init(struct drm_i915_private
> *i915)
> >  	if (!data)
> >  		return -ENOMEM;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	i915->display.hdcp.arbiter = data;
> > -	i915->display.hdcp.arbiter->hdcp_dev = i915->drm.dev;
> > -	i915->display.hdcp.arbiter->ops = &gsc_hdcp_ops;
> > -	ret = intel_hdcp_gsc_hdcp2_init(i915);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	display->hdcp.arbiter = data;
> > +	display->hdcp.arbiter->hdcp_dev = display->drm->dev;
> > +	display->hdcp.arbiter->ops = &gsc_hdcp_ops;
> > +	ret = intel_hdcp_gsc_hdcp2_init(display);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> >
> > -void intel_hdcp_gsc_fini(struct drm_i915_private *i915)
> > +void intel_hdcp_gsc_fini(struct intel_display *display)
> >  {
> > -	intel_hdcp_gsc_free_message(i915);
> > -	kfree(i915->display.hdcp.arbiter);
> > +	intel_hdcp_gsc_free_message(display);
> > +	kfree(display->hdcp.arbiter);
> >  }
> >
> >  static int intel_gsc_send_sync(struct drm_i915_private *i915, diff
> > --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> > b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> > index b6aabd855478..5695a5e4f609 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> > @@ -17,8 +17,8 @@ bool intel_hdcp_gsc_cs_required(struct intel_display
> > *display);  ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private
> *i915, u8 *msg_in,
> >  				size_t msg_in_len, u8 *msg_out,
> >  				size_t msg_out_len);
> > -int intel_hdcp_gsc_init(struct drm_i915_private *i915); -void
> > intel_hdcp_gsc_fini(struct drm_i915_private *i915);
> > +int intel_hdcp_gsc_init(struct intel_display *display); void
> > +intel_hdcp_gsc_fini(struct intel_display *display);
> >  bool intel_hdcp_gsc_check_status(struct intel_display *display);
> >
> >  #endif /* __INTEL_HDCP_GCS_H__ */
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> > b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> > index 35bdb532bbb3..129104fa9b16 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> > @@ -46,12 +46,12 @@ intel_hdcp_gsc_initiate_session(struct device *dev,
> struct hdcp_port_data *data,
> >  				       (u8 *)&session_init_out,
> >  				       sizeof(session_init_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (session_init_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status:
> 0x%X\n",
> >  			    WIRED_INITIATE_HDCP2_SESSION,
> >  			    session_init_out.header.status);
> >  		return -EIO;
> > @@ -108,12 +108,12 @@
> intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev,
> >  				       (u8 *)&verify_rxcert_out,
> >  				       sizeof(verify_rxcert_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed: %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed: %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (verify_rxcert_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status:
> 0x%X\n",
> >  			    WIRED_VERIFY_RECEIVER_CERT,
> >  			    verify_rxcert_out.header.status);
> >  		return -EIO;
> > @@ -171,12 +171,12 @@ intel_hdcp_gsc_verify_hprime(struct device
> *dev, struct hdcp_port_data *data,
> >  				       (u8 *)&send_hprime_out,
> >  				       sizeof(send_hprime_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (send_hprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status:
> 0x%X\n",
> >  			    WIRED_AKE_SEND_HPRIME,
> send_hprime_out.header.status);
> >  		return -EIO;
> >  	}
> > @@ -222,12 +222,12 @@ intel_hdcp_gsc_store_pairing_info(struct device
> *dev, struct hdcp_port_data *dat
> >  				       (u8 *)&pairing_info_out,
> >  				       sizeof(pairing_info_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (pairing_info_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. Status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. Status:
> 0x%X\n",
> >  			    WIRED_AKE_SEND_PAIRING_INFO,
> >  			    pairing_info_out.header.status);
> >  		return -EIO;
> > @@ -269,12 +269,12 @@ intel_hdcp_gsc_initiate_locality_check(struct
> device *dev,
> >  	byte = intel_hdcp_gsc_msg_send(i915, (u8 *)&lc_init_in,
> sizeof(lc_init_in),
> >  				       (u8 *)&lc_init_out, sizeof(lc_init_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (lc_init_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. status:
> 0x%X\n",
> >  			    WIRED_INIT_LOCALITY_CHECK,
> lc_init_out.header.status);
> >  		return -EIO;
> >  	}
> > @@ -323,12 +323,12 @@ intel_hdcp_gsc_verify_lprime(struct device *dev,
> struct hdcp_port_data *data,
> >  				       (u8 *)&verify_lprime_out,
> >  				       sizeof(verify_lprime_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (verify_lprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> >  			    WIRED_VALIDATE_LOCALITY,
> >  			    verify_lprime_out.header.status);
> >  		return -EIO;
> > @@ -369,12 +369,12 @@ int intel_hdcp_gsc_get_session_key(struct
> device *dev,
> >  	byte = intel_hdcp_gsc_msg_send(i915, (u8 *)&get_skey_in,
> sizeof(get_skey_in),
> >  				       (u8 *)&get_skey_out,
> sizeof(get_skey_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (get_skey_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> >  			    WIRED_GET_SESSION_KEY,
> get_skey_out.header.status);
> >  		return -EIO;
> >  	}
> > @@ -435,12 +435,12 @@
> intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,
> >  				       (u8 *)&verify_repeater_out,
> >  				       sizeof(verify_repeater_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (verify_repeater_out.header.status != FW_HDCP_STATUS_SUCCESS)
> {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> >  			    WIRED_VERIFY_REPEATER,
> >  			    verify_repeater_out.header.status);
> >  		return -EIO;
> > @@ -504,12 +504,12 @@ int intel_hdcp_gsc_verify_mprime(struct device
> *dev,
> >  				       sizeof(verify_mprime_out));
> >  	kfree(verify_mprime_in);
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (verify_mprime_out.header.status != FW_HDCP_STATUS_SUCCESS)
> {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> >  			    WIRED_REPEATER_AUTH_STREAM_REQ,
> >  			    verify_mprime_out.header.status);
> >  		return -EIO;
> > @@ -552,12 +552,12 @@ int intel_hdcp_gsc_enable_authentication(struct
> device *dev,
> >  				       (u8 *)&enable_auth_out,
> >  				       sizeof(enable_auth_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (enable_auth_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> > -		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status:
> 0x%X\n",
> >  			    WIRED_ENABLE_AUTH,
> enable_auth_out.header.status);
> >  		return -EIO;
> >  	}
> > @@ -599,12 +599,12 @@ intel_hdcp_gsc_close_session(struct device
> *dev, struct hdcp_port_data *data)
> >  				       (u8 *)&session_close_out,
> >  				       sizeof(session_close_out));
> >  	if (byte < 0) {
> > -		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n", byte);
> > +		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send
> failed. %zd\n",
> > +byte);
> >  		return byte;
> >  	}
> >
> >  	if (session_close_out.header.status != FW_HDCP_STATUS_SUCCESS) {
> > -		drm_dbg_kms(&i915->drm, "Session Close Failed. status:
> 0x%X\n",
> > +		drm_dbg_kms(display->drm, "Session Close Failed. status:
> 0x%X\n",
> >  			    session_close_out.header.status);
> >  		return -EIO;
> >  	}
> > diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> > b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> > index 5badf90b26de..437839b8c847 100644
> > --- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> > +++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> > @@ -138,42 +138,43 @@ static const struct i915_hdcp_ops gsc_hdcp_ops
> = {
> >  	.close_hdcp_session = intel_hdcp_gsc_close_session,  };
> >
> > -int intel_hdcp_gsc_init(struct xe_device *xe)
> > +int intel_hdcp_gsc_init(struct intel_display *display)
> >  {
> >  	struct i915_hdcp_arbiter *data;
> > +	struct xe_device *xe = to_xe_device(display->drm);
> >  	int ret;
> >
> >  	data = kzalloc(sizeof(*data), GFP_KERNEL);
> >  	if (!data)
> >  		return -ENOMEM;
> >
> > -	mutex_lock(&xe->display.hdcp.hdcp_mutex);
> > -	xe->display.hdcp.arbiter = data;
> > -	xe->display.hdcp.arbiter->hdcp_dev = xe->drm.dev;
> > -	xe->display.hdcp.arbiter->ops = &gsc_hdcp_ops;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	display->hdcp.arbiter = data;
> > +	display->hdcp.arbiter->hdcp_dev = display->drm->dev;
> > +	display->hdcp.arbiter->ops = &gsc_hdcp_ops;
> >  	ret = intel_hdcp_gsc_hdcp2_init(xe);
> 
> This needs to accept display as well. Or are you going to do the full
> xe_hdcp_gsc.c conversion in a separate patch?
> 

Looks like I missed this will fix in this patch itself in the next revision

Regards,
Suraj Kandpal

> BR,
> Jani.
> 
> >  	if (ret)
> >  		kfree(data);
> >
> > -	mutex_unlock(&xe->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> >
> > -void intel_hdcp_gsc_fini(struct xe_device *xe)
> > +void intel_hdcp_gsc_fini(struct intel_display *display)
> >  {
> >  	struct intel_hdcp_gsc_message *hdcp_message =
> > -					xe->display.hdcp.hdcp_message;
> > -	struct i915_hdcp_arbiter *arb = xe->display.hdcp.arbiter;
> > +					display->hdcp.hdcp_message;
> > +	struct i915_hdcp_arbiter *arb = display->hdcp.arbiter;
> >
> >  	if (hdcp_message) {
> >  		xe_bo_unpin_map_no_vm(hdcp_message->hdcp_bo);
> >  		kfree(hdcp_message);
> > -		xe->display.hdcp.hdcp_message = NULL;
> > +		display->hdcp.hdcp_message = NULL;
> >  	}
> >
> >  	kfree(arb);
> > -	xe->display.hdcp.arbiter = NULL;
> > +	display->hdcp.arbiter = NULL;
> >  }
> >
> >  static int xe_gsc_send_sync(struct xe_device *xe,
> 
> --
> Jani Nikula, Intel

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

* RE: [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp
  2024-09-10  9:11   ` Jani Nikula
@ 2024-09-10 12:54     ` Kandpal, Suraj
  0 siblings, 0 replies; 10+ messages in thread
From: Kandpal, Suraj @ 2024-09-10 12:54 UTC (permalink / raw)
  To: Nikula, Jani, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org
  Cc: Shankar, Uma, Nautiyal, Ankit K



> -----Original Message-----
> From: Nikula, Jani <jani.nikula@intel.com>
> Sent: Tuesday, September 10, 2024 2:42 PM
> To: Kandpal, Suraj <suraj.kandpal@intel.com>; intel-
> gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Shankar, Uma <uma.shankar@intel.com>; Nautiyal, Ankit K
> <ankit.k.nautiyal@intel.com>; Kandpal, Suraj <suraj.kandpal@intel.com>
> Subject: Re: [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in
> intel_hdcp
> 
> On Tue, 10 Sep 2024, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> > Move to using intel_display wherever possible in intel_hdcp.c
> > as a part of code refactor.
> 
> Overall good stuff, thanks for doing this!
> 
> A bunch of nitpicks inline, almost all of them boil down to these two:
> 
> - to_intel_display() uses _Generic(), pass in the simplest pointer
>   available, with fewest dereference, and let the macro do its magic.
> 
> - Declare struct intel_display * as the first local variable or as early
>   as possible.
> 
> I want to try to keep an uniform style when we're anyway doing the
> refactors, and the more code follows the style, the more likely it is to
> be followed elsewhere too.
> 

Sure Jani will fix them up and send the next revision

Regards,
Suraj Kandpal

> 
> BR,
> Jani.
> 
> 
> >
> > Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_hdcp.c     | 669 +++++++++---------
> >  drivers/gpu/drm/i915/display/intel_hdcp_gsc.c |   9 +-
> >  drivers/gpu/drm/i915/display/intel_hdcp_gsc.h |   5 +-
> >  .../drm/i915/display/intel_hdcp_gsc_message.h |   3 +-
> >  drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      |   7 +-
> >  5 files changed, 352 insertions(+), 341 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c
> b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > index ebec03bc88e9..964372f4343b 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > @@ -36,20 +36,20 @@ static void
> >  intel_hdcp_disable_hdcp_line_rekeying(struct intel_encoder *encoder,
> >  				      struct intel_hdcp *hdcp)
> >  {
> > -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > +	struct intel_display *display = to_intel_display(encoder->base.dev);
> 
> to_intel_display(encoder)
> 
> >
> >  	/* Here we assume HDMI is in TMDS mode of operation */
> >  	if (encoder->type != INTEL_OUTPUT_HDMI)
> >  		return;
> >
> > -	if (DISPLAY_VER(dev_priv) >= 14) {
> > -		if (IS_DISPLAY_VER_STEP(dev_priv, IP_VER(14, 0), STEP_D0,
> STEP_FOREVER))
> > -			intel_de_rmw(dev_priv, MTL_CHICKEN_TRANS(hdcp-
> >cpu_transcoder),
> > +	if (DISPLAY_VER(display) >= 14) {
> > +		if (IS_DISPLAY_VER_STEP(display, IP_VER(14, 0), STEP_D0,
> STEP_FOREVER))
> > +			intel_de_rmw(display, MTL_CHICKEN_TRANS(hdcp-
> >cpu_transcoder),
> >  				     0, HDCP_LINE_REKEY_DISABLE);
> > -		else if (IS_DISPLAY_VER_STEP(dev_priv, IP_VER(14, 1),
> STEP_B0, STEP_FOREVER) ||
> > -			 IS_DISPLAY_VER_STEP(dev_priv, IP_VER(20, 0),
> STEP_B0, STEP_FOREVER))
> > -			intel_de_rmw(dev_priv,
> > -				     TRANS_DDI_FUNC_CTL(dev_priv, hdcp-
> >cpu_transcoder),
> > +		else if (IS_DISPLAY_VER_STEP(display, IP_VER(14, 1), STEP_B0,
> STEP_FOREVER) ||
> > +			 IS_DISPLAY_VER_STEP(display, IP_VER(20, 0),
> STEP_B0, STEP_FOREVER))
> > +			intel_de_rmw(display,
> > +				     TRANS_DDI_FUNC_CTL(display, hdcp-
> >cpu_transcoder),
> >  				     0,
> TRANS_DDI_HDCP_LINE_REKEY_DISABLE);
> >  	}
> >  }
> > @@ -99,7 +99,7 @@ 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 drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> > +	struct intel_display *display = to_intel_display(dig_port-
> >base.base.dev);
> 
> Please declare this as the first line in a function where ever possible.
> 
> to_intel_display(state)
> 
> or
> 
> to_intel_display(dig_port)
> 
> is enough.
> 
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> >  	bool enforce_type0 = false;
> >  	int k;
> > @@ -112,7 +112,7 @@ intel_hdcp_required_content_stream(struct
> intel_atomic_state *state,
> >  	if (!dig_port->hdcp_mst_type1_capable)
> >  		enforce_type0 = true;
> >
> > -	drm_connector_list_iter_begin(&i915->drm, &conn_iter);
> > +	drm_connector_list_iter_begin(display->drm, &conn_iter);
> >  	for_each_intel_connector_iter(connector, &conn_iter) {
> >  		if (connector->base.status ==
> connector_status_disconnected)
> >  			continue;
> > @@ -134,7 +134,7 @@ intel_hdcp_required_content_stream(struct
> intel_atomic_state *state,
> >  	}
> >  	drm_connector_list_iter_end(&conn_iter);
> >
> > -	if (drm_WARN_ON(&i915->drm, data->k > INTEL_NUM_PIPES(i915)
> || data->k == 0))
> > +	if (drm_WARN_ON(display->drm, data->k >
> INTEL_NUM_PIPES(display) || data->k == 0))
> >  		return -EINVAL;
> >
> >  	/*
> > @@ -182,7 +182,7 @@ static
> >  int intel_hdcp_read_valid_bksv(struct intel_digital_port *dig_port,
> >  			       const struct intel_hdcp_shim *shim, u8 *bksv)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> > +	struct intel_display *display = to_intel_display(dig_port-
> >base.base.dev);
> 
> to_intel_display(dig_port). Ditto for every place before. See what
> inputs the _Generic() in to_intel_display() supports, and choose the one
> with the fewest indirections.
> 
> >  	int ret, i, tries = 2;
> >
> >  	/* HDCP spec states that we must retry the bksv if it is invalid */
> > @@ -194,7 +194,7 @@ int intel_hdcp_read_valid_bksv(struct
> intel_digital_port *dig_port,
> >  			break;
> >  	}
> >  	if (i == tries) {
> > -		drm_dbg_kms(&i915->drm, "Bksv is invalid\n");
> > +		drm_dbg_kms(display->drm, "Bksv is invalid\n");
> >  		return -ENODEV;
> >  	}
> >
> > @@ -233,7 +233,7 @@ bool intel_hdcp_get_capability(struct
> intel_connector *connector)
> >   */
> >  static bool intel_hdcp2_prerequisite(struct intel_connector *connector)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >
> >  	/* I915 support for HDCP2.2 */
> > @@ -241,18 +241,18 @@ static bool intel_hdcp2_prerequisite(struct
> intel_connector *connector)
> >  		return false;
> >
> >  	/* If MTL+ make sure gsc is loaded and proxy is setup */
> > -	if (intel_hdcp_gsc_cs_required(i915)) {
> > -		if (!intel_hdcp_gsc_check_status(i915))
> > +	if (intel_hdcp_gsc_cs_required(display)) {
> > +		if (!intel_hdcp_gsc_check_status(display))
> >  			return false;
> >  	}
> >
> >  	/* MEI/GSC interface is solid depending on which is used */
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	if (!i915->display.hdcp.comp_added ||  !i915->display.hdcp.arbiter) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	if (!display->hdcp.comp_added || !display->hdcp.arbiter) {
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return false;
> >  	}
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return true;
> >  }
> > @@ -288,19 +288,19 @@ void intel_hdcp_get_remote_capability(struct
> intel_connector *connector,
> >  		*hdcp2_capable = false;
> >  }
> >
> > -static bool intel_hdcp_in_use(struct drm_i915_private *i915,
> > +static bool intel_hdcp_in_use(struct intel_display *display,
> >  			      enum transcoder cpu_transcoder, enum port
> port)
> >  {
> > -	return intel_de_read(i915,
> > -			     HDCP_STATUS(i915, cpu_transcoder, port)) &
> > +	return intel_de_read(display,
> > +			     HDCP_STATUS(display, cpu_transcoder, port)) &
> >  		HDCP_STATUS_ENC;
> >  }
> >
> > -static bool intel_hdcp2_in_use(struct drm_i915_private *i915,
> > +static bool intel_hdcp2_in_use(struct intel_display *display,
> >  			       enum transcoder cpu_transcoder, enum port
> port)
> >  {
> > -	return intel_de_read(i915,
> > -			     HDCP2_STATUS(i915, cpu_transcoder, port)) &
> > +	return intel_de_read(display,
> > +			     HDCP2_STATUS(display, cpu_transcoder, port)) &
> >  		LINK_ENCRYPTION_STATUS;
> >  }
> >
> > @@ -325,8 +325,9 @@ static int intel_hdcp_poll_ksv_fifo(struct
> intel_digital_port *dig_port,
> >  	return 0;
> >  }
> >
> > -static bool hdcp_key_loadable(struct drm_i915_private *i915)
> > +static bool hdcp_key_loadable(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	enum i915_power_well_id id;
> >  	intel_wakeref_t wakeref;
> >  	bool enabled = false;
> > @@ -353,19 +354,20 @@ static bool hdcp_key_loadable(struct
> drm_i915_private *i915)
> >  	return enabled;
> >  }
> >
> > -static void intel_hdcp_clear_keys(struct drm_i915_private *i915)
> > +static void intel_hdcp_clear_keys(struct intel_display *display)
> >  {
> > -	intel_de_write(i915, HDCP_KEY_CONF, HDCP_CLEAR_KEYS_TRIGGER);
> > -	intel_de_write(i915, HDCP_KEY_STATUS,
> > +	intel_de_write(display, HDCP_KEY_CONF,
> HDCP_CLEAR_KEYS_TRIGGER);
> > +	intel_de_write(display, HDCP_KEY_STATUS,
> >  		       HDCP_KEY_LOAD_DONE | HDCP_KEY_LOAD_STATUS |
> HDCP_FUSE_IN_PROGRESS | HDCP_FUSE_ERROR | HDCP_FUSE_DONE);
> >  }
> >
> > -static int intel_hdcp_load_keys(struct drm_i915_private *i915)
> > +static int intel_hdcp_load_keys(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	int ret;
> >  	u32 val;
> >
> > -	val = intel_de_read(i915, HDCP_KEY_STATUS);
> > +	val = intel_de_read(display, HDCP_KEY_STATUS);
> >  	if ((val & HDCP_KEY_LOAD_DONE) && (val &
> HDCP_KEY_LOAD_STATUS))
> >  		return 0;
> >
> > @@ -374,7 +376,7 @@ static int intel_hdcp_load_keys(struct
> drm_i915_private *i915)
> >  	 * out of reset. So if Key is not already loaded, its an error state.
> >  	 */
> >  	if (IS_HASWELL(i915) || IS_BROADWELL(i915))
> > -		if (!(intel_de_read(i915, HDCP_KEY_STATUS) &
> HDCP_KEY_LOAD_DONE))
> > +		if (!(intel_de_read(display, HDCP_KEY_STATUS) &
> HDCP_KEY_LOAD_DONE))
> >  			return -ENXIO;
> >
> >  	/*
> > @@ -385,20 +387,20 @@ static int intel_hdcp_load_keys(struct
> drm_i915_private *i915)
> >  	 * process from other platforms. These platforms use the GT Driver
> >  	 * Mailbox interface.
> >  	 */
> > -	if (DISPLAY_VER(i915) == 9 && !IS_BROXTON(i915)) {
> > +	if (DISPLAY_VER(display) == 9 && !IS_BROXTON(i915)) {
> >  		ret = snb_pcode_write(&i915->uncore,
> SKL_PCODE_LOAD_HDCP_KEYS, 1);
> >  		if (ret) {
> > -			drm_err(&i915->drm,
> > +			drm_err(display->drm,
> >  				"Failed to initiate HDCP key load (%d)\n",
> >  				ret);
> >  			return ret;
> >  		}
> >  	} else {
> > -		intel_de_write(i915, HDCP_KEY_CONF,
> HDCP_KEY_LOAD_TRIGGER);
> > +		intel_de_write(display, HDCP_KEY_CONF,
> HDCP_KEY_LOAD_TRIGGER);
> >  	}
> >
> >  	/* Wait for the keys to load (500us) */
> > -	ret = intel_de_wait_custom(i915, HDCP_KEY_STATUS,
> > +	ret = intel_de_wait_custom(display, HDCP_KEY_STATUS,
> >  				   HDCP_KEY_LOAD_DONE,
> HDCP_KEY_LOAD_DONE,
> >  				   10, 1, &val);
> >  	if (ret)
> > @@ -407,27 +409,27 @@ static int intel_hdcp_load_keys(struct
> drm_i915_private *i915)
> >  		return -ENXIO;
> >
> >  	/* Send Aksv over to PCH display for use in authentication */
> > -	intel_de_write(i915, HDCP_KEY_CONF, HDCP_AKSV_SEND_TRIGGER);
> > +	intel_de_write(display, HDCP_KEY_CONF,
> HDCP_AKSV_SEND_TRIGGER);
> >
> >  	return 0;
> >  }
> >
> >  /* Returns updated SHA-1 index */
> > -static int intel_write_sha_text(struct drm_i915_private *i915, u32
> sha_text)
> > +static int intel_write_sha_text(struct intel_display *display, u32 sha_text)
> >  {
> > -	intel_de_write(i915, HDCP_SHA_TEXT, sha_text);
> > -	if (intel_de_wait_for_set(i915, HDCP_REP_CTL, HDCP_SHA1_READY,
> 1)) {
> > -		drm_err(&i915->drm, "Timed out waiting for SHA1
> ready\n");
> > +	intel_de_write(display, HDCP_SHA_TEXT, sha_text);
> > +	if (intel_de_wait_for_set(display, HDCP_REP_CTL,
> HDCP_SHA1_READY, 1)) {
> > +		drm_err(display->drm, "Timed out waiting for SHA1
> ready\n");
> >  		return -ETIMEDOUT;
> >  	}
> >  	return 0;
> >  }
> >
> >  static
> > -u32 intel_hdcp_get_repeater_ctl(struct drm_i915_private *i915,
> > +u32 intel_hdcp_get_repeater_ctl(struct intel_display *display,
> >  				enum transcoder cpu_transcoder, enum port
> port)
> >  {
> > -	if (DISPLAY_VER(i915) >= 12) {
> > +	if (DISPLAY_VER(display) >= 12) {
> >  		switch (cpu_transcoder) {
> >  		case TRANSCODER_A:
> >  			return HDCP_TRANSA_REP_PRESENT |
> > @@ -442,7 +444,7 @@ u32 intel_hdcp_get_repeater_ctl(struct
> drm_i915_private *i915,
> >  			return HDCP_TRANSD_REP_PRESENT |
> >  			       HDCP_TRANSD_SHA1_M0;
> >  		default:
> > -			drm_err(&i915->drm, "Unknown transcoder %d\n",
> > +			drm_err(display->drm, "Unknown transcoder %d\n",
> >  				cpu_transcoder);
> >  			return 0;
> >  		}
> > @@ -460,7 +462,7 @@ u32 intel_hdcp_get_repeater_ctl(struct
> drm_i915_private *i915,
> >  	case PORT_E:
> >  		return HDCP_DDIE_REP_PRESENT | HDCP_DDIE_SHA1_M0;
> >  	default:
> > -		drm_err(&i915->drm, "Unknown port %d\n", port);
> > +		drm_err(display->drm, "Unknown port %d\n", port);
> >  		return 0;
> >  	}
> >  }
> > @@ -471,7 +473,7 @@ int intel_hdcp_validate_v_prime(struct
> intel_connector *connector,
> >  				u8 *ksv_fifo, u8 num_downstream, u8
> *bstatus)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> 
> Declare struct intel_display *display first. Ditto everywhere.
> 
> >  	enum transcoder cpu_transcoder = connector-
> >hdcp.cpu_transcoder;
> >  	enum port port = dig_port->base.port;
> >  	u32 vprime, sha_text, sha_leftovers, rep_ctl;
> > @@ -482,7 +484,7 @@ int intel_hdcp_validate_v_prime(struct
> intel_connector *connector,
> >  		ret = shim->read_v_prime_part(dig_port, i, &vprime);
> >  		if (ret)
> >  			return ret;
> > -		intel_de_write(i915, HDCP_SHA_V_PRIME(i), vprime);
> > +		intel_de_write(display, HDCP_SHA_V_PRIME(i), vprime);
> >  	}
> >
> >  	/*
> > @@ -498,8 +500,8 @@ int intel_hdcp_validate_v_prime(struct
> intel_connector *connector,
> >  	sha_idx = 0;
> >  	sha_text = 0;
> >  	sha_leftovers = 0;
> > -	rep_ctl = intel_hdcp_get_repeater_ctl(i915, cpu_transcoder, port);
> > -	intel_de_write(i915, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
> > +	rep_ctl = intel_hdcp_get_repeater_ctl(display, cpu_transcoder, port);
> > +	intel_de_write(display, HDCP_REP_CTL, rep_ctl |
> HDCP_SHA1_TEXT_32);
> >  	for (i = 0; i < num_downstream; i++) {
> >  		unsigned int sha_empty;
> >  		u8 *ksv = &ksv_fifo[i * DRM_HDCP_KSV_LEN];
> > @@ -511,14 +513,14 @@ int intel_hdcp_validate_v_prime(struct
> intel_connector *connector,
> >  			sha_text |= ksv[j] << off;
> >  		}
> >
> > -		ret = intel_write_sha_text(i915, sha_text);
> > +		ret = intel_write_sha_text(display, sha_text);
> >  		if (ret < 0)
> >  			return ret;
> >
> >  		/* Programming guide writes this every 64 bytes */
> >  		sha_idx += sizeof(sha_text);
> >  		if (!(sha_idx % 64))
> > -			intel_de_write(i915, HDCP_REP_CTL,
> > +			intel_de_write(display, HDCP_REP_CTL,
> >  				       rep_ctl | HDCP_SHA1_TEXT_32);
> >
> >  		/* Store the leftover bytes from the ksv in sha_text */
> > @@ -535,7 +537,7 @@ int intel_hdcp_validate_v_prime(struct
> intel_connector *connector,
> >  		if (sizeof(sha_text) > sha_leftovers)
> >  			continue;
> >
> > -		ret = intel_write_sha_text(i915, sha_text);
> > +		ret = intel_write_sha_text(display, sha_text);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_leftovers = 0;
> > @@ -551,73 +553,73 @@ int intel_hdcp_validate_v_prime(struct
> intel_connector *connector,
> >  	 */
> >  	if (sha_leftovers == 0) {
> >  		/* Write 16 bits of text, 16 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_16);
> > -		ret = intel_write_sha_text(i915,
> > +		ret = intel_write_sha_text(display,
> >  					   bstatus[0] << 8 | bstatus[1]);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  		/* Write 32 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_0);
> > -		ret = intel_write_sha_text(i915, 0);
> > +		ret = intel_write_sha_text(display, 0);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  		/* Write 16 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_16);
> > -		ret = intel_write_sha_text(i915, 0);
> > +		ret = intel_write_sha_text(display, 0);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  	} else if (sha_leftovers == 1) {
> >  		/* Write 24 bits of text, 8 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_24);
> >  		sha_text |= bstatus[0] << 16 | bstatus[1] << 8;
> >  		/* Only 24-bits of data, must be in the LSB */
> >  		sha_text = (sha_text & 0xffffff00) >> 8;
> > -		ret = intel_write_sha_text(i915, sha_text);
> > +		ret = intel_write_sha_text(display, sha_text);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  		/* Write 32 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_0);
> > -		ret = intel_write_sha_text(i915, 0);
> > +		ret = intel_write_sha_text(display, 0);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  		/* Write 24 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_8);
> > -		ret = intel_write_sha_text(i915, 0);
> > +		ret = intel_write_sha_text(display, 0);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  	} else if (sha_leftovers == 2) {
> >  		/* Write 32 bits of text */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_32);
> >  		sha_text |= bstatus[0] << 8 | bstatus[1];
> > -		ret = intel_write_sha_text(i915, sha_text);
> > +		ret = intel_write_sha_text(display, sha_text);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  		/* Write 64 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_0);
> >  		for (i = 0; i < 2; i++) {
> > -			ret = intel_write_sha_text(i915, 0);
> > +			ret = intel_write_sha_text(display, 0);
> >  			if (ret < 0)
> >  				return ret;
> >  			sha_idx += sizeof(sha_text);
> > @@ -627,56 +629,56 @@ int intel_hdcp_validate_v_prime(struct
> intel_connector *connector,
> >  		 * Terminate the SHA-1 stream by hand. For the other
> leftover
> >  		 * cases this is appended by the hardware.
> >  		 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_32);
> >  		sha_text = DRM_HDCP_SHA1_TERMINATOR << 24;
> > -		ret = intel_write_sha_text(i915, sha_text);
> > +		ret = intel_write_sha_text(display, sha_text);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >  	} else if (sha_leftovers == 3) {
> >  		/* Write 32 bits of text (filled from LSB) */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_32);
> >  		sha_text |= bstatus[0];
> > -		ret = intel_write_sha_text(i915, sha_text);
> > +		ret = intel_write_sha_text(display, sha_text);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  		/* Write 8 bits of text (filled from LSB), 24 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_8);
> > -		ret = intel_write_sha_text(i915, bstatus[1]);
> > +		ret = intel_write_sha_text(display, bstatus[1]);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  		/* Write 32 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_0);
> > -		ret = intel_write_sha_text(i915, 0);
> > +		ret = intel_write_sha_text(display, 0);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >
> >  		/* Write 8 bits of M0 */
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > +		intel_de_write(display, HDCP_REP_CTL,
> >  			       rep_ctl | HDCP_SHA1_TEXT_24);
> > -		ret = intel_write_sha_text(i915, 0);
> > +		ret = intel_write_sha_text(display, 0);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> >  	} else {
> > -		drm_dbg_kms(&i915->drm, "Invalid number of leftovers
> %d\n",
> > +		drm_dbg_kms(display->drm, "Invalid number of leftovers
> %d\n",
> >  			    sha_leftovers);
> >  		return -EINVAL;
> >  	}
> >
> > -	intel_de_write(i915, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32);
> > +	intel_de_write(display, HDCP_REP_CTL, rep_ctl |
> HDCP_SHA1_TEXT_32);
> >  	/* Fill up to 64-4 bytes with zeros (leave the last write for length) */
> >  	while ((sha_idx % 64) < (64 - sizeof(sha_text))) {
> > -		ret = intel_write_sha_text(i915, 0);
> > +		ret = intel_write_sha_text(display, 0);
> >  		if (ret < 0)
> >  			return ret;
> >  		sha_idx += sizeof(sha_text);
> > @@ -688,20 +690,20 @@ int intel_hdcp_validate_v_prime(struct
> intel_connector *connector,
> >  	 *  - 10 bytes for BINFO/BSTATUS(2), M0(8)
> >  	 */
> >  	sha_text = (num_downstream * 5 + 10) * 8;
> > -	ret = intel_write_sha_text(i915, sha_text);
> > +	ret = intel_write_sha_text(display, sha_text);
> >  	if (ret < 0)
> >  		return ret;
> >
> >  	/* Tell the HW we're done with the hash and wait for it to ACK */
> > -	intel_de_write(i915, HDCP_REP_CTL,
> > +	intel_de_write(display, HDCP_REP_CTL,
> >  		       rep_ctl | HDCP_SHA1_COMPLETE_HASH);
> > -	if (intel_de_wait_for_set(i915, HDCP_REP_CTL,
> > +	if (intel_de_wait_for_set(display, HDCP_REP_CTL,
> >  				  HDCP_SHA1_COMPLETE, 1)) {
> > -		drm_err(&i915->drm, "Timed out waiting for SHA1
> complete\n");
> > +		drm_err(display->drm, "Timed out waiting for SHA1
> complete\n");
> >  		return -ETIMEDOUT;
> >  	}
> > -	if (!(intel_de_read(i915, HDCP_REP_CTL) & HDCP_SHA1_V_MATCH)) {
> > -		drm_dbg_kms(&i915->drm, "SHA-1 mismatch, HDCP
> failed\n");
> > +	if (!(intel_de_read(display, HDCP_REP_CTL) &
> HDCP_SHA1_V_MATCH)) {
> > +		drm_dbg_kms(display->drm, "SHA-1 mismatch, HDCP
> failed\n");
> >  		return -ENXIO;
> >  	}
> >
> > @@ -713,14 +715,14 @@ static
> >  int intel_hdcp_auth_downstream(struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
> >  	u8 bstatus[2], num_downstream, *ksv_fifo;
> >  	int ret, i, tries = 3;
> >
> >  	ret = intel_hdcp_poll_ksv_fifo(dig_port, shim);
> >  	if (ret) {
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "KSV list failed to become ready (%d)\n", ret);
> >  		return ret;
> >  	}
> > @@ -731,7 +733,7 @@ int intel_hdcp_auth_downstream(struct
> intel_connector *connector)
> >
> >  	if (DRM_HDCP_MAX_DEVICE_EXCEEDED(bstatus[0]) ||
> >  	    DRM_HDCP_MAX_CASCADE_EXCEEDED(bstatus[1])) {
> > -		drm_dbg_kms(&i915->drm, "Max Topology Limit
> Exceeded\n");
> > +		drm_dbg_kms(display->drm, "Max Topology Limit
> Exceeded\n");
> >  		return -EPERM;
> >  	}
> >
> > @@ -744,14 +746,14 @@ int intel_hdcp_auth_downstream(struct
> intel_connector *connector)
> >  	 */
> >  	num_downstream = DRM_HDCP_NUM_DOWNSTREAM(bstatus[0]);
> >  	if (num_downstream == 0) {
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "Repeater with zero downstream devices\n");
> >  		return -EINVAL;
> >  	}
> >
> >  	ksv_fifo = kcalloc(DRM_HDCP_KSV_LEN, num_downstream,
> GFP_KERNEL);
> >  	if (!ksv_fifo) {
> > -		drm_dbg_kms(&i915->drm, "Out of mem: ksv_fifo\n");
> > +		drm_dbg_kms(display->drm, "Out of mem: ksv_fifo\n");
> >  		return -ENOMEM;
> >  	}
> >
> > @@ -759,9 +761,9 @@ int intel_hdcp_auth_downstream(struct
> intel_connector *connector)
> >  	if (ret)
> >  		goto err;
> >
> > -	if (drm_hdcp_check_ksvs_revoked(&i915->drm, ksv_fifo,
> > +	if (drm_hdcp_check_ksvs_revoked(display->drm, ksv_fifo,
> >  					num_downstream) > 0) {
> > -		drm_err(&i915->drm, "Revoked Ksv(s) in ksv_fifo\n");
> > +		drm_err(display->drm, "Revoked Ksv(s) in ksv_fifo\n");
> >  		ret = -EPERM;
> >  		goto err;
> >  	}
> > @@ -779,12 +781,12 @@ int intel_hdcp_auth_downstream(struct
> intel_connector *connector)
> >  	}
> >
> >  	if (i == tries) {
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "V Prime validation failed.(%d)\n", ret);
> >  		goto err;
> >  	}
> >
> > -	drm_dbg_kms(&i915->drm, "HDCP is enabled (%d downstream
> devices)\n",
> > +	drm_dbg_kms(display->drm, "HDCP is enabled (%d downstream
> devices)\n",
> >  		    num_downstream);
> >  	ret = 0;
> >  err:
> > @@ -796,7 +798,7 @@ int intel_hdcp_auth_downstream(struct
> intel_connector *connector)
> >  static int intel_hdcp_auth(struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	const struct intel_hdcp_shim *shim = hdcp->shim;
> >  	enum transcoder cpu_transcoder = connector-
> >hdcp.cpu_transcoder;
> > @@ -828,7 +830,7 @@ static int intel_hdcp_auth(struct intel_connector
> *connector)
> >  		if (ret)
> >  			return ret;
> >  		if (!hdcp_capable) {
> > -			drm_dbg_kms(&i915->drm,
> > +			drm_dbg_kms(display->drm,
> >  				    "Panel is not HDCP capable\n");
> >  			return -EINVAL;
> >  		}
> > @@ -836,24 +838,24 @@ static int intel_hdcp_auth(struct intel_connector
> *connector)
> >
> >  	/* Initialize An with 2 random values and acquire it */
> >  	for (i = 0; i < 2; i++)
> > -		intel_de_write(i915,
> > -			       HDCP_ANINIT(i915, cpu_transcoder, port),
> > +		intel_de_write(display,
> > +			       HDCP_ANINIT(display, cpu_transcoder, port),
> >  			       get_random_u32());
> > -	intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port),
> > +	intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port),
> >  		       HDCP_CONF_CAPTURE_AN);
> >
> >  	/* Wait for An to be acquired */
> > -	if (intel_de_wait_for_set(i915,
> > -				  HDCP_STATUS(i915, cpu_transcoder, port),
> > +	if (intel_de_wait_for_set(display,
> > +				  HDCP_STATUS(display, cpu_transcoder,
> port),
> >  				  HDCP_STATUS_AN_READY, 1)) {
> > -		drm_err(&i915->drm, "Timed out waiting for An\n");
> > +		drm_err(display->drm, "Timed out waiting for An\n");
> >  		return -ETIMEDOUT;
> >  	}
> >
> > -	an.reg[0] = intel_de_read(i915,
> > -				  HDCP_ANLO(i915, cpu_transcoder, port));
> > -	an.reg[1] = intel_de_read(i915,
> > -				  HDCP_ANHI(i915, cpu_transcoder, port));
> > +	an.reg[0] = intel_de_read(display,
> > +				  HDCP_ANLO(display, cpu_transcoder, port));
> > +	an.reg[1] = intel_de_read(display,
> > +				  HDCP_ANHI(display, cpu_transcoder, port));
> >  	ret = shim->write_an_aksv(dig_port, an.shim);
> >  	if (ret)
> >  		return ret;
> > @@ -866,34 +868,34 @@ static int intel_hdcp_auth(struct intel_connector
> *connector)
> >  	if (ret < 0)
> >  		return ret;
> >
> > -	if (drm_hdcp_check_ksvs_revoked(&i915->drm, bksv.shim, 1) > 0) {
> > -		drm_err(&i915->drm, "BKSV is revoked\n");
> > +	if (drm_hdcp_check_ksvs_revoked(display->drm, bksv.shim, 1) > 0) {
> > +		drm_err(display->drm, "BKSV is revoked\n");
> >  		return -EPERM;
> >  	}
> >
> > -	intel_de_write(i915, HDCP_BKSVLO(i915, cpu_transcoder, port),
> > +	intel_de_write(display, HDCP_BKSVLO(display, cpu_transcoder, port),
> >  		       bksv.reg[0]);
> > -	intel_de_write(i915, HDCP_BKSVHI(i915, cpu_transcoder, port),
> > +	intel_de_write(display, HDCP_BKSVHI(display, cpu_transcoder, port),
> >  		       bksv.reg[1]);
> >
> >  	ret = shim->repeater_present(dig_port, &repeater_present);
> >  	if (ret)
> >  		return ret;
> >  	if (repeater_present)
> > -		intel_de_write(i915, HDCP_REP_CTL,
> > -			       intel_hdcp_get_repeater_ctl(i915,
> cpu_transcoder, port));
> > +		intel_de_write(display, HDCP_REP_CTL,
> > +			       intel_hdcp_get_repeater_ctl(display,
> cpu_transcoder, port));
> >
> >  	ret = shim->toggle_signalling(dig_port, cpu_transcoder, true);
> >  	if (ret)
> >  		return ret;
> >
> > -	intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port),
> > +	intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port),
> >  		       HDCP_CONF_AUTH_AND_ENC);
> >
> >  	/* Wait for R0 ready */
> > -	if (wait_for(intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder,
> port)) &
> > +	if (wait_for(intel_de_read(display, HDCP_STATUS(display,
> cpu_transcoder, port)) &
> >  		     (HDCP_STATUS_R0_READY | HDCP_STATUS_ENC), 1)) {
> > -		drm_err(&i915->drm, "Timed out waiting for R0 ready\n");
> > +		drm_err(display->drm, "Timed out waiting for R0 ready\n");
> >  		return -ETIMEDOUT;
> >  	}
> >
> > @@ -919,30 +921,30 @@ static int intel_hdcp_auth(struct intel_connector
> *connector)
> >  		ret = shim->read_ri_prime(dig_port, ri.shim);
> >  		if (ret)
> >  			return ret;
> > -		intel_de_write(i915,
> > -			       HDCP_RPRIME(i915, cpu_transcoder, port),
> > +		intel_de_write(display,
> > +			       HDCP_RPRIME(display, cpu_transcoder, port),
> >  			       ri.reg);
> >
> >  		/* Wait for Ri prime match */
> > -		if (!wait_for(intel_de_read(i915, HDCP_STATUS(i915,
> cpu_transcoder, port)) &
> > +		if (!wait_for(intel_de_read(display, HDCP_STATUS(display,
> cpu_transcoder, port)) &
> >  			      (HDCP_STATUS_RI_MATCH | HDCP_STATUS_ENC),
> 1))
> >  			break;
> >  	}
> >
> >  	if (i == tries) {
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "Timed out waiting for Ri prime match (%x)\n",
> > -			    intel_de_read(i915,
> > -					  HDCP_STATUS(i915, cpu_transcoder,
> port)));
> > +			    intel_de_read(display,
> > +					  HDCP_STATUS(display,
> cpu_transcoder, port)));
> >  		return -ETIMEDOUT;
> >  	}
> >
> >  	/* Wait for encryption confirmation */
> > -	if (intel_de_wait_for_set(i915,
> > -				  HDCP_STATUS(i915, cpu_transcoder, port),
> > +	if (intel_de_wait_for_set(display,
> > +				  HDCP_STATUS(display, cpu_transcoder,
> port),
> >  				  HDCP_STATUS_ENC,
> >
> HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
> > -		drm_err(&i915->drm, "Timed out waiting for encryption\n");
> > +		drm_err(display->drm, "Timed out waiting for
> encryption\n");
> >  		return -ETIMEDOUT;
> >  	}
> >
> > @@ -950,42 +952,42 @@ static int intel_hdcp_auth(struct intel_connector
> *connector)
> >  	if (shim->stream_encryption) {
> >  		ret = shim->stream_encryption(connector, true);
> >  		if (ret) {
> > -			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to
> enable HDCP 1.4 stream enc\n",
> > +			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed
> to enable HDCP 1.4 stream enc\n",
> >  				connector->base.base.id, connector-
> >base.name);
> >  			return ret;
> >  		}
> > -		drm_dbg_kms(&i915->drm, "HDCP 1.4 transcoder: %s stream
> encrypted\n",
> > +		drm_dbg_kms(display->drm, "HDCP 1.4 transcoder: %s
> stream encrypted\n",
> >  			    transcoder_name(hdcp->stream_transcoder));
> >  	}
> >
> >  	if (repeater_present)
> >  		return intel_hdcp_auth_downstream(connector);
> >
> > -	drm_dbg_kms(&i915->drm, "HDCP is enabled (no repeater
> present)\n");
> > +	drm_dbg_kms(display->drm, "HDCP is enabled (no repeater
> present)\n");
> >  	return 0;
> >  }
> >
> >  static int _intel_hdcp_disable(struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	enum port port = dig_port->base.port;
> >  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
> >  	u32 repeater_ctl;
> >  	int ret;
> >
> > -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP is being
> disabled...\n",
> > +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being
> disabled...\n",
> >  		    connector->base.base.id, connector->base.name);
> >
> >  	if (hdcp->shim->stream_encryption) {
> >  		ret = hdcp->shim->stream_encryption(connector, false);
> >  		if (ret) {
> > -			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to
> disable HDCP 1.4 stream enc\n",
> > +			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed
> to disable HDCP 1.4 stream enc\n",
> >  				connector->base.base.id, connector-
> >base.name);
> >  			return ret;
> >  		}
> > -		drm_dbg_kms(&i915->drm, "HDCP 1.4 transcoder: %s stream
> encryption disabled\n",
> > +		drm_dbg_kms(display->drm, "HDCP 1.4 transcoder: %s
> stream encryption disabled\n",
> >  			    transcoder_name(hdcp->stream_transcoder));
> >  		/*
> >  		 * If there are other connectors on this port using HDCP,
> > @@ -997,51 +999,51 @@ static int _intel_hdcp_disable(struct
> intel_connector *connector)
> >  	}
> >
> >  	hdcp->hdcp_encrypted = false;
> > -	intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port), 0);
> > -	if (intel_de_wait_for_clear(i915,
> > -				    HDCP_STATUS(i915, cpu_transcoder, port),
> > +	intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port),
> 0);
> > +	if (intel_de_wait_for_clear(display,
> > +				    HDCP_STATUS(display, cpu_transcoder,
> port),
> >  				    ~0,
> HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
> > -		drm_err(&i915->drm,
> > +		drm_err(display->drm,
> >  			"Failed to disable HDCP, timeout clearing status\n");
> >  		return -ETIMEDOUT;
> >  	}
> >
> > -	repeater_ctl = intel_hdcp_get_repeater_ctl(i915, cpu_transcoder,
> > +	repeater_ctl = intel_hdcp_get_repeater_ctl(display, cpu_transcoder,
> >  						   port);
> > -	intel_de_rmw(i915, HDCP_REP_CTL, repeater_ctl, 0);
> > +	intel_de_rmw(display, HDCP_REP_CTL, repeater_ctl, 0);
> >
> >  	ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder, false);
> >  	if (ret) {
> > -		drm_err(&i915->drm, "Failed to disable HDCP signalling\n");
> > +		drm_err(display->drm, "Failed to disable HDCP
> signalling\n");
> >  		return ret;
> >  	}
> >
> > -	drm_dbg_kms(&i915->drm, "HDCP is disabled\n");
> > +	drm_dbg_kms(display->drm, "HDCP is disabled\n");
> >  	return 0;
> >  }
> >
> >  static int intel_hdcp1_enable(struct intel_connector *connector)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	int i, ret, tries = 3;
> >
> > -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP is being
> enabled...\n",
> > +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being
> enabled...\n",
> >  		    connector->base.base.id, connector->base.name);
> >
> > -	if (!hdcp_key_loadable(i915)) {
> > -		drm_err(&i915->drm, "HDCP key Load is not possible\n");
> > +	if (!hdcp_key_loadable(display)) {
> > +		drm_err(display->drm, "HDCP key Load is not possible\n");
> >  		return -ENXIO;
> >  	}
> >
> >  	for (i = 0; i < KEY_LOAD_TRIES; i++) {
> > -		ret = intel_hdcp_load_keys(i915);
> > +		ret = intel_hdcp_load_keys(display);
> >  		if (!ret)
> >  			break;
> > -		intel_hdcp_clear_keys(i915);
> > +		intel_hdcp_clear_keys(display);
> >  	}
> >  	if (ret) {
> > -		drm_err(&i915->drm, "Could not load HDCP keys, (%d)\n",
> > +		drm_err(display->drm, "Could not load HDCP keys, (%d)\n",
> >  			ret);
> >  		return ret;
> >  	}
> > @@ -1054,13 +1056,13 @@ static int intel_hdcp1_enable(struct
> intel_connector *connector)
> >  			return 0;
> >  		}
> >
> > -		drm_dbg_kms(&i915->drm, "HDCP Auth failure (%d)\n", ret);
> > +		drm_dbg_kms(display->drm, "HDCP Auth failure (%d)\n",
> ret);
> >
> >  		/* Ensuring HDCP encryption and signalling are stopped. */
> >  		_intel_hdcp_disable(connector);
> >  	}
> >
> > -	drm_dbg_kms(&i915->drm,
> > +	drm_dbg_kms(display->drm,
> >  		    "HDCP authentication failed (%d tries/%d)\n", tries, ret);
> >  	return ret;
> >  }
> > @@ -1074,9 +1076,9 @@ static void intel_hdcp_update_value(struct
> intel_connector *connector,
> >  				    u64 value, bool update_property)
> >  {
> >  	struct drm_device *dev = connector->base.dev;
> > +	struct drm_i915_private *i915 = to_i915(dev);
> 
> Please add the struct intel_display * anyway, and use
> to_i915(display->drm). Generally we don't want struct drm_device local
> variables (but yeah it's already there).
> 
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >
> >  	drm_WARN_ON(connector->base.dev, !mutex_is_locked(&hdcp-
> >mutex));
> >
> > @@ -1103,7 +1105,7 @@ static void intel_hdcp_update_value(struct
> intel_connector *connector,
> >  static int intel_hdcp_check_link(struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	enum port port = dig_port->base.port;
> >  	enum transcoder cpu_transcoder;
> > @@ -1121,12 +1123,12 @@ static int intel_hdcp_check_link(struct
> intel_connector *connector)
> >  		goto out;
> >  	}
> >
> > -	if (drm_WARN_ON(&i915->drm,
> > -			!intel_hdcp_in_use(i915, cpu_transcoder, port))) {
> > -		drm_err(&i915->drm,
> > +	if (drm_WARN_ON(display->drm,
> > +			!intel_hdcp_in_use(display, cpu_transcoder, port))) {
> > +		drm_err(display->drm,
> >  			"[CONNECTOR:%d:%s] HDCP link stopped
> encryption,%x\n",
> >  			connector->base.base.id, connector->base.name,
> > -			intel_de_read(i915, HDCP_STATUS(i915,
> cpu_transcoder, port)));
> > +			intel_de_read(display, HDCP_STATUS(display,
> cpu_transcoder, port)));
> >  		ret = -ENXIO;
> >  		intel_hdcp_update_value(connector,
> >
> 	DRM_MODE_CONTENT_PROTECTION_DESIRED,
> > @@ -1142,13 +1144,13 @@ static int intel_hdcp_check_link(struct
> intel_connector *connector)
> >  		goto out;
> >  	}
> >
> > -	drm_dbg_kms(&i915->drm,
> > +	drm_dbg_kms(display->drm,
> >  		    "[CONNECTOR:%d:%s] HDCP link failed, retrying
> authentication\n",
> >  		    connector->base.base.id, connector->base.name);
> >
> >  	ret = _intel_hdcp_disable(connector);
> >  	if (ret) {
> > -		drm_err(&i915->drm, "Failed to disable hdcp (%d)\n", ret);
> > +		drm_err(display->drm, "Failed to disable hdcp (%d)\n", ret);
> >  		intel_hdcp_update_value(connector,
> >
> 	DRM_MODE_CONTENT_PROTECTION_DESIRED,
> >  					true);
> > @@ -1169,9 +1171,9 @@ static void intel_hdcp_prop_work(struct
> work_struct *work)
> >  	struct intel_hdcp *hdcp = container_of(work, struct intel_hdcp,
> >  					       prop_work);
> >  	struct intel_connector *connector = intel_hdcp_to_connector(hdcp);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >
> > -	drm_modeset_lock(&i915->drm.mode_config.connection_mutex,
> NULL);
> > +	drm_modeset_lock(&display->drm-
> >mode_config.connection_mutex, NULL);
> >  	mutex_lock(&hdcp->mutex);
> >
> >  	/*
> > @@ -1184,7 +1186,7 @@ static void intel_hdcp_prop_work(struct
> work_struct *work)
> >  						   hdcp->value);
> >
> >  	mutex_unlock(&hdcp->mutex);
> > -	drm_modeset_unlock(&i915->drm.mode_config.connection_mutex);
> > +	drm_modeset_unlock(&display->drm-
> >mode_config.connection_mutex);
> >
> >  	drm_connector_put(&connector->base);
> >  }
> > @@ -1200,24 +1202,24 @@ hdcp2_prepare_ake_init(struct
> intel_connector *connector,
> >  		       struct hdcp2_ake_init *ake_data)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> >  	ret = arbiter->ops->initiate_hdcp2_session(arbiter->hdcp_dev, data,
> ake_data);
> >  	if (ret)
> > -		drm_dbg_kms(&i915->drm, "Prepare_ake_init failed. %d\n",
> > +		drm_dbg_kms(display->drm, "Prepare_ake_init failed.
> %d\n",
> >  			    ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1230,16 +1232,16 @@ hdcp2_verify_rx_cert_prepare_km(struct
> intel_connector *connector,
> >  				size_t *msg_sz)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> > @@ -1247,9 +1249,9 @@ hdcp2_verify_rx_cert_prepare_km(struct
> intel_connector *connector,
> >  							 rx_cert, paired,
> >  							 ek_pub_km, msg_sz);
> >  	if (ret < 0)
> > -		drm_dbg_kms(&i915->drm, "Verify rx_cert failed. %d\n",
> > +		drm_dbg_kms(display->drm, "Verify rx_cert failed. %d\n",
> >  			    ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1258,23 +1260,23 @@ static int hdcp2_verify_hprime(struct
> intel_connector *connector,
> >  			       struct hdcp2_ake_send_hprime *rx_hprime)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> >  	ret = arbiter->ops->verify_hprime(arbiter->hdcp_dev, data,
> rx_hprime);
> >  	if (ret < 0)
> > -		drm_dbg_kms(&i915->drm, "Verify hprime failed. %d\n",
> ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		drm_dbg_kms(display->drm, "Verify hprime failed. %d\n",
> ret);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1284,24 +1286,24 @@ hdcp2_store_pairing_info(struct
> intel_connector *connector,
> >  			 struct hdcp2_ake_send_pairing_info *pairing_info)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> >  	ret = arbiter->ops->store_pairing_info(arbiter->hdcp_dev, data,
> pairing_info);
> >  	if (ret < 0)
> > -		drm_dbg_kms(&i915->drm, "Store pairing info failed. %d\n",
> > +		drm_dbg_kms(display->drm, "Store pairing info failed.
> %d\n",
> >  			    ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1311,24 +1313,24 @@ hdcp2_prepare_lc_init(struct intel_connector
> *connector,
> >  		      struct hdcp2_lc_init *lc_init)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> >  	ret = arbiter->ops->initiate_locality_check(arbiter->hdcp_dev, data,
> lc_init);
> >  	if (ret < 0)
> > -		drm_dbg_kms(&i915->drm, "Prepare lc_init failed. %d\n",
> > +		drm_dbg_kms(display->drm, "Prepare lc_init failed. %d\n",
> >  			    ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1338,24 +1340,24 @@ hdcp2_verify_lprime(struct intel_connector
> *connector,
> >  		    struct hdcp2_lc_send_lprime *rx_lprime)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> >  	ret = arbiter->ops->verify_lprime(arbiter->hdcp_dev, data,
> rx_lprime);
> >  	if (ret < 0)
> > -		drm_dbg_kms(&i915->drm, "Verify L_Prime failed. %d\n",
> > +		drm_dbg_kms(display->drm, "Verify L_Prime failed. %d\n",
> >  			    ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1364,24 +1366,24 @@ static int hdcp2_prepare_skey(struct
> intel_connector *connector,
> >  			      struct hdcp2_ske_send_eks *ske_data)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> >  	ret = arbiter->ops->get_session_key(arbiter->hdcp_dev, data,
> ske_data);
> >  	if (ret < 0)
> > -		drm_dbg_kms(&i915->drm, "Get session key failed. %d\n",
> > +		drm_dbg_kms(display->drm, "Get session key failed. %d\n",
> >  			    ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1393,16 +1395,16 @@
> hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector,
> >  				      struct hdcp2_rep_send_ack
> *rep_send_ack)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> > @@ -1411,9 +1413,9 @@ hdcp2_verify_rep_topology_prepare_ack(struct
> intel_connector *connector,
> >  							    rep_topology,
> >  							    rep_send_ack);
> >  	if (ret < 0)
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "Verify rep topology failed. %d\n", ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1423,23 +1425,23 @@ hdcp2_verify_mprime(struct intel_connector
> *connector,
> >  		    struct hdcp2_rep_stream_ready *stream_ready)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> >  	ret = arbiter->ops->verify_mprime(arbiter->hdcp_dev, data,
> stream_ready);
> >  	if (ret < 0)
> > -		drm_dbg_kms(&i915->drm, "Verify mprime failed. %d\n",
> ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		drm_dbg_kms(display->drm, "Verify mprime failed. %d\n",
> ret);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1447,24 +1449,24 @@ hdcp2_verify_mprime(struct intel_connector
> *connector,
> >  static int hdcp2_authenticate_port(struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> >  	ret = arbiter->ops->enable_hdcp_authentication(arbiter->hdcp_dev,
> data);
> >  	if (ret < 0)
> > -		drm_dbg_kms(&i915->drm, "Enable hdcp auth failed. %d\n",
> > +		drm_dbg_kms(display->drm, "Enable hdcp auth failed.
> %d\n",
> >  			    ret);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1472,21 +1474,21 @@ static int hdcp2_authenticate_port(struct
> intel_connector *connector)
> >  static int hdcp2_close_session(struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct i915_hdcp_arbiter *arbiter;
> >  	int ret;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	arbiter = i915->display.hdcp.arbiter;
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	arbiter = display->hdcp.arbiter;
> >
> >  	if (!arbiter || !arbiter->ops) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return -EINVAL;
> >  	}
> >
> >  	ret = arbiter->ops->close_hdcp_session(arbiter->hdcp_dev,
> >  					     &dig_port->hdcp_port_data);
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return ret;
> >  }
> > @@ -1499,7 +1501,7 @@ static int hdcp2_deauthenticate_port(struct
> intel_connector *connector)
> >  /* Authentication flow starts from here */
> >  static int hdcp2_authentication_key_exchange(struct intel_connector
> *connector)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	union {
> >  		struct hdcp2_ake_init ake_init;
> > @@ -1531,16 +1533,16 @@ static int
> hdcp2_authentication_key_exchange(struct intel_connector *connector)
> >  		return ret;
> >
> >  	if (msgs.send_cert.rx_caps[0] != HDCP_2_2_RX_CAPS_VERSION_VAL)
> {
> > -		drm_dbg_kms(&i915->drm, "cert.rx_caps dont claim
> HDCP2.2\n");
> > +		drm_dbg_kms(display->drm, "cert.rx_caps dont claim
> HDCP2.2\n");
> >  		return -EINVAL;
> >  	}
> >
> >  	hdcp->is_repeater =
> HDCP_2_2_RX_REPEATER(msgs.send_cert.rx_caps[2]);
> >
> > -	if (drm_hdcp_check_ksvs_revoked(&i915->drm,
> > +	if (drm_hdcp_check_ksvs_revoked(display->drm,
> >  					msgs.send_cert.cert_rx.receiver_id,
> >  					1) > 0) {
> > -		drm_err(&i915->drm, "Receiver ID is revoked\n");
> > +		drm_err(display->drm, "Receiver ID is revoked\n");
> >  		return -EPERM;
> >  	}
> >
> > @@ -1692,7 +1694,7 @@ static
> >  int hdcp2_authenticate_repeater_topology(struct intel_connector
> *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	union {
> >  		struct hdcp2_rep_send_receiverid_list recvid_list;
> > @@ -1712,7 +1714,7 @@ int
> hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
> >
> >  	if (HDCP_2_2_MAX_CASCADE_EXCEEDED(rx_info[1]) ||
> >  	    HDCP_2_2_MAX_DEVS_EXCEEDED(rx_info[1])) {
> > -		drm_dbg_kms(&i915->drm, "Topology Max Size
> Exceeded\n");
> > +		drm_dbg_kms(display->drm, "Topology Max Size
> Exceeded\n");
> >  		return -EINVAL;
> >  	}
> >
> > @@ -1725,7 +1727,7 @@ int
> hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
> >  		!HDCP_2_2_HDCP_2_0_REP_CONNECTED(rx_info[1]);
> >
> >  	if (!dig_port->hdcp_mst_type1_capable && hdcp->content_type) {
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "HDCP1.x or 2.0 Legacy Device Downstream\n");
> >  		return -EINVAL;
> >  	}
> > @@ -1735,23 +1737,23 @@ int
> hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
> >  		drm_hdcp_be24_to_cpu((const u8
> *)msgs.recvid_list.seq_num_v);
> >
> >  	if (!hdcp->hdcp2_encrypted && seq_num_v) {
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "Non zero Seq_num_v at first RecvId_List msg\n");
> >  		return -EINVAL;
> >  	}
> >
> >  	if (seq_num_v < hdcp->seq_num_v) {
> >  		/* Roll over of the seq_num_v from repeater.
> Reauthenticate. */
> > -		drm_dbg_kms(&i915->drm, "Seq_num_v roll over.\n");
> > +		drm_dbg_kms(display->drm, "Seq_num_v roll over.\n");
> >  		return -EINVAL;
> >  	}
> >
> >  	device_cnt = (HDCP_2_2_DEV_COUNT_HI(rx_info[0]) << 4 |
> >  		      HDCP_2_2_DEV_COUNT_LO(rx_info[1]));
> > -	if (drm_hdcp_check_ksvs_revoked(&i915->drm,
> > +	if (drm_hdcp_check_ksvs_revoked(display->drm,
> >  					msgs.recvid_list.receiver_ids,
> >  					device_cnt) > 0) {
> > -		drm_err(&i915->drm, "Revoked receiver ID(s) is in list\n");
> > +		drm_err(display->drm, "Revoked receiver ID(s) is in list\n");
> >  		return -EPERM;
> >  	}
> >
> > @@ -1772,27 +1774,27 @@ int
> hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
> >
> >  static int hdcp2_authenticate_sink(struct intel_connector *connector)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	const struct intel_hdcp_shim *shim = hdcp->shim;
> >  	int ret;
> >
> >  	ret = hdcp2_authentication_key_exchange(connector);
> >  	if (ret < 0) {
> > -		drm_dbg_kms(&i915->drm, "AKE Failed. Err : %d\n", ret);
> > +		drm_dbg_kms(display->drm, "AKE Failed. Err : %d\n", ret);
> >  		return ret;
> >  	}
> >
> >  	ret = hdcp2_locality_check(connector);
> >  	if (ret < 0) {
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "Locality Check failed. Err : %d\n", ret);
> >  		return ret;
> >  	}
> >
> >  	ret = hdcp2_session_key_exchange(connector);
> >  	if (ret < 0) {
> > -		drm_dbg_kms(&i915->drm, "SKE Failed. Err : %d\n", ret);
> > +		drm_dbg_kms(display->drm, "SKE Failed. Err : %d\n", ret);
> >  		return ret;
> >  	}
> >
> > @@ -1807,7 +1809,7 @@ static int hdcp2_authenticate_sink(struct
> intel_connector *connector)
> >  	if (hdcp->is_repeater) {
> >  		ret = hdcp2_authenticate_repeater_topology(connector);
> >  		if (ret < 0) {
> > -			drm_dbg_kms(&i915->drm,
> > +			drm_dbg_kms(display->drm,
> >  				    "Repeater Auth Failed. Err: %d\n", ret);
> >  			return ret;
> >  		}
> > @@ -1819,16 +1821,16 @@ static int hdcp2_authenticate_sink(struct
> intel_connector *connector)
> >  static int hdcp2_enable_stream_encryption(struct intel_connector
> *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	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;
> >  	int ret = 0;
> >
> > -	if (!(intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port))
> &
> > +	if (!(intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder,
> port)) &
> >  			    LINK_ENCRYPTION_STATUS)) {
> > -		drm_err(&i915->drm, "[CONNECTOR:%d:%s] HDCP 2.2 Link is
> not encrypted\n",
> > +		drm_err(display->drm, "[CONNECTOR:%d:%s] HDCP 2.2 Link
> is not encrypted\n",
> >  			connector->base.base.id, connector->base.name);
> >  		ret = -EPERM;
> >  		goto link_recover;
> > @@ -1837,11 +1839,11 @@ static int
> hdcp2_enable_stream_encryption(struct intel_connector *connector)
> >  	if (hdcp->shim->stream_2_2_encryption) {
> >  		ret = hdcp->shim->stream_2_2_encryption(connector, true);
> >  		if (ret) {
> > -			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to
> enable HDCP 2.2 stream enc\n",
> > +			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed
> to enable HDCP 2.2 stream enc\n",
> >  				connector->base.base.id, connector-
> >base.name);
> >  			return ret;
> >  		}
> > -		drm_dbg_kms(&i915->drm, "HDCP 2.2 transcoder: %s stream
> encrypted\n",
> > +		drm_dbg_kms(display->drm, "HDCP 2.2 transcoder: %s
> stream encrypted\n",
> >  			    transcoder_name(hdcp->stream_transcoder));
> >  	}
> >
> > @@ -1849,7 +1851,7 @@ static int
> hdcp2_enable_stream_encryption(struct intel_connector *connector)
> >
> >  link_recover:
> >  	if (hdcp2_deauthenticate_port(connector) < 0)
> > -		drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
> > +		drm_dbg_kms(display->drm, "Port deauth failed.\n");
> >
> >  	dig_port->hdcp_auth_status = false;
> >  	data->k = 0;
> > @@ -1860,34 +1862,34 @@ static int
> hdcp2_enable_stream_encryption(struct intel_connector *connector)
> >  static int hdcp2_enable_encryption(struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	enum port port = dig_port->base.port;
> >  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
> >  	int ret;
> >
> > -	drm_WARN_ON(&i915->drm,
> > -		    intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder,
> port)) &
> > +	drm_WARN_ON(display->drm,
> > +		    intel_de_read(display, HDCP2_STATUS(display,
> cpu_transcoder, port)) &
> >  		    LINK_ENCRYPTION_STATUS);
> >  	if (hdcp->shim->toggle_signalling) {
> >  		ret = hdcp->shim->toggle_signalling(dig_port,
> cpu_transcoder,
> >  						    true);
> >  		if (ret) {
> > -			drm_err(&i915->drm,
> > +			drm_err(display->drm,
> >  				"Failed to enable HDCP signalling. %d\n",
> >  				ret);
> >  			return ret;
> >  		}
> >  	}
> >
> > -	if (intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) &
> > +	if (intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder,
> port)) &
> >  	    LINK_AUTH_STATUS)
> >  		/* Link is Authenticated. Now set for Encryption */
> > -		intel_de_rmw(i915, HDCP2_CTL(i915, cpu_transcoder, port),
> > +		intel_de_rmw(display, HDCP2_CTL(display, cpu_transcoder,
> port),
> >  			     0, CTL_LINK_ENCRYPTION_REQ);
> >
> > -	ret = intel_de_wait_for_set(i915,
> > -				    HDCP2_STATUS(i915, cpu_transcoder,
> > +	ret = intel_de_wait_for_set(display,
> > +				    HDCP2_STATUS(display, cpu_transcoder,
> >  						 port),
> >  				    LINK_ENCRYPTION_STATUS,
> >
> HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
> > @@ -1899,31 +1901,32 @@ static int hdcp2_enable_encryption(struct
> intel_connector *connector)
> >  static int hdcp2_disable_encryption(struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	enum port port = dig_port->base.port;
> >  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
> >  	int ret;
> >
> > -	drm_WARN_ON(&i915->drm, !(intel_de_read(i915,
> HDCP2_STATUS(i915, cpu_transcoder, port)) &
> > -				      LINK_ENCRYPTION_STATUS));
> > +	drm_WARN_ON(display->drm,
> > +		    !(intel_de_read(display, HDCP2_STATUS(display,
> cpu_transcoder, port)) &
> > +				    LINK_ENCRYPTION_STATUS));
> >
> > -	intel_de_rmw(i915, HDCP2_CTL(i915, cpu_transcoder, port),
> > +	intel_de_rmw(display, HDCP2_CTL(display, cpu_transcoder, port),
> >  		     CTL_LINK_ENCRYPTION_REQ, 0);
> >
> > -	ret = intel_de_wait_for_clear(i915,
> > -				      HDCP2_STATUS(i915, cpu_transcoder,
> > +	ret = intel_de_wait_for_clear(display,
> > +				      HDCP2_STATUS(display, cpu_transcoder,
> >  						   port),
> >  				      LINK_ENCRYPTION_STATUS,
> >
> HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
> >  	if (ret == -ETIMEDOUT)
> > -		drm_dbg_kms(&i915->drm, "Disable Encryption Timedout");
> > +		drm_dbg_kms(display->drm, "Disable Encryption
> Timedout");
> >
> >  	if (hdcp->shim->toggle_signalling) {
> >  		ret = hdcp->shim->toggle_signalling(dig_port,
> cpu_transcoder,
> >  						    false);
> >  		if (ret) {
> > -			drm_err(&i915->drm,
> > +			drm_err(display->drm,
> >  				"Failed to disable HDCP signalling. %d\n",
> >  				ret);
> >  			return ret;
> > @@ -1936,7 +1939,7 @@ static int hdcp2_disable_encryption(struct
> intel_connector *connector)
> >  static int
> >  hdcp2_propagate_stream_management_info(struct intel_connector
> *connector)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	int i, tries = 3, ret;
> >
> >  	if (!connector->hdcp.is_repeater)
> > @@ -1949,12 +1952,12 @@
> hdcp2_propagate_stream_management_info(struct intel_connector
> *connector)
> >
> >  		/* Lets restart the auth incase of seq_num_m roll over */
> >  		if (connector->hdcp.seq_num_m >
> HDCP_2_2_SEQ_NUM_MAX) {
> > -			drm_dbg_kms(&i915->drm,
> > +			drm_dbg_kms(display->drm,
> >  				    "seq_num_m roll over.(%d)\n", ret);
> >  			break;
> >  		}
> >
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "HDCP2 stream management %d of %d
> Failed.(%d)\n",
> >  			    i + 1, tries, ret);
> >  	}
> > @@ -1966,7 +1969,7 @@ static int
> hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
> >  					  struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	int ret = 0, i, tries = 3;
> >
> >  	for (i = 0; i < tries && !dig_port->hdcp_auth_status; i++) {
> > @@ -1974,7 +1977,7 @@ static int
> hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
> >  		if (!ret) {
> >  			ret = intel_hdcp_prepare_streams(state, connector);
> >  			if (ret) {
> > -				drm_dbg_kms(&i915->drm,
> > +				drm_dbg_kms(display->drm,
> >  					    "Prepare stream failed.(%d)\n",
> >  					    ret);
> >  				break;
> > @@ -1982,7 +1985,7 @@ static int
> hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
> >
> >  			ret =
> hdcp2_propagate_stream_management_info(connector);
> >  			if (ret) {
> > -				drm_dbg_kms(&i915->drm,
> > +				drm_dbg_kms(display->drm,
> >  					    "Stream management
> failed.(%d)\n",
> >  					    ret);
> >  				break;
> > @@ -1991,15 +1994,15 @@ static int
> hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
> >  			ret = hdcp2_authenticate_port(connector);
> >  			if (!ret)
> >  				break;
> > -			drm_dbg_kms(&i915->drm, "HDCP2 port auth
> failed.(%d)\n",
> > +			drm_dbg_kms(display->drm, "HDCP2 port auth
> failed.(%d)\n",
> >  				    ret);
> >  		}
> >
> >  		/* Clearing the mei hdcp session */
> > -		drm_dbg_kms(&i915->drm, "HDCP2.2 Auth %d of %d
> Failed.(%d)\n",
> > +		drm_dbg_kms(display->drm, "HDCP2.2 Auth %d of %d
> Failed.(%d)\n",
> >  			    i + 1, tries, ret);
> >  		if (hdcp2_deauthenticate_port(connector) < 0)
> > -			drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
> > +			drm_dbg_kms(display->drm, "Port deauth
> failed.\n");
> >  	}
> >
> >  	if (!ret && !dig_port->hdcp_auth_status) {
> > @@ -2010,10 +2013,10 @@ static int
> hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
> >  		msleep(HDCP_2_2_DELAY_BEFORE_ENCRYPTION_EN);
> >  		ret = hdcp2_enable_encryption(connector);
> >  		if (ret < 0) {
> > -			drm_dbg_kms(&i915->drm,
> > +			drm_dbg_kms(display->drm,
> >  				    "Encryption Enable Failed.(%d)\n", ret);
> >  			if (hdcp2_deauthenticate_port(connector) < 0)
> > -				drm_dbg_kms(&i915->drm, "Port deauth
> failed.\n");
> > +				drm_dbg_kms(display->drm, "Port deauth
> failed.\n");
> >  		}
> >  	}
> >
> > @@ -2026,11 +2029,11 @@ static int
> hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
> >  static int _intel_hdcp2_enable(struct intel_atomic_state *state,
> >  			       struct intel_connector *connector)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	int ret;
> >
> > -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being
> enabled. Type: %d\n",
> > +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being
> enabled. Type: %d\n",
> >  		    connector->base.base.id, connector->base.name,
> >  		    hdcp->content_type);
> >
> > @@ -2038,12 +2041,12 @@ static int _intel_hdcp2_enable(struct
> intel_atomic_state *state,
> >
> >  	ret = hdcp2_authenticate_and_encrypt(state, connector);
> >  	if (ret) {
> > -		drm_dbg_kms(&i915->drm, "HDCP2 Type%d  Enabling Failed.
> (%d)\n",
> > +		drm_dbg_kms(display->drm, "HDCP2 Type%d  Enabling
> Failed. (%d)\n",
> >  			    hdcp->content_type, ret);
> >  		return ret;
> >  	}
> >
> > -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP2.2 is
> enabled. Type %d\n",
> > +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is
> enabled. Type %d\n",
> >  		    connector->base.base.id, connector->base.name,
> >  		    hdcp->content_type);
> >
> > @@ -2055,22 +2058,22 @@ static int
> >  _intel_hdcp2_disable(struct intel_connector *connector, bool
> hdcp2_link_recovery)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	int ret;
> >
> > -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being
> Disabled\n",
> > +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being
> Disabled\n",
> >  		    connector->base.base.id, connector->base.name);
> >
> >  	if (hdcp->shim->stream_2_2_encryption) {
> >  		ret = hdcp->shim->stream_2_2_encryption(connector, false);
> >  		if (ret) {
> > -			drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to
> disable HDCP 2.2 stream enc\n",
> > +			drm_err(display->drm, "[CONNECTOR:%d:%s] Failed
> to disable HDCP 2.2 stream enc\n",
> >  				connector->base.base.id, connector-
> >base.name);
> >  			return ret;
> >  		}
> > -		drm_dbg_kms(&i915->drm, "HDCP 2.2 transcoder: %s stream
> encryption disabled\n",
> > +		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)
> > @@ -2080,7 +2083,7 @@ _intel_hdcp2_disable(struct intel_connector
> *connector, bool hdcp2_link_recovery
> >  	ret = hdcp2_disable_encryption(connector);
> >
> >  	if (hdcp2_deauthenticate_port(connector) < 0)
> > -		drm_dbg_kms(&i915->drm, "Port deauth failed.\n");
> > +		drm_dbg_kms(display->drm, "Port deauth failed.\n");
> >
> >  	connector->hdcp.hdcp2_encrypted = false;
> >  	dig_port->hdcp_auth_status = false;
> > @@ -2093,7 +2096,7 @@ _intel_hdcp2_disable(struct intel_connector
> *connector, bool hdcp2_link_recovery
> >  static int intel_hdcp2_check_link(struct intel_connector *connector)
> >  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	enum port port = dig_port->base.port;
> >  	enum transcoder cpu_transcoder;
> > @@ -2110,11 +2113,11 @@ static int intel_hdcp2_check_link(struct
> intel_connector *connector)
> >  		goto out;
> >  	}
> >
> > -	if (drm_WARN_ON(&i915->drm,
> > -			!intel_hdcp2_in_use(i915, cpu_transcoder, port))) {
> > -		drm_err(&i915->drm,
> > +	if (drm_WARN_ON(display->drm,
> > +			!intel_hdcp2_in_use(display, cpu_transcoder, port)))
> {
> > +		drm_err(display->drm,
> >  			"HDCP2.2 link stopped the encryption, %x\n",
> > -			intel_de_read(i915, HDCP2_STATUS(i915,
> cpu_transcoder, port)));
> > +			intel_de_read(display, HDCP2_STATUS(display,
> cpu_transcoder, port)));
> >  		ret = -ENXIO;
> >  		_intel_hdcp2_disable(connector, true);
> >  		intel_hdcp_update_value(connector,
> > @@ -2137,17 +2140,17 @@ static int intel_hdcp2_check_link(struct
> intel_connector *connector)
> >  		if (hdcp->value ==
> DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
> >  			goto out;
> >
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "HDCP2.2 Downstream topology change\n");
> >  	} else {
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "[CONNECTOR:%d:%s] HDCP2.2 link failed, retrying
> auth\n",
> >  			    connector->base.base.id, connector->base.name);
> >  	}
> >
> >  	ret = _intel_hdcp2_disable(connector, true);
> >  	if (ret) {
> > -		drm_err(&i915->drm,
> > +		drm_err(display->drm,
> >  			"[CONNECTOR:%d:%s] Failed to disable hdcp2.2
> (%d)\n",
> >  			connector->base.base.id, connector->base.name,
> ret);
> >  		intel_hdcp_update_value(connector,
> > @@ -2186,13 +2189,12 @@ static int i915_hdcp_component_bind(struct
> device *drv_kdev,
> >  				    struct device *mei_kdev, void *data)
> >  {
> >  	struct intel_display *display = to_intel_display(drv_kdev);
> > -	struct drm_i915_private *i915 = to_i915(display->drm);
> >
> > -	drm_dbg(&i915->drm, "I915 HDCP comp bind\n");
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	i915->display.hdcp.arbiter = (struct i915_hdcp_arbiter *)data;
> > -	i915->display.hdcp.arbiter->hdcp_dev = mei_kdev;
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	drm_dbg(display->drm, "I915 HDCP comp bind\n");
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	display->hdcp.arbiter = (struct i915_hdcp_arbiter *)data;
> > +	display->hdcp.arbiter->hdcp_dev = mei_kdev;
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> >  	return 0;
> >  }
> > @@ -2201,12 +2203,11 @@ static void
> i915_hdcp_component_unbind(struct device *drv_kdev,
> >  				       struct device *mei_kdev, void *data)
> >  {
> >  	struct intel_display *display = to_intel_display(drv_kdev);
> > -	struct drm_i915_private *i915 = to_i915(display->drm);
> >
> > -	drm_dbg(&i915->drm, "I915 HDCP comp unbind\n");
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	i915->display.hdcp.arbiter = NULL;
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	drm_dbg(display->drm, "I915 HDCP comp unbind\n");
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	display->hdcp.arbiter = NULL;
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >  }
> >
> >  static const struct component_ops i915_hdcp_ops = {
> > @@ -2240,11 +2241,11 @@ static int initialize_hdcp_port_data(struct
> intel_connector *connector,
> >  				     struct intel_digital_port *dig_port,
> >  				     const struct intel_hdcp_shim *shim)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> >  	enum port port = dig_port->base.port;
> >
> > -	if (DISPLAY_VER(i915) < 12)
> > +	if (DISPLAY_VER(display) < 12)
> >  		data->hdcp_ddi = intel_get_hdcp_ddi_index(port);
> >  	else
> >  		/*
> > @@ -2264,11 +2265,11 @@ static int initialize_hdcp_port_data(struct
> intel_connector *connector,
> >  	data->protocol = (u8)shim->protocol;
> >
> >  	if (!data->streams)
> > -		data->streams = kcalloc(INTEL_NUM_PIPES(i915),
> > +		data->streams = kcalloc(INTEL_NUM_PIPES(display),
> >  					sizeof(struct hdcp2_streamid_type),
> >  					GFP_KERNEL);
> >  	if (!data->streams) {
> > -		drm_err(&i915->drm, "Out of Memory\n");
> > +		drm_err(display->drm, "Out of Memory\n");
> >  		return -ENOMEM;
> >  	}
> >
> > @@ -2277,13 +2278,15 @@ static int initialize_hdcp_port_data(struct
> intel_connector *connector,
> >
> >  static bool is_hdcp2_supported(struct drm_i915_private *i915)
> >  {
> > -	if (intel_hdcp_gsc_cs_required(i915))
> > +	struct intel_display *display = to_intel_display(&i915->drm);
> > +
> > +	if (intel_hdcp_gsc_cs_required(display))
> >  		return true;
> >
> >  	if (!IS_ENABLED(CONFIG_INTEL_MEI_HDCP))
> >  		return false;
> >
> > -	return (DISPLAY_VER(i915) >= 10 ||
> > +	return (DISPLAY_VER(display) >= 10 ||
> >  		IS_KABYLAKE(i915) ||
> >  		IS_COFFEELAKE(i915) ||
> >  		IS_COMETLAKE(i915));
> > @@ -2291,28 +2294,29 @@ static bool is_hdcp2_supported(struct
> drm_i915_private *i915)
> >
> >  void intel_hdcp_component_init(struct drm_i915_private *i915)
> >  {
> > +	struct intel_display *display = to_intel_display(&i915->drm);
> >  	int ret;
> >
> >  	if (!is_hdcp2_supported(i915))
> >  		return;
> >
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	drm_WARN_ON(&i915->drm, i915->display.hdcp.comp_added);
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	drm_WARN_ON(display->drm, display->hdcp.comp_added);
> >
> > -	i915->display.hdcp.comp_added = true;
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > -	if (intel_hdcp_gsc_cs_required(i915))
> > +	display->hdcp.comp_added = true;
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> > +	if (intel_hdcp_gsc_cs_required(display))
> >  		ret = intel_hdcp_gsc_init(i915);
> >  	else
> > -		ret = component_add_typed(i915->drm.dev,
> &i915_hdcp_ops,
> > +		ret = component_add_typed(display->drm->dev,
> &i915_hdcp_ops,
> >  					  I915_COMPONENT_HDCP);
> >
> >  	if (ret < 0) {
> > -		drm_dbg_kms(&i915->drm, "Failed at fw component
> add(%d)\n",
> > +		drm_dbg_kms(display->drm, "Failed at fw component
> add(%d)\n",
> >  			    ret);
> > -		mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -		i915->display.hdcp.comp_added = false;
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +		mutex_lock(&display->hdcp.hdcp_mutex);
> > +		display->hdcp.comp_added = false;
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return;
> >  	}
> >  }
> > @@ -2321,13 +2325,13 @@ static void intel_hdcp2_init(struct
> intel_connector *connector,
> >  			     struct intel_digital_port *dig_port,
> >  			     const struct intel_hdcp_shim *shim)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(connector->base.dev);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	int ret;
> >
> >  	ret = initialize_hdcp_port_data(connector, dig_port, shim);
> >  	if (ret) {
> > -		drm_dbg_kms(&i915->drm, "Mei hdcp data init failed\n");
> > +		drm_dbg_kms(display->drm, "Mei hdcp data init failed\n");
> >  		return;
> >  	}
> >
> > @@ -2374,6 +2378,7 @@ static int _intel_hdcp_enable(struct
> intel_atomic_state *state,
> >  	struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> >  	struct intel_connector *connector =
> >  		to_intel_connector(conn_state->connector);
> > +	struct intel_display *display = to_intel_display(connector-
> >base.dev);
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> >  	unsigned long check_link_interval = DRM_HDCP_CHECK_PERIOD_MS;
> > @@ -2383,14 +2388,14 @@ static int _intel_hdcp_enable(struct
> intel_atomic_state *state,
> >  		return -ENOENT;
> >
> >  	if (!connector->encoder) {
> > -		drm_err(&i915->drm, "[CONNECTOR:%d:%s] encoder is not
> initialized\n",
> > +		drm_err(display->drm, "[CONNECTOR:%d:%s] encoder is not
> initialized\n",
> >  			connector->base.base.id, connector->base.name);
> >  		return -ENODEV;
> >  	}
> >
> >  	mutex_lock(&hdcp->mutex);
> >  	mutex_lock(&dig_port->hdcp_mutex);
> > -	drm_WARN_ON(&i915->drm,
> > +	drm_WARN_ON(display->drm,
> >  		    hdcp->value ==
> DRM_MODE_CONTENT_PROTECTION_ENABLED);
> >  	hdcp->content_type = (u8)conn_state->hdcp_content_type;
> >
> > @@ -2552,19 +2557,21 @@ void intel_hdcp_update_pipe(struct
> intel_atomic_state *state,
> >
> >  void intel_hdcp_component_fini(struct drm_i915_private *i915)
> >  {
> > -	mutex_lock(&i915->display.hdcp.hdcp_mutex);
> > -	if (!i915->display.hdcp.comp_added) {
> > -		mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	struct intel_display *display = to_intel_display(&i915->drm);
> > +
> > +	mutex_lock(&display->hdcp.hdcp_mutex);
> > +	if (!display->hdcp.comp_added) {
> > +		mutex_unlock(&display->hdcp.hdcp_mutex);
> >  		return;
> >  	}
> >
> > -	i915->display.hdcp.comp_added = false;
> > -	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
> > +	display->hdcp.comp_added = false;
> > +	mutex_unlock(&display->hdcp.hdcp_mutex);
> >
> > -	if (intel_hdcp_gsc_cs_required(i915))
> > +	if (intel_hdcp_gsc_cs_required(display))
> >  		intel_hdcp_gsc_fini(i915);
> >  	else
> > -		component_del(i915->drm.dev, &i915_hdcp_ops);
> > +		component_del(display->drm->dev, &i915_hdcp_ops);
> >  }
> >
> >  void intel_hdcp_cleanup(struct intel_connector *connector)
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> > index 16afeb8a3a8d..dc5cc1d54c85 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> > @@ -19,18 +19,19 @@ struct intel_hdcp_gsc_message {
> >  	void *hdcp_cmd_out;
> >  };
> >
> > -bool intel_hdcp_gsc_cs_required(struct drm_i915_private *i915)
> > +bool intel_hdcp_gsc_cs_required(struct intel_display *display)
> >  {
> > -	return DISPLAY_VER(i915) >= 14;
> > +	return DISPLAY_VER(display) >= 14;
> >  }
> >
> > -bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915)
> > +bool intel_hdcp_gsc_check_status(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	struct intel_gt *gt = i915->media_gt;
> >  	struct intel_gsc_uc *gsc = gt ? &gt->uc.gsc : NULL;
> >
> >  	if (!gsc || !intel_uc_fw_is_running(&gsc->fw)) {
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "GSC components required for HDCP2.2 are not
> ready\n");
> >  		return false;
> >  	}
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> > index 5f610df61cc9..b6aabd855478 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> > @@ -10,14 +10,15 @@
> >  #include <linux/types.h>
> >
> >  struct drm_i915_private;
> > +struct intel_display;
> >  struct intel_hdcp_gsc_message;
> >
> > -bool intel_hdcp_gsc_cs_required(struct drm_i915_private *i915);
> > +bool intel_hdcp_gsc_cs_required(struct intel_display *display);
> >  ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8
> *msg_in,
> >  				size_t msg_in_len, u8 *msg_out,
> >  				size_t msg_out_len);
> >  int intel_hdcp_gsc_init(struct drm_i915_private *i915);
> >  void intel_hdcp_gsc_fini(struct drm_i915_private *i915);
> > -bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915);
> > +bool intel_hdcp_gsc_check_status(struct intel_display *display);
> >
> >  #endif /* __INTEL_HDCP_GCS_H__ */
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
> b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
> > index ce199d6f6232..2d597f27e931 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h
> > @@ -22,11 +22,12 @@ struct hdcp2_ske_send_eks;
> >  struct hdcp2_rep_send_receiverid_list;
> >  struct hdcp2_rep_send_ack;
> >  struct hdcp2_rep_stream_ready;
> > +struct intel_display;
> >
> >  ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8
> *msg_in,
> >  				size_t msg_in_len, u8 *msg_out,
> >  				size_t msg_out_len);
> > -bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915);
> > +bool intel_hdcp_gsc_check_status(struct intel_display *display);
> >  int
> >  intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data
> *data,
> >  				struct hdcp2_ake_init *ake_data);
> > diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> > index 6619a40aed15..5badf90b26de 100644
> > --- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> > +++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> > @@ -30,13 +30,14 @@ struct intel_hdcp_gsc_message {
> >
> >  #define HDCP_GSC_HEADER_SIZE sizeof(struct intel_gsc_mtl_header)
> >
> > -bool intel_hdcp_gsc_cs_required(struct xe_device *xe)
> > +bool intel_hdcp_gsc_cs_required(struct intel_display *display)
> >  {
> > -	return DISPLAY_VER(xe) >= 14;
> > +	return DISPLAY_VER(display) >= 14;
> >  }
> >
> > -bool intel_hdcp_gsc_check_status(struct xe_device *xe)
> > +bool intel_hdcp_gsc_check_status(struct intel_display *display)
> >  {
> > +	struct xe_device *xe = to_xe_device(display->drm);
> >  	struct xe_tile *tile = xe_device_get_root_tile(xe);
> >  	struct xe_gt *gt = tile->media_gt;
> >  	struct xe_gsc *gsc = &gt->uc.gsc;
> 
> --
> Jani Nikula, Intel

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

* ✓ Fi.CI.BAT: success for HDCP intel_display refactors
  2024-09-10  7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal
  2024-09-10  7:47 ` [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp Suraj Kandpal
  2024-09-10  7:47 ` [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc Suraj Kandpal
@ 2024-09-10 13:30 ` Patchwork
  2024-09-11  6:52 ` ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2024-09-10 13:30 UTC (permalink / raw)
  To: Kandpal, Suraj; +Cc: intel-gfx

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

== Series Details ==

Series: HDCP intel_display refactors
URL   : https://patchwork.freedesktop.org/series/138454/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_15387 -> Patchwork_138454v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (39 -> 39)
------------------------------

  Additional (3): fi-kbl-8809g bat-jsl-1 fi-bsw-n3050 
  Missing    (3): bat-arlh-3 fi-cfl-8109u fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@debugfs_test@basic-hwmon:
    - bat-jsl-1:          NOTRUN -> [SKIP][1] ([i915#9318])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-jsl-1/igt@debugfs_test@basic-hwmon.html

  * igt@fbdev@read:
    - bat-arls-1:         [PASS][2] -> [DMESG-WARN][3] ([i915#12102])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-1/igt@fbdev@read.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-1/igt@fbdev@read.html

  * igt@gem_huc_copy@huc-copy:
    - fi-kbl-8809g:       NOTRUN -> [SKIP][4] ([i915#2190])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/fi-kbl-8809g/igt@gem_huc_copy@huc-copy.html
    - bat-jsl-1:          NOTRUN -> [SKIP][5] ([i915#2190])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-jsl-1/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - bat-jsl-1:          NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-jsl-1/igt@gem_lmem_swapping@parallel-random-engines.html
    - fi-kbl-8809g:       NOTRUN -> [SKIP][7] ([i915#4613]) +3 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/fi-kbl-8809g/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - bat-jsl-1:          NOTRUN -> [SKIP][8] ([i915#4103]) +1 other test skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-jsl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_dsc@dsc-basic:
    - fi-kbl-8809g:       NOTRUN -> [SKIP][9] +30 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/fi-kbl-8809g/igt@kms_dsc@dsc-basic.html
    - bat-jsl-1:          NOTRUN -> [SKIP][10] ([i915#3555] / [i915#9886])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-jsl-1/igt@kms_dsc@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-jsl-1:          NOTRUN -> [SKIP][11]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-jsl-1/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_psr@psr-primary-mmap-gtt:
    - fi-bsw-n3050:       NOTRUN -> [SKIP][12] +20 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/fi-bsw-n3050/igt@kms_psr@psr-primary-mmap-gtt.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-jsl-1:          NOTRUN -> [SKIP][13] ([i915#3555])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-jsl-1/igt@kms_setmode@basic-clone-single-crtc.html

  
#### Possible fixes ####

  * igt@fbdev@eof:
    - bat-arls-1:         [DMESG-WARN][14] ([i915#12102]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-1/igt@fbdev@eof.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-1/igt@fbdev@eof.html

  * igt@i915_module_load@reload:
    - bat-arls-1:         [DMESG-FAIL][16] ([i915#10341]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-1/igt@i915_module_load@reload.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-1/igt@i915_module_load@reload.html

  * igt@i915_pm_rpm@module-reload:
    - bat-arls-1:         [SKIP][18] -> [PASS][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-1/igt@i915_pm_rpm@module-reload.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-1/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live:
    - bat-dg2-8:          [DMESG-FAIL][20] -> [PASS][21]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-dg2-8/igt@i915_selftest@live.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-dg2-8/igt@i915_selftest@live.html
    - bat-apl-1:          [DMESG-FAIL][22] -> [PASS][23] +1 other test pass
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-apl-1/igt@i915_selftest@live.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-apl-1/igt@i915_selftest@live.html
    - bat-arls-2:         [DMESG-WARN][24] ([i915#10341] / [i915#12133]) -> [PASS][25]
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-2/igt@i915_selftest@live.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-2/igt@i915_selftest@live.html

  * igt@i915_selftest@live@gt_contexts:
    - bat-arls-1:         [DMESG-FAIL][26] ([i915#10262]) -> [PASS][27] +35 other tests pass
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-1/igt@i915_selftest@live@gt_contexts.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-1/igt@i915_selftest@live@gt_contexts.html

  * igt@i915_selftest@live@hangcheck:
    - bat-arls-2:         [DMESG-WARN][28] ([i915#11349]) -> [PASS][29]
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-2/igt@i915_selftest@live@hangcheck.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-2/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@workarounds:
    - bat-dg2-8:          [DMESG-FAIL][30] ([i915#9500]) -> [PASS][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-dg2-8/igt@i915_selftest@live@workarounds.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-dg2-8/igt@i915_selftest@live@workarounds.html

  
#### Warnings ####

  * igt@gem_lmem_swapping@basic:
    - bat-arls-1:         [SKIP][32] ([i915#9643]) -> [SKIP][33] ([i915#10213]) +3 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-1/igt@gem_lmem_swapping@basic.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-1/igt@gem_lmem_swapping@basic.html

  * igt@i915_selftest@live:
    - bat-arls-1:         [DMESG-FAIL][34] ([i915#10262]) -> [DMESG-WARN][35] ([i915#10341] / [i915#12133])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-1/igt@i915_selftest@live.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-1/igt@i915_selftest@live.html

  * igt@i915_selftest@live@hangcheck:
    - bat-arls-1:         [DMESG-FAIL][36] ([i915#10262]) -> [DMESG-WARN][37] ([i915#11349])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/bat-arls-1/igt@i915_selftest@live@hangcheck.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/bat-arls-1/igt@i915_selftest@live@hangcheck.html

  
  [i915#10213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10213
  [i915#10262]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10262
  [i915#10341]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10341
  [i915#11349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11349
  [i915#12102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12102
  [i915#12133]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12133
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
  [i915#9500]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9500
  [i915#9643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9643
  [i915#9886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9886


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

  * Linux: CI_DRM_15387 -> Patchwork_138454v1

  CI-20190529: 20190529
  CI_DRM_15387: bab1666fc2379a31ac48e7d61683d3edeaf29244 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8011: 26dca87f1252b7f6f0c0f833050256f0244d61e9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_138454v1: bab1666fc2379a31ac48e7d61683d3edeaf29244 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

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

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

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

* ✗ Fi.CI.IGT: failure for HDCP intel_display refactors
  2024-09-10  7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal
                   ` (2 preceding siblings ...)
  2024-09-10 13:30 ` ✓ Fi.CI.BAT: success for HDCP intel_display refactors Patchwork
@ 2024-09-11  6:52 ` Patchwork
  3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2024-09-11  6:52 UTC (permalink / raw)
  To: Kandpal, Suraj; +Cc: intel-gfx

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

== Series Details ==

Series: HDCP intel_display refactors
URL   : https://patchwork.freedesktop.org/series/138454/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_15387_full -> Patchwork_138454v1_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_138454v1_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_138454v1_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 (9 -> 9)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_color@ctm-0-75:
    - shard-tglu:         [PASS][1] -> [ABORT][2] +1 other test abort
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-tglu-7/igt@kms_color@ctm-0-75.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-tglu-5/igt@kms_color@ctm-0-75.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@object-reloc-purge-cache:
    - shard-dg1:          NOTRUN -> [SKIP][3] ([i915#8411])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@api_intel_bb@object-reloc-purge-cache.html

  * igt@drm_fdinfo@busy-hang@bcs0:
    - shard-dg2:          NOTRUN -> [SKIP][4] ([i915#8414]) +7 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@drm_fdinfo@busy-hang@bcs0.html
    - shard-dg1:          NOTRUN -> [SKIP][5] ([i915#8414]) +6 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@drm_fdinfo@busy-hang@bcs0.html

  * igt@drm_fdinfo@most-busy-check-all:
    - shard-rkl:          [PASS][6] -> [FAIL][7] ([i915#12179])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-5/igt@drm_fdinfo@most-busy-check-all.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-1/igt@drm_fdinfo@most-busy-check-all.html

  * igt@drm_fdinfo@most-busy-check-all@rcs0:
    - shard-rkl:          [PASS][8] -> [FAIL][9] ([i915#7742])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-5/igt@drm_fdinfo@most-busy-check-all@rcs0.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-1/igt@drm_fdinfo@most-busy-check-all@rcs0.html

  * igt@gem_caching@reads:
    - shard-mtlp:         NOTRUN -> [SKIP][10] ([i915#4873])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@gem_caching@reads.html

  * igt@gem_ccs@block-multicopy-compressed:
    - shard-rkl:          NOTRUN -> [SKIP][11] ([i915#9323]) +1 other test skip
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@gem_ccs@block-multicopy-compressed.html

  * igt@gem_ccs@suspend-resume:
    - shard-dg1:          NOTRUN -> [SKIP][12] ([i915#9323]) +1 other test skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@gem_ccs@suspend-resume.html
    - shard-mtlp:         NOTRUN -> [SKIP][13] ([i915#9323])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@gem_ccs@suspend-resume.html

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

  * igt@gem_ctx_persistence@heartbeat-stop:
    - shard-dg1:          NOTRUN -> [SKIP][15] ([i915#8555]) +1 other test skip
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@gem_ctx_persistence@heartbeat-stop.html

  * igt@gem_ctx_sseu@engines:
    - shard-rkl:          NOTRUN -> [SKIP][16] ([i915#280])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@gem_ctx_sseu@engines.html
    - shard-dg1:          NOTRUN -> [SKIP][17] ([i915#280]) +1 other test skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@gem_ctx_sseu@engines.html

  * igt@gem_ctx_sseu@mmap-args:
    - shard-dg2:          NOTRUN -> [SKIP][18] ([i915#280])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@gem_ctx_sseu@mmap-args.html

  * igt@gem_exec_capture@capture-recoverable:
    - shard-rkl:          NOTRUN -> [SKIP][19] ([i915#6344])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@gem_exec_capture@capture-recoverable.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-rkl:          NOTRUN -> [FAIL][20] ([i915#2846])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-rkl:          [PASS][21] -> [FAIL][22] ([i915#2842])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-2/igt@gem_exec_fair@basic-none@vecs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-3/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [PASS][23] -> [FAIL][24] ([i915#2842]) +1 other test fail
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-glk9/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo:
    - shard-dg2:          NOTRUN -> [SKIP][25] ([i915#3539])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@gem_exec_fair@basic-pace-solo.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          NOTRUN -> [FAIL][26] ([i915#2842]) +1 other test fail
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk8/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_flush@basic-uc-prw-default:
    - shard-dg1:          NOTRUN -> [SKIP][27] ([i915#3539]) +1 other test skip
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@gem_exec_flush@basic-uc-prw-default.html

  * igt@gem_exec_flush@basic-wb-rw-default:
    - shard-dg1:          NOTRUN -> [SKIP][28] ([i915#3539] / [i915#4852])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@gem_exec_flush@basic-wb-rw-default.html

  * igt@gem_exec_reloc@basic-cpu:
    - shard-dg2:          NOTRUN -> [SKIP][29] ([i915#3281]) +2 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@gem_exec_reloc@basic-cpu.html

  * igt@gem_exec_reloc@basic-gtt-wc-noreloc:
    - shard-dg1:          NOTRUN -> [SKIP][30] ([i915#3281]) +7 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@gem_exec_reloc@basic-gtt-wc-noreloc.html
    - shard-mtlp:         NOTRUN -> [SKIP][31] ([i915#3281]) +1 other test skip
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@gem_exec_reloc@basic-gtt-wc-noreloc.html

  * igt@gem_exec_reloc@basic-write-read-active:
    - shard-rkl:          NOTRUN -> [SKIP][32] ([i915#3281]) +4 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@gem_exec_reloc@basic-write-read-active.html

  * igt@gem_exec_schedule@deep@rcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][33] ([i915#4537])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@gem_exec_schedule@deep@rcs0.html

  * igt@gem_exec_schedule@preempt-queue-contexts:
    - shard-dg1:          NOTRUN -> [SKIP][34] ([i915#4812])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@gem_exec_schedule@preempt-queue-contexts.html
    - shard-mtlp:         NOTRUN -> [SKIP][35] ([i915#4537] / [i915#4812])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@gem_exec_schedule@preempt-queue-contexts.html

  * igt@gem_exec_schedule@semaphore-power:
    - shard-rkl:          NOTRUN -> [SKIP][36] ([i915#7276])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@gem_exec_schedule@semaphore-power.html

  * igt@gem_fence_thrash@bo-write-verify-none:
    - shard-dg1:          NOTRUN -> [SKIP][37] ([i915#4860]) +1 other test skip
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@gem_fence_thrash@bo-write-verify-none.html
    - shard-mtlp:         NOTRUN -> [SKIP][38] ([i915#4860]) +1 other test skip
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@gem_fence_thrash@bo-write-verify-none.html

  * igt@gem_lmem_swapping@heavy-multi:
    - shard-rkl:          NOTRUN -> [SKIP][39] ([i915#4613]) +3 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@gem_lmem_swapping@heavy-multi.html

  * igt@gem_lmem_swapping@massive:
    - shard-mtlp:         NOTRUN -> [SKIP][40] ([i915#4613])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@gem_lmem_swapping@massive.html

  * igt@gem_lmem_swapping@massive-random:
    - shard-glk:          NOTRUN -> [SKIP][41] ([i915#4613]) +3 other tests skip
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk2/igt@gem_lmem_swapping@massive-random.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg1:          [PASS][42] -> [TIMEOUT][43] ([i915#5493]) +1 other test timeout
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg1-15/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-18/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_media_vme:
    - shard-mtlp:         NOTRUN -> [SKIP][44] ([i915#284])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-3/igt@gem_media_vme.html
    - shard-dg1:          NOTRUN -> [SKIP][45] ([i915#284])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-13/igt@gem_media_vme.html

  * igt@gem_mmap@pf-nonblock:
    - shard-mtlp:         NOTRUN -> [SKIP][46] ([i915#4083])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@gem_mmap@pf-nonblock.html

  * igt@gem_mmap_gtt@cpuset-medium-copy:
    - shard-dg2:          NOTRUN -> [SKIP][47] ([i915#4077])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@gem_mmap_gtt@cpuset-medium-copy.html

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

  * igt@gem_mmap_wc@write-prefaulted:
    - shard-dg1:          NOTRUN -> [SKIP][49] ([i915#4083]) +2 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@gem_mmap_wc@write-prefaulted.html

  * igt@gem_partial_pwrite_pread@reads-snoop:
    - shard-dg1:          NOTRUN -> [SKIP][50] ([i915#3282]) +2 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-13/igt@gem_partial_pwrite_pread@reads-snoop.html
    - shard-mtlp:         NOTRUN -> [SKIP][51] ([i915#3282])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-3/igt@gem_partial_pwrite_pread@reads-snoop.html

  * igt@gem_pwrite@basic-self:
    - shard-rkl:          NOTRUN -> [SKIP][52] ([i915#3282]) +4 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@gem_pwrite@basic-self.html

  * igt@gem_pxp@display-protected-crc:
    - shard-dg2:          NOTRUN -> [SKIP][53] ([i915#4270])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@gem_pxp@display-protected-crc.html
    - shard-dg1:          NOTRUN -> [SKIP][54] ([i915#4270])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@gem_pxp@display-protected-crc.html

  * igt@gem_pxp@reject-modify-context-protection-on:
    - shard-rkl:          NOTRUN -> [SKIP][55] ([i915#4270]) +4 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@gem_pxp@reject-modify-context-protection-on.html

  * igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][56] ([i915#8428]) +1 other test skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html

  * igt@gem_render_copy@y-tiled-mc-ccs-to-vebox-yf-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][57] ([i915#5190] / [i915#8428])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@gem_render_copy@y-tiled-mc-ccs-to-vebox-yf-tiled.html

  * igt@gem_set_tiling_vs_blt@tiled-to-untiled:
    - shard-rkl:          NOTRUN -> [SKIP][58] ([i915#8411]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
    - shard-dg1:          NOTRUN -> [SKIP][59] ([i915#4079])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-dg1:          NOTRUN -> [SKIP][60] ([i915#3297])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gen9_exec_parse@basic-rejected:
    - shard-dg1:          NOTRUN -> [SKIP][61] ([i915#2527])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@gen9_exec_parse@basic-rejected.html

  * igt@gen9_exec_parse@batch-invalid-length:
    - shard-rkl:          NOTRUN -> [SKIP][62] ([i915#2527]) +3 other tests skip
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@gen9_exec_parse@batch-invalid-length.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-rkl:          [PASS][63] -> [ABORT][64] ([i915#9697] / [i915#9820])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-1/igt@i915_module_load@reload-with-fault-injection.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@i915_module_load@reload-with-fault-injection.html
    - shard-snb:          [PASS][65] -> [ABORT][66] ([i915#9820])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-snb1/igt@i915_module_load@reload-with-fault-injection.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-snb5/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_module_load@resize-bar:
    - shard-rkl:          NOTRUN -> [SKIP][67] ([i915#6412])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@i915_module_load@resize-bar.html
    - shard-dg1:          NOTRUN -> [SKIP][68] ([i915#7178])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@i915_module_load@resize-bar.html

  * igt@i915_pm_rps@reset:
    - shard-snb:          [PASS][69] -> [INCOMPLETE][70] ([i915#7790])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-snb6/igt@i915_pm_rps@reset.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-snb1/igt@i915_pm_rps@reset.html

  * igt@i915_selftest@live:
    - shard-mtlp:         [PASS][71] -> [DMESG-WARN][72] ([i915#10341])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-mtlp-1/igt@i915_selftest@live.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-1/igt@i915_selftest@live.html

  * igt@i915_selftest@live@gt_mocs:
    - shard-mtlp:         [PASS][73] -> [DMESG-WARN][74] ([i915#11349])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-mtlp-1/igt@i915_selftest@live@gt_mocs.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-1/igt@i915_selftest@live@gt_mocs.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-mtlp:         NOTRUN -> [SKIP][75] ([i915#4077])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - shard-dg2:          NOTRUN -> [SKIP][76] ([i915#4212])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html
    - shard-dg1:          NOTRUN -> [SKIP][77] ([i915#4212]) +1 other test skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

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

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-dp-4-4-rc-ccs-cc:
    - shard-dg2:          NOTRUN -> [SKIP][79] ([i915#8709]) +11 other tests skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-dp-4-4-rc-ccs-cc.html

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

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
    - shard-snb:          [PASS][81] -> [FAIL][82] ([i915#5956]) +1 other test fail
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-snb2/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-snb7/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-0:
    - shard-rkl:          NOTRUN -> [SKIP][83] ([i915#5286]) +5 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_big_fb@4-tiled-8bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-dg1:          NOTRUN -> [SKIP][84] ([i915#4538] / [i915#5286]) +3 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@linear-64bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][85] ([i915#3638]) +2 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_big_fb@linear-64bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-270:
    - shard-mtlp:         NOTRUN -> [SKIP][86] +7 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-90:
    - shard-dg1:          NOTRUN -> [SKIP][87] ([i915#3638]) +4 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-180:
    - shard-dg2:          NOTRUN -> [SKIP][88] ([i915#4538] / [i915#5190]) +1 other test skip
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html

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

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
    - shard-dg1:          NOTRUN -> [SKIP][90] ([i915#4538]) +2 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_joiner@basic:
    - shard-dg2:          NOTRUN -> [SKIP][91] ([i915#10656])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_big_joiner@basic.html
    - shard-dg1:          NOTRUN -> [SKIP][92] ([i915#10656])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_big_joiner@basic.html

  * igt@kms_big_joiner@invalid-modeset:
    - shard-rkl:          NOTRUN -> [SKIP][93] ([i915#10656])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_big_joiner@invalid-modeset.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-c-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][94] ([i915#6095]) +80 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-c-hdmi-a-4.html

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

  * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][96] ([i915#6095]) +81 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-1/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-b-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][97] ([i915#10307] / [i915#6095]) +150 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-8/igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][98] ([i915#12042])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-basic-y-tiled-gen12-mc-ccs@pipe-d-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][99] ([i915#6095]) +14 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-mc-ccs@pipe-d-edp-1.html

  * igt@kms_cdclk@mode-transition:
    - shard-rkl:          NOTRUN -> [SKIP][100] ([i915#3742])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k:
    - shard-dg2:          NOTRUN -> [SKIP][101] ([i915#7828]) +1 other test skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k.html

  * igt@kms_chamelium_hpd@dp-hpd-fast:
    - shard-mtlp:         NOTRUN -> [SKIP][102] ([i915#7828]) +1 other test skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-3/igt@kms_chamelium_hpd@dp-hpd-fast.html

  * igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
    - shard-rkl:          NOTRUN -> [SKIP][103] ([i915#7828]) +7 other tests skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html
    - shard-dg1:          NOTRUN -> [SKIP][104] ([i915#7828]) +6 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html

  * igt@kms_content_protection@content-type-change:
    - shard-mtlp:         NOTRUN -> [SKIP][105] ([i915#6944] / [i915#9424])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_content_protection@content-type-change.html
    - shard-dg1:          NOTRUN -> [SKIP][106] ([i915#9424])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_content_protection@content-type-change.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-rkl:          NOTRUN -> [SKIP][107] ([i915#3116])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@srm:
    - shard-dg2:          NOTRUN -> [TIMEOUT][108] ([i915#7173]) +1 other test timeout
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_content_protection@srm.html
    - shard-dg1:          NOTRUN -> [SKIP][109] ([i915#7116])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-onscreen-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][110] ([i915#11453]) +1 other test skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_cursor_crc@cursor-onscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-512x170:
    - shard-dg2:          NOTRUN -> [SKIP][111] ([i915#11453] / [i915#3359])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_cursor_crc@cursor-random-512x170.html
    - shard-dg1:          NOTRUN -> [SKIP][112] ([i915#11453])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_cursor_crc@cursor-random-512x170.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x10:
    - shard-rkl:          NOTRUN -> [SKIP][113] ([i915#3555]) +5 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html

  * igt@kms_cursor_crc@cursor-sliding-128x42:
    - shard-mtlp:         NOTRUN -> [SKIP][114] ([i915#8814])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_cursor_crc@cursor-sliding-128x42.html

  * igt@kms_cursor_crc@cursor-sliding-32x10:
    - shard-dg2:          NOTRUN -> [SKIP][115] ([i915#3555]) +1 other test skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_cursor_crc@cursor-sliding-32x10.html
    - shard-dg1:          NOTRUN -> [SKIP][116] ([i915#3555]) +3 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_cursor_crc@cursor-sliding-32x10.html

  * igt@kms_cursor_crc@cursor-sliding-max-size:
    - shard-mtlp:         NOTRUN -> [SKIP][117] ([i915#3555] / [i915#8814])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-1/igt@kms_cursor_crc@cursor-sliding-max-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-mtlp:         NOTRUN -> [SKIP][118] ([i915#9809])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-3/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
    - shard-dg2:          NOTRUN -> [SKIP][119] ([i915#5354]) +4 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-glk:          [PASS][120] -> [FAIL][121] ([i915#2346])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-rkl:          NOTRUN -> [SKIP][122] ([i915#4103])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-rkl:          NOTRUN -> [SKIP][123] ([i915#3555] / [i915#3804])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/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][124] ([i915#3804])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html

  * igt@kms_dp_aux_dev:
    - shard-dg1:          NOTRUN -> [SKIP][125] ([i915#1257])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_dp_aux_dev.html

  * igt@kms_feature_discovery@chamelium:
    - shard-dg1:          NOTRUN -> [SKIP][126] ([i915#4854])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-dg1:          NOTRUN -> [SKIP][127] ([i915#9337])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_feature_discovery@dp-mst.html
    - shard-mtlp:         NOTRUN -> [SKIP][128] ([i915#9337])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr1:
    - shard-dg2:          NOTRUN -> [SKIP][129] ([i915#658])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_feature_discovery@psr1.html
    - shard-dg1:          NOTRUN -> [SKIP][130] ([i915#658])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip@2x-plain-flip:
    - shard-rkl:          NOTRUN -> [SKIP][131] +24 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_flip@2x-plain-flip.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-dg1:          NOTRUN -> [SKIP][132] ([i915#9934]) +3 other tests skip
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip@2x-wf_vblank-ts-check:
    - shard-mtlp:         NOTRUN -> [SKIP][133] ([i915#3637]) +1 other test skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-3/igt@kms_flip@2x-wf_vblank-ts-check.html

  * igt@kms_flip@flip-vs-fences:
    - shard-mtlp:         NOTRUN -> [SKIP][134] ([i915#8381])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_flip@flip-vs-fences.html
    - shard-dg1:          NOTRUN -> [SKIP][135] ([i915#8381])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_flip@flip-vs-fences.html

  * igt@kms_flip@plain-flip-ts-check-interruptible:
    - shard-snb:          [PASS][136] -> [FAIL][137] ([i915#2122]) +3 other tests fail
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-snb2/igt@kms_flip@plain-flip-ts-check-interruptible.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-snb7/igt@kms_flip@plain-flip-ts-check-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
    - shard-rkl:          NOTRUN -> [SKIP][138] ([i915#2672] / [i915#3555]) +5 other tests skip
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
    - shard-dg1:          NOTRUN -> [SKIP][139] ([i915#2672] / [i915#3555]) +2 other tests skip
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
    - shard-dg1:          NOTRUN -> [SKIP][140] ([i915#2587] / [i915#2672]) +2 other tests skip
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/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-64bpp-yftile-upscaling@pipe-a-valid-mode:
    - shard-rkl:          NOTRUN -> [SKIP][141] ([i915#2672]) +5 other tests skip
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][142] ([i915#2672] / [i915#3555] / [i915#8813])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][143] ([i915#2672] / [i915#3555])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][144] ([i915#8708]) +2 other tests skip
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][145] ([i915#1825]) +36 other tests skip
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite:
    - shard-dg1:          NOTRUN -> [SKIP][146] +22 other tests skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
    - shard-dg1:          NOTRUN -> [SKIP][147] ([i915#3458]) +14 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-dg1:          NOTRUN -> [SKIP][148] ([i915#5439])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-dg1:          NOTRUN -> [SKIP][149] ([i915#9766])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-13/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-dg1:          NOTRUN -> [SKIP][150] ([i915#8708]) +11 other tests skip
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-13/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render:
    - shard-rkl:          NOTRUN -> [SKIP][151] ([i915#3023]) +21 other tests skip
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html

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

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render:
    - shard-mtlp:         NOTRUN -> [SKIP][153] ([i915#1825]) +8 other tests skip
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render.html

  * igt@kms_hdr@bpc-switch:
    - shard-dg1:          NOTRUN -> [SKIP][154] ([i915#3555] / [i915#8228]) +1 other test skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_hdr@bpc-switch.html

  * igt@kms_hdr@invalid-hdr:
    - shard-rkl:          NOTRUN -> [SKIP][155] ([i915#3555] / [i915#8228])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_hdr@invalid-hdr.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-dg2:          [PASS][156] -> [SKIP][157] ([i915#3555] / [i915#8228])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-11/igt@kms_hdr@static-toggle-suspend.html
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-2/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-dg1:          NOTRUN -> [SKIP][158] ([i915#6301])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c:
    - shard-dg2:          NOTRUN -> [SKIP][159]
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c.html

  * igt@kms_plane_alpha_blend@alpha-basic:
    - shard-glk:          NOTRUN -> [FAIL][160] ([i915#12178])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk2/igt@kms_plane_alpha_blend@alpha-basic.html

  * igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][161] ([i915#7862]) +1 other test fail
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk2/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][162] ([i915#5176]) +4 other tests skip
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-edp-1.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][163] ([i915#9423]) +4 other tests skip
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-hdmi-a-4.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][164] ([i915#9423]) +6 other tests skip
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-3/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-a-hdmi-a-2.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation:
    - shard-dg1:          NOTRUN -> [SKIP][165] ([i915#3555] / [i915#5176] / [i915#9423])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-c-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][166] ([i915#5176] / [i915#9423]) +3 other tests skip
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-c-hdmi-a-4.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][167] ([i915#9728]) +7 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-1/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25:
    - shard-rkl:          NOTRUN -> [SKIP][168] ([i915#6953])
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25.html
    - shard-dg1:          NOTRUN -> [SKIP][169] ([i915#6953])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-b-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][170] ([i915#5235]) +1 other test skip
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-b-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][171] ([i915#5235]) +2 other tests skip
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-4.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-2:
    - shard-dg2:          NOTRUN -> [SKIP][172] ([i915#9423]) +19 other tests skip
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-3/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-2.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][173] ([i915#9728]) +4 other tests skip
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-hdmi-a-4.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-rkl:          NOTRUN -> [SKIP][174] ([i915#9685])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-rkl:          [PASS][175] -> [SKIP][176] ([i915#9340])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-4/igt@kms_pm_lpsp@kms-lpsp.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-6/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-rkl:          NOTRUN -> [SKIP][177] ([i915#8430])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-dg1:          NOTRUN -> [SKIP][178] ([i915#9519])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-dg2:          [PASS][179] -> [SKIP][180] ([i915#9519]) +1 other test skip
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-7/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-8/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-mtlp:         NOTRUN -> [SKIP][181] ([i915#9519])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-rkl:          [PASS][182] -> [SKIP][183] ([i915#9519]) +3 other tests skip
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-3/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@pm-tiling:
    - shard-dg1:          NOTRUN -> [SKIP][184] ([i915#4077]) +4 other tests skip
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_pm_rpm@pm-tiling.html

  * igt@kms_prime@basic-modeset-hybrid:
    - shard-rkl:          NOTRUN -> [SKIP][185] ([i915#6524])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_prime@basic-modeset-hybrid.html

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

  * igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-exceed-sf@psr2-pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][187] ([i915#9808]) +2 other tests skip
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-exceed-sf@psr2-pipe-b-edp-1.html

  * igt@kms_psr2_sf@fbc-overlay-plane-update-sf-dmg-area:
    - shard-dg1:          NOTRUN -> [SKIP][188] ([i915#11520]) +3 other tests skip
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_psr2_sf@fbc-overlay-plane-update-sf-dmg-area.html
    - shard-dg2:          NOTRUN -> [SKIP][189] ([i915#11520])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_psr2_sf@fbc-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr@fbc-pr-primary-render:
    - shard-dg2:          NOTRUN -> [SKIP][190] ([i915#1072] / [i915#9673] / [i915#9732]) +3 other tests skip
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_psr@fbc-pr-primary-render.html

  * igt@kms_psr@fbc-psr2-cursor-blt:
    - shard-dg1:          NOTRUN -> [SKIP][191] ([i915#1072] / [i915#9732]) +15 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-13/igt@kms_psr@fbc-psr2-cursor-blt.html

  * igt@kms_psr@pr-primary-render:
    - shard-mtlp:         NOTRUN -> [SKIP][192] ([i915#9688]) +6 other tests skip
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_psr@pr-primary-render.html

  * igt@kms_psr@psr2-cursor-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][193] ([i915#1072] / [i915#9732]) +20 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_psr@psr2-cursor-mmap-gtt.html

  * igt@kms_psr@psr2-sprite-plane-onoff:
    - shard-glk:          NOTRUN -> [SKIP][194] +163 other tests skip
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk6/igt@kms_psr@psr2-sprite-plane-onoff.html

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-dg1:          NOTRUN -> [SKIP][195] ([i915#5289])
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-rkl:          NOTRUN -> [SKIP][196] ([i915#5289])
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
    - shard-dg2:          NOTRUN -> [SKIP][197] ([i915#11131] / [i915#4235])
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html

  * igt@kms_setmode@invalid-clone-exclusive-crtc:
    - shard-mtlp:         NOTRUN -> [SKIP][198] ([i915#3555] / [i915#8809] / [i915#8823])
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-3/igt@kms_setmode@invalid-clone-exclusive-crtc.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-rkl:          NOTRUN -> [SKIP][199] ([i915#8623])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_universal_plane@cursor-fb-leak:
    - shard-dg1:          [PASS][200] -> [FAIL][201] ([i915#9196])
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg1-17/igt@kms_universal_plane@cursor-fb-leak.html
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-13/igt@kms_universal_plane@cursor-fb-leak.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1:
    - shard-tglu:         [PASS][202] -> [FAIL][203] ([i915#9196])
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-tglu-7/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1.html
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-tglu-7/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-3:
    - shard-dg1:          NOTRUN -> [FAIL][204] ([i915#9196])
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-13/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-3.html

  * igt@kms_vrr@max-min:
    - shard-dg1:          NOTRUN -> [SKIP][205] ([i915#9906])
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@kms_vrr@max-min.html
    - shard-mtlp:         NOTRUN -> [SKIP][206] ([i915#8808] / [i915#9906])
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_vrr@max-min.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-glk:          NOTRUN -> [SKIP][207] ([i915#2437])
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk2/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@perf@gen8-unprivileged-single-ctx-counters:
    - shard-rkl:          NOTRUN -> [SKIP][208] ([i915#2436])
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@perf@gen8-unprivileged-single-ctx-counters.html

  * igt@perf@global-sseu-config:
    - shard-dg2:          NOTRUN -> [SKIP][209] ([i915#7387])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@perf@global-sseu-config.html

  * igt@perf_pmu@busy-double-start@vecs1:
    - shard-dg2:          [PASS][210] -> [FAIL][211] ([i915#4349]) +4 other tests fail
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-11/igt@perf_pmu@busy-double-start@vecs1.html
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-2/igt@perf_pmu@busy-double-start@vecs1.html

  * igt@perf_pmu@frequency@gt0:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][212] ([i915#9853]) +1 other test incomplete
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@perf_pmu@frequency@gt0.html
    - shard-dg1:          NOTRUN -> [FAIL][213] ([i915#6806]) +1 other test fail
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@perf_pmu@frequency@gt0.html

  * igt@perf_pmu@rc6-all-gts:
    - shard-dg1:          NOTRUN -> [SKIP][214] ([i915#8516])
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@perf_pmu@rc6-all-gts.html
    - shard-rkl:          NOTRUN -> [SKIP][215] ([i915#8516])
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@perf_pmu@rc6-all-gts.html

  * igt@perf_pmu@semaphore-busy@vecs0:
    - shard-mtlp:         [PASS][216] -> [FAIL][217] ([i915#4349]) +1 other test fail
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-mtlp-8/igt@perf_pmu@semaphore-busy@vecs0.html
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-1/igt@perf_pmu@semaphore-busy@vecs0.html

  * igt@sriov_basic@bind-unbind-vf:
    - shard-dg2:          NOTRUN -> [SKIP][218] ([i915#9917])
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@sriov_basic@bind-unbind-vf.html
    - shard-dg1:          NOTRUN -> [SKIP][219] ([i915#9917])
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-17/igt@sriov_basic@bind-unbind-vf.html

  * igt@sriov_basic@enable-vfs-autoprobe-on:
    - shard-rkl:          NOTRUN -> [SKIP][220] ([i915#9917])
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-2/igt@sriov_basic@enable-vfs-autoprobe-on.html

  * igt@syncobj_wait@invalid-wait-zero-handles:
    - shard-mtlp:         NOTRUN -> [FAIL][221] ([i915#9781])
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-3/igt@syncobj_wait@invalid-wait-zero-handles.html
    - shard-dg1:          NOTRUN -> [FAIL][222] ([i915#9781])
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-13/igt@syncobj_wait@invalid-wait-zero-handles.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@most-busy-idle-check-all:
    - shard-rkl:          [FAIL][223] -> [PASS][224]
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-3/igt@drm_fdinfo@most-busy-idle-check-all.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-5/igt@drm_fdinfo@most-busy-idle-check-all.html

  * igt@drm_fdinfo@most-busy-idle-check-all@rcs0:
    - shard-rkl:          [FAIL][225] ([i915#7742]) -> [PASS][226]
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-3/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-5/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html

  * igt@gem_ctx_engines@invalid-engines:
    - shard-rkl:          [FAIL][227] ([i915#12027]) -> [PASS][228]
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-4/igt@gem_ctx_engines@invalid-engines.html
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-3/igt@gem_ctx_engines@invalid-engines.html
    - shard-tglu:         [FAIL][229] ([i915#12027]) -> [PASS][230]
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-tglu-8/igt@gem_ctx_engines@invalid-engines.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-tglu-5/igt@gem_ctx_engines@invalid-engines.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-rkl:          [FAIL][231] ([i915#2842]) -> [PASS][232]
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-2/igt@gem_exec_fair@basic-none@vcs0.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-3/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-dg1:          [ABORT][233] ([i915#9820]) -> [PASS][234]
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg1-15/igt@i915_module_load@reload-with-fault-injection.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-13/igt@i915_module_load@reload-with-fault-injection.html
    - shard-mtlp:         [ABORT][235] ([i915#10131] / [i915#10887] / [i915#9820]) -> [PASS][236]
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-mtlp-1/igt@i915_module_load@reload-with-fault-injection.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-3/igt@i915_module_load@reload-with-fault-injection.html

  * igt@kms_atomic_transition@modeset-transition-nonblocking:
    - shard-glk:          [FAIL][237] ([i915#12177]) -> [PASS][238]
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-glk8/igt@kms_atomic_transition@modeset-transition-nonblocking.html
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk2/igt@kms_atomic_transition@modeset-transition-nonblocking.html

  * igt@kms_atomic_transition@modeset-transition-nonblocking@2x-outputs:
    - shard-glk:          [FAIL][239] ([i915#11859]) -> [PASS][240]
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-glk8/igt@kms_atomic_transition@modeset-transition-nonblocking@2x-outputs.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-glk2/igt@kms_atomic_transition@modeset-transition-nonblocking@2x-outputs.html

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4:
    - shard-dg1:          [FAIL][241] ([i915#5956]) -> [PASS][242] +1 other test pass
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg1-16/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4.html
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-18/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4.html

  * igt@kms_atomic_transition@plane-toggle-modeset-transition:
    - shard-snb:          [FAIL][243] ([i915#5956]) -> [PASS][244] +1 other test pass
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-snb7/igt@kms_atomic_transition@plane-toggle-modeset-transition.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-snb5/igt@kms_atomic_transition@plane-toggle-modeset-transition.html

  * igt@kms_flip@wf_vblank-ts-check-interruptible:
    - shard-dg2:          [FAIL][245] ([i915#2122]) -> [PASS][246]
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-2/igt@kms_flip@wf_vblank-ts-check-interruptible.html
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_flip@wf_vblank-ts-check-interruptible.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-tglu:         [FAIL][247] ([i915#9295]) -> [PASS][248]
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-tglu-8/igt@kms_pm_dc@dc6-dpms.html
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-tglu-5/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-rkl:          [SKIP][249] ([i915#9519]) -> [PASS][250]
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-rkl-1/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-rkl-4/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-dg2:          [SKIP][251] ([i915#9519]) -> [PASS][252] +1 other test pass
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-2/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-6/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_sysfs_edid_timing:
    - shard-dg2:          [FAIL][253] ([IGT#2]) -> [PASS][254]
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-2/igt@kms_sysfs_edid_timing.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_sysfs_edid_timing.html

  * igt@kms_vblank@query-forked-hang:
    - shard-dg1:          [INCOMPLETE][255] -> [PASS][256] +1 other test pass
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg1-17/igt@kms_vblank@query-forked-hang.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg1-16/igt@kms_vblank@query-forked-hang.html

  * igt@kms_vrr@negative-basic:
    - shard-dg2:          [SKIP][257] ([i915#3555] / [i915#9906]) -> [PASS][258]
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-1/igt@kms_vrr@negative-basic.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_vrr@negative-basic.html

  
#### Warnings ####

  * igt@kms_content_protection@uevent:
    - shard-dg2:          [FAIL][259] ([i915#1339] / [i915#7173]) -> [SKIP][260] ([i915#7118] / [i915#9424])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-11/igt@kms_content_protection@uevent.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-2/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-dg2:          [SKIP][261] ([i915#11453]) -> [SKIP][262] ([i915#11453] / [i915#3359])
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-2/igt@kms_cursor_crc@cursor-onscreen-512x170.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling:
    - shard-mtlp:         [ABORT][263] -> [SKIP][264] ([i915#3555] / [i915#8813])
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode:
    - shard-mtlp:         [ABORT][265] ([i915#10354]) -> [SKIP][266] ([i915#3555] / [i915#8810])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-mtlp-4/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode.html

  * igt@kms_psr@psr2-cursor-blt:
    - shard-dg2:          [SKIP][267] ([i915#1072] / [i915#9732]) -> [SKIP][268] ([i915#1072] / [i915#9673] / [i915#9732]) +8 other tests skip
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-2/igt@kms_psr@psr2-cursor-blt.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-11/igt@kms_psr@psr2-cursor-blt.html

  * igt@kms_psr@psr2-primary-mmap-gtt:
    - shard-dg2:          [SKIP][269] ([i915#1072] / [i915#9673] / [i915#9732]) -> [SKIP][270] ([i915#1072] / [i915#9732]) +9 other tests skip
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-11/igt@kms_psr@psr2-primary-mmap-gtt.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-2/igt@kms_psr@psr2-primary-mmap-gtt.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-270:
    - shard-dg2:          [SKIP][271] ([i915#11131] / [i915#4235] / [i915#5190]) -> [SKIP][272] ([i915#11131] / [i915#5190])
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-11/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html

  * igt@kms_rotation_crc@sprite-rotation-270:
    - shard-dg2:          [SKIP][273] ([i915#11131] / [i915#4235]) -> [SKIP][274] ([i915#11131])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15387/shard-dg2-11/igt@kms_rotation_crc@sprite-rotation-270.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138454v1/shard-dg2-2/igt@kms_rotation_crc@sprite-rotation-270.html

  
  [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
  [i915#10131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10131
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10341]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10341
  [i915#10354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10354
  [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#11131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11131
  [i915#11349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11349
  [i915#11453]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11453
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11859]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11859
  [i915#12027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12027
  [i915#12042]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12042
  [i915#12177]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12177
  [i915#12178]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12178
  [i915#12179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12179
  [i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257
  [i915#1339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1339
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#2122]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2122
  [i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346
  [i915#2436]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2436
  [i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2846
  [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#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3359]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
  [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
  [i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
  [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
  [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#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
  [i915#4235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4235
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
  [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#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
  [i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
  [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4873
  [i915#5176]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5176
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
  [i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493
  [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#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344
  [i915#6412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6412
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
  [i915#6806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6806
  [i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
  [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
  [i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
  [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
  [i915#7178]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7178
  [i915#7276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7276
  [i915#7387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7387
  [i915#7742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7742
  [i915#7790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7790
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#7862]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7862
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
  [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
  [i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414
  [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
  [i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
  [i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
  [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#8808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8808
  [i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
  [i915#8810]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8810
  [i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813
  [i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
  [i915#8823]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8823
  [i915#9196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9196
  [i915#9295]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9295
  [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#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#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673
  [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
  [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
  [i915#9697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9697
  [i915#9728]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9728
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766
  [i915#9781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9781
  [i915#9808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9808
  [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
  [i915#9820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9820
  [i915#9853]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9853
  [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_15387 -> Patchwork_138454v1

  CI-20190529: 20190529
  CI_DRM_15387: bab1666fc2379a31ac48e7d61683d3edeaf29244 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8011: 26dca87f1252b7f6f0c0f833050256f0244d61e9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_138454v1: bab1666fc2379a31ac48e7d61683d3edeaf29244 @ 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_138454v1/index.html

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

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

* [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc
  2024-09-11  9:05 [PATCH 0/2] " Suraj Kandpal
@ 2024-09-11  9:05 ` Suraj Kandpal
  0 siblings, 0 replies; 10+ messages in thread
From: Suraj Kandpal @ 2024-09-11  9:05 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: uma.shankar, ankit.k.nautiyal, jani.nikula, Suraj Kandpal

Use intel_display structure instead of drm_i915_private wherever
possible in hdcp_gsc related files.

--v2
-make intel_hdcp_gsc_hdcp2_init accept intel_display [Jani]

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_hdcp.c     |  4 +-
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.c | 31 ++++++-------
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.h |  4 +-
 .../drm/i915/display/intel_hdcp_gsc_message.c | 44 +++++++++----------
 drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      | 37 ++++++++--------
 5 files changed, 61 insertions(+), 59 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index b964af7425cf..2afa92321b08 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -2307,7 +2307,7 @@ void intel_hdcp_component_init(struct drm_i915_private *i915)
 	display->hdcp.comp_added = true;
 	mutex_unlock(&display->hdcp.hdcp_mutex);
 	if (intel_hdcp_gsc_cs_required(display))
-		ret = intel_hdcp_gsc_init(i915);
+		ret = intel_hdcp_gsc_init(display);
 	else
 		ret = component_add_typed(display->drm->dev, &i915_hdcp_ops,
 					  I915_COMPONENT_HDCP);
@@ -2570,7 +2570,7 @@ void intel_hdcp_component_fini(struct drm_i915_private *i915)
 	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	if (intel_hdcp_gsc_cs_required(display))
-		intel_hdcp_gsc_fini(i915);
+		intel_hdcp_gsc_fini(display);
 	else
 		component_del(display->drm->dev, &i915_hdcp_ops);
 }
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
index dc5cc1d54c85..55965844d829 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
@@ -107,8 +107,9 @@ static const struct i915_hdcp_ops gsc_hdcp_ops = {
 	.close_hdcp_session = intel_hdcp_gsc_close_session,
 };
 
-static int intel_hdcp_gsc_hdcp2_init(struct drm_i915_private *i915)
+static int intel_hdcp_gsc_hdcp2_init(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct intel_hdcp_gsc_message *hdcp_message;
 	int ret;
 
@@ -121,19 +122,19 @@ static int intel_hdcp_gsc_hdcp2_init(struct drm_i915_private *i915)
 	 * NOTE: No need to lock the comp mutex here as it is already
 	 * going to be taken before this function called
 	 */
-	i915->display.hdcp.hdcp_message = hdcp_message;
+	display->hdcp.hdcp_message = hdcp_message;
 	ret = intel_hdcp_gsc_initialize_message(i915, hdcp_message);
 
 	if (ret)
-		drm_err(&i915->drm, "Could not initialize hdcp_message\n");
+		drm_err(display->drm, "Could not initialize hdcp_message\n");
 
 	return ret;
 }
 
-static void intel_hdcp_gsc_free_message(struct drm_i915_private *i915)
+static void intel_hdcp_gsc_free_message(struct intel_display *display)
 {
 	struct intel_hdcp_gsc_message *hdcp_message =
-					i915->display.hdcp.hdcp_message;
+					display->hdcp.hdcp_message;
 
 	hdcp_message->hdcp_cmd_in = NULL;
 	hdcp_message->hdcp_cmd_out = NULL;
@@ -141,7 +142,7 @@ static void intel_hdcp_gsc_free_message(struct drm_i915_private *i915)
 	kfree(hdcp_message);
 }
 
-int intel_hdcp_gsc_init(struct drm_i915_private *i915)
+int intel_hdcp_gsc_init(struct intel_display *display)
 {
 	struct i915_hdcp_arbiter *data;
 	int ret;
@@ -150,20 +151,20 @@ int intel_hdcp_gsc_init(struct drm_i915_private *i915)
 	if (!data)
 		return -ENOMEM;
 
-	mutex_lock(&i915->display.hdcp.hdcp_mutex);
-	i915->display.hdcp.arbiter = data;
-	i915->display.hdcp.arbiter->hdcp_dev = i915->drm.dev;
-	i915->display.hdcp.arbiter->ops = &gsc_hdcp_ops;
-	ret = intel_hdcp_gsc_hdcp2_init(i915);
-	mutex_unlock(&i915->display.hdcp.hdcp_mutex);
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	display->hdcp.arbiter = data;
+	display->hdcp.arbiter->hdcp_dev = display->drm->dev;
+	display->hdcp.arbiter->ops = &gsc_hdcp_ops;
+	ret = intel_hdcp_gsc_hdcp2_init(display);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
 
-void intel_hdcp_gsc_fini(struct drm_i915_private *i915)
+void intel_hdcp_gsc_fini(struct intel_display *display)
 {
-	intel_hdcp_gsc_free_message(i915);
-	kfree(i915->display.hdcp.arbiter);
+	intel_hdcp_gsc_free_message(display);
+	kfree(display->hdcp.arbiter);
 }
 
 static int intel_gsc_send_sync(struct drm_i915_private *i915,
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
index b6aabd855478..5695a5e4f609 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
@@ -17,8 +17,8 @@ bool intel_hdcp_gsc_cs_required(struct intel_display *display);
 ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
 				size_t msg_in_len, u8 *msg_out,
 				size_t msg_out_len);
-int intel_hdcp_gsc_init(struct drm_i915_private *i915);
-void intel_hdcp_gsc_fini(struct drm_i915_private *i915);
+int intel_hdcp_gsc_init(struct intel_display *display);
+void intel_hdcp_gsc_fini(struct intel_display *display);
 bool intel_hdcp_gsc_check_status(struct intel_display *display);
 
 #endif /* __INTEL_HDCP_GCS_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
index 35bdb532bbb3..129104fa9b16 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
@@ -46,12 +46,12 @@ intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
 				       (u8 *)&session_init_out,
 				       sizeof(session_init_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (session_init_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
 			    WIRED_INITIATE_HDCP2_SESSION,
 			    session_init_out.header.status);
 		return -EIO;
@@ -108,12 +108,12 @@ intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev,
 				       (u8 *)&verify_rxcert_out,
 				       sizeof(verify_rxcert_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed: %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed: %zd\n", byte);
 		return byte;
 	}
 
 	if (verify_rxcert_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
 			    WIRED_VERIFY_RECEIVER_CERT,
 			    verify_rxcert_out.header.status);
 		return -EIO;
@@ -171,12 +171,12 @@ intel_hdcp_gsc_verify_hprime(struct device *dev, struct hdcp_port_data *data,
 				       (u8 *)&send_hprime_out,
 				       sizeof(send_hprime_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (send_hprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. Status: 0x%X\n",
 			    WIRED_AKE_SEND_HPRIME, send_hprime_out.header.status);
 		return -EIO;
 	}
@@ -222,12 +222,12 @@ intel_hdcp_gsc_store_pairing_info(struct device *dev, struct hdcp_port_data *dat
 				       (u8 *)&pairing_info_out,
 				       sizeof(pairing_info_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (pairing_info_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. Status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. Status: 0x%X\n",
 			    WIRED_AKE_SEND_PAIRING_INFO,
 			    pairing_info_out.header.status);
 		return -EIO;
@@ -269,12 +269,12 @@ intel_hdcp_gsc_initiate_locality_check(struct device *dev,
 	byte = intel_hdcp_gsc_msg_send(i915, (u8 *)&lc_init_in, sizeof(lc_init_in),
 				       (u8 *)&lc_init_out, sizeof(lc_init_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (lc_init_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X Failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X Failed. status: 0x%X\n",
 			    WIRED_INIT_LOCALITY_CHECK, lc_init_out.header.status);
 		return -EIO;
 	}
@@ -323,12 +323,12 @@ intel_hdcp_gsc_verify_lprime(struct device *dev, struct hdcp_port_data *data,
 				       (u8 *)&verify_lprime_out,
 				       sizeof(verify_lprime_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (verify_lprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_VALIDATE_LOCALITY,
 			    verify_lprime_out.header.status);
 		return -EIO;
@@ -369,12 +369,12 @@ int intel_hdcp_gsc_get_session_key(struct device *dev,
 	byte = intel_hdcp_gsc_msg_send(i915, (u8 *)&get_skey_in, sizeof(get_skey_in),
 				       (u8 *)&get_skey_out, sizeof(get_skey_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (get_skey_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_GET_SESSION_KEY, get_skey_out.header.status);
 		return -EIO;
 	}
@@ -435,12 +435,12 @@ intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,
 				       (u8 *)&verify_repeater_out,
 				       sizeof(verify_repeater_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (verify_repeater_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_VERIFY_REPEATER,
 			    verify_repeater_out.header.status);
 		return -EIO;
@@ -504,12 +504,12 @@ int intel_hdcp_gsc_verify_mprime(struct device *dev,
 				       sizeof(verify_mprime_out));
 	kfree(verify_mprime_in);
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (verify_mprime_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_REPEATER_AUTH_STREAM_REQ,
 			    verify_mprime_out.header.status);
 		return -EIO;
@@ -552,12 +552,12 @@ int intel_hdcp_gsc_enable_authentication(struct device *dev,
 				       (u8 *)&enable_auth_out,
 				       sizeof(enable_auth_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (enable_auth_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "FW cmd 0x%08X failed. status: 0x%X\n",
 			    WIRED_ENABLE_AUTH, enable_auth_out.header.status);
 		return -EIO;
 	}
@@ -599,12 +599,12 @@ intel_hdcp_gsc_close_session(struct device *dev, struct hdcp_port_data *data)
 				       (u8 *)&session_close_out,
 				       sizeof(session_close_out));
 	if (byte < 0) {
-		drm_dbg_kms(&i915->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
+		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
 	}
 
 	if (session_close_out.header.status != FW_HDCP_STATUS_SUCCESS) {
-		drm_dbg_kms(&i915->drm, "Session Close Failed. status: 0x%X\n",
+		drm_dbg_kms(display->drm, "Session Close Failed. status: 0x%X\n",
 			    session_close_out.header.status);
 		return -EIO;
 	}
diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
index 5badf90b26de..231677129a35 100644
--- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
+++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
@@ -67,9 +67,10 @@ bool intel_hdcp_gsc_check_status(struct intel_display *display)
 }
 
 /*This function helps allocate memory for the command that we will send to gsc cs */
-static int intel_hdcp_gsc_initialize_message(struct xe_device *xe,
+static int intel_hdcp_gsc_initialize_message(struct intel_display *display,
 					     struct intel_hdcp_gsc_message *hdcp_message)
 {
+	struct xe_device *xe = to_xe_device(display->drm);
 	struct xe_bo *bo = NULL;
 	u64 cmd_in, cmd_out;
 	int ret = 0;
@@ -81,7 +82,7 @@ static int intel_hdcp_gsc_initialize_message(struct xe_device *xe,
 				  XE_BO_FLAG_GGTT);
 
 	if (IS_ERR(bo)) {
-		drm_err(&xe->drm, "Failed to allocate bo for HDCP streaming command!\n");
+		drm_err(display->drm, "Failed to allocate bo for HDCP streaming command!\n");
 		ret = PTR_ERR(bo);
 		goto out;
 	}
@@ -97,7 +98,7 @@ static int intel_hdcp_gsc_initialize_message(struct xe_device *xe,
 	return ret;
 }
 
-static int intel_hdcp_gsc_hdcp2_init(struct xe_device *xe)
+static int intel_hdcp_gsc_hdcp2_init(struct intel_display *display)
 {
 	struct intel_hdcp_gsc_message *hdcp_message;
 	int ret;
@@ -111,14 +112,14 @@ static int intel_hdcp_gsc_hdcp2_init(struct xe_device *xe)
 	 * NOTE: No need to lock the comp mutex here as it is already
 	 * going to be taken before this function called
 	 */
-	ret = intel_hdcp_gsc_initialize_message(xe, hdcp_message);
+	ret = intel_hdcp_gsc_initialize_message(display, hdcp_message);
 	if (ret) {
-		drm_err(&xe->drm, "Could not initialize hdcp_message\n");
+		drm_err(display->drm, "Could not initialize hdcp_message\n");
 		kfree(hdcp_message);
 		return ret;
 	}
 
-	xe->display.hdcp.hdcp_message = hdcp_message;
+	display->hdcp.hdcp_message = hdcp_message;
 	return ret;
 }
 
@@ -138,7 +139,7 @@ static const struct i915_hdcp_ops gsc_hdcp_ops = {
 	.close_hdcp_session = intel_hdcp_gsc_close_session,
 };
 
-int intel_hdcp_gsc_init(struct xe_device *xe)
+int intel_hdcp_gsc_init(struct intel_display *display)
 {
 	struct i915_hdcp_arbiter *data;
 	int ret;
@@ -147,33 +148,33 @@ int intel_hdcp_gsc_init(struct xe_device *xe)
 	if (!data)
 		return -ENOMEM;
 
-	mutex_lock(&xe->display.hdcp.hdcp_mutex);
-	xe->display.hdcp.arbiter = data;
-	xe->display.hdcp.arbiter->hdcp_dev = xe->drm.dev;
-	xe->display.hdcp.arbiter->ops = &gsc_hdcp_ops;
-	ret = intel_hdcp_gsc_hdcp2_init(xe);
+	mutex_lock(&display->hdcp.hdcp_mutex);
+	display->hdcp.arbiter = data;
+	display->hdcp.arbiter->hdcp_dev = display->drm->dev;
+	display->hdcp.arbiter->ops = &gsc_hdcp_ops;
+	ret = intel_hdcp_gsc_hdcp2_init(display);
 	if (ret)
 		kfree(data);
 
-	mutex_unlock(&xe->display.hdcp.hdcp_mutex);
+	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
 }
 
-void intel_hdcp_gsc_fini(struct xe_device *xe)
+void intel_hdcp_gsc_fini(struct intel_display *display)
 {
 	struct intel_hdcp_gsc_message *hdcp_message =
-					xe->display.hdcp.hdcp_message;
-	struct i915_hdcp_arbiter *arb = xe->display.hdcp.arbiter;
+					display->hdcp.hdcp_message;
+	struct i915_hdcp_arbiter *arb = display->hdcp.arbiter;
 
 	if (hdcp_message) {
 		xe_bo_unpin_map_no_vm(hdcp_message->hdcp_bo);
 		kfree(hdcp_message);
-		xe->display.hdcp.hdcp_message = NULL;
+		display->hdcp.hdcp_message = NULL;
 	}
 
 	kfree(arb);
-	xe->display.hdcp.arbiter = NULL;
+	display->hdcp.arbiter = NULL;
 }
 
 static int xe_gsc_send_sync(struct xe_device *xe,
-- 
2.43.2


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

end of thread, other threads:[~2024-09-11  9:08 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-10  7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal
2024-09-10  7:47 ` [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp Suraj Kandpal
2024-09-10  9:11   ` Jani Nikula
2024-09-10 12:54     ` Kandpal, Suraj
2024-09-10  7:47 ` [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc Suraj Kandpal
2024-09-10  9:18   ` Jani Nikula
2024-09-10 12:52     ` Kandpal, Suraj
2024-09-10 13:30 ` ✓ Fi.CI.BAT: success for HDCP intel_display refactors Patchwork
2024-09-11  6:52 ` ✗ Fi.CI.IGT: failure " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2024-09-11  9:05 [PATCH 0/2] " Suraj Kandpal
2024-09-11  9:05 ` [PATCH 2/2] drm/i915/hdcp: Use intel_display in hdcp_gsc Suraj Kandpal

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