* [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
` (9 more replies)
0 siblings, 10 replies; 16+ 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] 16+ 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 ` (8 subsequent siblings) 9 siblings, 1 reply; 16+ 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 ? >->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 = >->uc.gsc; -- 2.43.2 ^ permalink raw reply related [flat|nested] 16+ 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; 16+ 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 ? >->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 = >->uc.gsc; -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 16+ 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; 16+ 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 ? >->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 = >->uc.gsc; > > -- > Jani Nikula, Intel ^ permalink raw reply [flat|nested] 16+ 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 9:45 ` ✓ CI.Patch_applied: success for HDCP intel_display refactors Patchwork ` (7 subsequent siblings) 9 siblings, 1 reply; 16+ 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] 16+ 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; 16+ 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] 16+ 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; 16+ 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] 16+ messages in thread
* ✓ CI.Patch_applied: 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 9:45 ` Patchwork 2024-09-10 9:46 ` ✓ CI.checkpatch: " Patchwork ` (6 subsequent siblings) 9 siblings, 0 replies; 16+ messages in thread From: Patchwork @ 2024-09-10 9:45 UTC (permalink / raw) To: Suraj Kandpal; +Cc: intel-xe == Series Details == Series: HDCP intel_display refactors URL : https://patchwork.freedesktop.org/series/138453/ State : success == Summary == === Applying kernel patches on branch 'drm-tip' with base: === Base commit: bab1666fc237 drm-tip: 2024y-09m-10d-03h-10m-44s UTC integration manifest === git am output follows === Applying: drm/i915/hdcp: Move to using intel_display in intel_hdcp Applying: drm/i915/hdcp: Use intel_display in hdcp_gsc ^ permalink raw reply [flat|nested] 16+ messages in thread
* ✓ CI.checkpatch: success 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 9:45 ` ✓ CI.Patch_applied: success for HDCP intel_display refactors Patchwork @ 2024-09-10 9:46 ` Patchwork 2024-09-10 9:47 ` ✓ CI.KUnit: " Patchwork ` (5 subsequent siblings) 9 siblings, 0 replies; 16+ messages in thread From: Patchwork @ 2024-09-10 9:46 UTC (permalink / raw) To: Suraj Kandpal; +Cc: intel-xe == Series Details == Series: HDCP intel_display refactors URL : https://patchwork.freedesktop.org/series/138453/ State : success == Summary == + KERNEL=/kernel + git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt Cloning into 'mt'... warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/ + git -C mt rev-list -n1 origin/master c62d7e164862503a3662a095da1c6c9014248cb2 + cd /kernel + git config --global --add safe.directory /kernel + git log -n1 commit 08dfad7b8d6d4e40baadba2d0bafd7adee168f15 Author: Suraj Kandpal <suraj.kandpal@intel.com> Date: Tue Sep 10 13:17:11 2024 +0530 drm/i915/hdcp: Use intel_display in hdcp_gsc 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> + /mt/dim checkpatch bab1666fc2379a31ac48e7d61683d3edeaf29244 drm-intel 85914f5c4211 drm/i915/hdcp: Move to using intel_display in intel_hdcp 08dfad7b8d6d drm/i915/hdcp: Use intel_display in hdcp_gsc ^ permalink raw reply [flat|nested] 16+ messages in thread
* ✓ CI.KUnit: success for HDCP intel_display refactors 2024-09-10 7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal ` (3 preceding siblings ...) 2024-09-10 9:46 ` ✓ CI.checkpatch: " Patchwork @ 2024-09-10 9:47 ` Patchwork 2024-09-10 10:12 ` ✓ CI.Build: " Patchwork ` (4 subsequent siblings) 9 siblings, 0 replies; 16+ messages in thread From: Patchwork @ 2024-09-10 9:47 UTC (permalink / raw) To: Suraj Kandpal; +Cc: intel-xe == Series Details == Series: HDCP intel_display refactors URL : https://patchwork.freedesktop.org/series/138453/ State : success == Summary == + trap cleanup EXIT + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig [09:46:14] Configuring KUnit Kernel ... Generating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [09:46:18] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make ARCH=um O=.kunit --jobs=48 ../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes] 156 | u64 ioread64_lo_hi(const void __iomem *addr) | ^~~~~~~~~~~~~~ ../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes] 163 | u64 ioread64_hi_lo(const void __iomem *addr) | ^~~~~~~~~~~~~~ ../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes] 170 | u64 ioread64be_lo_hi(const void __iomem *addr) | ^~~~~~~~~~~~~~~~ ../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes] 178 | u64 ioread64be_hi_lo(const void __iomem *addr) | ^~~~~~~~~~~~~~~~ ../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes] 264 | void iowrite64_lo_hi(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~ ../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes] 272 | void iowrite64_hi_lo(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~ ../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes] 280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~~~ ../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes] 288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~~~ [09:46:44] Starting KUnit Kernel (1/1)... [09:46:44] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [09:46:44] =================== guc_dbm (7 subtests) =================== [09:46:44] [PASSED] test_empty [09:46:44] [PASSED] test_default [09:46:44] ======================== test_size ======================== [09:46:44] [PASSED] 4 [09:46:44] [PASSED] 8 [09:46:44] [PASSED] 32 [09:46:44] [PASSED] 256 [09:46:44] ==================== [PASSED] test_size ==================== [09:46:44] ======================= test_reuse ======================== [09:46:44] [PASSED] 4 [09:46:44] [PASSED] 8 [09:46:44] [PASSED] 32 [09:46:44] [PASSED] 256 [09:46:44] =================== [PASSED] test_reuse ==================== [09:46:44] =================== test_range_overlap ==================== [09:46:44] [PASSED] 4 [09:46:44] [PASSED] 8 [09:46:44] [PASSED] 32 [09:46:44] [PASSED] 256 [09:46:44] =============== [PASSED] test_range_overlap ================ [09:46:44] =================== test_range_compact ==================== [09:46:44] [PASSED] 4 [09:46:44] [PASSED] 8 [09:46:44] [PASSED] 32 [09:46:44] [PASSED] 256 [09:46:44] =============== [PASSED] test_range_compact ================ [09:46:44] ==================== test_range_spare ===================== [09:46:44] [PASSED] 4 [09:46:44] [PASSED] 8 [09:46:44] [PASSED] 32 [09:46:44] [PASSED] 256 [09:46:44] ================ [PASSED] test_range_spare ================= [09:46:44] ===================== [PASSED] guc_dbm ===================== [09:46:44] =================== guc_idm (6 subtests) =================== [09:46:44] [PASSED] bad_init [09:46:44] [PASSED] no_init [09:46:44] [PASSED] init_fini [09:46:44] [PASSED] check_used [09:46:44] [PASSED] check_quota [09:46:44] [PASSED] check_all [09:46:44] ===================== [PASSED] guc_idm ===================== [09:46:44] ================== no_relay (3 subtests) =================== [09:46:44] [PASSED] xe_drops_guc2pf_if_not_ready [09:46:44] [PASSED] xe_drops_guc2vf_if_not_ready [09:46:44] [PASSED] xe_rejects_send_if_not_ready [09:46:44] ==================== [PASSED] no_relay ===================== [09:46:44] ================== pf_relay (14 subtests) ================== [09:46:44] [PASSED] pf_rejects_guc2pf_too_short [09:46:44] [PASSED] pf_rejects_guc2pf_too_long [09:46:44] [PASSED] pf_rejects_guc2pf_no_payload [09:46:44] [PASSED] pf_fails_no_payload [09:46:44] [PASSED] pf_fails_bad_origin [09:46:44] [PASSED] pf_fails_bad_type [09:46:44] [PASSED] pf_txn_reports_error [09:46:44] [PASSED] pf_txn_sends_pf2guc [09:46:44] [PASSED] pf_sends_pf2guc [09:46:44] [SKIPPED] pf_loopback_nop [09:46:44] [SKIPPED] pf_loopback_echo [09:46:44] [SKIPPED] pf_loopback_fail [09:46:44] [SKIPPED] pf_loopback_busy [09:46:44] [SKIPPED] pf_loopback_retry [09:46:44] ==================== [PASSED] pf_relay ===================== [09:46:44] ================== vf_relay (3 subtests) =================== [09:46:44] [PASSED] vf_rejects_guc2vf_too_short [09:46:44] [PASSED] vf_rejects_guc2vf_too_long [09:46:44] [PASSED] vf_rejects_guc2vf_no_payload [09:46:44] ==================== [PASSED] vf_relay ===================== [09:46:44] ================= pf_service (11 subtests) ================= [09:46:44] [PASSED] pf_negotiate_any [09:46:44] [PASSED] pf_negotiate_base_match [09:46:44] [PASSED] pf_negotiate_base_newer [09:46:44] [PASSED] pf_negotiate_base_next [09:46:44] [SKIPPED] pf_negotiate_base_older [09:46:44] [PASSED] pf_negotiate_base_prev [09:46:44] [PASSED] pf_negotiate_latest_match [09:46:44] [PASSED] pf_negotiate_latest_newer [09:46:44] [PASSED] pf_negotiate_latest_next [09:46:44] [SKIPPED] pf_negotiate_latest_older [09:46:44] [SKIPPED] pf_negotiate_latest_prev [09:46:44] =================== [PASSED] pf_service ==================== [09:46:44] ===================== lmtt (1 subtest) ===================== [09:46:44] ======================== test_ops ========================= [09:46:44] [PASSED] 2-level [09:46:44] [PASSED] multi-level [09:46:44] ==================== [PASSED] test_ops ===================== [09:46:44] ====================== [PASSED] lmtt ======================= [09:46:44] =================== xe_mocs (2 subtests) =================== [09:46:44] ================ xe_live_mocs_kernel_kunit ================ [09:46:44] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============ [09:46:44] ================ xe_live_mocs_reset_kunit ================= [09:46:44] ============ [SKIPPED] xe_live_mocs_reset_kunit ============ [09:46:44] ==================== [SKIPPED] xe_mocs ===================== [09:46:44] ================= xe_migrate (2 subtests) ================== [09:46:44] ================= xe_migrate_sanity_kunit ================= [09:46:44] ============ [SKIPPED] xe_migrate_sanity_kunit ============= [09:46:44] ================== xe_validate_ccs_kunit ================== [09:46:44] ============= [SKIPPED] xe_validate_ccs_kunit ============== [09:46:44] =================== [SKIPPED] xe_migrate =================== [09:46:44] ================== xe_dma_buf (1 subtest) ================== [09:46:44] ==================== xe_dma_buf_kunit ===================== [09:46:44] ================ [SKIPPED] xe_dma_buf_kunit ================ [09:46:44] =================== [SKIPPED] xe_dma_buf =================== [09:46:44] ==================== xe_bo (2 subtests) ==================== [09:46:44] ================== xe_ccs_migrate_kunit =================== [09:46:44] ============== [SKIPPED] xe_ccs_migrate_kunit ============== [09:46:44] ==================== xe_bo_evict_kunit ==================== [09:46:44] =============== [SKIPPED] xe_bo_evict_kunit ================ [09:46:44] ===================== [SKIPPED] xe_bo ====================== [09:46:44] ==================== args (11 subtests) ==================== [09:46:44] [PASSED] count_args_test [09:46:44] [PASSED] call_args_example [09:46:44] [PASSED] call_args_test [09:46:44] [PASSED] drop_first_arg_example [09:46:44] [PASSED] drop_first_arg_test [09:46:44] [PASSED] first_arg_example [09:46:44] [PASSED] first_arg_test [09:46:44] [PASSED] last_arg_example [09:46:44] [PASSED] last_arg_test [09:46:44] [PASSED] pick_arg_example [09:46:44] [PASSED] sep_comma_example [09:46:44] ====================== [PASSED] args ======================= [09:46:44] =================== xe_pci (2 subtests) ==================== stty: 'standard input': Inappropriate ioctl for device [09:46:44] [PASSED] xe_gmdid_graphics_ip [09:46:44] [PASSED] xe_gmdid_media_ip [09:46:44] ===================== [PASSED] xe_pci ====================== [09:46:44] =================== xe_rtp (2 subtests) ==================== [09:46:44] =============== xe_rtp_process_to_sr_tests ================ [09:46:44] [PASSED] coalesce-same-reg [09:46:44] [PASSED] no-match-no-add [09:46:44] [PASSED] match-or [09:46:44] [PASSED] match-or-xfail [09:46:44] [PASSED] no-match-no-add-multiple-rules [09:46:44] [PASSED] two-regs-two-entries [09:46:44] [PASSED] clr-one-set-other [09:46:44] [PASSED] set-field [09:46:44] [PASSED] conflict-duplicate [09:46:44] [PASSED] conflict-not-disjoint [09:46:44] [PASSED] conflict-reg-type [09:46:44] =========== [PASSED] xe_rtp_process_to_sr_tests ============ [09:46:44] ================== xe_rtp_process_tests =================== [09:46:44] [PASSED] active1 [09:46:44] [PASSED] active2 [09:46:44] [PASSED] active-inactive [09:46:44] [PASSED] inactive-active [09:46:44] [PASSED] inactive-1st_or_active-inactive [09:46:44] [PASSED] inactive-2nd_or_active-inactive [09:46:44] [PASSED] inactive-last_or_active-inactive [09:46:44] [PASSED] inactive-no_or_active-inactive [09:46:44] ============== [PASSED] xe_rtp_process_tests =============== [09:46:44] ===================== [PASSED] xe_rtp ====================== [09:46:44] ==================== xe_wa (1 subtest) ===================== [09:46:44] ======================== xe_wa_gt ========================= [09:46:44] [PASSED] TIGERLAKE (B0) [09:46:44] [PASSED] DG1 (A0) [09:46:44] [PASSED] DG1 (B0) [09:46:44] [PASSED] ALDERLAKE_S (A0) [09:46:44] [PASSED] ALDERLAKE_S (B0) [09:46:44] [PASSED] ALDERLAKE_S (C0) [09:46:44] [PASSED] ALDERLAKE_S (D0) [09:46:44] [PASSED] ALDERLAKE_P (A0) [09:46:44] [PASSED] ALDERLAKE_P (B0) [09:46:44] [PASSED] ALDERLAKE_P (C0) [09:46:44] [PASSED] ALDERLAKE_S_RPLS (D0) [09:46:44] [PASSED] ALDERLAKE_P_RPLU (E0) [09:46:44] [PASSED] DG2_G10 (C0) [09:46:44] [PASSED] DG2_G11 (B1) [09:46:44] [PASSED] DG2_G12 (A1) [09:46:44] [PASSED] METEORLAKE (g:A0, m:A0) [09:46:44] [PASSED] METEORLAKE (g:A0, m:A0) [09:46:44] [PASSED] METEORLAKE (g:A0, m:A0) [09:46:44] [PASSED] LUNARLAKE (g:A0, m:A0) [09:46:44] [PASSED] LUNARLAKE (g:B0, m:A0) [09:46:44] [PASSED] BATTLEMAGE (g:A0, m:A1) [09:46:44] ==================== [PASSED] xe_wa_gt ===================== [09:46:44] ====================== [PASSED] xe_wa ====================== [09:46:44] ============================================================ [09:46:44] Testing complete. Ran 121 tests: passed: 106, skipped: 15 [09:46:44] Elapsed time: 30.822s total, 4.197s configuring, 26.355s building, 0.229s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [09:46:44] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [09:46:46] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make ARCH=um O=.kunit --jobs=48 ../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes] 156 | u64 ioread64_lo_hi(const void __iomem *addr) | ^~~~~~~~~~~~~~ ../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes] 163 | u64 ioread64_hi_lo(const void __iomem *addr) | ^~~~~~~~~~~~~~ ../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes] 170 | u64 ioread64be_lo_hi(const void __iomem *addr) | ^~~~~~~~~~~~~~~~ ../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes] 178 | u64 ioread64be_hi_lo(const void __iomem *addr) | ^~~~~~~~~~~~~~~~ ../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes] 264 | void iowrite64_lo_hi(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~ ../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes] 272 | void iowrite64_hi_lo(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~ ../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes] 280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~~~ ../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes] 288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~~~ [09:47:08] Starting KUnit Kernel (1/1)... [09:47:08] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [09:47:08] ============ drm_test_pick_cmdline (2 subtests) ============ [09:47:08] [PASSED] drm_test_pick_cmdline_res_1920_1080_60 [09:47:08] =============== drm_test_pick_cmdline_named =============== [09:47:08] [PASSED] NTSC [09:47:08] [PASSED] NTSC-J [09:47:08] [PASSED] PAL [09:47:08] [PASSED] PAL-M [09:47:08] =========== [PASSED] drm_test_pick_cmdline_named =========== [09:47:08] ============== [PASSED] drm_test_pick_cmdline ============== [09:47:08] ================== drm_buddy (7 subtests) ================== [09:47:08] [PASSED] drm_test_buddy_alloc_limit [09:47:08] [PASSED] drm_test_buddy_alloc_optimistic [09:47:08] [PASSED] drm_test_buddy_alloc_pessimistic [09:47:08] [PASSED] drm_test_buddy_alloc_pathological [09:47:08] [PASSED] drm_test_buddy_alloc_contiguous [09:47:08] [PASSED] drm_test_buddy_alloc_clear [09:47:08] [PASSED] drm_test_buddy_alloc_range_bias [09:47:08] ==================== [PASSED] drm_buddy ==================== [09:47:08] ============= drm_cmdline_parser (40 subtests) ============= [09:47:08] [PASSED] drm_test_cmdline_force_d_only [09:47:08] [PASSED] drm_test_cmdline_force_D_only_dvi [09:47:08] [PASSED] drm_test_cmdline_force_D_only_hdmi [09:47:08] [PASSED] drm_test_cmdline_force_D_only_not_digital [09:47:08] [PASSED] drm_test_cmdline_force_e_only [09:47:08] [PASSED] drm_test_cmdline_res [09:47:08] [PASSED] drm_test_cmdline_res_vesa [09:47:08] [PASSED] drm_test_cmdline_res_vesa_rblank [09:47:08] [PASSED] drm_test_cmdline_res_rblank [09:47:08] [PASSED] drm_test_cmdline_res_bpp [09:47:08] [PASSED] drm_test_cmdline_res_refresh [09:47:08] [PASSED] drm_test_cmdline_res_bpp_refresh [09:47:08] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [09:47:08] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [09:47:08] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [09:47:08] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [09:47:08] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [09:47:08] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [09:47:08] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [09:47:08] [PASSED] drm_test_cmdline_res_margins_force_on [09:47:08] [PASSED] drm_test_cmdline_res_vesa_margins [09:47:08] [PASSED] drm_test_cmdline_name [09:47:08] [PASSED] drm_test_cmdline_name_bpp [09:47:08] [PASSED] drm_test_cmdline_name_option [09:47:08] [PASSED] drm_test_cmdline_name_bpp_option [09:47:08] [PASSED] drm_test_cmdline_rotate_0 [09:47:08] [PASSED] drm_test_cmdline_rotate_90 [09:47:08] [PASSED] drm_test_cmdline_rotate_180 [09:47:08] [PASSED] drm_test_cmdline_rotate_270 [09:47:08] [PASSED] drm_test_cmdline_hmirror [09:47:08] [PASSED] drm_test_cmdline_vmirror [09:47:08] [PASSED] drm_test_cmdline_margin_options [09:47:08] [PASSED] drm_test_cmdline_multiple_options [09:47:08] [PASSED] drm_test_cmdline_bpp_extra_and_option [09:47:08] [PASSED] drm_test_cmdline_extra_and_option [09:47:08] [PASSED] drm_test_cmdline_freestanding_options [09:47:08] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [09:47:08] [PASSED] drm_test_cmdline_panel_orientation [09:47:08] ================ drm_test_cmdline_invalid ================= [09:47:08] [PASSED] margin_only [09:47:08] [PASSED] interlace_only [09:47:08] [PASSED] res_missing_x [09:47:08] [PASSED] res_missing_y [09:47:08] [PASSED] res_bad_y [09:47:08] [PASSED] res_missing_y_bpp [09:47:08] [PASSED] res_bad_bpp [09:47:08] [PASSED] res_bad_refresh [09:47:08] [PASSED] res_bpp_refresh_force_on_off [09:47:08] [PASSED] res_invalid_mode [09:47:08] [PASSED] res_bpp_wrong_place_mode [09:47:08] [PASSED] name_bpp_refresh [09:47:08] [PASSED] name_refresh [09:47:08] [PASSED] name_refresh_wrong_mode [09:47:08] [PASSED] name_refresh_invalid_mode [09:47:08] [PASSED] rotate_multiple [09:47:08] [PASSED] rotate_invalid_val [09:47:08] [PASSED] rotate_truncated [09:47:08] [PASSED] invalid_option [09:47:08] [PASSED] invalid_tv_option [09:47:08] [PASSED] truncated_tv_option [09:47:08] ============ [PASSED] drm_test_cmdline_invalid ============= [09:47:08] =============== drm_test_cmdline_tv_options =============== [09:47:08] [PASSED] NTSC [09:47:08] [PASSED] NTSC_443 [09:47:08] [PASSED] NTSC_J [09:47:08] [PASSED] PAL [09:47:08] [PASSED] PAL_M [09:47:08] [PASSED] PAL_N [09:47:08] [PASSED] SECAM [09:47:08] [PASSED] MONO_525 [09:47:08] [PASSED] MONO_625 [09:47:08] =========== [PASSED] drm_test_cmdline_tv_options =========== [09:47:08] =============== [PASSED] drm_cmdline_parser ================ [09:47:08] ========== drmm_connector_hdmi_init (19 subtests) ========== [09:47:08] [PASSED] drm_test_connector_hdmi_init_valid [09:47:08] [PASSED] drm_test_connector_hdmi_init_bpc_8 [09:47:08] [PASSED] drm_test_connector_hdmi_init_bpc_10 [09:47:08] [PASSED] drm_test_connector_hdmi_init_bpc_12 [09:47:08] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [09:47:08] [PASSED] drm_test_connector_hdmi_init_bpc_null [09:47:08] [PASSED] drm_test_connector_hdmi_init_formats_empty [09:47:08] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [09:47:08] [PASSED] drm_test_connector_hdmi_init_null_ddc [09:47:08] [PASSED] drm_test_connector_hdmi_init_null_product [09:47:08] [PASSED] drm_test_connector_hdmi_init_null_vendor [09:47:08] [PASSED] drm_test_connector_hdmi_init_product_length_exact [09:47:08] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [09:47:08] [PASSED] drm_test_connector_hdmi_init_product_valid [09:47:08] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [09:47:08] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [09:47:08] [PASSED] drm_test_connector_hdmi_init_vendor_valid [09:47:08] ========= drm_test_connector_hdmi_init_type_valid ========= [09:47:08] [PASSED] HDMI-A [09:47:08] [PASSED] HDMI-B [09:47:08] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [09:47:08] ======== drm_test_connector_hdmi_init_type_invalid ======== [09:47:08] [PASSED] Unknown [09:47:08] [PASSED] VGA [09:47:08] [PASSED] DVI-I [09:47:08] [PASSED] DVI-D [09:47:08] [PASSED] DVI-A [09:47:08] [PASSED] Composite [09:47:08] [PASSED] SVIDEO [09:47:08] [PASSED] LVDS [09:47:08] [PASSED] Component [09:47:08] [PASSED] DIN [09:47:08] [PASSED] DP [09:47:08] [PASSED] TV [09:47:08] [PASSED] eDP [09:47:08] [PASSED] Virtual [09:47:08] [PASSED] DSI [09:47:08] [PASSED] DPI [09:47:08] [PASSED] Writeback [09:47:08] [PASSED] SPI [09:47:08] [PASSED] USB [09:47:08] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [09:47:08] ============ [PASSED] drmm_connector_hdmi_init ============= [09:47:08] ============= drmm_connector_init (3 subtests) ============= [09:47:08] [PASSED] drm_test_drmm_connector_init [09:47:08] [PASSED] drm_test_drmm_connector_init_null_ddc [09:47:08] ========= drm_test_drmm_connector_init_type_valid ========= [09:47:08] [PASSED] Unknown [09:47:08] [PASSED] VGA [09:47:08] [PASSED] DVI-I [09:47:08] [PASSED] DVI-D [09:47:08] [PASSED] DVI-A [09:47:08] [PASSED] Composite [09:47:08] [PASSED] SVIDEO [09:47:08] [PASSED] LVDS [09:47:08] [PASSED] Component [09:47:08] [PASSED] DIN [09:47:08] [PASSED] DP [09:47:08] [PASSED] HDMI-A [09:47:08] [PASSED] HDMI-B [09:47:08] [PASSED] TV [09:47:08] [PASSED] eDP [09:47:08] [PASSED] Virtual [09:47:08] [PASSED] DSI [09:47:08] [PASSED] DPI [09:47:08] [PASSED] Writeback [09:47:08] [PASSED] SPI [09:47:08] [PASSED] USB [09:47:08] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [09:47:08] =============== [PASSED] drmm_connector_init =============== [09:47:08] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [09:47:08] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [09:47:08] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [09:47:08] === [PASSED] drm_connector_attach_broadcast_rgb_property === [09:47:08] ========== drm_get_tv_mode_from_name (2 subtests) ========== [09:47:08] ========== drm_test_get_tv_mode_from_name_valid =========== [09:47:08] [PASSED] NTSC [09:47:08] [PASSED] NTSC-443 [09:47:08] [PASSED] NTSC-J [09:47:08] [PASSED] PAL [09:47:08] [PASSED] PAL-M [09:47:08] [PASSED] PAL-N [09:47:08] [PASSED] SECAM [09:47:08] [PASSED] Mono [09:47:08] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [09:47:08] [PASSED] drm_test_get_tv_mode_from_name_truncated [09:47:08] ============ [PASSED] drm_get_tv_mode_from_name ============ [09:47:08] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [09:47:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [09:47:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [09:47:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [09:47:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [09:47:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [09:47:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [09:47:08] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [09:47:08] [PASSED] VIC 96 [09:47:08] [PASSED] VIC 97 [09:47:08] [PASSED] VIC 101 [09:47:08] [PASSED] VIC 102 [09:47:08] [PASSED] VIC 106 [09:47:08] [PASSED] VIC 107 [09:47:08] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [09:47:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [09:47:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [09:47:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [09:47:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [09:47:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [09:47:08] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [09:47:08] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [09:47:08] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [09:47:08] [PASSED] Automatic [09:47:08] [PASSED] Full [09:47:08] [PASSED] Limited 16:235 [09:47:08] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [09:47:08] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [09:47:08] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [09:47:08] == drm_hdmi_connector_get_output_format_name (2 subtests) == [09:47:08] === drm_test_drm_hdmi_connector_get_output_format_name ==== [09:47:08] [PASSED] RGB [09:47:08] [PASSED] YUV 4:2:0 [09:47:08] [PASSED] YUV 4:2:2 [09:47:08] [PASSED] YUV 4:4:4 [09:47:08] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [09:47:08] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [09:47:08] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [09:47:08] ============= drm_damage_helper (21 subtests) ============== [09:47:08] [PASSED] drm_test_damage_iter_no_damage [09:47:08] [PASSED] drm_test_damage_iter_no_damage_fractional_src [09:47:08] [PASSED] drm_test_damage_iter_no_damage_src_moved [09:47:08] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [09:47:08] [PASSED] drm_test_damage_iter_no_damage_not_visible [09:47:08] [PASSED] drm_test_damage_iter_no_damage_no_crtc [09:47:08] [PASSED] drm_test_damage_iter_no_damage_no_fb [09:47:08] [PASSED] drm_test_damage_iter_simple_damage [09:47:08] [PASSED] drm_test_damage_iter_single_damage [09:47:08] [PASSED] drm_test_damage_iter_single_damage_intersect_src [09:47:08] [PASSED] drm_test_damage_iter_single_damage_outside_src [09:47:08] [PASSED] drm_test_damage_iter_single_damage_fractional_src [09:47:08] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [09:47:08] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [09:47:08] [PASSED] drm_test_damage_iter_single_damage_src_moved [09:47:08] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [09:47:08] [PASSED] drm_test_damage_iter_damage [09:47:08] [PASSED] drm_test_damage_iter_damage_one_intersect [09:47:08] [PASSED] drm_test_damage_iter_damage_one_outside [09:47:08] [PASSED] drm_test_damage_iter_damage_src_moved [09:47:08] [PASSED] drm_test_damage_iter_damage_not_visible [09:47:08] ================ [PASSED] drm_damage_helper ================ [09:47:08] ============== drm_dp_mst_helper (3 subtests) ============== [09:47:08] ============== drm_test_dp_mst_calc_pbn_mode ============== [09:47:08] [PASSED] Clock 154000 BPP 30 DSC disabled [09:47:08] [PASSED] Clock 234000 BPP 30 DSC disabled [09:47:08] [PASSED] Clock 297000 BPP 24 DSC disabled [09:47:08] [PASSED] Clock 332880 BPP 24 DSC enabled [09:47:08] [PASSED] Clock 324540 BPP 24 DSC enabled [09:47:08] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [09:47:08] ============== drm_test_dp_mst_calc_pbn_div =============== [09:47:08] [PASSED] Link rate 2000000 lane count 4 [09:47:08] [PASSED] Link rate 2000000 lane count 2 [09:47:08] [PASSED] Link rate 2000000 lane count 1 [09:47:08] [PASSED] Link rate 1350000 lane count 4 [09:47:08] [PASSED] Link rate 1350000 lane count 2 [09:47:08] [PASSED] Link rate 1350000 lane count 1 [09:47:08] [PASSED] Link rate 1000000 lane count 4 [09:47:08] [PASSED] Link rate 1000000 lane count 2 [09:47:08] [PASSED] Link rate 1000000 lane count 1 [09:47:08] [PASSED] Link rate 810000 lane count 4 [09:47:08] [PASSED] Link rate 810000 lane count 2 [09:47:08] [PASSED] Link rate 810000 lane count 1 [09:47:08] [PASSED] Link rate 540000 lane count 4 [09:47:08] [PASSED] Link rate 540000 lane count 2 [09:47:08] [PASSED] Link rate 540000 lane count 1 [09:47:08] [PASSED] Link rate 270000 lane count 4 [09:47:08] [PASSED] Link rate 270000 lane count 2 [09:47:08] [PASSED] Link rate 270000 lane count 1 [09:47:08] [PASSED] Link rate 162000 lane count 4 [09:47:08] [PASSED] Link rate 162000 lane count 2 [09:47:08] [PASSED] Link rate 162000 lane count 1 [09:47:08] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [09:47:08] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [09:47:08] [PASSED] DP_ENUM_PATH_RESOURCES with port number [09:47:08] [PASSED] DP_POWER_UP_PHY with port number [09:47:08] [PASSED] DP_POWER_DOWN_PHY with port number [09:47:08] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [09:47:08] [PASSED] DP_ALLOCATE_PAYLOAD with port number [09:47:08] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [09:47:08] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [09:47:08] [PASSED] DP_QUERY_PAYLOAD with port number [09:47:08] [PASSED] DP_QUERY_PAYLOAD with VCPI [09:47:08] [PASSED] DP_REMOTE_DPCD_READ with port number [09:47:08] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [09:47:08] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [09:47:08] [PASSED] DP_REMOTE_DPCD_WRITE with port number [09:47:08] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [09:47:08] [PASSED] DP_REMOTE_DPCD_WRITE with data array [09:47:08] [PASSED] DP_REMOTE_I2C_READ with port number [09:47:08] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [09:47:08] [PASSED] DP_REMOTE_I2C_READ with transactions array [09:47:08] [PASSED] DP_REMOTE_I2C_WRITE with port number [09:47:08] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [09:47:08] [PASSED] DP_REMOTE_I2C_WRITE with data array [09:47:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [09:47:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [09:47:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [09:47:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [09:47:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [09:47:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [09:47:08] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [09:47:08] ================ [PASSED] drm_dp_mst_helper ================ [09:47:08] ================== drm_exec (7 subtests) =================== [09:47:08] [PASSED] sanitycheck [09:47:08] [PASSED] test_lock [09:47:08] [PASSED] test_lock_unlock [09:47:08] [PASSED] test_duplicates [09:47:08] [PASSED] test_prepare [09:47:08] [PASSED] test_prepare_array [09:47:08] [PASSED] test_multiple_loops [09:47:08] ==================== [PASSED] drm_exec ===================== [09:47:08] =========== drm_format_helper_test (17 subtests) =========== [09:47:08] ============== drm_test_fb_xrgb8888_to_gray8 ============== [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [09:47:08] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [09:47:08] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [09:47:08] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [09:47:08] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [09:47:08] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [09:47:08] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [09:47:08] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [09:47:08] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [09:47:08] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [09:47:08] ============== drm_test_fb_xrgb8888_to_mono =============== [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [09:47:08] ==================== drm_test_fb_swab ===================== [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ================ [PASSED] drm_test_fb_swab ================= [09:47:08] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [09:47:08] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [09:47:08] [PASSED] single_pixel_source_buffer [09:47:08] [PASSED] single_pixel_clip_rectangle [09:47:08] [PASSED] well_known_colors [09:47:08] [PASSED] destination_pitch [09:47:08] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [09:47:08] ================= drm_test_fb_clip_offset ================= [09:47:08] [PASSED] pass through [09:47:08] [PASSED] horizontal offset [09:47:08] [PASSED] vertical offset [09:47:08] [PASSED] horizontal and vertical offset [09:47:08] [PASSED] horizontal offset (custom pitch) [09:47:08] [PASSED] vertical offset (custom pitch) [09:47:08] [PASSED] horizontal and vertical offset (custom pitch) [09:47:08] ============= [PASSED] drm_test_fb_clip_offset ============= [09:47:08] ============== drm_test_fb_build_fourcc_list ============== [09:47:08] [PASSED] no native formats [09:47:08] [PASSED] XRGB8888 as native format [09:47:08] [PASSED] remove duplicates [09:47:08] [PASSED] convert alpha formats [09:47:08] [PASSED] random formats [09:47:08] ========== [PASSED] drm_test_fb_build_fourcc_list ========== [09:47:08] =================== drm_test_fb_memcpy ==================== [09:47:08] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [09:47:08] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [09:47:08] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [09:47:08] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [09:47:08] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [09:47:08] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [09:47:08] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [09:47:08] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [09:47:08] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [09:47:08] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [09:47:08] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [09:47:08] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [09:47:08] =============== [PASSED] drm_test_fb_memcpy ================ [09:47:08] ============= [PASSED] drm_format_helper_test ============== [09:47:08] ================= drm_format (18 subtests) ================= [09:47:08] [PASSED] drm_test_format_block_width_invalid [09:47:08] [PASSED] drm_test_format_block_width_one_plane [09:47:08] [PASSED] drm_test_format_block_width_two_plane [09:47:08] [PASSED] drm_test_format_block_width_three_plane [09:47:08] [PASSED] drm_test_format_block_width_tiled [09:47:08] [PASSED] drm_test_format_block_height_invalid [09:47:08] [PASSED] drm_test_format_block_height_one_plane [09:47:08] [PASSED] drm_test_format_block_height_two_plane [09:47:08] [PASSED] drm_test_format_block_height_three_plane [09:47:08] [PASSED] drm_test_format_block_height_tiled [09:47:08] [PASSED] drm_test_format_min_pitch_invalid [09:47:08] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [09:47:08] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [09:47:08] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [09:47:08] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [09:47:08] [PASSED] drm_test_format_min_pitch_two_plane [09:47:08] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [09:47:08] [PASSED] drm_test_format_min_pitch_tiled [09:47:08] =================== [PASSED] drm_format ==================== [09:47:08] =============== drm_framebuffer (1 subtest) ================ [09:47:08] =============== drm_test_framebuffer_create =============== [09:47:08] [PASSED] ABGR8888 normal sizes [09:47:08] [PASSED] ABGR8888 max sizes [09:47:08] [PASSED] ABGR8888 pitch greater than min required [09:47:08] [PASSED] ABGR8888 pitch less than min required [09:47:08] [PASSED] ABGR8888 Invalid width [09:47:08] [PASSED] ABGR8888 Invalid buffer handle [09:47:08] [PASSED] No pixel format [09:47:08] [PASSED] ABGR8888 Width 0 [09:47:08] [PASSED] ABGR8888 Height 0 [09:47:08] [PASSED] ABGR8888 Out of bound height * pitch combination [09:47:08] [PASSED] ABGR8888 Large buffer offset [09:47:08] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [09:47:08] [PASSED] ABGR8888 Valid buffer modifier [09:47:08] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [09:47:08] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [09:47:08] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [09:47:08] [PASSED] NV12 Normal sizes [09:47:08] [PASSED] NV12 Max sizes [09:47:08] [PASSED] NV12 Invalid pitch [09:47:08] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [09:47:08] [PASSED] NV12 different modifier per-plane [09:47:08] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [09:47:08] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [09:47:08] [PASSED] NV12 Modifier for inexistent plane [09:47:08] [PASSED] NV12 Handle for inexistent plane [09:47:08] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [09:47:08] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [09:47:08] [PASSED] YVU420 Normal sizes [09:47:08] [PASSED] YVU420 Max sizes [09:47:08] [PASSED] YVU420 Invalid pitch [09:47:08] [PASSED] YVU420 Different pitches [09:47:08] [PASSED] YVU420 Different buffer offsets/pitches [09:47:08] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [09:47:08] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [09:47:08] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [09:47:08] [PASSED] YVU420 Valid modifier [09:47:08] [PASSED] YVU420 Different modifiers per plane [09:47:08] [PASSED] YVU420 Modifier for inexistent plane [09:47:08] [PASSED] X0L2 Normal sizes [09:47:08] [PASSED] X0L2 Max sizes [09:47:08] [PASSED] X0L2 Invalid pitch [09:47:08] [PASSED] X0L2 Pitch greater than minimum required [09:47:08] [PASSED] X0L2 Handle for inexistent plane [09:47:08] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [09:47:08] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [09:47:08] [PASSED] X0L2 Valid modifier [09:47:08] [PASSED] X0L2 Modifier for inexistent plane [09:47:08] =========== [PASSED] drm_test_framebuffer_create =========== [09:47:08] ================= [PASSED] drm_framebuffer ================= [09:47:08] ================ drm_gem_shmem (8 subtests) ================ [09:47:08] [PASSED] drm_gem_shmem_test_obj_create [09:47:08] [PASSED] drm_gem_shmem_test_obj_create_private [09:47:08] [PASSED] drm_gem_shmem_test_pin_pages [09:47:08] [PASSED] drm_gem_shmem_test_vmap [09:47:08] [PASSED] drm_gem_shmem_test_get_pages_sgt [09:47:08] [PASSED] drm_gem_shmem_test_get_sg_table [09:47:08] [PASSED] drm_gem_shmem_test_madvise [09:47:08] [PASSED] drm_gem_shmem_test_purge [09:47:08] ================== [PASSED] drm_gem_shmem ================== [09:47:08] === drm_atomic_helper_connector_hdmi_check (22 subtests) === [09:47:08] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [09:47:08] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [09:47:08] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [09:47:08] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [09:47:08] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [09:47:08] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [09:47:08] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [09:47:08] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [09:47:08] [PASSED] drm_test_check_hdmi_funcs_reject_rate [09:47:08] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback [09:47:08] [PASSED] drm_test_check_max_tmds_rate_format_fallback [09:47:08] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [09:47:08] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [09:47:08] [PASSED] drm_test_check_output_bpc_dvi [09:47:08] [PASSED] drm_test_check_output_bpc_format_vic_1 [09:47:08] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [09:47:08] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [09:47:08] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [09:47:08] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [09:47:08] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [09:47:08] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [09:47:08] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [09:47:08] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [09:47:08] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [09:47:08] [PASSED] drm_test_check_broadcast_rgb_value [09:47:08] [PASSED] drm_test_check_bpc_8_value [09:47:08] [PASSED] drm_test_check_bpc_10_value [09:47:08] [PASSED] drm_test_check_bpc_12_value [09:47:08] [PASSED] drm_test_check_format_value [09:47:08] [PASSED] drm_test_check_tmds_char_value [09:47:08] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [09:47:08] ================= drm_managed (2 subtests) ================= [09:47:08] [PASSED] drm_test_managed_release_action [09:47:08] [PASSED] drm_test_managed_run_action [09:47:08] =================== [PASSED] drm_managed =================== [09:47:08] =================== drm_mm (6 subtests) ==================== [09:47:08] [PASSED] drm_test_mm_init [09:47:08] [PASSED] drm_test_mm_debug [09:47:08] [PASSED] drm_test_mm_align32 [09:47:08] [PASSED] drm_test_mm_align64 [09:47:08] [PASSED] drm_test_mm_lowest [09:47:08] [PASSED] drm_test_mm_highest [09:47:08] ===================== [PASSED] drm_mm ====================== [09:47:08] ============= drm_modes_analog_tv (5 subtests) ============= [09:47:08] [PASSED] drm_test_modes_analog_tv_mono_576i [09:47:08] [PASSED] drm_test_modes_analog_tv_ntsc_480i [09:47:08] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [09:47:08] [PASSED] drm_test_modes_analog_tv_pal_576i [09:47:08] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [09:47:08] =============== [PASSED] drm_modes_analog_tv =============== [09:47:08] ============== drm_plane_helper (2 subtests) =============== [09:47:08] =============== drm_test_check_plane_state ================ [09:47:08] [PASSED] clipping_simple [09:47:08] [PASSED] clipping_rotate_reflect [09:47:08] [PASSED] positioning_simple [09:47:08] [PASSED] upscaling [09:47:08] [PASSED] downscaling [09:47:08] [PASSED] rounding1 [09:47:08] [PASSED] rounding2 [09:47:08] [PASSED] rounding3 [09:47:08] [PASSED] rounding4 [09:47:08] =========== [PASSED] drm_test_check_plane_state ============ [09:47:08] =========== drm_test_check_invalid_plane_state ============ [09:47:08] [PASSED] positioning_invalid [09:47:08] [PASSED] upscaling_invalid stty: 'standard input': Inappropriate ioctl for device [09:47:08] [PASSED] downscaling_invalid [09:47:08] ======= [PASSED] drm_test_check_invalid_plane_state ======== [09:47:08] ================ [PASSED] drm_plane_helper ================= [09:47:08] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [09:47:08] ====== drm_test_connector_helper_tv_get_modes_check ======= [09:47:08] [PASSED] None [09:47:08] [PASSED] PAL [09:47:08] [PASSED] NTSC [09:47:08] [PASSED] Both, NTSC Default [09:47:08] [PASSED] Both, PAL Default [09:47:08] [PASSED] Both, NTSC Default, with PAL on command-line [09:47:08] [PASSED] Both, PAL Default, with NTSC on command-line [09:47:08] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [09:47:08] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [09:47:08] ================== drm_rect (9 subtests) =================== [09:47:08] [PASSED] drm_test_rect_clip_scaled_div_by_zero [09:47:08] [PASSED] drm_test_rect_clip_scaled_not_clipped [09:47:08] [PASSED] drm_test_rect_clip_scaled_clipped [09:47:08] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [09:47:08] ================= drm_test_rect_intersect ================= [09:47:08] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [09:47:08] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [09:47:08] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [09:47:08] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [09:47:08] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [09:47:08] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [09:47:08] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [09:47:08] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [09:47:08] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [09:47:08] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [09:47:08] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [09:47:08] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [09:47:08] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [09:47:08] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [09:47:08] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [09:47:08] ============= [PASSED] drm_test_rect_intersect ============= [09:47:08] ================ drm_test_rect_calc_hscale ================ [09:47:08] [PASSED] normal use [09:47:08] [PASSED] out of max range [09:47:08] [PASSED] out of min range [09:47:08] [PASSED] zero dst [09:47:08] [PASSED] negative src [09:47:08] [PASSED] negative dst [09:47:08] ============ [PASSED] drm_test_rect_calc_hscale ============ [09:47:08] ================ drm_test_rect_calc_vscale ================ [09:47:08] [PASSED] normal use [09:47:08] [PASSED] out of max range [09:47:08] [PASSED] out of min range [09:47:08] [PASSED] zero dst [09:47:08] [PASSED] negative src [09:47:08] [PASSED] negative dst [09:47:08] ============ [PASSED] drm_test_rect_calc_vscale ============ [09:47:08] ================== drm_test_rect_rotate =================== [09:47:08] [PASSED] reflect-x [09:47:08] [PASSED] reflect-y [09:47:08] [PASSED] rotate-0 [09:47:08] [PASSED] rotate-90 [09:47:08] [PASSED] rotate-180 [09:47:08] [PASSED] rotate-270 [09:47:08] ============== [PASSED] drm_test_rect_rotate =============== [09:47:08] ================ drm_test_rect_rotate_inv ================= [09:47:08] [PASSED] reflect-x [09:47:08] [PASSED] reflect-y [09:47:08] [PASSED] rotate-0 [09:47:08] [PASSED] rotate-90 [09:47:08] [PASSED] rotate-180 [09:47:08] [PASSED] rotate-270 [09:47:08] ============ [PASSED] drm_test_rect_rotate_inv ============= [09:47:08] ==================== [PASSED] drm_rect ===================== [09:47:08] ============================================================ [09:47:08] Testing complete. Ran 515 tests: passed: 515 [09:47:08] Elapsed time: 23.871s total, 1.743s configuring, 21.909s building, 0.205s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig [09:47:08] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [09:47:10] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make ARCH=um O=.kunit --jobs=48 [09:47:19] Starting KUnit Kernel (1/1)... [09:47:19] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [09:47:19] ================= ttm_device (5 subtests) ================== [09:47:19] [PASSED] ttm_device_init_basic [09:47:19] [PASSED] ttm_device_init_multiple [09:47:19] [PASSED] ttm_device_fini_basic [09:47:19] [PASSED] ttm_device_init_no_vma_man [09:47:19] ================== ttm_device_init_pools ================== [09:47:19] [PASSED] No DMA allocations, no DMA32 required [09:47:19] [PASSED] DMA allocations, DMA32 required [09:47:19] [PASSED] No DMA allocations, DMA32 required [09:47:19] [PASSED] DMA allocations, no DMA32 required [09:47:19] ============== [PASSED] ttm_device_init_pools ============== [09:47:19] =================== [PASSED] ttm_device ==================== [09:47:19] ================== ttm_pool (8 subtests) =================== [09:47:19] ================== ttm_pool_alloc_basic =================== [09:47:19] [PASSED] One page [09:47:19] [PASSED] More than one page [09:47:19] [PASSED] Above the allocation limit [09:47:19] [PASSED] One page, with coherent DMA mappings enabled [09:47:19] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [09:47:19] ============== [PASSED] ttm_pool_alloc_basic =============== [09:47:19] ============== ttm_pool_alloc_basic_dma_addr ============== [09:47:19] [PASSED] One page [09:47:19] [PASSED] More than one page [09:47:19] [PASSED] Above the allocation limit [09:47:19] [PASSED] One page, with coherent DMA mappings enabled [09:47:19] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [09:47:19] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ========== [09:47:19] [PASSED] ttm_pool_alloc_order_caching_match [09:47:19] [PASSED] ttm_pool_alloc_caching_mismatch [09:47:19] [PASSED] ttm_pool_alloc_order_mismatch [09:47:19] [PASSED] ttm_pool_free_dma_alloc [09:47:19] [PASSED] ttm_pool_free_no_dma_alloc [09:47:19] [PASSED] ttm_pool_fini_basic [09:47:19] ==================== [PASSED] ttm_pool ===================== [09:47:19] ================ ttm_resource (8 subtests) ================= [09:47:19] ================= ttm_resource_init_basic ================= [09:47:19] [PASSED] Init resource in TTM_PL_SYSTEM [09:47:19] [PASSED] Init resource in TTM_PL_VRAM [09:47:19] [PASSED] Init resource in a private placement [09:47:19] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags [09:47:19] ============= [PASSED] ttm_resource_init_basic ============= [09:47:19] [PASSED] ttm_resource_init_pinned [09:47:19] [PASSED] ttm_resource_fini_basic [09:47:19] [PASSED] ttm_resource_manager_init_basic [09:47:19] [PASSED] ttm_resource_manager_usage_basic [09:47:19] [PASSED] ttm_resource_manager_set_used_basic [09:47:19] [PASSED] ttm_sys_man_alloc_basic [09:47:19] [PASSED] ttm_sys_man_free_basic [09:47:19] ================== [PASSED] ttm_resource =================== [09:47:19] =================== ttm_tt (15 subtests) =================== [09:47:19] ==================== ttm_tt_init_basic ==================== [09:47:19] [PASSED] Page-aligned size [09:47:19] [PASSED] Extra pages requested [09:47:19] ================ [PASSED] ttm_tt_init_basic ================ [09:47:19] [PASSED] ttm_tt_init_misaligned [09:47:19] [PASSED] ttm_tt_fini_basic [09:47:19] [PASSED] ttm_tt_fini_sg [09:47:19] [PASSED] ttm_tt_fini_shmem [09:47:19] [PASSED] ttm_tt_create_basic [09:47:19] [PASSED] ttm_tt_create_invalid_bo_type [09:47:19] [PASSED] ttm_tt_create_ttm_exists [09:47:19] [PASSED] ttm_tt_create_failed [09:47:19] [PASSED] ttm_tt_destroy_basic [09:47:19] [PASSED] ttm_tt_populate_null_ttm [09:47:19] [PASSED] ttm_tt_populate_populated_ttm [09:47:19] [PASSED] ttm_tt_unpopulate_basic [09:47:19] [PASSED] ttm_tt_unpopulate_empty_ttm [09:47:19] [PASSED] ttm_tt_swapin_basic [09:47:19] ===================== [PASSED] ttm_tt ====================== [09:47:19] =================== ttm_bo (14 subtests) =================== [09:47:19] =========== ttm_bo_reserve_optimistic_no_ticket =========== [09:47:19] [PASSED] Cannot be interrupted and sleeps [09:47:19] [PASSED] Cannot be interrupted, locks straight away [09:47:19] [PASSED] Can be interrupted, sleeps [09:47:19] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket ======= [09:47:19] [PASSED] ttm_bo_reserve_locked_no_sleep [09:47:19] [PASSED] ttm_bo_reserve_no_wait_ticket [09:47:19] [PASSED] ttm_bo_reserve_double_resv [09:47:19] [PASSED] ttm_bo_reserve_interrupted [09:47:19] [PASSED] ttm_bo_reserve_deadlock [09:47:19] [PASSED] ttm_bo_unreserve_basic [09:47:19] [PASSED] ttm_bo_unreserve_pinned [09:47:19] [PASSED] ttm_bo_unreserve_bulk [09:47:19] [PASSED] ttm_bo_put_basic [09:47:19] [PASSED] ttm_bo_put_shared_resv [09:47:19] [PASSED] ttm_bo_pin_basic [09:47:19] [PASSED] ttm_bo_pin_unpin_resource [09:47:19] [PASSED] ttm_bo_multiple_pin_one_unpin [09:47:19] ===================== [PASSED] ttm_bo ====================== [09:47:19] ============== ttm_bo_validate (22 subtests) =============== [09:47:19] ============== ttm_bo_init_reserved_sys_man =============== [09:47:19] [PASSED] Buffer object for userspace [09:47:19] [PASSED] Kernel buffer object [09:47:19] [PASSED] Shared buffer object [09:47:19] ========== [PASSED] ttm_bo_init_reserved_sys_man =========== [09:47:19] ============== ttm_bo_init_reserved_mock_man ============== [09:47:19] [PASSED] Buffer object for userspace [09:47:19] [PASSED] Kernel buffer object [09:47:19] [PASSED] Shared buffer object [09:47:19] ========== [PASSED] ttm_bo_init_reserved_mock_man ========== [09:47:19] [PASSED] ttm_bo_init_reserved_resv [09:47:19] ================== ttm_bo_validate_basic ================== [09:47:19] [PASSED] Buffer object for userspace [09:47:19] [PASSED] Kernel buffer object [09:47:19] [PASSED] Shared buffer object [09:47:19] ============== [PASSED] ttm_bo_validate_basic ============== [09:47:19] [PASSED] ttm_bo_validate_invalid_placement [09:47:19] ============= ttm_bo_validate_same_placement ============== [09:47:19] [PASSED] System manager [09:47:19] [PASSED] VRAM manager [09:47:19] ========= [PASSED] ttm_bo_validate_same_placement ========== [09:47:19] [PASSED] ttm_bo_validate_failed_alloc [09:47:19] [PASSED] ttm_bo_validate_pinned [09:47:19] [PASSED] ttm_bo_validate_busy_placement [09:47:19] ================ ttm_bo_validate_multihop ================= [09:47:19] [PASSED] Buffer object for userspace [09:47:19] [PASSED] Kernel buffer object [09:47:19] [PASSED] Shared buffer object [09:47:19] ============ [PASSED] ttm_bo_validate_multihop ============= [09:47:19] ========== ttm_bo_validate_no_placement_signaled ========== [09:47:19] [PASSED] Buffer object in system domain, no page vector [09:47:19] [PASSED] Buffer object in system domain with an existing page vector [09:47:19] ====== [PASSED] ttm_bo_validate_no_placement_signaled ====== [09:47:19] ======== ttm_bo_validate_no_placement_not_signaled ======== [09:47:19] [PASSED] Buffer object for userspace [09:47:19] [PASSED] Kernel buffer object [09:47:19] [PASSED] Shared buffer object [09:47:19] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ==== [09:47:19] [PASSED] ttm_bo_validate_move_fence_signaled [09:47:19] ========= ttm_bo_validate_move_fence_not_signaled ========= [09:47:19] [PASSED] Waits for GPU [09:47:19] [PASSED] Tries to lock straight away [09:47:20] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled ===== [09:47:20] [PASSED] ttm_bo_validate_swapout [09:47:20] [PASSED] ttm_bo_validate_happy_evict [09:47:20] [PASSED] ttm_bo_validate_all_pinned_evict [09:47:20] [PASSED] ttm_bo_validate_allowed_only_evict [09:47:20] [PASSED] ttm_bo_validate_deleted_evict [09:47:20] [PASSED] ttm_bo_validate_busy_domain_evict [09:47:20] [PASSED] ttm_bo_validate_evict_gutting [09:47:20] [PASSED] ttm_bo_validate_recrusive_evict stty: 'standard input': Inappropriate ioctl for device [09:47:20] ================= [PASSED] ttm_bo_validate ================= [09:47:20] ============================================================ [09:47:20] Testing complete. Ran 102 tests: passed: 102 [09:47:20] Elapsed time: 11.253s total, 1.724s configuring, 8.858s building, 0.586s running + cleanup ++ stat -c %u:%g /kernel + chown -R 1003:1003 /kernel ^ permalink raw reply [flat|nested] 16+ messages in thread
* ✓ CI.Build: success for HDCP intel_display refactors 2024-09-10 7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal ` (4 preceding siblings ...) 2024-09-10 9:47 ` ✓ CI.KUnit: " Patchwork @ 2024-09-10 10:12 ` Patchwork 2024-09-10 10:14 ` ✓ CI.Hooks: " Patchwork ` (3 subsequent siblings) 9 siblings, 0 replies; 16+ messages in thread From: Patchwork @ 2024-09-10 10:12 UTC (permalink / raw) To: Suraj Kandpal; +Cc: intel-xe == Series Details == Series: HDCP intel_display refactors URL : https://patchwork.freedesktop.org/series/138453/ State : success == Summary == lib/modules/6.11.0-rc7-xe/kernel/sound/core/seq/ lib/modules/6.11.0-rc7-xe/kernel/sound/core/seq/snd-seq.ko lib/modules/6.11.0-rc7-xe/kernel/sound/core/snd-seq-device.ko lib/modules/6.11.0-rc7-xe/kernel/sound/core/snd-hwdep.ko lib/modules/6.11.0-rc7-xe/kernel/sound/core/snd.ko lib/modules/6.11.0-rc7-xe/kernel/sound/core/snd-pcm.ko lib/modules/6.11.0-rc7-xe/kernel/sound/core/snd-compress.ko lib/modules/6.11.0-rc7-xe/kernel/sound/core/snd-timer.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soundcore.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/intel/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/intel/atom/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/intel/atom/sst/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-acpi.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-core.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/intel/common/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/intel/common/snd-soc-acpi-intel-match.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/amd/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/amd/snd-acp-config.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/intel/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-tgl.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-mlink.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-cnl.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-lnl.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-generic.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-mtl.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/amd/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/amd/snd-sof-amd-renoir.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/amd/snd-sof-amd-acp.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/snd-sof-utils.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/snd-sof-pci.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/snd-sof.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/snd-sof-probes.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/xtensa/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/sof/xtensa/snd-sof-xtensa-dsp.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/snd-soc-core.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/snd-soc-acpi.ko lib/modules/6.11.0-rc7-xe/kernel/sound/soc/codecs/ lib/modules/6.11.0-rc7-xe/kernel/sound/soc/codecs/snd-soc-hdac-hda.ko lib/modules/6.11.0-rc7-xe/kernel/sound/hda/ lib/modules/6.11.0-rc7-xe/kernel/sound/hda/snd-intel-sdw-acpi.ko lib/modules/6.11.0-rc7-xe/kernel/sound/hda/ext/ lib/modules/6.11.0-rc7-xe/kernel/sound/hda/ext/snd-hda-ext-core.ko lib/modules/6.11.0-rc7-xe/kernel/sound/hda/snd-intel-dspcfg.ko lib/modules/6.11.0-rc7-xe/kernel/sound/hda/snd-hda-core.ko lib/modules/6.11.0-rc7-xe/kernel/arch/ lib/modules/6.11.0-rc7-xe/kernel/arch/x86/ lib/modules/6.11.0-rc7-xe/kernel/arch/x86/kernel/ lib/modules/6.11.0-rc7-xe/kernel/arch/x86/kernel/msr.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/kernel/cpuid.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/crypto/ lib/modules/6.11.0-rc7-xe/kernel/arch/x86/crypto/sha512-ssse3.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/crypto/crct10dif-pclmul.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/crypto/ghash-clmulni-intel.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/crypto/sha1-ssse3.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/crypto/crc32-pclmul.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/crypto/sha256-ssse3.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/crypto/aesni-intel.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/crypto/polyval-clmulni.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/events/ lib/modules/6.11.0-rc7-xe/kernel/arch/x86/events/intel/ lib/modules/6.11.0-rc7-xe/kernel/arch/x86/events/intel/intel-cstate.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/events/rapl.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/kvm/ lib/modules/6.11.0-rc7-xe/kernel/arch/x86/kvm/kvm.ko lib/modules/6.11.0-rc7-xe/kernel/arch/x86/kvm/kvm-intel.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/ lib/modules/6.11.0-rc7-xe/kernel/crypto/crypto_simd.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/cmac.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/ccm.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/cryptd.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/polyval-generic.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/async_tx/ lib/modules/6.11.0-rc7-xe/kernel/crypto/async_tx/async_xor.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/async_tx/async_tx.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/async_tx/async_memcpy.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/async_tx/async_pq.ko lib/modules/6.11.0-rc7-xe/kernel/crypto/async_tx/async_raid6_recov.ko lib/modules/6.11.0-rc7-xe/build lib/modules/6.11.0-rc7-xe/modules.alias.bin lib/modules/6.11.0-rc7-xe/modules.builtin lib/modules/6.11.0-rc7-xe/modules.softdep lib/modules/6.11.0-rc7-xe/modules.alias lib/modules/6.11.0-rc7-xe/modules.order lib/modules/6.11.0-rc7-xe/modules.symbols lib/modules/6.11.0-rc7-xe/modules.dep.bin + mv kernel-nodebug.tar.gz .. + cd .. + rm -rf archive ++ date +%s + echo -e '\e[0Ksection_end:1725962353:package_x86_64_nodebug\r\e[0K' + sync ^[[0Ksection_end:1725962353:package_x86_64_nodebug ^[[0K + cleanup ++ stat -c %u:%g /kernel + chown -R 1003:1003 /kernel ^ permalink raw reply [flat|nested] 16+ messages in thread
* ✓ CI.Hooks: success for HDCP intel_display refactors 2024-09-10 7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal ` (5 preceding siblings ...) 2024-09-10 10:12 ` ✓ CI.Build: " Patchwork @ 2024-09-10 10:14 ` Patchwork 2024-09-10 10:16 ` ✗ CI.checksparse: warning " Patchwork ` (2 subsequent siblings) 9 siblings, 0 replies; 16+ messages in thread From: Patchwork @ 2024-09-10 10:14 UTC (permalink / raw) To: Suraj Kandpal; +Cc: intel-xe == Series Details == Series: HDCP intel_display refactors URL : https://patchwork.freedesktop.org/series/138453/ State : success == Summary == run-parts: executing /workspace/ci/hooks/00-showenv + export + grep -Ei '(^|\W)CI_' declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-default" declare -x CI_KERNEL_SRC_DIR="/workspace/kernel" declare -x CI_TOOLS_SRC_DIR="/workspace/ci" declare -x CI_WORKSPACE_DIR="/workspace" run-parts: executing /workspace/ci/hooks/10-build-W1 + SRC_DIR=/workspace/kernel + RESTORE_DISPLAY_CONFIG=0 + '[' -n /workspace/kernel/build64-default ']' + BUILD_DIR=/workspace/kernel/build64-default + cd /workspace/kernel ++ nproc + make -j48 O=/workspace/kernel/build64-default modules_prepare make[1]: Entering directory '/workspace/kernel/build64-default' GEN Makefile UPD include/generated/compile.h UPD include/config/kernel.release mkdir -p /workspace/kernel/build64-default/tools/objtool && make O=/workspace/kernel/build64-default subdir=tools/objtool --no-print-directory -C objtool UPD include/generated/utsrelease.h CALL ../scripts/checksyscalls.sh HOSTCC /workspace/kernel/build64-default/tools/objtool/fixdep.o HOSTLD /workspace/kernel/build64-default/tools/objtool/fixdep-in.o LINK /workspace/kernel/build64-default/tools/objtool/fixdep INSTALL libsubcmd_headers CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o LD /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o AR /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a CC /workspace/kernel/build64-default/tools/objtool/weak.o CC /workspace/kernel/build64-default/tools/objtool/check.o CC /workspace/kernel/build64-default/tools/objtool/special.o CC /workspace/kernel/build64-default/tools/objtool/builtin-check.o CC /workspace/kernel/build64-default/tools/objtool/elf.o CC /workspace/kernel/build64-default/tools/objtool/objtool.o CC /workspace/kernel/build64-default/tools/objtool/orc_gen.o CC /workspace/kernel/build64-default/tools/objtool/orc_dump.o CC /workspace/kernel/build64-default/tools/objtool/libstring.o CC /workspace/kernel/build64-default/tools/objtool/libctype.o CC /workspace/kernel/build64-default/tools/objtool/str_error_r.o CC /workspace/kernel/build64-default/tools/objtool/librbtree.o CC /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o CC /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o CC /workspace/kernel/build64-default/tools/objtool/arch/x86/orc.o LD /workspace/kernel/build64-default/tools/objtool/arch/x86/objtool-in.o LD /workspace/kernel/build64-default/tools/objtool/objtool-in.o LINK /workspace/kernel/build64-default/tools/objtool/objtool make[1]: Leaving directory '/workspace/kernel/build64-default' ++ nproc + make -j48 O=/workspace/kernel/build64-default W=1 drivers/gpu/drm/xe make[1]: Entering directory '/workspace/kernel/build64-default' make[2]: Nothing to be done for 'drivers/gpu/drm/xe'. make[1]: Leaving directory '/workspace/kernel/build64-default' run-parts: executing /workspace/ci/hooks/11-build-32b +++ realpath /workspace/ci/hooks/11-build-32b ++ dirname /workspace/ci/hooks/11-build-32b + THIS_SCRIPT_DIR=/workspace/ci/hooks + SRC_DIR=/workspace/kernel + TOOLS_SRC_DIR=/workspace/ci + '[' -n /workspace/kernel/build64-default ']' + BUILD_DIR=/workspace/kernel/build64-default + BUILD_DIR=/workspace/kernel/build64-default/build32 + cd /workspace/kernel + mkdir -p /workspace/kernel/build64-default/build32 ++ nproc + make -j48 ARCH=i386 O=/workspace/kernel/build64-default/build32 defconfig make[1]: Entering directory '/workspace/kernel/build64-default/build32' GEN Makefile HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/confdata.o HOSTCC scripts/kconfig/expr.o LEX scripts/kconfig/lexer.lex.c YACC scripts/kconfig/parser.tab.[ch] HOSTCC scripts/kconfig/menu.o HOSTCC scripts/kconfig/preprocess.o HOSTCC scripts/kconfig/symbol.o HOSTCC scripts/kconfig/util.o HOSTCC scripts/kconfig/lexer.lex.o HOSTCC scripts/kconfig/parser.tab.o HOSTLD scripts/kconfig/conf *** Default configuration is based on 'i386_defconfig' # # configuration written to .config # make[1]: Leaving directory '/workspace/kernel/build64-default/build32' + cd /workspace/kernel/build64-default/build32 + /workspace/kernel/scripts/kconfig/merge_config.sh .config /workspace/ci/kernel/10-xe.fragment Using .config as base Merging /workspace/ci/kernel/10-xe.fragment Value of CONFIG_DRM_XE is redefined by fragment /workspace/ci/kernel/10-xe.fragment: Previous value: # CONFIG_DRM_XE is not set New value: CONFIG_DRM_XE=m Value of CONFIG_SND_DEBUG is redefined by fragment /workspace/ci/kernel/10-xe.fragment: Previous value: # CONFIG_SND_DEBUG is not set New value: CONFIG_SND_DEBUG=y Value of CONFIG_SND_HDA_INTEL is redefined by fragment /workspace/ci/kernel/10-xe.fragment: Previous value: CONFIG_SND_HDA_INTEL=y New value: CONFIG_SND_HDA_INTEL=m Value of CONFIG_SND_HDA_CODEC_HDMI is redefined by fragment /workspace/ci/kernel/10-xe.fragment: Previous value: # CONFIG_SND_HDA_CODEC_HDMI is not set New value: CONFIG_SND_HDA_CODEC_HDMI=m GEN Makefile WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n] Selected by [m]: - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] # # configuration written to .config # Value requested for CONFIG_HAVE_UID16 not in final .config Requested value: CONFIG_HAVE_UID16=y Actual value: Value requested for CONFIG_UID16 not in final .config Requested value: CONFIG_UID16=y Actual value: Value requested for CONFIG_X86_32 not in final .config Requested value: CONFIG_X86_32=y Actual value: Value requested for CONFIG_OUTPUT_FORMAT not in final .config Requested value: CONFIG_OUTPUT_FORMAT="elf32-i386" Actual value: CONFIG_OUTPUT_FORMAT="elf64-x86-64" Value requested for CONFIG_ARCH_MMAP_RND_BITS_MIN not in final .config Requested value: CONFIG_ARCH_MMAP_RND_BITS_MIN=8 Actual value: CONFIG_ARCH_MMAP_RND_BITS_MIN=28 Value requested for CONFIG_ARCH_MMAP_RND_BITS_MAX not in final .config Requested value: CONFIG_ARCH_MMAP_RND_BITS_MAX=16 Actual value: CONFIG_ARCH_MMAP_RND_BITS_MAX=32 Value requested for CONFIG_PGTABLE_LEVELS not in final .config Requested value: CONFIG_PGTABLE_LEVELS=2 Actual value: CONFIG_PGTABLE_LEVELS=5 Value requested for CONFIG_X86_BIGSMP not in final .config Requested value: # CONFIG_X86_BIGSMP is not set Actual value: Value requested for CONFIG_X86_INTEL_QUARK not in final .config Requested value: # CONFIG_X86_INTEL_QUARK is not set Actual value: Value requested for CONFIG_X86_RDC321X not in final .config Requested value: # CONFIG_X86_RDC321X is not set Actual value: Value requested for CONFIG_X86_32_NON_STANDARD not in final .config Requested value: # CONFIG_X86_32_NON_STANDARD is not set Actual value: Value requested for CONFIG_X86_32_IRIS not in final .config Requested value: # CONFIG_X86_32_IRIS is not set Actual value: Value requested for CONFIG_M486SX not in final .config Requested value: # CONFIG_M486SX is not set Actual value: Value requested for CONFIG_M486 not in final .config Requested value: # CONFIG_M486 is not set Actual value: Value requested for CONFIG_M586 not in final .config Requested value: # CONFIG_M586 is not set Actual value: Value requested for CONFIG_M586TSC not in final .config Requested value: # CONFIG_M586TSC is not set Actual value: Value requested for CONFIG_M586MMX not in final .config Requested value: # CONFIG_M586MMX is not set Actual value: Value requested for CONFIG_M686 not in final .config Requested value: CONFIG_M686=y Actual value: Value requested for CONFIG_MPENTIUMII not in final .config Requested value: # CONFIG_MPENTIUMII is not set Actual value: Value requested for CONFIG_MPENTIUMIII not in final .config Requested value: # CONFIG_MPENTIUMIII is not set Actual value: Value requested for CONFIG_MPENTIUMM not in final .config Requested value: # CONFIG_MPENTIUMM is not set Actual value: Value requested for CONFIG_MPENTIUM4 not in final .config Requested value: # CONFIG_MPENTIUM4 is not set Actual value: Value requested for CONFIG_MK6 not in final .config Requested value: # CONFIG_MK6 is not set Actual value: Value requested for CONFIG_MK7 not in final .config Requested value: # CONFIG_MK7 is not set Actual value: Value requested for CONFIG_MCRUSOE not in final .config Requested value: # CONFIG_MCRUSOE is not set Actual value: Value requested for CONFIG_MEFFICEON not in final .config Requested value: # CONFIG_MEFFICEON is not set Actual value: Value requested for CONFIG_MWINCHIPC6 not in final .config Requested value: # CONFIG_MWINCHIPC6 is not set Actual value: Value requested for CONFIG_MWINCHIP3D not in final .config Requested value: # CONFIG_MWINCHIP3D is not set Actual value: Value requested for CONFIG_MELAN not in final .config Requested value: # CONFIG_MELAN is not set Actual value: Value requested for CONFIG_MGEODEGX1 not in final .config Requested value: # CONFIG_MGEODEGX1 is not set Actual value: Value requested for CONFIG_MGEODE_LX not in final .config Requested value: # CONFIG_MGEODE_LX is not set Actual value: Value requested for CONFIG_MCYRIXIII not in final .config Requested value: # CONFIG_MCYRIXIII is not set Actual value: Value requested for CONFIG_MVIAC3_2 not in final .config Requested value: # CONFIG_MVIAC3_2 is not set Actual value: Value requested for CONFIG_MVIAC7 not in final .config Requested value: # CONFIG_MVIAC7 is not set Actual value: Value requested for CONFIG_X86_GENERIC not in final .config Requested value: # CONFIG_X86_GENERIC is not set Actual value: Value requested for CONFIG_X86_INTERNODE_CACHE_SHIFT not in final .config Requested value: CONFIG_X86_INTERNODE_CACHE_SHIFT=5 Actual value: CONFIG_X86_INTERNODE_CACHE_SHIFT=6 Value requested for CONFIG_X86_L1_CACHE_SHIFT not in final .config Requested value: CONFIG_X86_L1_CACHE_SHIFT=5 Actual value: CONFIG_X86_L1_CACHE_SHIFT=6 Value requested for CONFIG_X86_USE_PPRO_CHECKSUM not in final .config Requested value: CONFIG_X86_USE_PPRO_CHECKSUM=y Actual value: Value requested for CONFIG_X86_MINIMUM_CPU_FAMILY not in final .config Requested value: CONFIG_X86_MINIMUM_CPU_FAMILY=6 Actual value: CONFIG_X86_MINIMUM_CPU_FAMILY=64 Value requested for CONFIG_CPU_SUP_TRANSMETA_32 not in final .config Requested value: CONFIG_CPU_SUP_TRANSMETA_32=y Actual value: Value requested for CONFIG_CPU_SUP_VORTEX_32 not in final .config Requested value: CONFIG_CPU_SUP_VORTEX_32=y Actual value: Value requested for CONFIG_HPET_TIMER not in final .config Requested value: # CONFIG_HPET_TIMER is not set Actual value: CONFIG_HPET_TIMER=y Value requested for CONFIG_NR_CPUS_RANGE_END not in final .config Requested value: CONFIG_NR_CPUS_RANGE_END=8 Actual value: CONFIG_NR_CPUS_RANGE_END=512 Value requested for CONFIG_NR_CPUS_DEFAULT not in final .config Requested value: CONFIG_NR_CPUS_DEFAULT=8 Actual value: CONFIG_NR_CPUS_DEFAULT=64 Value requested for CONFIG_X86_ANCIENT_MCE not in final .config Requested value: # CONFIG_X86_ANCIENT_MCE is not set Actual value: Value requested for CONFIG_X86_LEGACY_VM86 not in final .config Requested value: # CONFIG_X86_LEGACY_VM86 is not set Actual value: Value requested for CONFIG_X86_ESPFIX32 not in final .config Requested value: CONFIG_X86_ESPFIX32=y Actual value: Value requested for CONFIG_TOSHIBA not in final .config Requested value: # CONFIG_TOSHIBA is not set Actual value: Value requested for CONFIG_X86_REBOOTFIXUPS not in final .config Requested value: # CONFIG_X86_REBOOTFIXUPS is not set Actual value: Value requested for CONFIG_MICROCODE_INITRD32 not in final .config Requested value: CONFIG_MICROCODE_INITRD32=y Actual value: Value requested for CONFIG_NOHIGHMEM not in final .config Requested value: # CONFIG_NOHIGHMEM is not set Actual value: Value requested for CONFIG_HIGHMEM4G not in final .config Requested value: CONFIG_HIGHMEM4G=y Actual value: Value requested for CONFIG_HIGHMEM64G not in final .config Requested value: # CONFIG_HIGHMEM64G is not set Actual value: Value requested for CONFIG_VMSPLIT_3G not in final .config Requested value: CONFIG_VMSPLIT_3G=y Actual value: Value requested for CONFIG_VMSPLIT_3G_OPT not in final .config Requested value: # CONFIG_VMSPLIT_3G_OPT is not set Actual value: Value requested for CONFIG_VMSPLIT_2G not in final .config Requested value: # CONFIG_VMSPLIT_2G is not set Actual value: Value requested for CONFIG_VMSPLIT_2G_OPT not in final .config Requested value: # CONFIG_VMSPLIT_2G_OPT is not set Actual value: Value requested for CONFIG_VMSPLIT_1G not in final .config Requested value: # CONFIG_VMSPLIT_1G is not set Actual value: Value requested for CONFIG_PAGE_OFFSET not in final .config Requested value: CONFIG_PAGE_OFFSET=0xC0000000 Actual value: Value requested for CONFIG_HIGHMEM not in final .config Requested value: CONFIG_HIGHMEM=y Actual value: Value requested for CONFIG_X86_PAE not in final .config Requested value: # CONFIG_X86_PAE is not set Actual value: Value requested for CONFIG_ARCH_FLATMEM_ENABLE not in final .config Requested value: CONFIG_ARCH_FLATMEM_ENABLE=y Actual value: Value requested for CONFIG_ARCH_SELECT_MEMORY_MODEL not in final .config Requested value: CONFIG_ARCH_SELECT_MEMORY_MODEL=y Actual value: Value requested for CONFIG_ILLEGAL_POINTER_VALUE not in final .config Requested value: CONFIG_ILLEGAL_POINTER_VALUE=0 Actual value: CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 Value requested for CONFIG_HIGHPTE not in final .config Requested value: # CONFIG_HIGHPTE is not set Actual value: Value requested for CONFIG_COMPAT_VDSO not in final .config Requested value: # CONFIG_COMPAT_VDSO is not set Actual value: Value requested for CONFIG_FUNCTION_PADDING_CFI not in final .config Requested value: CONFIG_FUNCTION_PADDING_CFI=0 Actual value: CONFIG_FUNCTION_PADDING_CFI=11 Value requested for CONFIG_FUNCTION_PADDING_BYTES not in final .config Requested value: CONFIG_FUNCTION_PADDING_BYTES=4 Actual value: CONFIG_FUNCTION_PADDING_BYTES=16 Value requested for CONFIG_APM not in final .config Requested value: # CONFIG_APM is not set Actual value: Value requested for CONFIG_X86_POWERNOW_K6 not in final .config Requested value: # CONFIG_X86_POWERNOW_K6 is not set Actual value: Value requested for CONFIG_X86_POWERNOW_K7 not in final .config Requested value: # CONFIG_X86_POWERNOW_K7 is not set Actual value: Value requested for CONFIG_X86_GX_SUSPMOD not in final .config Requested value: # CONFIG_X86_GX_SUSPMOD is not set Actual value: Value requested for CONFIG_X86_SPEEDSTEP_ICH not in final .config Requested value: # CONFIG_X86_SPEEDSTEP_ICH is not set Actual value: Value requested for CONFIG_X86_SPEEDSTEP_SMI not in final .config Requested value: # CONFIG_X86_SPEEDSTEP_SMI is not set Actual value: Value requested for CONFIG_X86_CPUFREQ_NFORCE2 not in final .config Requested value: # CONFIG_X86_CPUFREQ_NFORCE2 is not set Actual value: Value requested for CONFIG_X86_LONGRUN not in final .config Requested value: # CONFIG_X86_LONGRUN is not set Actual value: Value requested for CONFIG_X86_LONGHAUL not in final .config Requested value: # CONFIG_X86_LONGHAUL is not set Actual value: Value requested for CONFIG_X86_E_POWERSAVER not in final .config Requested value: # CONFIG_X86_E_POWERSAVER is not set Actual value: Value requested for CONFIG_PCI_GOBIOS not in final .config Requested value: # CONFIG_PCI_GOBIOS is not set Actual value: Value requested for CONFIG_PCI_GOMMCONFIG not in final .config Requested value: # CONFIG_PCI_GOMMCONFIG is not set Actual value: Value requested for CONFIG_PCI_GODIRECT not in final .config Requested value: # CONFIG_PCI_GODIRECT is not set Actual value: Value requested for CONFIG_PCI_GOANY not in final .config Requested value: CONFIG_PCI_GOANY=y Actual value: Value requested for CONFIG_PCI_BIOS not in final .config Requested value: CONFIG_PCI_BIOS=y Actual value: Value requested for CONFIG_ISA not in final .config Requested value: # CONFIG_ISA is not set Actual value: Value requested for CONFIG_SCx200 not in final .config Requested value: # CONFIG_SCx200 is not set Actual value: Value requested for CONFIG_OLPC not in final .config Requested value: # CONFIG_OLPC is not set Actual value: Value requested for CONFIG_ALIX not in final .config Requested value: # CONFIG_ALIX is not set Actual value: Value requested for CONFIG_NET5501 not in final .config Requested value: # CONFIG_NET5501 is not set Actual value: Value requested for CONFIG_GEOS not in final .config Requested value: # CONFIG_GEOS is not set Actual value: Value requested for CONFIG_COMPAT_32 not in final .config Requested value: CONFIG_COMPAT_32=y Actual value: Value requested for CONFIG_HAVE_ATOMIC_IOMAP not in final .config Requested value: CONFIG_HAVE_ATOMIC_IOMAP=y Actual value: Value requested for CONFIG_ARCH_32BIT_OFF_T not in final .config Requested value: CONFIG_ARCH_32BIT_OFF_T=y Actual value: Value requested for CONFIG_ARCH_WANT_IPC_PARSE_VERSION not in final .config Requested value: CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y Actual value: Value requested for CONFIG_MODULES_USE_ELF_REL not in final .config Requested value: CONFIG_MODULES_USE_ELF_REL=y Actual value: Value requested for CONFIG_ARCH_MMAP_RND_BITS not in final .config Requested value: CONFIG_ARCH_MMAP_RND_BITS=8 Actual value: CONFIG_ARCH_MMAP_RND_BITS=28 Value requested for CONFIG_CLONE_BACKWARDS not in final .config Requested value: CONFIG_CLONE_BACKWARDS=y Actual value: Value requested for CONFIG_OLD_SIGSUSPEND3 not in final .config Requested value: CONFIG_OLD_SIGSUSPEND3=y Actual value: Value requested for CONFIG_OLD_SIGACTION not in final .config Requested value: CONFIG_OLD_SIGACTION=y Actual value: Value requested for CONFIG_ARCH_SPLIT_ARG64 not in final .config Requested value: CONFIG_ARCH_SPLIT_ARG64=y Actual value: Value requested for CONFIG_FUNCTION_ALIGNMENT not in final .config Requested value: CONFIG_FUNCTION_ALIGNMENT=4 Actual value: CONFIG_FUNCTION_ALIGNMENT=16 Value requested for CONFIG_SELECT_MEMORY_MODEL not in final .config Requested value: CONFIG_SELECT_MEMORY_MODEL=y Actual value: Value requested for CONFIG_FLATMEM_MANUAL not in final .config Requested value: CONFIG_FLATMEM_MANUAL=y Actual value: Value requested for CONFIG_SPARSEMEM_MANUAL not in final .config Requested value: # CONFIG_SPARSEMEM_MANUAL is not set Actual value: Value requested for CONFIG_FLATMEM not in final .config Requested value: CONFIG_FLATMEM=y Actual value: Value requested for CONFIG_SPARSEMEM_STATIC not in final .config Requested value: CONFIG_SPARSEMEM_STATIC=y Actual value: Value requested for CONFIG_BOUNCE not in final .config Requested value: CONFIG_BOUNCE=y Actual value: Value requested for CONFIG_KMAP_LOCAL not in final .config Requested value: CONFIG_KMAP_LOCAL=y Actual value: Value requested for CONFIG_HOTPLUG_PCI_COMPAQ not in final .config Requested value: # CONFIG_HOTPLUG_PCI_COMPAQ is not set Actual value: Value requested for CONFIG_HOTPLUG_PCI_IBM not in final .config Requested value: # CONFIG_HOTPLUG_PCI_IBM is not set Actual value: Value requested for CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH not in final .config Requested value: CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y Actual value: Value requested for CONFIG_PCH_PHUB not in final .config Requested value: # CONFIG_PCH_PHUB is not set Actual value: Value requested for CONFIG_SCSI_NSP32 not in final .config Requested value: # CONFIG_SCSI_NSP32 is not set Actual value: Value requested for CONFIG_PATA_CS5520 not in final .config Requested value: # CONFIG_PATA_CS5520 is not set Actual value: Value requested for CONFIG_PATA_CS5530 not in final .config Requested value: # CONFIG_PATA_CS5530 is not set Actual value: Value requested for CONFIG_PATA_CS5535 not in final .config Requested value: # CONFIG_PATA_CS5535 is not set Actual value: Value requested for CONFIG_PATA_CS5536 not in final .config Requested value: # CONFIG_PATA_CS5536 is not set Actual value: Value requested for CONFIG_PATA_SC1200 not in final .config Requested value: # CONFIG_PATA_SC1200 is not set Actual value: Value requested for CONFIG_PCH_GBE not in final .config Requested value: # CONFIG_PCH_GBE is not set Actual value: Value requested for CONFIG_INPUT_WISTRON_BTNS not in final .config Requested value: # CONFIG_INPUT_WISTRON_BTNS is not set Actual value: Value requested for CONFIG_SERIAL_TIMBERDALE not in final .config Requested value: # CONFIG_SERIAL_TIMBERDALE is not set Actual value: Value requested for CONFIG_SERIAL_PCH_UART not in final .config Requested value: # CONFIG_SERIAL_PCH_UART is not set Actual value: Value requested for CONFIG_HW_RANDOM_GEODE not in final .config Requested value: CONFIG_HW_RANDOM_GEODE=y Actual value: Value requested for CONFIG_SONYPI not in final .config Requested value: # CONFIG_SONYPI is not set Actual value: Value requested for CONFIG_PC8736x_GPIO not in final .config Requested value: # CONFIG_PC8736x_GPIO is not set Actual value: Value requested for CONFIG_NSC_GPIO not in final .config Requested value: # CONFIG_NSC_GPIO is not set Actual value: Value requested for CONFIG_I2C_EG20T not in final .config Requested value: # CONFIG_I2C_EG20T is not set Actual value: Value requested for CONFIG_SCx200_ACB not in final .config Requested value: # CONFIG_SCx200_ACB is not set Actual value: Value requested for CONFIG_PTP_1588_CLOCK_PCH not in final .config Requested value: # CONFIG_PTP_1588_CLOCK_PCH is not set Actual value: Value requested for CONFIG_SBC8360_WDT not in final .config Requested value: # CONFIG_SBC8360_WDT is not set Actual value: Value requested for CONFIG_SBC7240_WDT not in final .config Requested value: # CONFIG_SBC7240_WDT is not set Actual value: Value requested for CONFIG_MFD_CS5535 not in final .config Requested value: # CONFIG_MFD_CS5535 is not set Actual value: Value requested for CONFIG_AGP_ALI not in final .config Requested value: # CONFIG_AGP_ALI is not set Actual value: Value requested for CONFIG_AGP_ATI not in final .config Requested value: # CONFIG_AGP_ATI is not set Actual value: Value requested for CONFIG_AGP_AMD not in final .config Requested value: # CONFIG_AGP_AMD is not set Actual value: Value requested for CONFIG_AGP_NVIDIA not in final .config Requested value: # CONFIG_AGP_NVIDIA is not set Actual value: Value requested for CONFIG_AGP_SWORKS not in final .config Requested value: # CONFIG_AGP_SWORKS is not set Actual value: Value requested for CONFIG_AGP_EFFICEON not in final .config Requested value: # CONFIG_AGP_EFFICEON is not set Actual value: Value requested for CONFIG_SND_PCM not in final .config Requested value: CONFIG_SND_PCM=y Actual value: CONFIG_SND_PCM=m Value requested for CONFIG_SND_HWDEP not in final .config Requested value: CONFIG_SND_HWDEP=y Actual value: CONFIG_SND_HWDEP=m Value requested for CONFIG_SND_DYNAMIC_MINORS not in final .config Requested value: # CONFIG_SND_DYNAMIC_MINORS is not set Actual value: CONFIG_SND_DYNAMIC_MINORS=y Value requested for CONFIG_SND_CS5530 not in final .config Requested value: # CONFIG_SND_CS5530 is not set Actual value: Value requested for CONFIG_SND_CS5535AUDIO not in final .config Requested value: # CONFIG_SND_CS5535AUDIO is not set Actual value: Value requested for CONFIG_SND_SIS7019 not in final .config Requested value: # CONFIG_SND_SIS7019 is not set Actual value: Value requested for CONFIG_SND_HDA not in final .config Requested value: CONFIG_SND_HDA=y Actual value: CONFIG_SND_HDA=m Value requested for CONFIG_SND_HDA_CORE not in final .config Requested value: CONFIG_SND_HDA_CORE=y Actual value: CONFIG_SND_HDA_CORE=m Value requested for CONFIG_SND_INTEL_DSP_CONFIG not in final .config Requested value: CONFIG_SND_INTEL_DSP_CONFIG=y Actual value: CONFIG_SND_INTEL_DSP_CONFIG=m Value requested for CONFIG_SND_INTEL_SOUNDWIRE_ACPI not in final .config Requested value: CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y Actual value: CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m Value requested for CONFIG_LEDS_OT200 not in final .config Requested value: # CONFIG_LEDS_OT200 is not set Actual value: Value requested for CONFIG_PCH_DMA not in final .config Requested value: # CONFIG_PCH_DMA is not set Actual value: Value requested for CONFIG_CLKSRC_I8253 not in final .config Requested value: CONFIG_CLKSRC_I8253=y Actual value: Value requested for CONFIG_MAILBOX not in final .config Requested value: # CONFIG_MAILBOX is not set Actual value: CONFIG_MAILBOX=y Value requested for CONFIG_CRYPTO_SERPENT_SSE2_586 not in final .config Requested value: # CONFIG_CRYPTO_SERPENT_SSE2_586 is not set Actual value: Value requested for CONFIG_CRYPTO_TWOFISH_586 not in final .config Requested value: # CONFIG_CRYPTO_TWOFISH_586 is not set Actual value: Value requested for CONFIG_CRYPTO_DEV_GEODE not in final .config Requested value: # CONFIG_CRYPTO_DEV_GEODE is not set Actual value: Value requested for CONFIG_CRYPTO_DEV_HIFN_795X not in final .config Requested value: # CONFIG_CRYPTO_DEV_HIFN_795X is not set Actual value: Value requested for CONFIG_CRYPTO_LIB_POLY1305_RSIZE not in final .config Requested value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1 Actual value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 Value requested for CONFIG_AUDIT_GENERIC not in final .config Requested value: CONFIG_AUDIT_GENERIC=y Actual value: Value requested for CONFIG_GENERIC_VDSO_32 not in final .config Requested value: CONFIG_GENERIC_VDSO_32=y Actual value: Value requested for CONFIG_DEBUG_KMAP_LOCAL not in final .config Requested value: # CONFIG_DEBUG_KMAP_LOCAL is not set Actual value: Value requested for CONFIG_DEBUG_HIGHMEM not in final .config Requested value: # CONFIG_DEBUG_HIGHMEM is not set Actual value: Value requested for CONFIG_HAVE_DEBUG_STACKOVERFLOW not in final .config Requested value: CONFIG_HAVE_DEBUG_STACKOVERFLOW=y Actual value: Value requested for CONFIG_DEBUG_STACKOVERFLOW not in final .config Requested value: # CONFIG_DEBUG_STACKOVERFLOW is not set Actual value: Value requested for CONFIG_HAVE_FUNCTION_GRAPH_TRACER not in final .config Requested value: CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y Actual value: Value requested for CONFIG_HAVE_FUNCTION_GRAPH_RETVAL not in final .config Requested value: CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y Actual value: Value requested for CONFIG_DRM_KUNIT_TEST not in final .config Requested value: CONFIG_DRM_KUNIT_TEST=m Actual value: Value requested for CONFIG_DRM_XE_WERROR not in final .config Requested value: CONFIG_DRM_XE_WERROR=y Actual value: Value requested for CONFIG_DRM_XE_DEBUG not in final .config Requested value: CONFIG_DRM_XE_DEBUG=y Actual value: Value requested for CONFIG_DRM_XE_DEBUG_MEM not in final .config Requested value: CONFIG_DRM_XE_DEBUG_MEM=y Actual value: Value requested for CONFIG_DRM_XE_KUNIT_TEST not in final .config Requested value: CONFIG_DRM_XE_KUNIT_TEST=m Actual value: ++ nproc + make -j48 ARCH=i386 olddefconfig GEN Makefile WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n] Selected by [m]: - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] # # configuration written to .config # ++ nproc + make -j48 ARCH=i386 SYNC include/config/auto.conf.cmd GEN Makefile WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n] Selected by [m]: - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n] Selected by [m]: - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n] Selected by [m]: - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] GEN Makefile WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h UPD include/generated/uapi/linux/version.h WRAP arch/x86/include/generated/uapi/asm/errno.h WRAP arch/x86/include/generated/uapi/asm/fcntl.h WRAP arch/x86/include/generated/uapi/asm/ioctl.h WRAP arch/x86/include/generated/uapi/asm/ioctls.h WRAP arch/x86/include/generated/uapi/asm/ipcbuf.h WRAP arch/x86/include/generated/uapi/asm/param.h WRAP arch/x86/include/generated/uapi/asm/poll.h WRAP arch/x86/include/generated/uapi/asm/resource.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h WRAP arch/x86/include/generated/uapi/asm/socket.h WRAP arch/x86/include/generated/uapi/asm/sockios.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h WRAP arch/x86/include/generated/uapi/asm/termbits.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h WRAP arch/x86/include/generated/uapi/asm/termios.h SYSTBL arch/x86/include/generated/asm/syscalls_32.h WRAP arch/x86/include/generated/uapi/asm/types.h UPD include/generated/compile.h HOSTCC arch/x86/tools/relocs_32.o HOSTCC arch/x86/tools/relocs_64.o HOSTCC arch/x86/tools/relocs_common.o WRAP arch/x86/include/generated/asm/early_ioremap.h WRAP arch/x86/include/generated/asm/mcs_spinlock.h WRAP arch/x86/include/generated/asm/irq_regs.h WRAP arch/x86/include/generated/asm/kmap_size.h WRAP arch/x86/include/generated/asm/local64.h HOSTCC scripts/kallsyms WRAP arch/x86/include/generated/asm/mmiowb.h HOSTCC scripts/sorttable WRAP arch/x86/include/generated/asm/module.lds.h HOSTCC scripts/asn1_compiler WRAP arch/x86/include/generated/asm/rwonce.h WRAP arch/x86/include/generated/asm/unaligned.h HOSTCC scripts/selinux/mdp/mdp HOSTCC scripts/selinux/genheaders/genheaders HOSTLD arch/x86/tools/relocs UPD include/config/kernel.release UPD include/generated/utsrelease.h CC scripts/mod/empty.o HOSTCC scripts/mod/mk_elfconfig CC scripts/mod/devicetable-offsets.s UPD scripts/mod/devicetable-offsets.h MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/modpost.o HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/sumversion.o HOSTCC scripts/mod/symsearch.o HOSTLD scripts/mod/modpost CC kernel/bounds.s CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-arch-fallback.h CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-instrumented.h CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-long.h UPD include/generated/timeconst.h UPD include/generated/bounds.h CC arch/x86/kernel/asm-offsets.s UPD include/generated/asm-offsets.h CALL /workspace/kernel/scripts/checksyscalls.sh LDS scripts/module.lds CC init/main.o CC ipc/util.o HOSTCC usr/gen_init_cpio CC ipc/msgutil.o CC init/do_mounts.o CC ipc/msg.o CC ipc/sem.o CC init/do_mounts_initrd.o AS arch/x86/lib/atomic64_cx8_32.o CC security/commoncap.o UPD init/utsversion-tmp.h CC ipc/shm.o CC certs/system_keyring.o CC io_uring/io_uring.o AS arch/x86/lib/checksum_32.o CC init/initramfs.o CC arch/x86/video/video-common.o CC ipc/syscall.o CC security/lsm_syscalls.o CC arch/x86/lib/cmdline.o AS arch/x86/lib/cmpxchg8b_emu.o CC io_uring/opdef.o CC init/calibrate.o CC arch/x86/realmode/init.o CC mm/filemap.o CC arch/x86/pci/i386.o CC arch/x86/power/cpu.o CC init/init_task.o CC security/integrity/iint.o AR arch/x86/crypto/built-in.a AR arch/x86/net/built-in.a CC security/keys/gc.o GEN security/selinux/flask.h security/selinux/av_permissions.h CC block/partitions/core.o AR virt/lib/built-in.a AR arch/x86/platform/atom/built-in.a CC arch/x86/events/amd/core.o CC arch/x86/kernel/fpu/init.o CC lib/math/div64.o AS arch/x86/realmode/rm/header.o CC net/core/sock.o CC arch/x86/mm/pat/set_memory.o AR arch/x86/virt/svm/built-in.a CC security/selinux/avc.o AR drivers/cache/built-in.a CC sound/core/seq/seq.o AR virt/built-in.a CC fs/notify/dnotify/dnotify.o CC fs/notify/inotify/inotify_fsnotify.o CC io_uring/kbuf.o CC net/core/request_sock.o AR arch/x86/platform/ce4100/built-in.a CC net/core/skbuff.o AR drivers/irqchip/built-in.a AS arch/x86/realmode/rm/trampoline_32.o CC arch/x86/platform/efi/memmap.o CC block/partitions/msdos.o AR arch/x86/virt/vmx/built-in.a AR arch/x86/entry/vsyscall/built-in.a CC arch/x86/entry/vdso/vma.o AS arch/x86/realmode/rm/stack.o AR arch/x86/virt/built-in.a AR drivers/bus/mhi/built-in.a AS arch/x86/realmode/rm/reboot.o AS arch/x86/realmode/rm/wakeup_asm.o AR drivers/bus/built-in.a CC kernel/sched/core.o CC sound/core/seq/seq_lock.o CC net/core/datagram.o CC arch/x86/realmode/rm/wakemain.o AR drivers/pwm/built-in.a CC arch/x86/lib/cpu.o CC crypto/asymmetric_keys/asymmetric_type.o CC lib/math/gcd.o CC drivers/pci/msi/pcidev_msi.o CC arch/x86/realmode/rm/video-mode.o CC lib/math/lcm.o CC crypto/asymmetric_keys/restrict.o CC lib/math/int_log.o AS arch/x86/realmode/rm/copy.o GEN usr/initramfs_data.cpio AS arch/x86/realmode/rm/bioscall.o HOSTCC certs/extract-cert CC arch/x86/kernel/fpu/bugs.o COPY usr/initramfs_inc_data AS usr/initramfs_data.o CC arch/x86/realmode/rm/regs.o CC lib/math/int_pow.o AR usr/built-in.a CC crypto/asymmetric_keys/signature.o CC arch/x86/realmode/rm/video-vga.o CC lib/math/int_sqrt.o CC arch/x86/kernel/fpu/core.o CC sound/core/seq/seq_clientmgr.o CC arch/x86/lib/delay.o CC arch/x86/realmode/rm/video-vesa.o CC lib/math/reciprocal_div.o CC fs/notify/inotify/inotify_user.o AR arch/x86/platform/geode/built-in.a CC arch/x86/platform/efi/quirks.o CC sound/core/seq/seq_memory.o CC arch/x86/realmode/rm/video-bios.o CC lib/math/rational.o CERT certs/x509_certificate_list CERT certs/signing_key.x509 AS certs/system_certificates.o CC net/core/stream.o AR arch/x86/video/built-in.a CC drivers/pci/msi/api.o AR certs/built-in.a CC arch/x86/mm/init.o CC arch/x86/mm/init_32.o PASYMS arch/x86/realmode/rm/pasyms.h CC security/integrity/integrity_audit.o CC arch/x86/pci/init.o LDS arch/x86/realmode/rm/realmode.lds CC crypto/api.o CC block/bdev.o CC block/fops.o CC block/bio.o LD arch/x86/realmode/rm/realmode.elf CC security/keys/key.o CC drivers/pci/msi/msi.o AS arch/x86/lib/getuser.o CC drivers/pci/msi/irqdomain.o CC arch/x86/platform/efi/efi.o RELOCS arch/x86/realmode/rm/realmode.relocs CC arch/x86/entry/vdso/extable.o CC mm/mempool.o CC arch/x86/power/hibernate_32.o CC security/keys/keyring.o AR fs/notify/dnotify/built-in.a GEN arch/x86/lib/inat-tables.c OBJCOPY arch/x86/realmode/rm/realmode.bin CC block/partitions/efi.o CC crypto/asymmetric_keys/public_key.o AS arch/x86/realmode/rmpiggy.o CC arch/x86/lib/insn-eval.o AR arch/x86/realmode/built-in.a AR arch/x86/platform/iris/built-in.a CC kernel/sched/fair.o CC arch/x86/platform/intel/iosf_mbi.o CC kernel/sched/build_policy.o CC drivers/video/console/dummycon.o AR lib/math/built-in.a CC drivers/video/console/vgacon.o CC lib/crypto/mpi/generic_mpih-lshift.o CC ipc/ipc_sysctl.o CC lib/crypto/memneq.o CC net/core/scm.o CC mm/oom_kill.o CC arch/x86/mm/fault.o CC arch/x86/events/amd/lbr.o CC arch/x86/mm/pat/memtype.o CC init/version.o CC sound/core/seq/seq_queue.o CC arch/x86/pci/pcbios.o CC arch/x86/pci/mmconfig_32.o AR security/integrity/built-in.a CC kernel/locking/mutex.o CC lib/crypto/utils.o AS arch/x86/power/hibernate_asm_32.o AR fs/notify/inotify/built-in.a CC kernel/locking/semaphore.o AR fs/notify/fanotify/built-in.a ASN.1 crypto/asymmetric_keys/x509.asn1.[ch] ASN.1 crypto/asymmetric_keys/x509_akid.asn1.[ch] CC fs/notify/fsnotify.o CC crypto/cipher.o CC crypto/asymmetric_keys/x509_loader.o CC kernel/locking/rwsem.o CC arch/x86/power/hibernate.o CC kernel/locking/percpu-rwsem.o CC kernel/sched/build_utility.o AR init/built-in.a CC crypto/asymmetric_keys/x509_public_key.o AR drivers/idle/built-in.a CC security/selinux/hooks.o LDS arch/x86/entry/vdso/vdso32/vdso32.lds CC kernel/locking/spinlock.o CC arch/x86/kernel/fpu/regset.o CC ipc/mqueue.o AS arch/x86/entry/vdso/vdso32/note.o CC arch/x86/events/intel/core.o AR arch/x86/platform/intel/built-in.a CC arch/x86/events/zhaoxin/core.o CC mm/fadvise.o AS arch/x86/entry/vdso/vdso32/system_call.o AR drivers/pci/msi/built-in.a CC lib/crypto/mpi/generic_mpih-mul1.o AS arch/x86/entry/vdso/vdso32/sigreturn.o CC arch/x86/entry/vdso/vdso32/vclock_gettime.o CC drivers/pci/pcie/portdrv.o CC ipc/namespace.o CC arch/x86/lib/insn.o CC sound/core/seq/seq_fifo.o AR block/partitions/built-in.a CC arch/x86/lib/kaslr.o CC lib/crypto/mpi/generic_mpih-mul2.o CC arch/x86/lib/memcpy_32.o CC arch/x86/kernel/fpu/signal.o CC security/keys/keyctl.o CC arch/x86/platform/efi/efi_32.o CC drivers/pci/pcie/rcec.o CC fs/nfs_common/nfsacl.o CC block/elevator.o CC sound/core/sound.o CC arch/x86/events/amd/ibs.o CC fs/iomap/trace.o CC security/keys/permission.o AS arch/x86/lib/memmove_32.o CC arch/x86/lib/misc.o CC kernel/power/qos.o AR drivers/video/console/built-in.a CC arch/x86/lib/pc-conf-reg.o CC drivers/video/backlight/backlight.o CC arch/x86/pci/direct.o CC kernel/power/main.o CC sound/core/seq/seq_prioq.o ASN.1 crypto/asymmetric_keys/pkcs7.asn1.[ch] AR drivers/video/fbdev/core/built-in.a CC crypto/asymmetric_keys/pkcs7_trust.o AR arch/x86/power/built-in.a CC arch/x86/mm/pat/memtype_interval.o AR drivers/video/fbdev/omap/built-in.a CC drivers/video/aperture.o CC crypto/compress.o CC crypto/algapi.o AR drivers/video/fbdev/omap2/omapfb/dss/built-in.a AR drivers/video/fbdev/omap2/omapfb/displays/built-in.a AR drivers/video/fbdev/omap2/omapfb/built-in.a CC security/keys/process_keys.o CC ipc/mq_sysctl.o AR drivers/video/fbdev/omap2/built-in.a AS arch/x86/lib/putuser.o AR drivers/video/fbdev/built-in.a CC fs/notify/notification.o CC lib/crypto/mpi/generic_mpih-mul3.o CC net/core/gen_stats.o CC drivers/video/cmdline.o AS arch/x86/lib/retpoline.o CC security/keys/request_key.o CC arch/x86/lib/string_32.o CC arch/x86/entry/vdso/vdso32/vgetcpu.o CC security/keys/request_key_auth.o CC net/core/gen_estimator.o CC security/keys/user_defined.o CC net/ethernet/eth.o CC arch/x86/lib/strstr_32.o HOSTCC arch/x86/entry/vdso/vdso2c CC drivers/pci/pcie/aspm.o CC drivers/video/nomodeset.o CC arch/x86/lib/usercopy.o AR arch/x86/events/zhaoxin/built-in.a AR drivers/pci/pwrctl/built-in.a CC crypto/asymmetric_keys/pkcs7_verify.o CC arch/x86/events/core.o CC fs/nfs_common/grace.o CC arch/x86/entry/vdso/vdso32-setup.o AS arch/x86/platform/efi/efi_stub_32.o CC arch/x86/platform/efi/runtime-map.o CC arch/x86/pci/mmconfig-shared.o CC kernel/power/console.o CC kernel/locking/osq_lock.o CC drivers/pci/pcie/pme.o CC arch/x86/kernel/fpu/xstate.o CC crypto/scatterwalk.o CC sound/core/seq/seq_timer.o CC arch/x86/lib/usercopy_32.o AR arch/x86/mm/pat/built-in.a CC arch/x86/events/amd/uncore.o CC arch/x86/mm/ioremap.o CC lib/crypto/mpi/generic_mpih-rshift.o CC kernel/printk/printk.o CC kernel/printk/printk_safe.o VDSO arch/x86/entry/vdso/vdso32.so.dbg CC kernel/locking/qspinlock.o CC kernel/irq/irqdesc.o OBJCOPY arch/x86/entry/vdso/vdso32.so VDSO2C arch/x86/entry/vdso/vdso-image-32.c CC arch/x86/entry/vdso/vdso-image-32.o CC block/blk-core.o CC crypto/asymmetric_keys/x509.asn1.o CC fs/notify/group.o CC lib/crypto/mpi/generic_mpih-sub1.o CC crypto/asymmetric_keys/x509_akid.asn1.o CC kernel/irq/handle.o CC arch/x86/mm/extable.o CC mm/maccess.o CC crypto/asymmetric_keys/x509_cert_parser.o CC kernel/irq/manage.o AR drivers/video/backlight/built-in.a CC drivers/video/hdmi.o CC security/keys/proc.o AR ipc/built-in.a CC arch/x86/lib/msr-smp.o CC lib/crypto/mpi/generic_mpih-add1.o CC sound/core/seq/seq_system.o CC fs/iomap/iter.o AR arch/x86/entry/vdso/built-in.a CC mm/page-writeback.o AS arch/x86/entry/entry.o CC mm/folio-compat.o AS arch/x86/entry/entry_32.o CC mm/readahead.o AR fs/nfs_common/built-in.a CC kernel/rcu/update.o CC security/keys/sysctl.o CC fs/notify/mark.o CC arch/x86/entry/syscall_32.o AR arch/x86/platform/efi/built-in.a CC kernel/power/process.o CC net/core/net_namespace.o AR arch/x86/platform/intel-mid/built-in.a CC kernel/power/suspend.o AR arch/x86/platform/intel-quark/built-in.a CC net/core/secure_seq.o CC arch/x86/lib/cache-smp.o CC kernel/locking/rtmutex_api.o AR arch/x86/platform/olpc/built-in.a CC net/core/flow_dissector.o AR arch/x86/platform/scx200/built-in.a CC fs/quota/dquot.o AR arch/x86/platform/ts5500/built-in.a AR arch/x86/platform/uv/built-in.a AR arch/x86/platform/built-in.a CC kernel/locking/qrwlock.o CC crypto/proc.o CC lib/crypto/mpi/ec.o CC mm/swap.o CC arch/x86/pci/fixup.o CC arch/x86/lib/msr.o CC io_uring/rsrc.o CC crypto/asymmetric_keys/pkcs7.asn1.o CC kernel/irq/spurious.o CC arch/x86/mm/mmap.o CC crypto/asymmetric_keys/pkcs7_parser.o CC sound/core/seq/seq_ports.o CC fs/proc/task_mmu.o AR drivers/pci/pcie/built-in.a CC kernel/rcu/sync.o CC drivers/pci/hotplug/pci_hotplug_core.o CC drivers/pci/hotplug/acpi_pcihp.o AR kernel/livepatch/built-in.a AR net/ethernet/built-in.a CC kernel/dma/mapping.o CC kernel/entry/common.o CC kernel/module/main.o CC security/keys/keyctl_pkey.o CC kernel/module/strict_rwx.o AR drivers/video/built-in.a CC kernel/module/kmod.o CC fs/iomap/buffered-io.o CC arch/x86/entry/common.o AR arch/x86/events/amd/built-in.a CC kernel/rcu/srcutree.o CC arch/x86/events/probe.o AR drivers/char/ipmi/built-in.a CC kernel/entry/syscall_user_dispatch.o AR arch/x86/kernel/fpu/built-in.a CC arch/x86/kernel/cpu/mce/core.o AS arch/x86/entry/thunk.o AR crypto/asymmetric_keys/built-in.a CC arch/x86/kernel/cpu/mce/severity.o CC arch/x86/kernel/cpu/mtrr/mtrr.o CC crypto/aead.o CC arch/x86/mm/pgtable.o CC fs/notify/fdinfo.o CC arch/x86/kernel/cpu/mtrr/if.o CC arch/x86/mm/physaddr.o AR kernel/locking/built-in.a AR drivers/pci/controller/dwc/built-in.a AS arch/x86/lib/msr-reg.o AR drivers/pci/controller/mobiveil/built-in.a CC kernel/time/time.o CC arch/x86/lib/msr-reg-export.o AR drivers/pci/controller/plda/built-in.a CC sound/core/seq/seq_info.o AR drivers/pci/controller/built-in.a AS arch/x86/lib/hweight.o CC kernel/power/hibernate.o AR drivers/pci/switch/built-in.a AR security/keys/built-in.a CC arch/x86/lib/iomem.o CC kernel/irq/resend.o CC arch/x86/events/utils.o CC arch/x86/pci/acpi.o CC arch/x86/events/rapl.o CC security/min_addr.o CC sound/core/seq/seq_dummy.o CC arch/x86/events/msr.o CC kernel/power/snapshot.o CC kernel/power/swap.o CC lib/crypto/mpi/mpicoder.o AR drivers/pci/hotplug/built-in.a CC drivers/pci/access.o CC kernel/power/user.o CC kernel/time/timer.o CC security/security.o AR arch/x86/entry/built-in.a CC security/lsm_audit.o CC arch/x86/kernel/acpi/boot.o CC kernel/dma/direct.o CC arch/x86/events/intel/bts.o AR kernel/entry/built-in.a CC security/device_cgroup.o CC arch/x86/lib/atomic64_32.o CC arch/x86/kernel/cpu/mce/genpool.o CC io_uring/notif.o AR fs/notify/built-in.a CC kernel/printk/nbcon.o CC drivers/pnp/pnpacpi/core.o CC drivers/acpi/acpica/dsargs.o CC kernel/time/hrtimer.o CC arch/x86/lib/inat.o CC kernel/irq/chip.o CC arch/x86/kernel/cpu/mtrr/generic.o CC kernel/time/timekeeping.o CC arch/x86/mm/tlb.o CC arch/x86/kernel/cpu/mtrr/cleanup.o AR drivers/amba/built-in.a CC block/blk-sysfs.o AR sound/core/seq/built-in.a CC arch/x86/kernel/cpu/mtrr/amd.o CC crypto/geniv.o CC sound/core/init.o AR arch/x86/lib/built-in.a CC kernel/irq/dummychip.o AR arch/x86/lib/lib.a CC drivers/acpi/acpica/dscontrol.o CC arch/x86/kernel/cpu/mtrr/cyrix.o CC security/selinux/selinuxfs.o AR kernel/sched/built-in.a CC arch/x86/kernel/cpu/mce/intel.o CC arch/x86/mm/cpu_entry_area.o CC mm/truncate.o CC kernel/power/poweroff.o CC fs/quota/quota_v2.o CC arch/x86/pci/legacy.o AR sound/i2c/other/built-in.a AR sound/i2c/built-in.a AR sound/drivers/opl3/built-in.a CC block/blk-flush.o CC lib/crypto/mpi/mpi-add.o CC drivers/acpi/acpica/dsdebug.o AR sound/drivers/opl4/built-in.a CC fs/proc/inode.o AR sound/drivers/mpu401/built-in.a CC drivers/pnp/core.o AR sound/drivers/vx/built-in.a CC kernel/printk/printk_ringbuffer.o AR sound/drivers/pcsp/built-in.a CC fs/proc/root.o AR sound/drivers/built-in.a CC drivers/pci/bus.o CC kernel/rcu/tree.o CC drivers/pnp/card.o CC drivers/acpi/acpica/dsfield.o CC drivers/pnp/pnpacpi/rsparser.o CC drivers/pci/probe.o CC kernel/irq/devres.o CC net/core/sysctl_net_core.o CC net/core/dev.o CC net/core/dev_addr_lists.o CC security/selinux/netlink.o CC mm/vmscan.o CC kernel/dma/ops_helpers.o CC mm/shrinker.o CC arch/x86/kernel/cpu/mce/amd.o AR drivers/clk/actions/built-in.a CC arch/x86/events/intel/ds.o CC arch/x86/events/intel/knc.o AR drivers/clk/analogbits/built-in.a CC drivers/acpi/acpica/dsinit.o AR drivers/clk/bcm/built-in.a CC drivers/dma/dw/core.o AR drivers/clk/imgtec/built-in.a AR drivers/soc/apple/built-in.a CC fs/iomap/direct-io.o AR drivers/clk/imx/built-in.a AR drivers/soc/aspeed/built-in.a AR drivers/clk/ingenic/built-in.a AR drivers/soc/bcm/built-in.a CC fs/quota/quota_tree.o CC arch/x86/kernel/acpi/sleep.o CC kernel/module/tree_lookup.o AR drivers/clk/mediatek/built-in.a AR drivers/soc/fsl/built-in.a AS arch/x86/kernel/acpi/wakeup_32.o AR drivers/clk/microchip/built-in.a AR drivers/soc/fujitsu/built-in.a CC arch/x86/kernel/acpi/cstate.o AR drivers/clk/mstar/built-in.a AR drivers/soc/hisilicon/built-in.a CC arch/x86/kernel/cpu/mtrr/centaur.o CC drivers/dma/dw/dw.o AR drivers/clk/mvebu/built-in.a AR drivers/soc/imx/built-in.a CC kernel/printk/sysctl.o CC fs/iomap/fiemap.o CC crypto/lskcipher.o CC sound/core/memory.o AR drivers/clk/ralink/built-in.a AR drivers/soc/ixp4xx/built-in.a CC drivers/acpi/acpica/dsmethod.o CC arch/x86/pci/irq.o CC lib/crypto/mpi/mpi-bit.o AR drivers/clk/renesas/built-in.a AR drivers/soc/loongson/built-in.a AR drivers/clk/socfpga/built-in.a CC arch/x86/mm/maccess.o AR drivers/soc/mediatek/built-in.a AR drivers/clk/sophgo/built-in.a CC drivers/virtio/virtio.o CC drivers/virtio/virtio_ring.o CC kernel/irq/autoprobe.o AR drivers/clk/sprd/built-in.a AR drivers/soc/microchip/built-in.a AR drivers/clk/starfive/built-in.a AR drivers/soc/nuvoton/built-in.a AR drivers/clk/sunxi-ng/built-in.a AR drivers/soc/pxa/built-in.a AR drivers/soc/amlogic/built-in.a AR drivers/clk/ti/built-in.a CC io_uring/tctx.o AR drivers/soc/qcom/built-in.a AR drivers/clk/versatile/built-in.a AR drivers/soc/renesas/built-in.a CC kernel/irq/irqdomain.o CC block/blk-settings.o AR drivers/clk/xilinx/built-in.a AR drivers/soc/rockchip/built-in.a AR drivers/clk/built-in.a CC drivers/acpi/acpica/dsmthdat.o AR drivers/soc/sunxi/built-in.a CC fs/proc/base.o AR drivers/soc/ti/built-in.a CC kernel/irq/proc.o CC kernel/irq/migration.o AR kernel/power/built-in.a AR drivers/soc/xilinx/built-in.a CC drivers/acpi/acpica/dsobject.o AR kernel/printk/built-in.a AR drivers/soc/built-in.a CC drivers/acpi/acpica/dsopcode.o CC kernel/irq/cpuhotplug.o CC drivers/tty/vt/vt_ioctl.o AR drivers/acpi/pmic/built-in.a CC arch/x86/mm/pgprot.o CC drivers/acpi/dptf/int340x_thermal.o CC kernel/dma/dummy.o AR drivers/pnp/pnpacpi/built-in.a CC kernel/time/ntp.o CC drivers/pnp/driver.o CC kernel/irq/pm.o CC kernel/module/kallsyms.o CC kernel/time/clocksource.o CC arch/x86/mm/pgtable_32.o CC arch/x86/kernel/cpu/mtrr/legacy.o AR net/802/built-in.a CC kernel/module/procfs.o CC kernel/irq/msi.o CC drivers/tty/hvc/hvc_console.o AR arch/x86/kernel/acpi/built-in.a CC kernel/futex/core.o CC drivers/tty/serial/8250/8250_core.o CC kernel/futex/syscalls.o AR drivers/tty/ipwireless/built-in.a CC sound/core/control.o CC sound/core/misc.o CC crypto/skcipher.o CC drivers/acpi/acpica/dspkginit.o CC io_uring/filetable.o CC lib/crypto/mpi/mpi-cmp.o CC lib/crypto/mpi/mpi-sub-ui.o CC fs/iomap/seek.o CC arch/x86/events/intel/lbr.o CC fs/quota/quota.o AR drivers/acpi/dptf/built-in.a CC mm/shmem.o CC lib/crypto/chacha.o CC mm/util.o CC security/selinux/nlmsgtab.o CC crypto/seqiv.o AR arch/x86/kernel/cpu/mtrr/built-in.a AR sound/isa/ad1816a/built-in.a CC drivers/dma/dw/idma32.o CC fs/iomap/swapfile.o AR sound/pci/ac97/built-in.a AR sound/isa/ad1848/built-in.a CC kernel/dma/remap.o AR sound/pci/ali5451/built-in.a AR sound/pci/au88x0/built-in.a AR sound/isa/cs423x/built-in.a CC drivers/pnp/resource.o AR sound/pci/asihpi/built-in.a CC drivers/dma/dw/acpi.o AR sound/isa/es1688/built-in.a CC drivers/dma/hsu/hsu.o AR sound/pci/aw2/built-in.a AR sound/pci/ctxfi/built-in.a CC block/blk-ioc.o AR sound/isa/galaxy/built-in.a AR sound/isa/gus/built-in.a CC io_uring/rw.o AR sound/pci/ca0106/built-in.a AR sound/isa/msnd/built-in.a AR sound/pci/cs46xx/built-in.a AR sound/isa/opti9xx/built-in.a AR sound/pci/cs5535audio/built-in.a AR sound/isa/sb/built-in.a CC drivers/pci/host-bridge.o AR sound/pci/lola/built-in.a AR sound/isa/wavefront/built-in.a CC security/selinux/netif.o AR sound/pci/lx6464es/built-in.a CC drivers/acpi/acpica/dsutils.o AR sound/isa/wss/built-in.a AR sound/pci/echoaudio/built-in.a AR sound/isa/built-in.a AR sound/pci/emu10k1/built-in.a CC kernel/time/jiffies.o CC arch/x86/kernel/apic/apic.o AR sound/pci/hda/built-in.a CC kernel/time/timer_list.o CC [M] sound/pci/hda/hda_bind.o CC arch/x86/mm/iomap_32.o CC arch/x86/kernel/apic/apic_common.o CC arch/x86/pci/common.o CC arch/x86/kernel/apic/apic_noop.o CC drivers/tty/vt/vc_screen.o CC kernel/module/sysfs.o CC arch/x86/kernel/cpu/mce/threshold.o CC lib/crypto/aes.o CC block/blk-map.o CC lib/crypto/mpi/mpi-div.o CC drivers/pnp/manager.o CC drivers/acpi/acpica/dswexec.o AR drivers/dma/idxd/built-in.a AR drivers/tty/hvc/built-in.a CC drivers/tty/tty_io.o CC drivers/tty/n_tty.o CC arch/x86/mm/hugetlbpage.o CC drivers/virtio/virtio_anchor.o CC security/selinux/netnode.o CC net/core/dst.o CC crypto/echainiv.o CC drivers/tty/serial/8250/8250_platform.o CC kernel/futex/pi.o CC io_uring/net.o AR kernel/dma/built-in.a CC drivers/tty/serial/8250/8250_pnp.o CC drivers/tty/serial/8250/8250_rsa.o CC arch/x86/mm/dump_pagetables.o CC security/selinux/netport.o CC [M] sound/pci/hda/hda_codec.o AR drivers/dma/dw/built-in.a AR fs/iomap/built-in.a CC arch/x86/pci/early.o CC drivers/pci/remove.o CC fs/kernfs/mount.o CC kernel/irq/affinity.o CC drivers/tty/serial/8250/8250_port.o CC fs/kernfs/inode.o CC kernel/cgroup/cgroup.o CC drivers/acpi/acpica/dswload.o CC fs/quota/kqid.o AR drivers/dma/hsu/built-in.a CC kernel/cgroup/rstat.o CC drivers/tty/serial/8250/8250_dma.o AR drivers/dma/mediatek/built-in.a CC security/selinux/status.o AR drivers/dma/qcom/built-in.a CC kernel/time/timeconv.o CC kernel/time/timecounter.o AR drivers/dma/stm32/built-in.a AR drivers/dma/ti/built-in.a CC kernel/time/alarmtimer.o AR drivers/dma/xilinx/built-in.a CC drivers/pnp/support.o CC drivers/dma/dmaengine.o CC lib/crypto/mpi/mpi-inv.o CC drivers/pnp/interface.o AR kernel/module/built-in.a CC drivers/tty/serial/8250/8250_dwlib.o CC arch/x86/events/intel/p4.o CC drivers/virtio/virtio_pci_modern_dev.o CC sound/core/device.o CC fs/proc/generic.o CC block/blk-merge.o CC drivers/tty/vt/selection.o CC arch/x86/mm/highmem_32.o CC crypto/ahash.o CC kernel/irq/matrix.o CC security/selinux/ss/ebitmap.o CC kernel/trace/trace_clock.o CC arch/x86/events/intel/p6.o CC drivers/acpi/acpica/dswload2.o CC [M] sound/pci/hda/hda_jack.o CC drivers/tty/vt/keyboard.o CC lib/crypto/arc4.o CC fs/quota/netlink.o CC kernel/futex/requeue.o CC drivers/acpi/x86/apple.o CC arch/x86/pci/bus_numa.o CC drivers/acpi/x86/cmos_rtc.o CC arch/x86/kernel/apic/ipi.o AR arch/x86/kernel/cpu/mce/built-in.a CC arch/x86/kernel/cpu/microcode/core.o CC drivers/pci/pci.o CC arch/x86/kernel/cpu/microcode/intel.o CC sound/core/info.o CC drivers/pnp/quirks.o CC net/core/netevent.o CC fs/kernfs/dir.o CC lib/crypto/mpi/mpi-mod.o CC drivers/tty/serial/serial_core.o CC kernel/trace/ring_buffer.o CC fs/proc/array.o CC drivers/acpi/acpica/dswscope.o CC fs/proc/fd.o CC lib/crypto/gf128mul.o AR sound/pci/ice1712/built-in.a CC lib/crypto/blake2s.o CC lib/crypto/blake2s-generic.o AR arch/x86/mm/built-in.a CC [M] sound/pci/hda/hda_auto_parser.o CC drivers/virtio/virtio_pci_legacy_dev.o CC arch/x86/kernel/cpu/cacheinfo.o CC kernel/futex/waitwake.o CC arch/x86/kernel/apic/vector.o CC drivers/char/hw_random/core.o CC drivers/acpi/x86/lpss.o CC arch/x86/pci/amd_bus.o CC kernel/time/posix-timers.o AR drivers/iommu/amd/built-in.a AR drivers/iommu/intel/built-in.a CC kernel/rcu/rcu_segcblist.o CC drivers/tty/tty_ioctl.o CC kernel/time/posix-cpu-timers.o CC arch/x86/events/intel/pt.o CC arch/x86/events/intel/uncore.o AR drivers/iommu/arm/arm-smmu/built-in.a CC drivers/tty/serial/8250/8250_pcilib.o AR drivers/iommu/arm/arm-smmu-v3/built-in.a AR drivers/iommu/arm/built-in.a CC kernel/cgroup/namespace.o AR drivers/iommu/iommufd/built-in.a CC kernel/cgroup/cgroup-v1.o CC drivers/iommu/iommu.o CC drivers/dma/virt-dma.o CC drivers/acpi/acpica/dswstate.o AR fs/quota/built-in.a CC drivers/pci/pci-driver.o AR drivers/gpu/host1x/built-in.a CC crypto/shash.o CC mm/mmzone.o CC drivers/connector/cn_queue.o CC arch/x86/kernel/cpu/microcode/amd.o CC drivers/base/power/sysfs.o CC lib/crypto/mpi/mpi-mul.o CC drivers/connector/connector.o CC sound/core/isadma.o CC drivers/connector/cn_proc.o CC drivers/pnp/system.o CC security/selinux/ss/hashtab.o AR drivers/gpu/drm/tests/built-in.a AR drivers/gpu/drm/arm/built-in.a AR kernel/irq/built-in.a CC drivers/base/power/generic_ops.o CC drivers/gpu/drm/display/drm_display_helper_mod.o CC io_uring/poll.o CC drivers/tty/tty_ldisc.o CC drivers/gpu/drm/ttm/ttm_tt.o CC drivers/virtio/virtio_pci_modern.o AR kernel/rcu/built-in.a CC drivers/tty/serial/serial_base_bus.o CC drivers/acpi/acpica/evevent.o CC drivers/gpu/drm/display/drm_dp_dual_mode_helper.o AR kernel/futex/built-in.a AR sound/pci/korg1212/built-in.a AR sound/pci/mixart/built-in.a CC [M] sound/pci/hda/hda_sysfs.o AR sound/pci/nm256/built-in.a CC block/blk-timeout.o CC drivers/virtio/virtio_pci_common.o CC drivers/char/hw_random/intel-rng.o AR arch/x86/pci/built-in.a CC fs/kernfs/file.o CC fs/proc/proc_tty.o CC drivers/tty/serial/8250/8250_early.o CC mm/vmstat.o CC drivers/acpi/x86/s2idle.o CC drivers/tty/vt/vt.o CC drivers/tty/serial/8250/8250_exar.o CC drivers/dma/acpi-dma.o CC sound/core/vmaster.o COPY drivers/tty/vt/defkeymap.c CC fs/kernfs/symlink.o CC security/selinux/ss/symtab.o AR sound/pci/oxygen/built-in.a CC drivers/gpu/drm/display/drm_dp_helper.o CC mm/backing-dev.o CC fs/proc/cmdline.o AR sound/pci/pcxhr/built-in.a AR sound/pci/riptide/built-in.a AR drivers/pnp/built-in.a CC lib/crypto/mpi/mpih-cmp.o AR sound/pci/rme9652/built-in.a CC lib/crypto/mpi/mpih-div.o CC mm/mm_init.o CC drivers/base/power/common.o CC drivers/gpu/drm/display/drm_dp_mst_topology.o CC drivers/acpi/acpica/evgpe.o AR arch/x86/kernel/cpu/microcode/built-in.a CC arch/x86/kernel/cpu/scattered.o CC security/selinux/ss/sidtab.o CC kernel/time/posix-clock.o CC crypto/akcipher.o CC drivers/block/loop.o AR drivers/misc/eeprom/built-in.a CC drivers/block/virtio_blk.o AR drivers/misc/cb710/built-in.a AR drivers/misc/ti-st/built-in.a AR drivers/misc/lis3lv02d/built-in.a AR sound/pci/trident/built-in.a AR drivers/misc/cardreader/built-in.a CC drivers/tty/serial/serial_ctrl.o AR drivers/misc/keba/built-in.a AR drivers/misc/built-in.a AR drivers/mfd/built-in.a CC fs/proc/consoles.o CC drivers/acpi/acpica/evgpeblk.o CC drivers/char/hw_random/amd-rng.o CC drivers/tty/tty_buffer.o CC drivers/gpu/drm/ttm/ttm_bo.o CC drivers/tty/serial/8250/8250_lpss.o CC block/blk-lib.o CC [M] sound/pci/hda/hda_controller.o CC drivers/char/hw_random/geode-rng.o CC drivers/acpi/x86/utils.o CC drivers/pci/search.o CC sound/core/ctljack.o CC arch/x86/kernel/apic/init.o CC arch/x86/events/intel/uncore_nhmex.o AR drivers/connector/built-in.a CC drivers/gpu/drm/ttm/ttm_bo_util.o CC arch/x86/kernel/cpu/topology_common.o CC fs/proc/cpuinfo.o CC arch/x86/kernel/cpu/topology_ext.o CC drivers/acpi/x86/blacklist.o CC drivers/gpu/drm/ttm/ttm_bo_vm.o CC arch/x86/kernel/cpu/topology_amd.o CC arch/x86/events/intel/uncore_snb.o CC drivers/base/power/qos.o CC drivers/virtio/virtio_pci_legacy.o CC drivers/tty/serial/serial_port.o AR drivers/dma/built-in.a CC drivers/virtio/virtio_pci_admin_legacy_io.o AR sound/pci/ymfpci/built-in.a AR sound/pci/vx222/built-in.a CC drivers/pci/rom.o CC kernel/cgroup/freezer.o CC drivers/acpi/acpica/evgpeinit.o AR fs/kernfs/built-in.a CC drivers/base/power/runtime.o CC lib/crypto/mpi/mpih-mul.o CC arch/x86/kernel/apic/hw_nmi.o CC sound/core/jack.o CC drivers/tty/tty_port.o AR drivers/nfc/built-in.a CC drivers/tty/serial/earlycon.o CC drivers/iommu/iommu-traces.o CC drivers/char/agp/backend.o CC drivers/iommu/iommu-sysfs.o AR drivers/acpi/x86/built-in.a CC drivers/base/power/wakeirq.o CC kernel/trace/trace.o CC kernel/time/itimer.o CC crypto/sig.o CC drivers/base/power/main.o CC arch/x86/kernel/cpu/common.o CC crypto/kpp.o CC arch/x86/kernel/apic/io_apic.o CC drivers/char/hw_random/via-rng.o CC drivers/pci/setup-res.o CC fs/proc/devices.o CC drivers/tty/tty_mutex.o CC drivers/tty/serial/8250/8250_mid.o CC io_uring/eventfd.o CC mm/percpu.o CC drivers/pci/irq.o CC drivers/gpu/drm/display/drm_dsc_helper.o CC block/blk-mq.o CC drivers/acpi/acpica/evgpeutil.o ASN.1 crypto/rsapubkey.asn1.[ch] CC fs/sysfs/file.o CC security/selinux/ss/avtab.o CC fs/sysfs/dir.o CC block/blk-mq-tag.o CC drivers/virtio/virtio_input.o CC drivers/pci/vpd.o CC drivers/gpu/drm/ttm/ttm_module.o CC drivers/acpi/acpica/evglock.o CC drivers/char/agp/generic.o AR drivers/char/hw_random/built-in.a CC drivers/char/mem.o CC drivers/base/power/wakeup.o CC arch/x86/kernel/apic/msi.o CC arch/x86/events/intel/uncore_snbep.o AR drivers/block/built-in.a CC drivers/char/random.o CC drivers/char/misc.o CC sound/core/timer.o CC drivers/gpu/drm/ttm/ttm_execbuf_util.o CC fs/sysfs/symlink.o CC drivers/char/virtio_console.o CC drivers/gpu/drm/display/drm_hdcp_helper.o CC lib/crypto/mpi/mpi-pow.o CC lib/crypto/mpi/mpiutil.o CC kernel/cgroup/legacy_freezer.o CC fs/devpts/inode.o CC fs/proc/interrupts.o CC fs/netfs/buffered_read.o CC drivers/gpu/drm/ttm/ttm_range_manager.o CC drivers/acpi/acpica/evhandler.o CC drivers/pci/setup-bus.o CC io_uring/uring_cmd.o CC [M] sound/pci/hda/hda_proc.o CC fs/netfs/buffered_write.o CC io_uring/openclose.o CC [M] sound/pci/hda/hda_hwdep.o CC arch/x86/kernel/apic/probe_32.o CC kernel/time/clockevents.o CC drivers/tty/serial/8250/8250_pci.o ASN.1 crypto/rsaprivkey.asn1.[ch] CC drivers/gpu/drm/ttm/ttm_resource.o CC crypto/rsa.o CC drivers/iommu/dma-iommu.o CC drivers/acpi/acpica/evmisc.o CC arch/x86/events/intel/uncore_discovery.o CC drivers/tty/vt/consolemap.o CC drivers/gpu/drm/display/drm_hdmi_helper.o CC drivers/virtio/virtio_dma_buf.o CC sound/core/hrtimer.o CC kernel/time/tick-common.o CC kernel/time/tick-broadcast.o CC drivers/gpu/drm/display/drm_scdc_helper.o CC drivers/gpu/drm/ttm/ttm_pool.o CC block/blk-stat.o CC fs/proc/loadavg.o CC fs/sysfs/mount.o CC drivers/pci/vc.o CC net/core/neighbour.o CC drivers/gpu/drm/ttm/ttm_device.o CC drivers/acpi/acpica/evregion.o CC kernel/time/tick-broadcast-hrtimer.o CC security/selinux/ss/policydb.o CC kernel/time/tick-oneshot.o CC kernel/cgroup/pids.o CC drivers/pci/mmap.o AR lib/crypto/mpi/built-in.a CC lib/crypto/sha1.o CC drivers/char/agp/isoch.o CC drivers/char/agp/amd64-agp.o CC arch/x86/kernel/cpu/rdrand.o AR fs/devpts/built-in.a CC security/selinux/ss/services.o CC fs/ext4/balloc.o AR sound/ppc/built-in.a CC crypto/rsa_helper.o CC arch/x86/kernel/kprobes/core.o CC arch/x86/kernel/cpu/match.o CC arch/x86/kernel/kprobes/opt.o CC crypto/rsa-pkcs1pad.o AR arch/x86/kernel/apic/built-in.a CC drivers/base/power/wakeup_stats.o CC arch/x86/events/intel/cstate.o AR drivers/virtio/built-in.a CC crypto/acompress.o CC mm/slab_common.o CC fs/ext4/bitmap.o CC kernel/time/tick-sched.o CC kernel/time/timer_migration.o CC crypto/scompress.o CC drivers/acpi/acpica/evrgnini.o CC fs/proc/meminfo.o CC fs/jbd2/transaction.o CC security/selinux/ss/conditional.o CC fs/jbd2/commit.o CC fs/sysfs/group.o CC lib/crypto/sha256.o HOSTCC drivers/tty/vt/conmakehash CC mm/compaction.o CC [M] sound/pci/hda/patch_hdmi.o CC mm/show_mem.o CC kernel/cgroup/rdma.o AR drivers/gpu/drm/display/built-in.a CC fs/netfs/direct_read.o CC [M] sound/pci/hda/hda_eld.o CC sound/core/seq_device.o AR drivers/dax/hmem/built-in.a AR drivers/dax/built-in.a CC fs/netfs/direct_write.o CC fs/netfs/io.o CC io_uring/sqpoll.o CC fs/ramfs/inode.o CC drivers/gpu/drm/ttm/ttm_sys_manager.o CC arch/x86/kernel/cpu/bugs.o CC drivers/dma-buf/dma-buf.o CC drivers/tty/vt/defkeymap.o CC fs/ramfs/file-mmu.o CC kernel/time/vsyscall.o CC drivers/iommu/iova.o CC drivers/tty/serial/8250/8250_pericom.o CC drivers/acpi/acpica/evsci.o CC drivers/pci/devres.o CC drivers/base/power/trace.o CC drivers/char/agp/intel-agp.o CC drivers/char/agp/intel-gtt.o CONMK drivers/tty/vt/consolemap_deftbl.c CC drivers/tty/vt/consolemap_deftbl.o CC drivers/gpu/drm/i915/i915_config.o AR drivers/tty/vt/built-in.a CC [M] sound/pci/hda/hda_intel.o CC fs/ext4/block_validity.o CC crypto/algboss.o CC block/blk-mq-sysfs.o CC fs/ext4/dir.o AR lib/crypto/built-in.a AR fs/sysfs/built-in.a CC drivers/gpu/drm/ttm/ttm_agp_backend.o CC fs/proc/stat.o CC drivers/pci/proc.o CC lib/zlib_inflate/inffast.o AR arch/x86/kernel/kprobes/built-in.a CC fs/hugetlbfs/inode.o CC [M] sound/core/hwdep.o CC drivers/base/firmware_loader/builtin/main.o CC drivers/acpi/acpica/evxface.o AR drivers/gpu/vga/built-in.a CC kernel/cgroup/cpuset.o CC crypto/testmgr.o CC drivers/gpu/drm/i915/i915_driver.o AR arch/x86/events/intel/built-in.a CC drivers/char/hpet.o AR arch/x86/events/built-in.a CC lib/zlib_inflate/inflate.o CC drivers/acpi/acpica/evxfevnt.o CC block/blk-mq-cpumap.o CC block/blk-mq-sched.o AR fs/ramfs/built-in.a CC drivers/char/nvram.o CC drivers/gpu/drm/i915/i915_drm_client.o CC fs/netfs/iterator.o CC drivers/acpi/acpica/evxfgpe.o AR drivers/base/firmware_loader/builtin/built-in.a CC fs/netfs/locking.o AR drivers/tty/serial/8250/built-in.a CC drivers/base/firmware_loader/main.o AR drivers/tty/serial/built-in.a CC drivers/tty/tty_ldsem.o CC security/selinux/ss/mls.o CC drivers/pci/pci-sysfs.o AR drivers/base/power/built-in.a CC drivers/pci/slot.o CC mm/shmem_quota.o CC mm/interval_tree.o AR drivers/iommu/built-in.a CC kernel/time/timekeeping_debug.o CC drivers/acpi/acpica/evxfregn.o CC kernel/bpf/core.o CC drivers/dma-buf/dma-fence.o CC fs/proc/uptime.o AR drivers/gpu/drm/ttm/built-in.a CC drivers/base/regmap/regmap.o LD [M] sound/pci/hda/snd-hda-codec.o CC net/sched/sch_generic.o CC net/sched/sch_mq.o CC lib/zlib_inflate/infutil.o CC [M] sound/core/pcm.o CC net/netlink/af_netlink.o CC net/netlink/genetlink.o CC kernel/trace/trace_output.o CC fs/jbd2/recovery.o CC net/netlink/policy.o CC fs/ext4/ext4_jbd2.o CC crypto/cmac.o CC drivers/dma-buf/dma-fence-array.o AR drivers/char/agp/built-in.a CC fs/netfs/main.o AR drivers/cxl/core/built-in.a CC fs/netfs/misc.o AR drivers/cxl/built-in.a CC fs/netfs/objects.o CC drivers/dma-buf/dma-fence-chain.o CC fs/ext4/extents.o CC drivers/acpi/acpica/exconcat.o CC io_uring/xattr.o CC arch/x86/kernel/cpu/aperfmperf.o CC fs/ext4/extents_status.o AR drivers/char/built-in.a CC lib/zlib_inflate/inftrees.o CC arch/x86/kernel/cpu/cpuid-deps.o CC drivers/tty/tty_baudrate.o CC fs/ext4/file.o CC fs/proc/util.o CC kernel/time/namespace.o CC lib/zlib_inflate/inflate_syms.o AR fs/hugetlbfs/built-in.a CC fs/proc/version.o CC fs/fat/cache.o CC crypto/hmac.o LD [M] sound/pci/hda/snd-hda-codec-hdmi.o CC fs/isofs/namei.o LD [M] sound/pci/hda/snd-hda-intel.o CC drivers/macintosh/mac_hid.o AR sound/pci/built-in.a CC fs/fat/dir.o AR drivers/scsi/pcmcia/built-in.a CC drivers/scsi/scsi.o CC block/ioctl.o CC fs/isofs/inode.o AR drivers/base/firmware_loader/built-in.a CC kernel/trace/trace_seq.o CC drivers/scsi/hosts.o CC drivers/acpi/acpica/exconfig.o AR drivers/base/test/built-in.a CC drivers/dma-buf/dma-fence-unwrap.o CC fs/proc/softirqs.o CC drivers/dma-buf/dma-resv.o CC io_uring/nop.o CC net/core/rtnetlink.o CC net/sched/sch_frag.o CC drivers/gpu/drm/i915/i915_getparam.o AR lib/zlib_inflate/built-in.a CC security/selinux/ss/context.o CC lib/zlib_deflate/deflate.o CC security/selinux/netlabel.o CC [M] sound/core/pcm_native.o CC drivers/pci/pci-acpi.o CC drivers/dma-buf/sync_file.o CC arch/x86/kernel/cpu/umwait.o CC drivers/tty/tty_jobctrl.o MKCAP arch/x86/kernel/cpu/capflags.c CC drivers/acpi/acpica/exconvrt.o CC drivers/acpi/acpica/excreate.o CC fs/jbd2/checkpoint.o CC drivers/scsi/scsi_ioctl.o CC net/sched/sch_api.o AR drivers/macintosh/built-in.a CC kernel/events/core.o CC fs/jbd2/revoke.o CC mm/list_lru.o CC fs/netfs/write_collect.o CC kernel/events/ring_buffer.o CC kernel/events/callchain.o CC mm/workingset.o CC crypto/crypto_null.o AR kernel/time/built-in.a CC kernel/events/hw_breakpoint.o CC kernel/events/uprobes.o CC fs/proc/namespaces.o CC mm/debug.o CC io_uring/fs.o CC kernel/cgroup/misc.o CC kernel/trace/trace_stat.o CC kernel/cgroup/debug.o AR net/bpf/built-in.a CC fs/fat/fatent.o CC block/genhd.o CC drivers/acpi/acpica/exdebug.o CC drivers/acpi/acpica/exdump.o CC fs/fat/file.o AR drivers/dma-buf/built-in.a CC mm/gup.o CC drivers/scsi/scsicam.o CC drivers/acpi/acpica/exfield.o CC lib/zlib_deflate/deftree.o CC drivers/acpi/tables.o CC fs/isofs/dir.o CC drivers/tty/n_null.o CC drivers/gpu/drm/i915/i915_ioctl.o CC crypto/md5.o CC drivers/tty/pty.o CC fs/ext4/fsmap.o CC drivers/scsi/scsi_error.o AR sound/arm/built-in.a CC net/core/utils.o CC net/sched/sch_blackhole.o CC net/core/link_watch.o CC drivers/acpi/acpica/exfldio.o CC net/sched/cls_api.o CC fs/fat/inode.o CC drivers/acpi/osi.o CC drivers/acpi/osl.o CC drivers/acpi/utils.o CC drivers/pci/iomap.o CC lib/zlib_deflate/deflate_syms.o CC fs/proc/self.o CC drivers/acpi/reboot.o CC block/ioprio.o CC fs/jbd2/journal.o AR kernel/cgroup/built-in.a AR security/selinux/built-in.a CC drivers/acpi/nvs.o CC mm/mmap_lock.o AR security/built-in.a CC drivers/gpu/drm/i915/i915_irq.o CC drivers/gpu/drm/i915/i915_mitigations.o CC mm/highmem.o CC kernel/trace/trace_printk.o AR net/netlink/built-in.a CC lib/lzo/lzo1x_compress.o CC io_uring/splice.o CC drivers/scsi/scsi_lib.o CC fs/ext4/fsync.o CC crypto/sha256_generic.o CC drivers/base/regmap/regcache.o AR lib/zlib_deflate/built-in.a CC drivers/tty/tty_audit.o CC io_uring/sync.o CC fs/isofs/util.o CC drivers/acpi/acpica/exmisc.o CC fs/netfs/write_issue.o CC drivers/tty/sysrq.o AR drivers/nvme/common/built-in.a AR drivers/nvme/host/built-in.a CC fs/proc/thread_self.o AR drivers/nvme/target/built-in.a CC drivers/acpi/wakeup.o AR kernel/bpf/built-in.a AR drivers/nvme/built-in.a CC fs/isofs/rock.o CC lib/lz4/lz4_decompress.o CC drivers/ata/libata-core.o CC drivers/pci/quirks.o CC fs/nfs/client.o CC fs/nfs/dir.o CC fs/ext4/hash.o CC drivers/acpi/acpica/exmutex.o CC fs/exportfs/expfs.o CC lib/lzo/lzo1x_decompress_safe.o CC fs/nfs/file.o CC fs/nfs/getroot.o CC fs/ext4/ialloc.o AR drivers/gpu/drm/omapdrm/built-in.a AR drivers/gpu/drm/renesas/rcar-du/built-in.a CC kernel/trace/pid_list.o CC crypto/sha512_generic.o CC mm/memory.o AR drivers/gpu/drm/renesas/rz-du/built-in.a CC block/badblocks.o AR drivers/gpu/drm/renesas/built-in.a CC mm/mincore.o CC net/sched/act_api.o CC fs/nfs/inode.o CC drivers/acpi/acpica/exnames.o CC fs/ext4/indirect.o CC fs/ext4/inline.o CC drivers/acpi/acpica/exoparg1.o AR drivers/gpu/drm/tilcdc/built-in.a CC drivers/acpi/acpica/exoparg2.o CC drivers/gpu/drm/virtio/virtgpu_drv.o AR drivers/gpu/drm/imx/built-in.a CC drivers/gpu/drm/virtio/virtgpu_kms.o AR drivers/gpu/drm/i2c/built-in.a CC drivers/gpu/drm/i915/i915_module.o AR drivers/gpu/drm/panel/built-in.a CC fs/proc/proc_sysctl.o CC drivers/gpu/drm/virtio/virtgpu_gem.o CC fs/isofs/export.o AR lib/lzo/built-in.a CC drivers/base/regmap/regcache-rbtree.o CC drivers/gpu/drm/virtio/virtgpu_vram.o CC fs/ext4/inode.o CC io_uring/msg_ring.o CC fs/fat/misc.o AR fs/exportfs/built-in.a CC fs/lockd/clntlock.o CC drivers/acpi/acpica/exoparg3.o CC [M] sound/core/pcm_lib.o CC fs/lockd/clntproc.o AR drivers/tty/built-in.a CC io_uring/advise.o CC net/core/filter.o CC drivers/gpu/drm/i915/i915_params.o CC drivers/base/regmap/regcache-flat.o CC lib/zstd/zstd_decompress_module.o CC lib/xz/xz_dec_syms.o AR fs/netfs/built-in.a CC drivers/gpu/drm/i915/i915_pci.o AR lib/lz4/built-in.a CC kernel/trace/trace_sched_switch.o CC fs/fat/nfs.o CC crypto/sha3_generic.o LDS arch/x86/kernel/vmlinux.lds CC mm/mlock.o CC mm/mmap.o CC drivers/acpi/acpica/exoparg6.o CC net/core/sock_diag.o CC fs/fat/namei_vfat.o CC block/blk-rq-qos.o CC fs/isofs/joliet.o CC drivers/base/regmap/regcache-maple.o CC drivers/scsi/constants.o CC drivers/scsi/scsi_lib_dma.o CC lib/xz/xz_dec_stream.o CC drivers/scsi/scsi_scan.o CC arch/x86/kernel/cpu/powerflags.o CC drivers/gpu/drm/virtio/virtgpu_display.o CC lib/zstd/decompress/huf_decompress.o CC drivers/gpu/drm/i915/i915_scatterlist.o CC arch/x86/kernel/cpu/topology.o CC drivers/gpu/drm/virtio/virtgpu_vq.o CC drivers/gpu/drm/virtio/virtgpu_fence.o CC drivers/gpu/drm/virtio/virtgpu_object.o CC drivers/acpi/acpica/exprep.o CC drivers/base/regmap/regmap-debugfs.o CC crypto/ecb.o CC drivers/gpu/drm/i915/i915_suspend.o CC net/sched/sch_fifo.o CC net/sched/cls_cgroup.o CC io_uring/epoll.o CC fs/isofs/compress.o CC lib/xz/xz_dec_lzma2.o CC lib/xz/xz_dec_bcj.o CC block/disk-events.o CC fs/fat/namei_msdos.o AR fs/jbd2/built-in.a CC drivers/pci/pci-label.o CC drivers/gpu/drm/i915/i915_switcheroo.o CC drivers/gpu/drm/i915/i915_sysfs.o CC fs/proc/proc_net.o CC drivers/acpi/acpica/exregion.o CC fs/proc/kcore.o CC drivers/acpi/acpica/exresnte.o CC drivers/pci/vgaarb.o CC net/core/dev_ioctl.o CC block/blk-ia-ranges.o CC drivers/base/component.o CC fs/lockd/clntxdr.o CC crypto/cbc.o CC fs/proc/vmcore.o CC fs/ext4/ioctl.o CC fs/lockd/host.o CC drivers/acpi/acpica/exresolv.o CC kernel/trace/trace_nop.o CC mm/mmu_gather.o CC fs/proc/kmsg.o AR sound/sh/built-in.a CC net/sched/ematch.o CC fs/proc/page.o CC drivers/gpu/drm/i915/i915_utils.o CC crypto/ctr.o CC crypto/gcm.o CC [M] sound/core/pcm_misc.o CC crypto/ccm.o CC drivers/base/core.o AR drivers/base/regmap/built-in.a CC fs/lockd/svc.o CC crypto/aes_generic.o GEN drivers/scsi/scsi_devinfo_tbl.c AR lib/xz/built-in.a CC drivers/scsi/scsi_devinfo.o CC drivers/gpu/drm/virtio/virtgpu_debugfs.o AR fs/isofs/built-in.a CC drivers/acpi/acpica/exresop.o CC fs/nls/nls_base.o CC io_uring/statx.o CC net/ethtool/ioctl.o CC fs/nls/nls_cp437.o CC block/early-lookup.o CC net/ethtool/common.o CC lib/zstd/decompress/zstd_ddict.o CC [M] sound/core/pcm_memory.o CC drivers/scsi/scsi_sysctl.o CC drivers/scsi/scsi_proc.o CC fs/nls/nls_ascii.o CC net/ethtool/netlink.o CC drivers/acpi/acpica/exserial.o CC drivers/acpi/acpica/exstore.o CC drivers/base/bus.o AR fs/fat/built-in.a CC lib/zstd/decompress/zstd_decompress.o CC drivers/acpi/acpica/exstoren.o CC drivers/scsi/scsi_debugfs.o CC fs/ext4/mballoc.o CC fs/nls/nls_iso8859-1.o CC kernel/trace/blktrace.o AR drivers/pci/built-in.a CC net/core/tso.o CC fs/nfs/super.o CC fs/nfs/io.o CC [M] sound/core/memalloc.o CC drivers/scsi/scsi_trace.o CC net/ethtool/bitset.o CC drivers/gpu/drm/virtio/virtgpu_plane.o CC [M] sound/core/pcm_timer.o AR fs/proc/built-in.a CC drivers/scsi/scsi_logging.o CC fs/nls/nls_utf8.o CC crypto/crc32c_generic.o CC fs/ext4/migrate.o CC net/netfilter/core.o CC drivers/base/dd.o CC drivers/acpi/acpica/exstorob.o CC net/netfilter/nf_log.o CC net/netfilter/nf_queue.o CC net/netfilter/nf_sockopt.o CC drivers/gpu/drm/i915/intel_clock_gating.o CC drivers/gpu/drm/i915/intel_device_info.o CC drivers/gpu/drm/i915/intel_memory_region.o CC crypto/authenc.o AR net/sched/built-in.a CC drivers/gpu/drm/i915/intel_pcode.o CC block/bounce.o CC net/netfilter/utils.o CC drivers/base/syscore.o CC block/bsg.o CC crypto/authencesn.o AR fs/nls/built-in.a CC drivers/scsi/scsi_pm.o CC io_uring/timeout.o CC fs/lockd/svclock.o CC io_uring/fdinfo.o CC io_uring/cancel.o CC mm/mprotect.o CC crypto/lzo.o CC drivers/acpi/acpica/exsystem.o CC lib/zstd/decompress/zstd_decompress_block.o CC fs/nfs/direct.o CC net/core/sock_reuseport.o CC drivers/ata/libata-scsi.o CC net/core/fib_notifier.o LD [M] sound/core/snd-hwdep.o CC io_uring/waitid.o CC kernel/trace/trace_events.o CC drivers/gpu/drm/virtio/virtgpu_ioctl.o AR kernel/events/built-in.a CC drivers/ata/libata-eh.o CC drivers/gpu/drm/virtio/virtgpu_prime.o AR sound/core/built-in.a LD [M] sound/core/snd-pcm.o AR sound/synth/emux/built-in.a CC drivers/acpi/acpica/extrace.o AR sound/synth/built-in.a AR sound/usb/misc/built-in.a AR sound/usb/usx2y/built-in.a AR sound/usb/caiaq/built-in.a AR sound/usb/6fire/built-in.a AR sound/usb/hiface/built-in.a AR sound/usb/bcd2000/built-in.a AR sound/usb/built-in.a AR sound/firewire/built-in.a AR sound/sparc/built-in.a CC drivers/gpu/drm/i915/intel_region_ttm.o CC fs/lockd/svcshare.o AR drivers/gpu/drm/bridge/analogix/built-in.a AR sound/spi/built-in.a CC fs/ext4/mmp.o CC drivers/gpu/drm/i915/intel_runtime_pm.o AR drivers/gpu/drm/bridge/cadence/built-in.a AR sound/parisc/built-in.a AR drivers/gpu/drm/bridge/imx/built-in.a CC fs/ext4/move_extent.o AR sound/pcmcia/vx/built-in.a AR drivers/gpu/drm/bridge/synopsys/built-in.a AR sound/pcmcia/pdaudiocf/built-in.a AR drivers/gpu/drm/bridge/built-in.a AR sound/pcmcia/built-in.a CC fs/ext4/namei.o AR sound/mips/built-in.a CC fs/lockd/svcproc.o AR sound/soc/built-in.a CC fs/lockd/svcsubs.o AR sound/atmel/built-in.a CC arch/x86/kernel/cpu/proc.o CC kernel/trace/trace_export.o AR sound/hda/built-in.a CC drivers/scsi/scsi_bsg.o CC [M] sound/hda/hda_bus_type.o CC net/ethtool/strset.o CC drivers/acpi/acpica/exutils.o AR fs/unicode/built-in.a CC drivers/gpu/drm/i915/intel_sbi.o CC fs/autofs/init.o AR drivers/net/phy/qcom/built-in.a CC drivers/net/phy/mdio-boardinfo.o CC fs/autofs/inode.o CC drivers/net/phy/stubs.o CC fs/9p/vfs_super.o CC drivers/net/phy/mdio_devres.o CC io_uring/register.o AR fs/hostfs/built-in.a CC drivers/net/phy/phy.o CC block/blk-cgroup.o CC crypto/lzo-rle.o CC drivers/gpu/drm/i915/intel_step.o CC block/blk-ioprio.o CC drivers/net/phy/phy-c45.o CC drivers/ata/libata-transport.o CC drivers/gpu/drm/virtio/virtgpu_trace_points.o CC drivers/base/driver.o CC crypto/rng.o CC mm/mremap.o CC block/blk-iolatency.o CC drivers/gpu/drm/virtio/virtgpu_submit.o CC drivers/acpi/acpica/hwacpi.o CC fs/nfs/pagelist.o CC net/netfilter/nfnetlink.o CC arch/x86/kernel/cpu/feat_ctl.o CC [M] sound/hda/hdac_bus.o CC drivers/base/class.o CC drivers/scsi/scsi_common.o CC net/core/xdp.o CC drivers/ata/libata-trace.o CC [M] sound/hda/hdac_device.o CC net/ethtool/linkinfo.o CC [M] sound/hda/hdac_sysfs.o CC drivers/acpi/acpica/hwesleep.o CC fs/autofs/root.o CC drivers/firewire/init_ohci1394_dma.o CC drivers/cdrom/cdrom.o CC drivers/base/platform.o CC fs/9p/vfs_inode.o CC crypto/drbg.o CC fs/lockd/mon.o CC fs/ext4/page-io.o AS arch/x86/kernel/head_32.o CC fs/ext4/readpage.o CC drivers/net/phy/phy-core.o CC drivers/net/phy/phy_device.o CC fs/debugfs/inode.o CC mm/msync.o CC fs/debugfs/file.o CC net/ipv4/netfilter/nf_defrag_ipv4.o CC arch/x86/kernel/cpu/intel.o CC net/ipv4/route.o CC net/ipv4/netfilter/nf_reject_ipv4.o CC drivers/scsi/scsi_transport_spi.o CC drivers/scsi/virtio_scsi.o CC drivers/acpi/acpica/hwgpe.o CC net/ipv4/inetpeer.o CC block/blk-iocost.o CC drivers/gpu/drm/i915/intel_uncore.o CC lib/zstd/zstd_common_module.o AR drivers/gpu/drm/virtio/built-in.a CC crypto/jitterentropy.o CC net/ipv4/protocol.o CC fs/lockd/trace.o CC io_uring/truncate.o CC arch/x86/kernel/head32.o CC fs/nfs/read.o AR drivers/firewire/built-in.a CC fs/tracefs/inode.o CC fs/tracefs/event_inode.o CC [M] fs/efivarfs/inode.o CC drivers/acpi/acpica/hwregs.o CC crypto/jitterentropy-kcapi.o CC net/ethtool/linkmodes.o CC lib/zstd/common/debug.o CC drivers/ata/libata-sata.o CC [M] sound/hda/hdac_regmap.o CC kernel/trace/trace_event_perf.o CC lib/zstd/common/entropy_common.o CC mm/page_vma_mapped.o CC drivers/net/phy/linkmode.o CC fs/autofs/symlink.o CC drivers/scsi/sd.o CC drivers/gpu/drm/i915/intel_wakeref.o CC block/mq-deadline.o CC net/netfilter/nfnetlink_log.o CC drivers/ata/libata-sff.o CC drivers/gpu/drm/i915/vlv_sideband.o CC lib/zstd/common/error_private.o CC lib/zstd/common/fse_decompress.o CC drivers/base/cpu.o CC fs/9p/vfs_inode_dotl.o CC fs/9p/vfs_addr.o CC drivers/gpu/drm/i915/vlv_suspend.o CC fs/lockd/xdr.o CC net/netfilter/nf_conntrack_core.o CC drivers/acpi/acpica/hwsleep.o CC drivers/ata/libata-pmp.o CC fs/9p/vfs_file.o CC arch/x86/kernel/cpu/tsx.o CC crypto/ghash-generic.o AR fs/debugfs/built-in.a CC net/core/flow_offload.o CC [M] fs/efivarfs/file.o CC drivers/scsi/sr.o CC drivers/scsi/sr_ioctl.o CC arch/x86/kernel/ebda.o CC io_uring/memmap.o CC fs/ext4/resize.o CC fs/ext4/super.o CC drivers/acpi/acpica/hwvalid.o CC fs/autofs/waitq.o CC lib/zstd/common/zstd_common.o AR drivers/cdrom/built-in.a CC drivers/acpi/acpica/hwxface.o CC net/ipv4/netfilter/ip_tables.o CC fs/lockd/clnt4xdr.o CC crypto/hash_info.o AR fs/tracefs/built-in.a CC fs/9p/vfs_dir.o CC mm/pagewalk.o CC fs/9p/vfs_dentry.o AR lib/zstd/built-in.a CC io_uring/io-wq.o CC [M] sound/hda/hdac_controller.o CC arch/x86/kernel/platform-quirks.o CC lib/dim/dim.o CC kernel/trace/trace_events_filter.o CC arch/x86/kernel/cpu/intel_epb.o CC crypto/rsapubkey.asn1.o CC crypto/rsaprivkey.asn1.o CC net/ethtool/rss.o AR crypto/built-in.a CC mm/pgtable-generic.o CC fs/autofs/expire.o CC drivers/net/phy/mdio_bus.o CC fs/nfs/symlink.o CC kernel/trace/trace_events_trigger.o CC fs/nfs/unlink.o CC drivers/base/firmware.o CC drivers/ata/libata-acpi.o CC fs/9p/v9fs.o CC lib/dim/net_dim.o CC [M] fs/efivarfs/super.o CC fs/autofs/dev-ioctl.o CC net/netfilter/nf_conntrack_standalone.o CC drivers/acpi/acpica/hwxfsleep.o CC [M] sound/hda/hdac_stream.o CC fs/nfs/write.o AR drivers/auxdisplay/built-in.a CC io_uring/futex.o CC [M] fs/efivarfs/vars.o CC arch/x86/kernel/cpu/amd.o CC fs/9p/fid.o CC fs/lockd/xdr4.o CC arch/x86/kernel/process_32.o CC drivers/ata/libata-pata-timings.o CC fs/9p/xattr.o CC arch/x86/kernel/cpu/hygon.o CC drivers/pcmcia/cs.o CC arch/x86/kernel/cpu/centaur.o CC io_uring/napi.o CC drivers/pcmcia/socket_sysfs.o CC drivers/base/init.o CC drivers/scsi/sr_vendor.o CC drivers/ata/ahci.o CC drivers/acpi/acpica/hwpci.o CC net/ipv4/netfilter/iptable_filter.o CC [M] sound/hda/array.o CC net/core/gro.o CC mm/rmap.o CC fs/lockd/svc4proc.o CC fs/lockd/procfs.o CC drivers/gpu/drm/i915/soc/intel_dram.o CC fs/ext4/symlink.o CC net/ethtool/linkstate.o CC arch/x86/kernel/cpu/transmeta.o CC drivers/gpu/drm/i915/soc/intel_gmch.o CC kernel/trace/trace_eprobe.o CC mm/vmalloc.o CC kernel/trace/trace_kprobe.o CC drivers/acpi/acpica/nsaccess.o AR fs/autofs/built-in.a CC kernel/trace/error_report-traces.o LD [M] fs/efivarfs/efivarfs.o CC drivers/acpi/sleep.o CC net/ethtool/debug.o CC net/xfrm/xfrm_policy.o AR fs/9p/built-in.a CC net/ethtool/wol.o CC drivers/base/map.o AR drivers/gpu/drm/hisilicon/built-in.a CC lib/dim/rdma_dim.o CC net/ethtool/features.o CC kernel/trace/power-traces.o CC block/kyber-iosched.o CC drivers/net/phy/mdio_device.o CC mm/process_vm_access.o CC net/ipv4/ip_input.o CC kernel/trace/rpm-traces.o CC [M] sound/hda/hdmi_chmap.o CC drivers/scsi/sg.o CC net/ipv4/netfilter/iptable_mangle.o CC drivers/pcmcia/cardbus.o CC arch/x86/kernel/cpu/zhaoxin.o CC drivers/net/phy/swphy.o CC net/ethtool/privflags.o CC drivers/pcmcia/ds.o CC net/xfrm/xfrm_state.o CC mm/page_alloc.o CC net/ethtool/rings.o CC drivers/net/phy/fixed_phy.o CC arch/x86/kernel/cpu/vortex.o CC drivers/acpi/acpica/nsalloc.o CC drivers/acpi/acpica/nsarguments.o AR lib/dim/built-in.a CC drivers/acpi/acpica/nsconvert.o CC net/netfilter/nf_conntrack_expect.o CC lib/fonts/fonts.o CC drivers/base/devres.o CC lib/fonts/font_8x16.o AR drivers/net/pse-pd/built-in.a CC drivers/net/mdio/acpi_mdio.o CC drivers/acpi/acpica/nsdump.o CC drivers/ata/libahci.o CC drivers/ata/ata_piix.o CC arch/x86/kernel/cpu/perfctr-watchdog.o CC kernel/trace/trace_dynevent.o AR io_uring/built-in.a CC net/netfilter/nf_conntrack_helper.o CC drivers/acpi/acpica/nseval.o CC drivers/net/phy/realtek.o CC drivers/acpi/device_sysfs.o CC drivers/gpu/drm/i915/soc/intel_pch.o CC drivers/scsi/scsi_sysfs.o CC drivers/net/mdio/fwnode_mdio.o CC kernel/trace/trace_probe.o AR fs/lockd/built-in.a CC drivers/pcmcia/pcmcia_resource.o CC mm/init-mm.o AR lib/fonts/built-in.a CC mm/memblock.o CC lib/argv_split.o CC lib/bug.o CC net/ipv4/netfilter/ipt_REJECT.o CC net/netfilter/nf_conntrack_proto.o CC drivers/base/attribute_container.o CC fs/nfs/namespace.o CC arch/x86/kernel/signal.o CC [M] sound/hda/trace.o CC net/ethtool/channels.o CC [M] net/ipv4/netfilter/iptable_nat.o CC kernel/trace/trace_uprobe.o CC drivers/acpi/device_pm.o CC drivers/acpi/acpica/nsinit.o CC net/ethtool/coalesce.o CC net/ethtool/pause.o CC drivers/base/transport_class.o CC drivers/pcmcia/cistpl.o CC lib/buildid.o CC net/ethtool/eee.o CC net/ethtool/tsinfo.o CC arch/x86/kernel/cpu/vmware.o CC drivers/acpi/proc.o CC net/core/netdev-genl.o CC mm/slub.o CC fs/open.o CC net/unix/af_unix.o CC mm/madvise.o CC drivers/base/topology.o CC kernel/trace/rethook.o CC drivers/acpi/acpica/nsload.o CC drivers/base/container.o CC arch/x86/kernel/signal_32.o CC block/blk-mq-pci.o CC net/unix/garbage.o CC mm/page_io.o CC drivers/acpi/bus.o AR drivers/net/mdio/built-in.a AR drivers/net/pcs/built-in.a CC drivers/usb/common/common.o CC drivers/gpu/drm/i915/i915_memcpy.o CC drivers/input/serio/serio.o CC drivers/input/keyboard/atkbd.o CC drivers/ata/pata_amd.o AR drivers/net/phy/built-in.a AR drivers/net/ethernet/3com/built-in.a CC arch/x86/kernel/traps.o CC arch/x86/kernel/idt.o CC arch/x86/kernel/irq.o CC lib/clz_tab.o CC drivers/net/ethernet/8390/ne2k-pci.o CC lib/cmdline.o CC drivers/net/ethernet/8390/8390.o CC drivers/gpu/drm/i915/i915_mm.o CC drivers/acpi/acpica/nsnames.o CC [M] sound/hda/hdac_component.o CC drivers/input/mouse/psmouse-base.o CC arch/x86/kernel/cpu/hypervisor.o CC lib/cpumask.o AR drivers/scsi/built-in.a CC drivers/input/mouse/synaptics.o CC drivers/usb/core/usb.o CC [M] sound/hda/hdac_i915.o AR drivers/usb/phy/built-in.a CC drivers/usb/core/hub.o CC drivers/acpi/glue.o CC net/core/netdev-genl-gen.o AR net/ipv4/netfilter/built-in.a CC fs/nfs/mount_clnt.o CC fs/nfs/nfstrace.o CC drivers/ata/pata_oldpiix.o CC net/ipv4/ip_fragment.o CC drivers/base/property.o CC drivers/rtc/lib.o CC [M] sound/hda/intel-dsp-config.o CC net/ethtool/cabletest.o CC block/blk-mq-virtio.o CC drivers/rtc/class.o CC arch/x86/kernel/cpu/mshyperv.o CC net/netfilter/nf_conntrack_proto_generic.o CC drivers/acpi/acpica/nsobject.o AR drivers/net/ethernet/adaptec/built-in.a AR drivers/net/ethernet/agere/built-in.a AR drivers/net/ethernet/alacritech/built-in.a AR drivers/net/ethernet/alteon/built-in.a CC drivers/usb/common/debug.o CC drivers/pcmcia/pcmcia_cis.o CC arch/x86/kernel/irq_32.o CC drivers/input/serio/i8042.o AR drivers/usb/common/built-in.a CC drivers/usb/mon/mon_main.o CC mm/swap_state.o CC [M] sound/hda/intel-nhlt.o CC drivers/usb/mon/mon_stat.o CC arch/x86/kernel/cpu/debugfs.o CC lib/ctype.o CC drivers/acpi/scan.o AR kernel/trace/built-in.a CC [M] sound/hda/intel-sdw-acpi.o CC drivers/acpi/mipi-disco-img.o CC kernel/fork.o CC lib/dec_and_lock.o CC drivers/acpi/resource.o AR drivers/input/keyboard/built-in.a CC net/netfilter/nf_conntrack_proto_tcp.o AR drivers/input/joystick/built-in.a CC drivers/acpi/acpica/nsparse.o CC net/netfilter/nf_conntrack_proto_udp.o CC kernel/exec_domain.o LD [M] sound/hda/snd-hda-core.o CC net/core/gso.o CC kernel/panic.o CC mm/swapfile.o CC net/xfrm/xfrm_hash.o CC arch/x86/kernel/dumpstack_32.o CC drivers/gpu/drm/i915/i915_sw_fence.o CC lib/decompress.o CC fs/nfs/export.o CC fs/read_write.o CC drivers/ata/pata_sch.o AR drivers/net/ethernet/8390/built-in.a CC drivers/rtc/interface.o CC drivers/acpi/acpi_processor.o CC lib/decompress_bunzip2.o AR drivers/net/ethernet/amazon/built-in.a CC drivers/ata/pata_mpiix.o CC block/blk-mq-debugfs.o CC drivers/rtc/nvmem.o AR drivers/net/ethernet/amd/built-in.a AR drivers/net/ethernet/aquantia/built-in.a AR drivers/net/ethernet/arc/built-in.a AR drivers/net/ethernet/asix/built-in.a AR drivers/net/ethernet/atheros/built-in.a CC block/blk-pm.o AR drivers/net/ethernet/cadence/built-in.a CC net/xfrm/xfrm_input.o CC drivers/net/ethernet/broadcom/bnx2.o CC drivers/usb/host/pci-quirks.o CC arch/x86/kernel/time.o LD [M] sound/hda/snd-intel-dspcfg.o LD [M] sound/hda/snd-intel-sdw-acpi.o CC drivers/acpi/acpica/nspredef.o AR sound/x86/built-in.a CC drivers/usb/class/usblp.o AR sound/xen/built-in.a AR sound/virtio/built-in.a CC drivers/usb/mon/mon_text.o CC sound/sound_core.o CC net/xfrm/xfrm_output.o CC arch/x86/kernel/cpu/capflags.o CC drivers/usb/mon/mon_bin.o CC net/ethtool/tunnels.o CC drivers/input/mouse/focaltech.o AR arch/x86/kernel/cpu/built-in.a AR drivers/net/ethernet/brocade/built-in.a CC drivers/input/serio/serport.o CC drivers/gpu/drm/i915/i915_sw_fence_work.o CC drivers/base/cacheinfo.o CC drivers/pcmcia/rsrc_mgr.o CC net/ethtool/fec.o CC drivers/ata/ata_generic.o CC net/xfrm/xfrm_sysctl.o CC block/holder.o CC net/ipv4/ip_forward.o CC kernel/cpu.o CC arch/x86/kernel/ioport.o CC drivers/input/mouse/alps.o CC drivers/acpi/acpica/nsprepkg.o CC net/xfrm/xfrm_replay.o CC drivers/acpi/processor_core.o CC drivers/acpi/processor_pdc.o CC mm/swap_slots.o CC mm/dmapool.o CC lib/decompress_inflate.o CC drivers/usb/host/ehci-hcd.o CC sound/last.o CC net/unix/sysctl_net_unix.o CC drivers/gpu/drm/i915/i915_syncmap.o CC drivers/gpu/drm/i915/i915_user_extensions.o CC drivers/i2c/algos/i2c-algo-bit.o CC drivers/acpi/ec.o CC net/core/net-sysfs.o CC drivers/i2c/busses/i2c-i801.o AR drivers/i3c/built-in.a AR drivers/i2c/muxes/built-in.a CC drivers/i2c/i2c-boardinfo.o CC drivers/i2c/i2c-core-base.o CC drivers/pcmcia/rsrc_nonstatic.o CC drivers/input/serio/libps2.o CC drivers/acpi/acpica/nsrepair.o CC drivers/i2c/i2c-core-smbus.o CC drivers/net/ethernet/broadcom/tg3.o AR drivers/input/tablet/built-in.a AR drivers/input/touchscreen/built-in.a AR drivers/usb/class/built-in.a AR sound/built-in.a AR drivers/input/misc/built-in.a CC drivers/usb/storage/scsiglue.o CC drivers/input/input.o AR block/built-in.a CC drivers/input/input-compat.o CC drivers/base/swnode.o CC net/xfrm/xfrm_device.o CC drivers/gpu/drm/i915/i915_debugfs.o CC drivers/usb/storage/protocol.o CC lib/decompress_unlz4.o CC drivers/usb/storage/transport.o AR drivers/ata/built-in.a CC drivers/usb/storage/usb.o CC net/core/hotdata.o CC arch/x86/kernel/dumpstack.o AR drivers/usb/mon/built-in.a CC net/netfilter/nf_conntrack_proto_icmp.o CC drivers/rtc/dev.o CC drivers/rtc/proc.o AR drivers/media/i2c/built-in.a CC net/core/net-procfs.o AR drivers/media/tuners/built-in.a CC fs/file_table.o AR drivers/usb/misc/built-in.a CC drivers/acpi/acpica/nsrepair2.o CC drivers/acpi/acpica/nssearch.o CC drivers/usb/storage/initializers.o AR drivers/media/rc/keymaps/built-in.a AR drivers/media/rc/built-in.a CC net/ethtool/eeprom.o CC net/core/netpoll.o CC drivers/rtc/sysfs.o AR drivers/media/common/b2c2/built-in.a AR drivers/media/common/saa7146/built-in.a CC drivers/usb/core/hcd.o AR drivers/media/common/siano/built-in.a AR drivers/media/common/v4l2-tpg/built-in.a AR drivers/media/common/videobuf2/built-in.a AR net/unix/built-in.a AR drivers/media/common/built-in.a CC net/ethtool/stats.o AR drivers/net/ethernet/cavium/common/built-in.a CC net/ethtool/phc_vclocks.o AR drivers/media/platform/allegro-dvt/built-in.a AR drivers/net/ethernet/cavium/thunder/built-in.a CC net/ethtool/mm.o AR drivers/net/ethernet/cavium/liquidio/built-in.a AR drivers/media/platform/amlogic/meson-ge2d/built-in.a AR drivers/input/serio/built-in.a AR drivers/media/platform/amlogic/built-in.a AR drivers/media/platform/amphion/built-in.a CC lib/decompress_unlzma.o AR drivers/net/ethernet/cavium/octeon/built-in.a AR drivers/i2c/algos/built-in.a CC lib/decompress_unlzo.o AR drivers/media/platform/aspeed/built-in.a AR drivers/net/ethernet/cavium/built-in.a CC net/xfrm/xfrm_nat_keepalive.o CC fs/nfs/sysfs.o CC drivers/gpu/drm/i915/i915_debugfs_params.o AR drivers/media/platform/atmel/built-in.a CC drivers/gpu/drm/i915/i915_pmu.o AR drivers/media/platform/broadcom/built-in.a CC mm/hugetlb.o AR drivers/media/platform/cadence/built-in.a CC net/ipv4/ip_options.o CC drivers/gpu/drm/i915/gt/gen2_engine_cs.o AR drivers/media/platform/chips-media/coda/built-in.a AR drivers/media/platform/chips-media/wave5/built-in.a AR drivers/net/ethernet/chelsio/built-in.a AR drivers/media/platform/chips-media/built-in.a CC lib/decompress_unxz.o AR drivers/media/platform/imagination/built-in.a AR drivers/media/platform/intel/built-in.a CC drivers/pcmcia/yenta_socket.o AR drivers/media/platform/marvell/built-in.a CC drivers/usb/storage/sierra_ms.o CC drivers/acpi/acpica/nsutils.o CC drivers/base/auxiliary.o AR drivers/media/platform/mediatek/jpeg/built-in.a CC lib/decompress_unzstd.o AR drivers/media/platform/mediatek/mdp/built-in.a AR drivers/media/platform/microchip/built-in.a CC net/core/fib_rules.o CC drivers/acpi/dock.o AR drivers/media/platform/mediatek/vcodec/common/built-in.a AR drivers/media/platform/mediatek/vcodec/encoder/built-in.a CC kernel/exit.o CC arch/x86/kernel/nmi.o AR drivers/media/platform/mediatek/vcodec/decoder/built-in.a CC drivers/input/mouse/byd.o AR drivers/media/platform/mediatek/vcodec/built-in.a AR drivers/i2c/busses/built-in.a CC net/xfrm/xfrm_algo.o AR drivers/media/platform/mediatek/vpu/built-in.a AR drivers/media/platform/mediatek/mdp3/built-in.a AR drivers/media/platform/mediatek/built-in.a AR drivers/media/platform/nuvoton/built-in.a AR drivers/media/platform/nvidia/tegra-vde/built-in.a CC net/xfrm/xfrm_user.o AR drivers/media/platform/nvidia/built-in.a AR drivers/media/platform/nxp/dw100/built-in.a CC drivers/rtc/rtc-mc146818-lib.o AR drivers/media/platform/nxp/imx-jpeg/built-in.a AR drivers/media/platform/nxp/imx8-isi/built-in.a CC drivers/base/devtmpfs.o AR drivers/media/platform/nxp/built-in.a CC arch/x86/kernel/ldt.o CC arch/x86/kernel/setup.o AR drivers/media/platform/qcom/camss/built-in.a AR drivers/media/platform/raspberrypi/pisp_be/built-in.a AR drivers/media/platform/raspberrypi/built-in.a AR drivers/media/platform/qcom/venus/built-in.a AR drivers/media/platform/qcom/built-in.a CC drivers/input/mouse/logips2pp.o CC net/core/net-traces.o AR drivers/pps/clients/built-in.a AR drivers/media/platform/renesas/rcar-vin/built-in.a AR drivers/media/platform/renesas/rzg2l-cru/built-in.a AR drivers/pps/generators/built-in.a AR drivers/gpu/drm/mxsfb/built-in.a CC drivers/pps/pps.o CC drivers/pps/kapi.o AR drivers/media/platform/renesas/vsp1/built-in.a AR drivers/media/platform/renesas/built-in.a CC drivers/pps/sysfs.o CC fs/ext4/sysfs.o AR drivers/media/platform/rockchip/rga/built-in.a CC kernel/softirq.o CC net/netfilter/nf_conntrack_extend.o CC drivers/acpi/acpica/nswalk.o CC fs/ext4/xattr.o AR drivers/media/platform/rockchip/rkisp1/built-in.a AR drivers/media/platform/rockchip/built-in.a AR drivers/media/platform/samsung/exynos-gsc/built-in.a CC lib/dump_stack.o CC net/ethtool/module.o AR drivers/media/platform/samsung/exynos4-is/built-in.a AR drivers/media/platform/samsung/s3c-camif/built-in.a AR drivers/media/platform/samsung/s5p-g2d/built-in.a AR drivers/media/platform/samsung/s5p-jpeg/built-in.a AR drivers/media/platform/samsung/s5p-mfc/built-in.a AR drivers/media/platform/samsung/built-in.a AR drivers/media/platform/st/sti/bdisp/built-in.a CC drivers/input/input-mt.o AR drivers/media/platform/st/sti/c8sectpfe/built-in.a CC net/ethtool/cmis_fw_update.o AR drivers/media/platform/st/sti/delta/built-in.a AR drivers/media/platform/sunxi/sun4i-csi/built-in.a AR drivers/media/platform/sunxi/sun6i-csi/built-in.a AR drivers/media/platform/st/sti/hva/built-in.a AR drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a AR drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a CC drivers/input/input-poller.o AR drivers/media/platform/st/stm32/built-in.a AR drivers/media/platform/sunxi/sun8i-di/built-in.a AR drivers/media/platform/st/built-in.a CC drivers/input/mouse/lifebook.o CC drivers/usb/core/urb.o AR drivers/media/platform/sunxi/sun8i-rotate/built-in.a CC drivers/usb/storage/option_ms.o AR drivers/media/platform/sunxi/built-in.a AR drivers/media/platform/ti/am437x/built-in.a AR drivers/media/platform/ti/cal/built-in.a CC net/ethtool/cmis_cdb.o AR drivers/media/platform/verisilicon/built-in.a CC drivers/i2c/i2c-core-acpi.o AR drivers/media/platform/ti/vpe/built-in.a AR drivers/media/platform/via/built-in.a CC drivers/i2c/i2c-smbus.o AR drivers/media/platform/ti/davinci/built-in.a CC drivers/gpu/drm/i915/gt/gen6_engine_cs.o CC net/ethtool/pse-pd.o CC drivers/gpu/drm/i915/gt/gen6_ppgtt.o CC drivers/gpu/drm/i915/gt/gen7_renderclear.o AR drivers/media/platform/ti/j721e-csi2rx/built-in.a AR drivers/media/platform/ti/omap/built-in.a CC drivers/acpi/pci_root.o CC drivers/acpi/acpica/nsxfeval.o AR drivers/media/platform/ti/omap3isp/built-in.a AR drivers/media/platform/ti/built-in.a CC drivers/acpi/acpica/nsxfname.o AR drivers/media/platform/xilinx/built-in.a AR drivers/media/platform/built-in.a AR drivers/media/pci/ttpci/built-in.a CC drivers/rtc/rtc-cmos.o AR drivers/media/pci/b2c2/built-in.a CC fs/nfs/fs_context.o AR drivers/media/pci/pluto2/built-in.a AR drivers/media/usb/b2c2/built-in.a AR drivers/media/pci/dm1105/built-in.a AR drivers/media/pci/pt1/built-in.a AR drivers/media/usb/dvb-usb-v2/built-in.a AR drivers/media/usb/dvb-usb/built-in.a CC drivers/gpu/drm/i915/gt/gen8_engine_cs.o AR drivers/media/mmc/siano/built-in.a AR drivers/media/usb/s2255/built-in.a AR drivers/media/pci/pt3/built-in.a AR drivers/pps/built-in.a AR drivers/media/firewire/built-in.a AR drivers/media/mmc/built-in.a CC net/core/selftests.o AR drivers/media/spi/built-in.a AR drivers/media/pci/mantis/built-in.a AR drivers/media/usb/siano/built-in.a AR drivers/media/usb/ttusb-budget/built-in.a AR drivers/media/test-drivers/built-in.a CC net/core/ptp_classifier.o CC drivers/acpi/acpica/nsxfobj.o CC drivers/ptp/ptp_clock.o AR drivers/media/pci/ngene/built-in.a AR drivers/media/usb/ttusb-dec/built-in.a AR drivers/media/usb/built-in.a AR drivers/media/pci/ddbridge/built-in.a CC drivers/ptp/ptp_chardev.o CC net/ipv4/ip_output.o AR drivers/media/pci/saa7146/built-in.a AR drivers/media/pci/smipcie/built-in.a AR drivers/media/pci/netup_unidvb/built-in.a CC drivers/base/module.o AR drivers/media/pci/intel/ipu3/built-in.a AR drivers/pcmcia/built-in.a CC drivers/acpi/acpica/psargs.o AR drivers/media/pci/intel/ivsc/built-in.a CC net/ipv4/ip_sockglue.o AR drivers/media/pci/intel/built-in.a CC net/ipv4/inet_hashtables.o CC lib/earlycpio.o AR drivers/media/pci/built-in.a CC drivers/acpi/pci_link.o CC drivers/acpi/acpica/psloop.o AR drivers/media/built-in.a CC drivers/usb/host/ehci-pci.o CC drivers/acpi/pci_irq.o CC kernel/resource.o CC drivers/input/mouse/trackpoint.o CC lib/extable.o CC drivers/input/ff-core.o CC drivers/power/supply/power_supply_core.o CC drivers/input/touchscreen.o CC mm/mmu_notifier.o CC arch/x86/kernel/x86_init.o CC drivers/usb/storage/usual-tables.o CC drivers/acpi/acpica/psobject.o AR drivers/net/ethernet/cisco/built-in.a CC arch/x86/kernel/i8259.o CC fs/super.o CC net/netfilter/nf_conntrack_acct.o CC drivers/usb/core/message.o CC drivers/base/auxiliary_sysfs.o CC net/ipv4/inet_timewait_sock.o CC kernel/sysctl.o AR drivers/net/ethernet/cortina/built-in.a CC arch/x86/kernel/irqinit.o CC net/ipv4/inet_connection_sock.o CC drivers/acpi/acpica/psopcode.o AR drivers/net/ethernet/dec/tulip/built-in.a AR drivers/i2c/built-in.a AR drivers/net/ethernet/dec/built-in.a AR drivers/net/ethernet/dlink/built-in.a CC arch/x86/kernel/jump_label.o CC net/ethtool/plca.o AR drivers/net/ethernet/emulex/built-in.a CC arch/x86/kernel/irq_work.o CC lib/flex_proportions.o CC net/ipv4/tcp.o CC drivers/acpi/acpi_apd.o CC drivers/base/devcoredump.o CC net/netfilter/nf_conntrack_seqadj.o AR drivers/rtc/built-in.a CC drivers/hwmon/hwmon.o AR drivers/usb/storage/built-in.a CC drivers/input/ff-memless.o CC drivers/input/sparse-keymap.o CC drivers/usb/early/ehci-dbgp.o CC net/netfilter/nf_conntrack_proto_icmpv6.o CC drivers/usb/host/ohci-hcd.o CC drivers/input/mouse/cypress_ps2.o AR drivers/thermal/broadcom/built-in.a CC drivers/ptp/ptp_sysfs.o AR drivers/thermal/renesas/built-in.a AR drivers/thermal/samsung/built-in.a CC drivers/thermal/intel/intel_tcc.o AR drivers/thermal/st/built-in.a CC drivers/thermal/intel/therm_throt.o AR drivers/thermal/qcom/built-in.a CC drivers/acpi/acpi_platform.o CC net/ipv4/tcp_input.o CC net/ipv4/tcp_output.o CC drivers/acpi/acpica/psopinfo.o AR drivers/net/wireless/admtek/built-in.a AR drivers/net/wireless/ath/built-in.a AR drivers/net/ethernet/engleder/built-in.a CC drivers/power/supply/power_supply_sysfs.o CC net/core/netprio_cgroup.o AR drivers/net/wireless/atmel/built-in.a AR drivers/net/ethernet/ezchip/built-in.a AR drivers/net/wireless/broadcom/built-in.a CC drivers/input/vivaldi-fmap.o AR drivers/net/ethernet/fujitsu/built-in.a AR drivers/net/wireless/intel/built-in.a CC lib/idr.o CC lib/irq_regs.o AR drivers/net/wireless/intersil/built-in.a AR drivers/net/wireless/marvell/built-in.a AR drivers/net/wireless/mediatek/built-in.a CC arch/x86/kernel/probe_roms.o AR drivers/net/wireless/microchip/built-in.a CC fs/ext4/xattr_hurd.o AR drivers/net/wireless/purelifi/built-in.a CC net/core/netclassid_cgroup.o AR drivers/net/wireless/quantenna/built-in.a CC drivers/ptp/ptp_vclock.o CC drivers/acpi/acpi_pnp.o AR drivers/net/wireless/ralink/built-in.a CC drivers/gpu/drm/i915/gt/gen8_ppgtt.o CC drivers/usb/host/ohci-pci.o AR drivers/net/wireless/realtek/built-in.a AR drivers/net/wireless/rsi/built-in.a AR drivers/net/wireless/silabs/built-in.a AR drivers/net/wireless/st/built-in.a AR drivers/gpu/drm/tiny/built-in.a AR drivers/net/wireless/ti/built-in.a CC drivers/acpi/power.o AR drivers/net/wireless/zydas/built-in.a AR drivers/net/wireless/virtual/built-in.a CC drivers/power/supply/power_supply_leds.o AR drivers/net/wireless/built-in.a CC drivers/acpi/acpica/psparse.o CC net/ipv4/tcp_timer.o CC drivers/base/platform-msi.o AR drivers/net/usb/built-in.a CC fs/ext4/xattr_trusted.o CC net/core/dst_cache.o CC net/ipv4/tcp_ipv4.o AR net/xfrm/built-in.a CC net/core/gro_cells.o CC net/netfilter/nf_conntrack_netlink.o CC net/netfilter/nf_conntrack_ftp.o CC drivers/power/supply/power_supply_hwmon.o AR net/ethtool/built-in.a CC net/ipv6/netfilter/ip6_tables.o CC lib/is_single_threaded.o CC drivers/usb/core/driver.o CC drivers/input/mouse/psmouse-smbus.o CC net/ipv6/af_inet6.o CC drivers/input/input-leds.o CC drivers/base/physical_location.o CC drivers/usb/core/config.o CC net/packet/af_packet.o CC mm/migrate.o AR drivers/usb/early/built-in.a AR net/dsa/built-in.a CC drivers/ptp/ptp_kvm_x86.o AR drivers/thermal/tegra/built-in.a CC drivers/acpi/acpica/psscope.o CC drivers/input/evdev.o CC drivers/ptp/ptp_kvm_common.o CC net/sunrpc/auth_gss/auth_gss.o CC net/ipv4/tcp_minisocks.o CC drivers/usb/core/file.o CC arch/x86/kernel/sys_ia32.o CC net/sunrpc/auth_gss/gss_generic_token.o CC arch/x86/kernel/ksysfs.o CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.o CC net/netfilter/nf_conntrack_sip.o CC net/netfilter/nf_conntrack_irc.o CC drivers/usb/core/buffer.o CC net/ipv4/tcp_cong.o CC lib/klist.o AR drivers/hwmon/built-in.a CC kernel/capability.o CC arch/x86/kernel/bootflag.o CC mm/page_counter.o CC fs/ext4/xattr_user.o CC drivers/base/trace.o CC net/core/failover.o AR drivers/power/supply/built-in.a AR drivers/power/built-in.a CC drivers/acpi/event.o CC mm/hugetlb_cgroup.o CC drivers/acpi/acpica/pstree.o CC fs/nfs/nfsroot.o CC drivers/usb/host/uhci-hcd.o CC drivers/usb/host/xhci.o CC lib/kobject.o CC drivers/usb/host/xhci-mem.o AR drivers/input/mouse/built-in.a CC drivers/acpi/acpica/psutils.o CC drivers/acpi/acpica/pswalk.o CC fs/ext4/fast_commit.o CC net/netfilter/nf_nat_core.o CC net/netfilter/nf_nat_proto.o CC drivers/usb/core/sysfs.o AR drivers/ptp/built-in.a CC net/netfilter/nf_nat_helper.o CC kernel/ptrace.o CC fs/nfs/sysctl.o CC kernel/user.o CC net/sunrpc/clnt.o AR drivers/thermal/intel/built-in.a AR drivers/thermal/mediatek/built-in.a CC drivers/thermal/thermal_core.o CC drivers/thermal/thermal_sysfs.o CC lib/kobject_uevent.o CC arch/x86/kernel/e820.o AR drivers/input/built-in.a CC drivers/usb/core/endpoint.o CC net/sunrpc/xprt.o CC net/sunrpc/auth_gss/gss_mech_switch.o CC drivers/acpi/acpica/psxface.o CC drivers/gpu/drm/i915/gt/intel_breadcrumbs.o CC fs/ext4/orphan.o CC kernel/signal.o CC kernel/sys.o CC fs/nfs/nfs3super.o CC fs/ext4/acl.o AR drivers/base/built-in.a CC arch/x86/kernel/pci-dma.o CC lib/logic_pio.o CC drivers/gpu/drm/i915/gt/intel_context.o CC fs/char_dev.o CC net/sunrpc/auth_gss/svcauth_gss.o CC net/netfilter/nf_nat_masquerade.o CC fs/ext4/xattr_security.o CC net/sunrpc/socklib.o CC drivers/acpi/acpica/rsaddr.o CC mm/early_ioremap.o CC net/ipv6/netfilter/ip6table_filter.o CC drivers/thermal/thermal_trip.o AR net/core/built-in.a AR drivers/watchdog/built-in.a CC mm/secretmem.o CC drivers/md/md.o AR net/wireless/tests/built-in.a CC net/wireless/core.o AR net/mac80211/tests/built-in.a CC net/mac80211/main.o CC net/wireless/sysfs.o CC drivers/usb/core/devio.o CC net/ipv6/netfilter/ip6table_mangle.o CC drivers/acpi/acpica/rscalc.o CC fs/nfs/nfs3client.o CC drivers/gpu/drm/i915/gt/intel_context_sseu.o AR drivers/net/ethernet/fungible/built-in.a CC drivers/acpi/evged.o CC kernel/umh.o CC kernel/workqueue.o CC drivers/cpufreq/cpufreq.o CC net/netfilter/nf_nat_ftp.o CC fs/stat.o CC lib/maple_tree.o CC net/netfilter/nf_nat_irc.o CC net/sunrpc/auth_gss/gss_rpc_upcall.o CC drivers/cpufreq/freq_table.o CC net/sunrpc/auth_gss/gss_rpc_xdr.o CC drivers/acpi/sysfs.o CC net/netfilter/nf_nat_sip.o CC arch/x86/kernel/quirks.o CC fs/exec.o CC drivers/acpi/acpica/rscreate.o CC drivers/md/md-bitmap.o CC net/ipv4/tcp_metrics.o CC drivers/thermal/thermal_helpers.o CC net/sunrpc/xprtsock.o CC drivers/acpi/property.o CC net/ipv4/tcp_fastopen.o CC drivers/acpi/debugfs.o CC net/sunrpc/sched.o CC mm/hmm.o CC net/ipv4/tcp_rate.o CC fs/pipe.o AR drivers/gpu/drm/xlnx/built-in.a CC drivers/usb/host/xhci-ext-caps.o AR drivers/gpu/drm/gud/built-in.a CC net/ipv6/anycast.o CC net/ipv6/ip6_output.o CC drivers/acpi/acpica/rsdumpinfo.o CC kernel/pid.o CC drivers/md/md-autodetect.o CC drivers/thermal/thermal_hwmon.o CC fs/nfs/nfs3proc.o CC drivers/acpi/acpi_lpat.o CC mm/memfd.o AR net/packet/built-in.a CC arch/x86/kernel/kdebugfs.o CC net/netlabel/netlabel_user.o CC net/ipv6/netfilter/nf_defrag_ipv6_hooks.o CC net/netlabel/netlabel_kapi.o CC drivers/gpu/drm/i915/gt/intel_engine_cs.o CC drivers/acpi/acpica/rsinfo.o CC net/netlabel/netlabel_domainhash.o CC net/netfilter/x_tables.o CC net/netfilter/xt_tcpudp.o CC net/netlabel/netlabel_addrlist.o CC net/sunrpc/auth_gss/trace.o AR fs/ext4/built-in.a CC drivers/net/mii.o CC drivers/thermal/gov_step_wise.o CC fs/nfs/nfs3xdr.o AR drivers/gpu/drm/solomon/built-in.a CC net/mac80211/status.o CC fs/nfs/nfs3acl.o CC net/mac80211/driver-ops.o CC drivers/net/loopback.o CC drivers/usb/host/xhci-ring.o CC drivers/acpi/acpica/rsio.o CC drivers/md/dm.o CC kernel/task_work.o CC drivers/acpi/acpica/rsirq.o CC arch/x86/kernel/alternative.o CC drivers/usb/core/notify.o CC net/ipv6/netfilter/nf_conntrack_reasm.o CC drivers/thermal/gov_user_space.o CC lib/memcat_p.o CC net/ipv4/tcp_recovery.o CC drivers/acpi/acpica/rslist.o CC mm/ptdump.o CC drivers/md/dm-table.o CC drivers/acpi/acpica/rsmemory.o CC drivers/usb/host/xhci-hub.o CC net/ipv6/ip6_input.o CC net/sunrpc/auth_gss/gss_krb5_mech.o CC drivers/cpufreq/cpufreq_performance.o CC drivers/usb/core/generic.o CC net/netfilter/xt_CONNSECMARK.o CC net/sunrpc/auth.o CC fs/namei.o CC arch/x86/kernel/i8253.o AR drivers/thermal/built-in.a CC drivers/usb/host/xhci-dbg.o AR drivers/mmc/built-in.a CC drivers/acpi/acpica/rsmisc.o CC drivers/cpuidle/governors/menu.o CC arch/x86/kernel/hw_breakpoint.o AR drivers/ufs/built-in.a CC drivers/cpuidle/governors/haltpoll.o CC arch/x86/kernel/tsc.o CC net/netlabel/netlabel_mgmt.o CC net/sunrpc/auth_null.o CC drivers/cpuidle/cpuidle.o CC drivers/net/netconsole.o CC fs/fcntl.o CC drivers/cpufreq/cpufreq_userspace.o CC net/ipv4/tcp_ulp.o CC drivers/cpufreq/cpufreq_ondemand.o CC net/netfilter/xt_NFLOG.o CC mm/execmem.o CC drivers/net/virtio_net.o AR drivers/net/ethernet/broadcom/built-in.a AR drivers/net/ethernet/google/built-in.a AR drivers/net/ethernet/huawei/built-in.a CC fs/nfs/nfs4proc.o CC drivers/net/ethernet/intel/e1000/e1000_main.o CC drivers/net/ethernet/intel/e1000/e1000_hw.o CC drivers/usb/core/quirks.o CC drivers/net/ethernet/intel/e1000/e1000_ethtool.o CC drivers/acpi/acpica/rsserial.o CC drivers/acpi/acpi_pcc.o AR drivers/net/ethernet/i825xx/built-in.a CC drivers/acpi/ac.o CC arch/x86/kernel/tsc_msr.o AR drivers/net/ethernet/microsoft/built-in.a CC arch/x86/kernel/io_delay.o CC arch/x86/kernel/rtc.o CC drivers/cpuidle/driver.o CC net/ipv4/tcp_offload.o CC drivers/net/ethernet/intel/e1000/e1000_param.o CC net/ipv6/netfilter/nf_reject_ipv6.o AR mm/built-in.a CC net/ipv6/netfilter/ip6t_ipv6header.o CC drivers/acpi/acpica/rsutils.o CC drivers/acpi/acpica/rsxface.o CC kernel/extable.o CC net/netfilter/xt_SECMARK.o CC net/netfilter/xt_TCPMSS.o AR drivers/net/ethernet/litex/built-in.a CC drivers/cpufreq/cpufreq_governor.o CC drivers/usb/host/xhci-trace.o CC drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o CC drivers/usb/host/xhci-debugfs.o CC net/wireless/radiotap.o CC net/wireless/util.o AR drivers/cpuidle/governors/built-in.a CC drivers/acpi/acpica/tbdata.o CC drivers/acpi/acpica/tbfadt.o CC net/ipv4/tcp_plb.o CC drivers/usb/core/devices.o CC drivers/usb/host/xhci-pci.o CC net/rfkill/core.o CC net/sunrpc/auth_gss/gss_krb5_seal.o CC net/rfkill/input.o CC drivers/net/net_failover.o CC drivers/cpufreq/cpufreq_governor_attr_set.o CC arch/x86/kernel/resource.o CC [M] drivers/gpu/drm/scheduler/sched_main.o CC drivers/acpi/acpica/tbfind.o CC net/netlabel/netlabel_unlabeled.o CC [M] drivers/gpu/drm/scheduler/sched_fence.o AR drivers/leds/trigger/built-in.a AR drivers/leds/blink/built-in.a AR drivers/leds/simple/built-in.a CC drivers/leds/led-core.o AS arch/x86/kernel/irqflags.o AR drivers/firmware/arm_ffa/built-in.a CC net/ipv6/addrconf.o AR drivers/firmware/arm_scmi/built-in.a CC drivers/leds/led-class.o CC arch/x86/kernel/static_call.o AR drivers/firmware/broadcom/built-in.a AR drivers/firmware/cirrus/built-in.a AR drivers/firmware/meson/built-in.a CC fs/ioctl.o CC drivers/acpi/acpica/tbinstal.o AR drivers/firmware/microchip/built-in.a CC drivers/cpuidle/governor.o CC drivers/firmware/efi/efi-bgrt.o CC net/wireless/reg.o CC drivers/leds/led-triggers.o CC drivers/firmware/efi/libstub/efi-stub-helper.o CC arch/x86/kernel/process.o CC drivers/cpufreq/acpi-cpufreq.o CC drivers/firmware/efi/libstub/gop.o HOSTCC drivers/gpu/drm/xe/xe_gen_wa_oob CC net/sunrpc/auth_gss/gss_krb5_unseal.o CC net/mac80211/sta_info.o CC net/mac80211/wep.o CC net/sunrpc/auth_gss/gss_krb5_wrap.o CC drivers/acpi/acpica/tbprint.o CC net/sunrpc/auth_tls.o GEN xe_wa_oob.c xe_wa_oob.h CC [M] drivers/gpu/drm/xe/xe_bb.o CC drivers/usb/core/phy.o CC drivers/usb/core/port.o CC kernel/params.o CC drivers/cpuidle/sysfs.o CC drivers/cpuidle/poll_state.o CC net/sunrpc/auth_gss/gss_krb5_crypto.o CC drivers/firmware/efi/efi.o CC net/sunrpc/auth_gss/gss_krb5_keys.o AR net/rfkill/built-in.a CC drivers/firmware/efi/vars.o CC [M] drivers/gpu/drm/scheduler/sched_entity.o CC net/ipv6/netfilter/ip6t_REJECT.o CC drivers/usb/core/hcd-pci.o CC drivers/firmware/efi/reboot.o AR drivers/net/ethernet/marvell/octeon_ep/built-in.a AR drivers/net/ethernet/mellanox/built-in.a CC net/mac80211/aead_api.o AR drivers/net/ethernet/marvell/octeon_ep_vf/built-in.a AR drivers/net/ethernet/marvell/octeontx2/built-in.a CC net/ipv4/datagram.o CC drivers/cpufreq/amd-pstate.o CC net/netfilter/xt_conntrack.o AR drivers/net/ethernet/marvell/prestera/built-in.a CC drivers/acpi/acpica/tbutils.o CC net/9p/mod.o CC drivers/net/ethernet/marvell/sky2.o CC drivers/gpu/drm/i915/gt/intel_engine_pm.o AR drivers/leds/built-in.a CC net/ipv4/raw.o CC drivers/firmware/efi/libstub/secureboot.o CC net/sunrpc/auth_unix.o CC drivers/gpu/drm/i915/gt/intel_engine_user.o CC drivers/cpuidle/cpuidle-haltpoll.o CC drivers/cpufreq/amd-pstate-trace.o CC net/sunrpc/svc.o CC net/9p/client.o CC drivers/firmware/efi/memattr.o AR drivers/crypto/stm32/built-in.a AR drivers/crypto/xilinx/built-in.a AR drivers/crypto/hisilicon/built-in.a CC drivers/firmware/efi/libstub/tpm.o AR drivers/crypto/intel/keembay/built-in.a CC drivers/firmware/efi/libstub/file.o AR drivers/crypto/intel/ixp4xx/built-in.a AR drivers/crypto/intel/built-in.a CC [M] drivers/gpu/drm/xe/xe_bo.o CC net/netlabel/netlabel_cipso_v4.o AR drivers/crypto/starfive/built-in.a CC [M] drivers/gpu/drm/xe/xe_bo_evict.o AR drivers/crypto/built-in.a CC arch/x86/kernel/ptrace.o CC drivers/acpi/acpica/tbxface.o LD [M] drivers/gpu/drm/scheduler/gpu-sched.o CC drivers/cpufreq/intel_pstate.o CC drivers/gpu/drm/drm_aperture.o CC drivers/clocksource/acpi_pm.o CC net/dns_resolver/dns_key.o CC net/netfilter/xt_policy.o CC drivers/hid/usbhid/hid-core.o CC drivers/hid/hid-core.o CC net/netfilter/xt_state.o CC drivers/md/dm-target.o CC kernel/kthread.o AR drivers/cpuidle/built-in.a CC [M] net/netfilter/nf_log_syslog.o CC drivers/gpu/drm/i915/gt/intel_execlists_submission.o CC net/dns_resolver/dns_query.o CC drivers/usb/core/usb-acpi.o CC net/sunrpc/svcsock.o AR net/sunrpc/auth_gss/built-in.a CC drivers/firmware/efi/libstub/mem.o CC lib/nmi_backtrace.o CC lib/objpool.o CC drivers/acpi/acpica/tbxfload.o AR drivers/usb/host/built-in.a CC arch/x86/kernel/tls.o CC drivers/gpu/drm/drm_atomic.o CC drivers/hid/usbhid/hiddev.o CC drivers/firmware/efi/tpm.o AR net/ipv6/netfilter/built-in.a CC [M] net/netfilter/xt_mark.o CC [M] net/netfilter/xt_nat.o CC drivers/firmware/efi/libstub/random.o AR drivers/net/ethernet/intel/e1000/built-in.a CC drivers/net/ethernet/intel/e1000e/82571.o CC lib/plist.o CC drivers/net/ethernet/intel/e1000e/ich8lan.o CC drivers/clocksource/i8253.o CC fs/readdir.o AR drivers/platform/x86/amd/built-in.a CC fs/select.o AR drivers/platform/x86/intel/built-in.a CC fs/nfs/nfs4xdr.o CC drivers/platform/x86/wmi.o CC net/sunrpc/svcauth.o CC net/wireless/scan.o CC drivers/platform/x86/wmi-bmof.o CC [M] net/netfilter/xt_LOG.o CC lib/radix-tree.o CC drivers/acpi/acpica/tbxfroot.o CC drivers/net/ethernet/intel/e100.o AR net/dns_resolver/built-in.a CC net/handshake/alert.o AR drivers/usb/core/built-in.a AR drivers/usb/built-in.a CC net/devres.o CC drivers/md/dm-linear.o CC lib/ratelimit.o CC net/netlabel/netlabel_calipso.o CC drivers/firmware/efi/libstub/randomalloc.o CC net/ipv4/udp.o CC arch/x86/kernel/step.o AR drivers/clocksource/built-in.a CC net/handshake/genl.o CC drivers/hid/hid-input.o CC net/9p/error.o CC fs/dcache.o CC net/socket.o CC drivers/acpi/acpica/utaddress.o CC net/ipv6/addrlabel.o CC drivers/hid/usbhid/hid-pidff.o CC [M] net/netfilter/xt_MASQUERADE.o CC [M] net/netfilter/xt_addrtype.o CC drivers/hid/hid-quirks.o CC drivers/mailbox/mailbox.o CC drivers/hid/hid-debug.o CC kernel/sys_ni.o CC lib/rbtree.o CC [M] drivers/gpu/drm/xe/xe_devcoredump.o CC drivers/platform/x86/eeepc-laptop.o CC drivers/gpu/drm/drm_atomic_uapi.o CC drivers/acpi/acpica/utalloc.o CC net/9p/protocol.o CC kernel/nsproxy.o CC drivers/md/dm-stripe.o CC arch/x86/kernel/i8237.o CC drivers/firmware/efi/libstub/pci.o CC net/sunrpc/svcauth_unix.o CC drivers/hid/hidraw.o CC arch/x86/kernel/stacktrace.o CC kernel/notifier.o CC drivers/platform/x86/p2sb.o CC fs/inode.o CC lib/seq_buf.o CC net/ipv6/route.o CC drivers/firmware/efi/memmap.o AR drivers/cpufreq/built-in.a CC net/sunrpc/addr.o CC arch/x86/kernel/reboot.o CC drivers/mailbox/pcc.o CC drivers/acpi/acpica/utascii.o CC drivers/hid/hid-generic.o AR net/netlabel/built-in.a CC net/sunrpc/rpcb_clnt.o CC net/sysctl_net.o CC net/ipv6/ip6_fib.o CC net/handshake/netlink.o AR drivers/platform/surface/built-in.a CC fs/attr.o CC net/wireless/nl80211.o CC [M] drivers/gpu/drm/xe/xe_device.o CC fs/bad_inode.o CC drivers/acpi/acpica/utbuffer.o AR drivers/net/ethernet/marvell/built-in.a CC drivers/net/ethernet/intel/e1000e/80003es2lan.o CC drivers/firmware/efi/libstub/skip_spaces.o CC drivers/hid/hid-a4tech.o CC net/handshake/request.o CC drivers/firmware/efi/libstub/lib-cmdline.o CC net/9p/trans_common.o CC net/handshake/tlshd.o CC lib/siphash.o CC net/9p/trans_fd.o AR drivers/hid/usbhid/built-in.a CC drivers/md/dm-ioctl.o CC net/9p/trans_virtio.o CC drivers/firmware/efi/capsule.o AR net/netfilter/built-in.a CC drivers/acpi/acpica/utcksum.o CC drivers/firmware/efi/libstub/lib-ctype.o CC net/wireless/mlme.o CC kernel/ksysfs.o CC drivers/firmware/efi/libstub/alignedmem.o CC kernel/cred.o CC drivers/gpu/drm/i915/gt/intel_ggtt.o CC drivers/firmware/efi/esrt.o AR drivers/mailbox/built-in.a CC drivers/hid/hid-apple.o CC kernel/reboot.o CC drivers/firmware/efi/runtime-wrappers.o AR drivers/platform/x86/built-in.a CC kernel/async.o AR drivers/platform/built-in.a CC drivers/hid/hid-belkin.o CC drivers/hid/hid-cherry.o CC drivers/md/dm-io.o CC arch/x86/kernel/msr.o CC drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o CC drivers/acpi/acpica/utcopy.o CC fs/file.o CC fs/nfs/nfs4state.o CC net/mac80211/wpa.o CC net/mac80211/scan.o CC drivers/firmware/efi/libstub/relocate.o CC fs/nfs/nfs4renewd.o CC lib/string.o CC fs/filesystems.o CC arch/x86/kernel/cpuid.o CC lib/timerqueue.o CC drivers/gpu/drm/i915/gt/intel_gt.o CC drivers/net/ethernet/intel/e1000e/mac.o CC fs/nfs/nfs4super.o CC drivers/md/dm-kcopyd.o CC net/handshake/trace.o AR drivers/firmware/imx/built-in.a CC drivers/hid/hid-chicony.o CC drivers/firmware/efi/libstub/printk.o CC kernel/range.o CC lib/vsprintf.o CC drivers/firmware/efi/capsule-loader.o CC drivers/acpi/acpica/utexcep.o CC drivers/hid/hid-cypress.o CC drivers/hid/hid-ezkey.o CC net/ipv4/udplite.o CC net/wireless/ibss.o CC net/ipv4/udp_offload.o CC net/ipv4/arp.o CC [M] drivers/gpu/drm/xe/xe_device_sysfs.o AR drivers/net/ethernet/meta/built-in.a CC [M] drivers/gpu/drm/xe/xe_dma_buf.o CC arch/x86/kernel/early-quirks.o AR drivers/perf/built-in.a AR drivers/net/ethernet/micrel/built-in.a CC kernel/smpboot.o AR drivers/hwtracing/intel_th/built-in.a AR drivers/android/built-in.a CC arch/x86/kernel/smp.o CC drivers/acpi/acpica/utdebug.o CC drivers/net/ethernet/intel/e1000e/manage.o CC lib/win_minmax.o CC [M] drivers/gpu/drm/xe/xe_drm_client.o CC arch/x86/kernel/smpboot.o CC drivers/acpi/acpica/utdecode.o CC arch/x86/kernel/tsc_sync.o CC drivers/acpi/button.o AR net/9p/built-in.a CC drivers/md/dm-sysfs.o CC drivers/acpi/fan_core.o CC net/ipv6/ipv6_sockglue.o CC fs/namespace.o CC fs/seq_file.o CC drivers/gpu/drm/drm_auth.o CC net/mac80211/offchannel.o CC drivers/md/dm-stats.o CC lib/xarray.o CC lib/lockref.o CC fs/nfs/nfs4file.o CC drivers/hid/hid-gyration.o CC drivers/net/ethernet/intel/e1000e/nvm.o CC kernel/ucount.o CC drivers/firmware/efi/libstub/vsprintf.o CC kernel/regset.o CC net/mac80211/ht.o CC drivers/acpi/acpica/utdelete.o CC drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o CC [M] drivers/gpu/drm/xe/xe_exec.o CC net/ipv6/ndisc.o CC drivers/acpi/fan_attr.o CC fs/xattr.o CC net/ipv4/icmp.o CC lib/bcd.o CC net/sunrpc/timer.o CC drivers/firmware/efi/libstub/x86-stub.o CC drivers/firmware/efi/libstub/smbios.o CC net/ipv4/devinet.o CC arch/x86/kernel/setup_percpu.o CC drivers/acpi/acpica/uterror.o CC drivers/acpi/acpica/uteval.o CC drivers/net/ethernet/intel/e1000e/phy.o CC drivers/acpi/fan_hwmon.o AR drivers/firmware/psci/built-in.a CC drivers/acpi/acpi_video.o CC fs/nfs/delegation.o CC kernel/ksyms_common.o CC fs/libfs.o AR net/handshake/built-in.a CC drivers/hid/hid-ite.o CC net/ipv6/udp.o CC drivers/hid/hid-kensington.o CC net/ipv4/af_inet.o CC net/ipv6/udplite.o CC drivers/gpu/drm/drm_blend.o CC drivers/acpi/video_detect.o CC drivers/hid/hid-lg.o CC [M] drivers/gpu/drm/xe/xe_execlist.o CC net/ipv4/igmp.o CC drivers/firmware/efi/earlycon.o CC drivers/acpi/acpica/utglobal.o CC net/ipv6/raw.o CC drivers/acpi/acpica/uthex.o CC fs/nfs/nfs4idmap.o CC fs/fs-writeback.o CC [M] drivers/gpu/drm/xe/xe_exec_queue.o STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o CC drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.o CC arch/x86/kernel/mpparse.o STUBCPY drivers/firmware/efi/libstub/file.stub.o STUBCPY drivers/firmware/efi/libstub/gop.stub.o STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o CC arch/x86/kernel/trace_clock.o CC lib/sort.o CC drivers/net/ethernet/intel/e1000e/param.o CC kernel/groups.o CC net/sunrpc/xdr.o CC lib/parser.o AR drivers/firmware/qcom/built-in.a CC drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o CC lib/debug_locks.o STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o CC kernel/kcmp.o CC drivers/acpi/acpica/utids.o STUBCPY drivers/firmware/efi/libstub/mem.stub.o STUBCPY drivers/firmware/efi/libstub/pci.stub.o CC arch/x86/kernel/trace.o STUBCPY drivers/firmware/efi/libstub/printk.stub.o STUBCPY drivers/firmware/efi/libstub/random.stub.o STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o STUBCPY drivers/firmware/efi/libstub/relocate.stub.o CC [M] drivers/gpu/drm/xe/xe_force_wake.o STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o CC drivers/net/ethernet/intel/e1000e/ethtool.o STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o CC drivers/md/dm-rq.o STUBCPY drivers/firmware/efi/libstub/smbios.stub.o STUBCPY drivers/firmware/efi/libstub/tpm.stub.o STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o CC net/wireless/sme.o STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o AR drivers/firmware/efi/libstub/lib.a CC lib/random32.o CC [M] drivers/gpu/drm/xe/xe_ggtt.o CC drivers/gpu/drm/drm_bridge.o CC arch/x86/kernel/rethook.o AR drivers/firmware/efi/built-in.a CC drivers/acpi/acpica/utinit.o AR drivers/firmware/smccc/built-in.a AR drivers/firmware/tegra/built-in.a CC net/ipv6/icmp.o AR drivers/firmware/xilinx/built-in.a CC drivers/firmware/dmi_scan.o CC drivers/md/dm-io-rewind.o CC net/sunrpc/sunrpc_syms.o CC drivers/hid/hid-lgff.o CC net/ipv6/mcast.o CC [M] drivers/gpu/drm/xe/xe_gpu_scheduler.o CC [M] drivers/gpu/drm/xe/xe_gsc.o CC fs/nfs/callback.o CC net/mac80211/agg-tx.o CC lib/bust_spinlocks.o CC drivers/acpi/processor_driver.o CC net/sunrpc/cache.o CC drivers/acpi/acpica/utlock.o CC fs/nfs/callback_xdr.o CC net/sunrpc/rpc_pipe.o CC drivers/net/ethernet/intel/e1000e/netdev.o CC drivers/hid/hid-lg4ff.o CC lib/kasprintf.o CC drivers/hid/hid-lg-g15.o CC kernel/freezer.o CC drivers/gpu/drm/i915/gt/intel_gt_debugfs.o CC arch/x86/kernel/vmcore_info_32.o CC net/ipv4/fib_frontend.o CC [M] drivers/gpu/drm/xe/xe_gsc_debugfs.o CC net/wireless/chan.o CC drivers/acpi/processor_thermal.o CC net/wireless/ethtool.o CC drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o CC net/ipv6/reassembly.o CC drivers/gpu/drm/i915/gt/intel_gt_irq.o CC drivers/net/ethernet/intel/e1000e/ptp.o CC drivers/acpi/acpica/utmath.o CC net/wireless/mesh.o CC drivers/acpi/acpica/utmisc.o CC drivers/acpi/processor_idle.o CC net/sunrpc/sysfs.o CC lib/bitmap.o CC [M] drivers/gpu/drm/xe/xe_gsc_proxy.o CC drivers/gpu/drm/i915/gt/intel_gt_mcr.o CC drivers/md/dm-builtin.o CC drivers/firmware/dmi-id.o CC fs/nfs/callback_proc.o CC fs/nfs/nfs4namespace.o CC drivers/acpi/acpica/utmutex.o CC net/ipv6/tcp_ipv6.o CC arch/x86/kernel/machine_kexec_32.o CC net/ipv4/fib_semantics.o AR drivers/net/ethernet/microchip/built-in.a CC drivers/acpi/processor_throttling.o CC lib/scatterlist.o CC drivers/acpi/acpica/utnonansi.o CC [M] drivers/gpu/drm/xe/xe_gsc_submit.o CC drivers/firmware/memmap.o CC net/ipv6/ping.o CC drivers/acpi/processor_perflib.o CC fs/nfs/nfs4getroot.o CC kernel/profile.o CC fs/pnode.o CC net/ipv6/exthdrs.o CC net/ipv4/fib_trie.o CC drivers/md/dm-raid1.o CC drivers/acpi/container.o AR drivers/nvmem/layouts/built-in.a CC drivers/hid/hid-microsoft.o CC drivers/nvmem/core.o CC net/ipv4/fib_notifier.o CC drivers/md/dm-log.o CC drivers/acpi/acpica/utobject.o CC drivers/gpu/drm/i915/gt/intel_gt_pm.o CC lib/list_sort.o CC lib/uuid.o CC drivers/acpi/thermal_lib.o CC drivers/md/dm-region-hash.o CC [M] drivers/gpu/drm/xe/xe_gt.o AS arch/x86/kernel/relocate_kernel_32.o CC arch/x86/kernel/crash_dump_32.o CC lib/iov_iter.o CC lib/clz_ctz.o AR drivers/firmware/built-in.a CC [M] drivers/gpu/drm/xe/xe_gt_ccs_mode.o CC fs/splice.o CC fs/sync.o CC lib/bsearch.o CC drivers/acpi/thermal.o CC net/mac80211/agg-rx.o CC fs/nfs/nfs4client.o CC net/mac80211/vht.o CC drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o CC kernel/stacktrace.o CC drivers/acpi/acpica/utosi.o CC drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o CC net/sunrpc/svc_xprt.o CC net/sunrpc/xprtmultipath.o CC net/ipv6/datagram.o CC fs/utimes.o CC drivers/gpu/drm/i915/gt/intel_gt_requests.o CC lib/find_bit.o CC drivers/hid/hid-monterey.o CC fs/nfs/nfs4session.o CC drivers/acpi/nhlt.o CC drivers/md/dm-zero.o CC drivers/hid/hid-ntrig.o CC fs/nfs/dns_resolve.o CC drivers/acpi/acpica/utownerid.o CC lib/llist.o CC arch/x86/kernel/crash.o CC lib/lwq.o CC net/sunrpc/stats.o CC fs/d_path.o CC fs/nfs/nfs4trace.o CC fs/nfs/nfs4sysctl.o CC net/mac80211/he.o CC kernel/dma.o AR drivers/nvmem/built-in.a CC drivers/gpu/drm/i915/gt/intel_gt_sysfs.o CC drivers/acpi/acpi_memhotplug.o CC [M] drivers/gpu/drm/xe/xe_gt_clock.o CC lib/memweight.o CC [M] drivers/gpu/drm/xe/xe_gt_freq.o CC kernel/smp.o AR drivers/net/ethernet/mscc/built-in.a CC fs/stack.o AR drivers/net/ethernet/myricom/built-in.a CC lib/kfifo.o CC net/sunrpc/sysctl.o CC drivers/acpi/acpica/utpredef.o CC net/mac80211/s1g.o CC fs/fs_struct.o CC fs/statfs.o AR drivers/net/ethernet/natsemi/built-in.a CC lib/percpu-refcount.o AR drivers/net/ethernet/neterion/built-in.a AR drivers/net/ethernet/netronome/built-in.a AR drivers/net/ethernet/ni/built-in.a CC drivers/net/ethernet/nvidia/forcedeth.o CC drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o AR drivers/net/ethernet/oki-semi/built-in.a AR drivers/net/ethernet/packetengines/built-in.a AR drivers/md/built-in.a CC net/ipv6/ip6_flowlabel.o AR drivers/net/ethernet/qlogic/built-in.a CC net/mac80211/ibss.o AR drivers/net/ethernet/qualcomm/emac/built-in.a AR drivers/net/ethernet/qualcomm/built-in.a CC net/ipv6/inet6_connection_sock.o CC kernel/uid16.o CC arch/x86/kernel/module.o CC drivers/acpi/ioapic.o CC drivers/acpi/acpica/utresdecode.o CC drivers/acpi/acpica/utresrc.o CC net/wireless/ap.o CC drivers/gpu/drm/drm_cache.o CC drivers/net/ethernet/realtek/8139too.o CC drivers/gpu/drm/i915/gt/intel_gtt.o CC drivers/hid/hid-pl.o CC drivers/net/ethernet/realtek/r8169_main.o CC drivers/gpu/drm/i915/gt/intel_llc.o CC [M] drivers/gpu/drm/xe/xe_gt_idle.o CC net/wireless/trace.o CC drivers/acpi/battery.o CC drivers/gpu/drm/i915/gt/intel_lrc.o CC drivers/net/ethernet/realtek/r8169_firmware.o CC drivers/hid/hid-petalynx.o AR drivers/net/ethernet/renesas/built-in.a CC drivers/hid/hid-redragon.o CC arch/x86/kernel/doublefault_32.o CC drivers/hid/hid-samsung.o CC drivers/hid/hid-sony.o CC net/ipv4/inet_fragment.o CC drivers/hid/hid-sunplus.o CC lib/rhashtable.o CC net/ipv6/udp_offload.o CC [M] drivers/gpu/drm/xe/xe_gt_mcr.o AR drivers/net/ethernet/rocker/built-in.a AR drivers/net/ethernet/rdc/built-in.a CC [M] drivers/gpu/drm/xe/xe_gt_pagefault.o CC [M] drivers/gpu/drm/xe/xe_gt_sysfs.o AR drivers/net/ethernet/samsung/built-in.a CC kernel/kallsyms.o CC drivers/acpi/acpica/utstate.o CC drivers/gpu/drm/i915/gt/intel_migrate.o AR drivers/net/ethernet/seeq/built-in.a CC drivers/acpi/bgrt.o CC kernel/acct.o CC arch/x86/kernel/early_printk.o CC net/mac80211/iface.o CC drivers/acpi/acpica/utstring.o CC drivers/net/ethernet/realtek/r8169_phy_config.o CC drivers/acpi/spcr.o CC net/ipv6/seg6.o CC kernel/vmcore_info.o CC drivers/hid/hid-topseed.o CC kernel/elfcorehdr.o CC drivers/acpi/acpica/utstrsuppt.o AR drivers/net/ethernet/intel/e1000e/built-in.a AR drivers/net/ethernet/intel/built-in.a AR drivers/net/ethernet/silan/built-in.a CC net/ipv6/fib6_notifier.o CC net/ipv6/rpl.o AR drivers/net/ethernet/sis/built-in.a CC drivers/acpi/acpica/utstrtoul64.o CC [M] drivers/gpu/drm/xe/xe_gt_throttle.o AR drivers/net/ethernet/sfc/built-in.a CC net/ipv6/ioam6.o AR drivers/net/ethernet/smsc/built-in.a AR drivers/net/ethernet/socionext/built-in.a CC drivers/acpi/acpica/utxface.o CC kernel/crash_reserve.o AR drivers/net/ethernet/stmicro/built-in.a AR drivers/net/ethernet/sun/built-in.a CC net/wireless/ocb.o CC net/ipv6/sysctl_net_ipv6.o CC net/ipv6/xfrm6_policy.o CC drivers/gpu/drm/i915/gt/intel_mocs.o CC fs/fs_pin.o CC net/ipv4/ping.o CC arch/x86/kernel/hpet.o CC [M] drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o CC net/mac80211/link.o CC drivers/acpi/acpica/utxfinit.o CC drivers/acpi/acpica/utxferror.o CC net/mac80211/rate.o CC [M] drivers/gpu/drm/xe/xe_gt_topology.o CC drivers/acpi/acpica/utxfmutex.o CC kernel/kexec_core.o CC drivers/gpu/drm/drm_client.o CC net/ipv6/xfrm6_state.o CC arch/x86/kernel/amd_nb.o CC lib/base64.o CC arch/x86/kernel/kvm.o CC kernel/crash_core.o CC net/mac80211/michael.o CC net/ipv4/ip_tunnel_core.o CC fs/nsfs.o CC kernel/kexec.o CC lib/once.o CC kernel/utsname.o AR drivers/hid/built-in.a CC [M] drivers/gpu/drm/xe/xe_guc.o CC [M] drivers/gpu/drm/xe/xe_guc_ads.o CC drivers/gpu/drm/i915/gt/intel_ppgtt.o CC [M] drivers/gpu/drm/xe/xe_guc_ct.o CC net/ipv6/xfrm6_input.o CC kernel/pid_namespace.o CC net/ipv6/xfrm6_output.o CC lib/refcount.o AR drivers/acpi/acpica/built-in.a AR drivers/acpi/built-in.a CC lib/rcuref.o CC net/ipv4/gre_offload.o CC drivers/gpu/drm/drm_client_modeset.o CC net/ipv6/xfrm6_protocol.o CC net/ipv4/metrics.o CC drivers/gpu/drm/i915/gt/intel_rc6.o CC net/ipv6/netfilter.o CC lib/usercopy.o AR net/sunrpc/built-in.a CC [M] drivers/gpu/drm/xe/xe_guc_db_mgr.o CC kernel/stop_machine.o CC net/mac80211/tkip.o CC fs/fs_types.o CC kernel/audit.o CC drivers/gpu/drm/i915/gt/intel_region_lmem.o CC net/ipv6/proc.o CC drivers/gpu/drm/drm_color_mgmt.o CC drivers/gpu/drm/drm_connector.o CC net/mac80211/aes_cmac.o CC arch/x86/kernel/kvmclock.o CC kernel/auditfilter.o CC lib/errseq.o CC net/mac80211/aes_gmac.o CC net/ipv6/syncookies.o CC net/wireless/pmsr.o CC [M] drivers/gpu/drm/xe/xe_guc_hwconfig.o CC [M] drivers/gpu/drm/xe/xe_guc_id_mgr.o CC lib/bucket_locks.o CC kernel/auditsc.o CC net/ipv6/calipso.o AR drivers/net/ethernet/tehuti/built-in.a AR fs/nfs/built-in.a CC lib/generic-radix-tree.o CC fs/fs_context.o CC net/ipv4/netlink.o GEN net/wireless/shipped-certs.c CC net/wireless/shipped-certs.o CC net/ipv6/ah6.o CC fs/fs_parser.o AR drivers/net/ethernet/nvidia/built-in.a CC drivers/gpu/drm/drm_crtc.o CC arch/x86/kernel/paravirt.o CC [M] drivers/gpu/drm/xe/xe_guc_klv_helpers.o CC [M] drivers/gpu/drm/xe/xe_guc_log.o CC net/mac80211/fils_aead.o AR drivers/net/ethernet/realtek/built-in.a CC [M] drivers/gpu/drm/xe/xe_guc_pc.o CC [M] drivers/gpu/drm/xe/xe_guc_submit.o AR drivers/net/ethernet/ti/built-in.a AR drivers/net/ethernet/vertexcom/built-in.a CC net/ipv6/esp6.o AR drivers/net/ethernet/via/built-in.a AR drivers/net/ethernet/wangxun/built-in.a CC drivers/gpu/drm/i915/gt/intel_renderstate.o CC drivers/gpu/drm/drm_displayid.o AR drivers/net/ethernet/wiznet/built-in.a CC drivers/gpu/drm/drm_drv.o CC lib/bitmap-str.o AR drivers/net/ethernet/xilinx/built-in.a CC lib/string_helpers.o CC net/ipv6/sit.o AR drivers/net/ethernet/xircom/built-in.a CC drivers/gpu/drm/drm_dumb_buffers.o AR drivers/net/ethernet/synopsys/built-in.a CC net/ipv4/nexthop.o CC kernel/audit_watch.o AR drivers/net/ethernet/pensando/built-in.a CC drivers/gpu/drm/drm_edid.o AR drivers/net/ethernet/built-in.a CC [M] drivers/gpu/drm/xe/xe_heci_gsc.o CC drivers/gpu/drm/drm_eld.o CC lib/hexdump.o CC [M] drivers/gpu/drm/xe/xe_hw_engine.o CC drivers/gpu/drm/drm_encoder.o CC [M] drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o CC fs/fsopen.o CC [M] drivers/gpu/drm/xe/xe_hw_engine_group.o CC arch/x86/kernel/pvclock.o CC arch/x86/kernel/pcspeaker.o CC net/mac80211/cfg.o AR drivers/net/built-in.a CC net/ipv6/addrconf_core.o CC drivers/gpu/drm/i915/gt/intel_reset.o CC net/mac80211/ethtool.o CC drivers/gpu/drm/drm_file.o CC arch/x86/kernel/check.o CC fs/init.o CC net/ipv4/udp_tunnel_stub.o CC arch/x86/kernel/uprobes.o CC [M] drivers/gpu/drm/xe/xe_hw_fence.o CC fs/kernel_read_file.o CC net/ipv6/exthdrs_core.o CC [M] drivers/gpu/drm/xe/xe_huc.o CC arch/x86/kernel/perf_regs.o CC drivers/gpu/drm/drm_fourcc.o CC lib/kstrtox.o CC lib/iomap.o CC fs/mnt_idmapping.o CC net/mac80211/rx.o CC drivers/gpu/drm/i915/gt/intel_ring.o CC kernel/audit_fsnotify.o CC lib/iomap_copy.o CC [M] drivers/gpu/drm/xe/xe_irq.o CC drivers/gpu/drm/drm_framebuffer.o CC arch/x86/kernel/tracepoint.o CC drivers/gpu/drm/drm_gem.o CC net/ipv6/ip6_checksum.o CC drivers/gpu/drm/i915/gt/intel_ring_submission.o CC lib/devres.o CC [M] drivers/gpu/drm/xe/xe_lrc.o CC [M] drivers/gpu/drm/xe/xe_migrate.o CC arch/x86/kernel/itmt.o CC fs/remap_range.o CC net/mac80211/spectmgmt.o CC [M] drivers/gpu/drm/xe/xe_mmio.o CC lib/check_signature.o CC arch/x86/kernel/umip.o CC arch/x86/kernel/unwind_frame.o CC drivers/gpu/drm/drm_ioctl.o CC lib/interval_tree.o CC lib/assoc_array.o CC fs/pidfs.o CC kernel/audit_tree.o CC kernel/kprobes.o CC fs/buffer.o CC fs/mpage.o CC net/ipv6/ip6_icmp.o CC drivers/gpu/drm/i915/gt/intel_rps.o CC [M] drivers/gpu/drm/xe/xe_mocs.o CC [M] drivers/gpu/drm/xe/xe_module.o CC lib/bitrev.o CC drivers/gpu/drm/drm_lease.o CC drivers/gpu/drm/drm_managed.o CC net/ipv4/ip_tunnel.o CC lib/crc-ccitt.o CC [M] drivers/gpu/drm/xe/xe_oa.o CC net/ipv4/sysctl_net_ipv4.o CC net/ipv6/output_core.o CC net/ipv6/protocol.o CC [M] drivers/gpu/drm/xe/xe_observation.o CC net/mac80211/tx.o CC kernel/seccomp.o CC lib/crc16.o HOSTCC lib/gen_crc32table CC lib/xxhash.o CC lib/genalloc.o CC drivers/gpu/drm/i915/gt/intel_sa_media.o AR arch/x86/kernel/built-in.a CC fs/proc_namespace.o CC [M] drivers/gpu/drm/xe/xe_pat.o CC net/ipv6/ip6_offload.o AR arch/x86/built-in.a CC net/ipv6/tcpv6_offload.o CC drivers/gpu/drm/drm_mm.o CC [M] drivers/gpu/drm/xe/xe_pci.o CC lib/percpu_counter.o CC net/ipv6/exthdrs_offload.o CC net/ipv4/proc.o CC net/ipv6/inet6_hashtables.o CC net/mac80211/key.o CC kernel/relay.o CC fs/direct-io.o CC drivers/gpu/drm/drm_mode_config.o CC drivers/gpu/drm/drm_mode_object.o CC drivers/gpu/drm/i915/gt/intel_sseu.o CC [M] drivers/gpu/drm/xe/xe_pcode.o CC [M] drivers/gpu/drm/xe/xe_pm.o CC drivers/gpu/drm/drm_modes.o CC drivers/gpu/drm/drm_modeset_lock.o CC kernel/utsname_sysctl.o CC kernel/delayacct.o CC kernel/taskstats.o CC lib/audit.o CC net/ipv6/mcast_snoop.o CC lib/syscall.o CC kernel/tsacct.o CC kernel/tracepoint.o CC drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o CC net/ipv4/fib_rules.o CC lib/errname.o CC lib/nlattr.o CC fs/eventpoll.o CC fs/anon_inodes.o CC [M] drivers/gpu/drm/xe/xe_preempt_fence.o CC net/mac80211/util.o CC drivers/gpu/drm/i915/gt/intel_timeline.o CC kernel/irq_work.o CC kernel/static_call.o CC [M] drivers/gpu/drm/xe/xe_pt.o CC kernel/padata.o CC drivers/gpu/drm/i915/gt/intel_tlb.o CC fs/signalfd.o CC fs/timerfd.o CC lib/cpu_rmap.o CC [M] drivers/gpu/drm/xe/xe_pt_walk.o CC net/mac80211/parse.o CC drivers/gpu/drm/drm_plane.o CC drivers/gpu/drm/i915/gt/intel_wopcm.o CC lib/dynamic_queue_limits.o CC lib/glob.o CC drivers/gpu/drm/drm_prime.o CC drivers/gpu/drm/drm_print.o CC [M] drivers/gpu/drm/xe/xe_query.o CC fs/eventfd.o CC drivers/gpu/drm/drm_property.o CC drivers/gpu/drm/drm_syncobj.o CC fs/aio.o CC kernel/jump_label.o CC net/ipv4/ipmr.o CC drivers/gpu/drm/i915/gt/intel_workarounds.o CC net/mac80211/wme.o CC kernel/context_tracking.o CC [M] drivers/gpu/drm/xe/xe_range_fence.o CC kernel/iomem.o CC lib/strncpy_from_user.o CC net/ipv4/ipmr_base.o CC net/ipv4/syncookies.o CC lib/strnlen_user.o CC [M] drivers/gpu/drm/xe/xe_reg_sr.o CC drivers/gpu/drm/i915/gt/shmem_utils.o CC [M] drivers/gpu/drm/xe/xe_reg_whitelist.o CC drivers/gpu/drm/drm_sysfs.o AR net/ipv6/built-in.a CC drivers/gpu/drm/drm_trace_points.o CC lib/net_utils.o CC [M] drivers/gpu/drm/xe/xe_rtp.o CC kernel/rseq.o CC drivers/gpu/drm/drm_vblank.o CC drivers/gpu/drm/i915/gt/sysfs_engines.o CC drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o CC fs/locks.o CC lib/sg_pool.o CC drivers/gpu/drm/drm_vblank_work.o CC drivers/gpu/drm/i915/gt/gen6_renderstate.o CC net/ipv4/tunnel4.o CC fs/binfmt_misc.o CC [M] drivers/gpu/drm/xe/xe_ring_ops.o CC drivers/gpu/drm/i915/gt/gen7_renderstate.o CC drivers/gpu/drm/i915/gt/gen8_renderstate.o CC drivers/gpu/drm/i915/gt/gen9_renderstate.o CC lib/stackdepot.o CC lib/asn1_decoder.o CC fs/binfmt_script.o GEN lib/oid_registry_data.c CC net/mac80211/chan.o CC lib/ucs2_string.o CC [M] drivers/gpu/drm/xe/xe_sa.o CC drivers/gpu/drm/drm_vma_manager.o CC drivers/gpu/drm/drm_writeback.o CC drivers/gpu/drm/drm_panel.o CC drivers/gpu/drm/i915/gem/i915_gem_busy.o CC drivers/gpu/drm/drm_pci.o CC lib/sbitmap.o CC [M] drivers/gpu/drm/xe/xe_sched_job.o CC drivers/gpu/drm/drm_debugfs.o CC drivers/gpu/drm/i915/gem/i915_gem_clflush.o CC drivers/gpu/drm/i915/gem/i915_gem_context.o CC [M] drivers/gpu/drm/xe/xe_step.o CC drivers/gpu/drm/i915/gem/i915_gem_create.o CC lib/group_cpus.o CC [M] drivers/gpu/drm/xe/xe_sync.o CC drivers/gpu/drm/drm_debugfs_crc.o CC drivers/gpu/drm/drm_panel_orientation_quirks.o CC drivers/gpu/drm/drm_buddy.o CC fs/binfmt_elf.o CC lib/fw_table.o CC drivers/gpu/drm/drm_gem_shmem_helper.o AR kernel/built-in.a CC net/mac80211/trace.o CC drivers/gpu/drm/drm_atomic_helper.o CC net/mac80211/mlme.o CC net/ipv4/ipconfig.o CC drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o CC drivers/gpu/drm/i915/gem/i915_gem_domain.o CC drivers/gpu/drm/drm_atomic_state_helper.o CC net/ipv4/netfilter.o CC drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o CC [M] drivers/gpu/drm/xe/xe_tile.o CC net/mac80211/tdls.o CC net/ipv4/tcp_cubic.o AR lib/lib.a CC net/ipv4/tcp_sigpool.o CC [M] drivers/gpu/drm/xe/xe_tile_sysfs.o CC fs/mbcache.o CC net/mac80211/ocb.o GEN lib/crc32table.h CC lib/oid_registry.o CC drivers/gpu/drm/i915/gem/i915_gem_internal.o CC drivers/gpu/drm/drm_crtc_helper.o CC drivers/gpu/drm/i915/gem/i915_gem_lmem.o CC drivers/gpu/drm/drm_damage_helper.o CC net/ipv4/cipso_ipv4.o CC drivers/gpu/drm/drm_encoder_slave.o CC lib/crc32.o CC net/mac80211/airtime.o CC [M] drivers/gpu/drm/xe/xe_trace.o CC drivers/gpu/drm/drm_flip_work.o CC drivers/gpu/drm/drm_format_helper.o CC drivers/gpu/drm/i915/gem/i915_gem_mman.o CC drivers/gpu/drm/drm_gem_atomic_helper.o CC drivers/gpu/drm/drm_gem_framebuffer_helper.o CC drivers/gpu/drm/i915/gem/i915_gem_object.o CC net/mac80211/eht.o CC net/ipv4/xfrm4_policy.o CC drivers/gpu/drm/drm_kms_helper_common.o CC drivers/gpu/drm/drm_modeset_helper.o CC [M] drivers/gpu/drm/xe/xe_trace_bo.o CC [M] drivers/gpu/drm/xe/xe_trace_guc.o CC drivers/gpu/drm/drm_plane_helper.o CC fs/posix_acl.o CC drivers/gpu/drm/i915/gem/i915_gem_pages.o CC drivers/gpu/drm/drm_probe_helper.o CC [M] drivers/gpu/drm/xe/xe_ttm_sys_mgr.o CC drivers/gpu/drm/i915/gem/i915_gem_phys.o CC [M] drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o AR lib/built-in.a CC [M] drivers/gpu/drm/xe/xe_ttm_vram_mgr.o CC drivers/gpu/drm/i915/gem/i915_gem_pm.o CC drivers/gpu/drm/drm_rect.o CC drivers/gpu/drm/drm_self_refresh_helper.o CC fs/coredump.o CC drivers/gpu/drm/drm_simple_kms_helper.o CC drivers/gpu/drm/i915/gem/i915_gem_region.o CC [M] drivers/gpu/drm/xe/xe_tuning.o CC drivers/gpu/drm/bridge/panel.o CC [M] drivers/gpu/drm/xe/xe_uc.o CC [M] drivers/gpu/drm/xe/xe_uc_fw.o CC drivers/gpu/drm/i915/gem/i915_gem_shmem.o CC drivers/gpu/drm/drm_mipi_dsi.o CC [M] drivers/gpu/drm/drm_exec.o CC [M] drivers/gpu/drm/xe/xe_vm.o CC net/ipv4/xfrm4_state.o CC [M] drivers/gpu/drm/drm_gpuvm.o CC net/ipv4/xfrm4_input.o CC [M] drivers/gpu/drm/drm_suballoc.o CC net/mac80211/led.o CC [M] drivers/gpu/drm/drm_gem_ttm_helper.o CC [M] drivers/gpu/drm/xe/xe_vram.o CC [M] drivers/gpu/drm/xe/xe_vram_freq.o CC net/mac80211/pm.o CC net/mac80211/rc80211_minstrel_ht.o CC net/ipv4/xfrm4_output.o CC net/mac80211/wbrf.o CC net/ipv4/xfrm4_protocol.o CC [M] drivers/gpu/drm/xe/xe_wait_user_fence.o CC [M] drivers/gpu/drm/xe/xe_wa.o CC [M] drivers/gpu/drm/xe/xe_wopcm.o CC drivers/gpu/drm/i915/gem/i915_gem_shrinker.o CC [M] drivers/gpu/drm/xe/xe_hmm.o CC [M] drivers/gpu/drm/xe/xe_hwmon.o CC drivers/gpu/drm/i915/gem/i915_gem_stolen.o CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf.o CC fs/drop_caches.o CC [M] drivers/gpu/drm/xe/xe_guc_relay.o CC [M] drivers/gpu/drm/xe/xe_memirq.o CC fs/sysctls.o CC [M] drivers/gpu/drm/xe/xe_sriov.o CC [M] drivers/gpu/drm/xe/display/ext/i915_irq.o CC drivers/gpu/drm/i915/gem/i915_gem_throttle.o CC drivers/gpu/drm/i915/gem/i915_gem_tiling.o CC [M] drivers/gpu/drm/xe/display/ext/i915_utils.o CC drivers/gpu/drm/i915/gem/i915_gem_ttm.o CC drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o CC drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o CC drivers/gpu/drm/i915/gem/i915_gem_userptr.o CC drivers/gpu/drm/i915/gem/i915_gem_wait.o CC [M] drivers/gpu/drm/xe/display/intel_fb_bo.o CC [M] drivers/gpu/drm/xe/display/intel_fbdev_fb.o CC fs/fhandle.o CC [M] drivers/gpu/drm/xe/display/xe_display.o CC [M] drivers/gpu/drm/xe/display/xe_display_misc.o CC drivers/gpu/drm/i915/gem/i915_gemfs.o CC [M] drivers/gpu/drm/xe/display/xe_display_rps.o CC [M] drivers/gpu/drm/xe/display/xe_display_wa.o CC [M] drivers/gpu/drm/xe/display/xe_dsb_buffer.o CC [M] drivers/gpu/drm/xe/display/xe_fb_pin.o CC drivers/gpu/drm/i915/i915_active.o LD [M] drivers/gpu/drm/drm_suballoc_helper.o LD [M] drivers/gpu/drm/drm_ttm_helper.o CC drivers/gpu/drm/i915/i915_cmd_parser.o CC [M] drivers/gpu/drm/xe/display/xe_hdcp_gsc.o CC drivers/gpu/drm/i915/i915_deps.o CC [M] drivers/gpu/drm/xe/display/xe_plane_initial.o CC [M] drivers/gpu/drm/xe/display/xe_tdf.o CC [M] drivers/gpu/drm/xe/i915-soc/intel_dram.o CC [M] drivers/gpu/drm/xe/i915-soc/intel_pch.o CC drivers/gpu/drm/i915/i915_gem.o CC [M] drivers/gpu/drm/xe/i915-display/icl_dsi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_alpm.o CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic.o CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o CC [M] drivers/gpu/drm/xe/i915-display/intel_audio.o CC [M] drivers/gpu/drm/xe/i915-display/intel_backlight.o CC drivers/gpu/drm/i915/i915_gem_evict.o CC drivers/gpu/drm/i915/i915_gem_gtt.o CC [M] drivers/gpu/drm/xe/i915-display/intel_bios.o CC [M] drivers/gpu/drm/xe/i915-display/intel_bw.o CC drivers/gpu/drm/i915/i915_gem_ww.o AR net/wireless/built-in.a CC [M] drivers/gpu/drm/xe/i915-display/intel_cdclk.o CC drivers/gpu/drm/i915/i915_query.o AR net/ipv4/built-in.a CC [M] drivers/gpu/drm/xe/i915-display/intel_color.o CC [M] drivers/gpu/drm/xe/i915-display/intel_combo_phy.o CC [M] drivers/gpu/drm/xe/i915-display/intel_connector.o CC drivers/gpu/drm/i915/i915_request.o AR fs/built-in.a CC drivers/gpu/drm/i915/i915_scheduler.o CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o CC drivers/gpu/drm/i915/i915_trace_points.o CC drivers/gpu/drm/i915/i915_ttm_buddy_manager.o CC [M] drivers/gpu/drm/xe/i915-display/intel_cursor.o CC [M] drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o CC drivers/gpu/drm/i915/i915_vma.o CC drivers/gpu/drm/i915/i915_vma_resource.o CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi.o CC drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o CC drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi_buf_trans.o CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_device.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_driver.o CC drivers/gpu/drm/i915/gt/uc/intel_guc.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_irq.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_params.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_map.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_log.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_well.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_trace.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_wa.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o CC drivers/gpu/drm/i915/gt/uc/intel_huc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc.o CC drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dp.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux.o CC drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o CC drivers/gpu/drm/i915/gt/uc/intel_uc.o CC drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o CC drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_mst.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o CC drivers/gpu/drm/i915/gt/intel_gsc.o CC drivers/gpu/drm/i915/i915_hwmon.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dpt_common.o CC drivers/gpu/drm/i915/display/hsw_ips.o CC drivers/gpu/drm/i915/display/i9xx_plane.o CC [M] drivers/gpu/drm/xe/i915-display/intel_drrs.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dsb.o CC drivers/gpu/drm/i915/display/i9xx_wm.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi.o CC drivers/gpu/drm/i915/display/intel_alpm.o CC drivers/gpu/drm/i915/display/intel_atomic.o CC drivers/gpu/drm/i915/display/intel_atomic_plane.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o CC drivers/gpu/drm/i915/display/intel_audio.o CC drivers/gpu/drm/i915/display/intel_bios.o CC drivers/gpu/drm/i915/display/intel_bw.o CC drivers/gpu/drm/i915/display/intel_cdclk.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o CC drivers/gpu/drm/i915/display/intel_color.o CC drivers/gpu/drm/i915/display/intel_combo_phy.o CC drivers/gpu/drm/i915/display/intel_connector.o CC drivers/gpu/drm/i915/display/intel_crtc.o CC drivers/gpu/drm/i915/display/intel_crtc_state_dump.o CC drivers/gpu/drm/i915/display/intel_cursor.o CC drivers/gpu/drm/i915/display/intel_display.o CC drivers/gpu/drm/i915/display/intel_display_driver.o CC drivers/gpu/drm/i915/display/intel_display_irq.o CC [M] drivers/gpu/drm/xe/i915-display/intel_encoder.o CC [M] drivers/gpu/drm/xe/i915-display/intel_fb.o CC [M] drivers/gpu/drm/xe/i915-display/intel_fbc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_fdi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o CC drivers/gpu/drm/i915/display/intel_display_params.o CC [M] drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o CC [M] drivers/gpu/drm/xe/i915-display/intel_global_state.o CC [M] drivers/gpu/drm/xe/i915-display/intel_gmbus.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp.o CC drivers/gpu/drm/i915/display/intel_display_power.o CC drivers/gpu/drm/i915/display/intel_display_power_map.o CC drivers/gpu/drm/i915/display/intel_display_power_well.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp_gsc_message.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hdmi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug.o CC drivers/gpu/drm/i915/display/intel_display_reset.o CC drivers/gpu/drm/i915/display/intel_display_rps.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hti.o CC drivers/gpu/drm/i915/display/intel_display_wa.o CC [M] drivers/gpu/drm/xe/i915-display/intel_link_bw.o CC [M] drivers/gpu/drm/xe/i915-display/intel_lspcon.o CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_lock.o CC drivers/gpu/drm/i915/display/intel_dmc.o CC drivers/gpu/drm/i915/display/intel_dmc_wl.o CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_setup.o CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o CC drivers/gpu/drm/i915/display/intel_dpio_phy.o CC drivers/gpu/drm/i915/display/intel_dpll.o CC drivers/gpu/drm/i915/display/intel_dpll_mgr.o CC drivers/gpu/drm/i915/display/intel_dpt.o CC drivers/gpu/drm/i915/display/intel_dpt_common.o CC [M] drivers/gpu/drm/xe/i915-display/intel_panel.o CC [M] drivers/gpu/drm/xe/i915-display/intel_pmdemand.o CC [M] drivers/gpu/drm/xe/i915-display/intel_pps.o CC [M] drivers/gpu/drm/xe/i915-display/intel_psr.o CC drivers/gpu/drm/i915/display/intel_drrs.o CC [M] drivers/gpu/drm/xe/i915-display/intel_qp_tables.o CC drivers/gpu/drm/i915/display/intel_dsb.o CC [M] drivers/gpu/drm/xe/i915-display/intel_quirks.o CC drivers/gpu/drm/i915/display/intel_dsb_buffer.o CC drivers/gpu/drm/i915/display/intel_fb.o CC drivers/gpu/drm/i915/display/intel_fb_bo.o CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_phy.o CC drivers/gpu/drm/i915/display/intel_fb_pin.o CC drivers/gpu/drm/i915/display/intel_fbc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_tc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_vblank.o CC [M] drivers/gpu/drm/xe/i915-display/intel_vdsc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_vga.o CC drivers/gpu/drm/i915/display/intel_fdi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_vrr.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc_wl.o CC [M] drivers/gpu/drm/xe/i915-display/intel_wm.o AR net/mac80211/built-in.a AR net/built-in.a CC [M] drivers/gpu/drm/xe/i915-display/skl_scaler.o CC drivers/gpu/drm/i915/display/intel_fifo_underrun.o CC [M] drivers/gpu/drm/xe/i915-display/skl_universal_plane.o CC [M] drivers/gpu/drm/xe/i915-display/skl_watermark.o CC drivers/gpu/drm/i915/display/intel_frontbuffer.o CC drivers/gpu/drm/i915/display/intel_global_state.o CC [M] drivers/gpu/drm/xe/i915-display/intel_acpi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_opregion.o CC drivers/gpu/drm/i915/display/intel_hdcp.o CC drivers/gpu/drm/i915/display/intel_hdcp_gsc.o CC drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.o CC [M] drivers/gpu/drm/xe/xe_debugfs.o CC drivers/gpu/drm/i915/display/intel_hotplug.o CC [M] drivers/gpu/drm/xe/xe_gt_debugfs.o CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.o CC drivers/gpu/drm/i915/display/intel_hotplug_irq.o CC drivers/gpu/drm/i915/display/intel_hti.o CC drivers/gpu/drm/i915/display/intel_link_bw.o CC drivers/gpu/drm/i915/display/intel_load_detect.o CC drivers/gpu/drm/i915/display/intel_lpe_audio.o CC drivers/gpu/drm/i915/display/intel_modeset_lock.o CC [M] drivers/gpu/drm/xe/xe_gt_stats.o CC [M] drivers/gpu/drm/xe/xe_guc_debugfs.o CC [M] drivers/gpu/drm/xe/xe_huc_debugfs.o CC [M] drivers/gpu/drm/xe/xe_uc_debugfs.o CC drivers/gpu/drm/i915/display/intel_modeset_setup.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs_params.o CC drivers/gpu/drm/i915/display/intel_modeset_verify.o CC drivers/gpu/drm/i915/display/intel_overlay.o CC [M] drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o CC drivers/gpu/drm/i915/display/intel_pch_display.o CC drivers/gpu/drm/i915/display/intel_pch_refclk.o CC drivers/gpu/drm/i915/display/intel_plane_initial.o CC drivers/gpu/drm/i915/display/intel_pmdemand.o CC drivers/gpu/drm/i915/display/intel_psr.o CC drivers/gpu/drm/i915/display/intel_quirks.o CC drivers/gpu/drm/i915/display/intel_sprite.o CC drivers/gpu/drm/i915/display/intel_sprite_uapi.o CC drivers/gpu/drm/i915/display/intel_tc.o CC drivers/gpu/drm/i915/display/intel_vga.o CC drivers/gpu/drm/i915/display/intel_vblank.o CC drivers/gpu/drm/i915/display/intel_wm.o CC drivers/gpu/drm/i915/display/skl_scaler.o CC drivers/gpu/drm/i915/display/skl_universal_plane.o CC drivers/gpu/drm/i915/display/skl_watermark.o CC drivers/gpu/drm/i915/display/intel_acpi.o CC drivers/gpu/drm/i915/display/intel_opregion.o CC drivers/gpu/drm/i915/display/intel_display_debugfs.o CC drivers/gpu/drm/i915/display/intel_display_debugfs_params.o CC drivers/gpu/drm/i915/display/intel_pipe_crc.o CC drivers/gpu/drm/i915/display/dvo_ch7017.o CC drivers/gpu/drm/i915/display/dvo_ch7xxx.o CC drivers/gpu/drm/i915/display/dvo_ivch.o CC drivers/gpu/drm/i915/display/dvo_ns2501.o CC drivers/gpu/drm/i915/display/dvo_sil164.o CC drivers/gpu/drm/i915/display/dvo_tfp410.o CC drivers/gpu/drm/i915/display/g4x_dp.o CC drivers/gpu/drm/i915/display/g4x_hdmi.o CC drivers/gpu/drm/i915/display/icl_dsi.o CC drivers/gpu/drm/i915/display/intel_backlight.o CC drivers/gpu/drm/i915/display/intel_crt.o CC drivers/gpu/drm/i915/display/intel_cx0_phy.o CC drivers/gpu/drm/i915/display/intel_ddi.o CC drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o CC drivers/gpu/drm/i915/display/intel_display_device.o CC drivers/gpu/drm/i915/display/intel_display_trace.o CC drivers/gpu/drm/i915/display/intel_dkl_phy.o CC drivers/gpu/drm/i915/display/intel_dp.o CC drivers/gpu/drm/i915/display/intel_dp_aux.o CC drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o CC drivers/gpu/drm/i915/display/intel_dp_hdcp.o CC drivers/gpu/drm/i915/display/intel_dp_link_training.o CC drivers/gpu/drm/i915/display/intel_dp_mst.o CC drivers/gpu/drm/i915/display/intel_dsi.o CC drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o CC drivers/gpu/drm/i915/display/intel_dsi_vbt.o CC drivers/gpu/drm/i915/display/intel_dvo.o CC drivers/gpu/drm/i915/display/intel_encoder.o CC drivers/gpu/drm/i915/display/intel_gmbus.o CC drivers/gpu/drm/i915/display/intel_hdmi.o CC drivers/gpu/drm/i915/display/intel_lspcon.o CC drivers/gpu/drm/i915/display/intel_lvds.o CC drivers/gpu/drm/i915/display/intel_panel.o CC drivers/gpu/drm/i915/display/intel_pps.o CC drivers/gpu/drm/i915/display/intel_qp_tables.o CC drivers/gpu/drm/i915/display/intel_sdvo.o CC drivers/gpu/drm/i915/display/intel_snps_phy.o CC drivers/gpu/drm/i915/display/intel_tv.o CC drivers/gpu/drm/i915/display/intel_vdsc.o CC drivers/gpu/drm/i915/display/intel_vrr.o CC drivers/gpu/drm/i915/display/vlv_dsi.o CC drivers/gpu/drm/i915/display/vlv_dsi_pll.o LD [M] drivers/gpu/drm/xe/xe.o CC drivers/gpu/drm/i915/i915_perf.o CC drivers/gpu/drm/i915/pxp/intel_pxp.o CC drivers/gpu/drm/i915/pxp/intel_pxp_huc.o CC drivers/gpu/drm/i915/pxp/intel_pxp_tee.o CC drivers/gpu/drm/i915/i915_gpu_error.o CC drivers/gpu/drm/i915/i915_vgpu.o AR drivers/gpu/drm/i915/built-in.a AR drivers/gpu/drm/built-in.a AR drivers/gpu/built-in.a AR drivers/built-in.a AR built-in.a AR vmlinux.a LD vmlinux.o OBJCOPY modules.builtin.modinfo GEN modules.builtin MODPOST Module.symvers CC .vmlinux.export.o CC [M] fs/efivarfs/efivarfs.mod.o CC [M] drivers/gpu/drm/drm_exec.mod.o CC [M] drivers/gpu/drm/drm_gpuvm.mod.o CC [M] drivers/gpu/drm/drm_suballoc_helper.mod.o CC [M] drivers/gpu/drm/drm_ttm_helper.mod.o CC [M] drivers/gpu/drm/scheduler/gpu-sched.mod.o CC [M] drivers/gpu/drm/xe/xe.mod.o CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.mod.o CC [M] sound/core/snd-hwdep.mod.o CC [M] sound/core/snd-pcm.mod.o CC [M] sound/pci/hda/snd-hda-codec.mod.o CC [M] sound/pci/hda/snd-hda-codec-hdmi.mod.o CC [M] sound/pci/hda/snd-hda-intel.mod.o CC [M] sound/hda/snd-hda-core.mod.o CC [M] sound/hda/snd-intel-dspcfg.mod.o CC [M] sound/hda/snd-intel-sdw-acpi.mod.o CC [M] net/netfilter/nf_log_syslog.mod.o CC [M] net/netfilter/xt_mark.mod.o CC [M] net/netfilter/xt_nat.mod.o CC [M] net/netfilter/xt_LOG.mod.o CC [M] net/netfilter/xt_MASQUERADE.mod.o CC [M] net/netfilter/xt_addrtype.mod.o CC [M] net/ipv4/netfilter/iptable_nat.mod.o LD [M] sound/core/snd-hwdep.ko LD [M] net/netfilter/xt_mark.ko LD [M] fs/efivarfs/efivarfs.ko LD [M] drivers/gpu/drm/xe/xe.ko LD [M] net/netfilter/xt_MASQUERADE.ko LD [M] sound/hda/snd-intel-sdw-acpi.ko LD [M] sound/pci/hda/snd-hda-codec.ko LD [M] net/netfilter/nf_log_syslog.ko LD [M] sound/pci/hda/snd-hda-codec-hdmi.ko LD [M] sound/hda/snd-hda-core.ko LD [M] drivers/gpu/drm/drm_suballoc_helper.ko LD [M] net/netfilter/xt_LOG.ko LD [M] sound/pci/hda/snd-hda-intel.ko LD [M] sound/hda/snd-intel-dspcfg.ko LD [M] net/netfilter/xt_nat.ko LD [M] net/ipv4/netfilter/iptable_nat.ko LD [M] drivers/thermal/intel/x86_pkg_temp_thermal.ko LD [M] drivers/gpu/drm/drm_gpuvm.ko LD [M] drivers/gpu/drm/drm_ttm_helper.ko LD [M] drivers/gpu/drm/scheduler/gpu-sched.ko LD [M] drivers/gpu/drm/drm_exec.ko LD [M] sound/core/snd-pcm.ko LD [M] net/netfilter/xt_addrtype.ko UPD include/generated/utsversion.h CC init/version-timestamp.o KSYMS .tmp_vmlinux0.kallsyms.S AS .tmp_vmlinux0.kallsyms.o LD .tmp_vmlinux1 NM .tmp_vmlinux1.syms KSYMS .tmp_vmlinux1.kallsyms.S AS .tmp_vmlinux1.kallsyms.o LD .tmp_vmlinux2 NM .tmp_vmlinux2.syms KSYMS .tmp_vmlinux2.kallsyms.S AS .tmp_vmlinux2.kallsyms.o LD vmlinux NM System.map SORTTAB vmlinux RELOCS arch/x86/boot/compressed/vmlinux.relocs RSTRIP vmlinux CC arch/x86/boot/a20.o AS arch/x86/boot/bioscall.o CC arch/x86/boot/cmdline.o HOSTCC arch/x86/boot/mkcpustr AS arch/x86/boot/copy.o CC arch/x86/boot/cpuflags.o CC arch/x86/boot/cpucheck.o CC arch/x86/boot/early_serial_console.o CC arch/x86/boot/edd.o CC arch/x86/boot/main.o CC arch/x86/boot/memory.o CC arch/x86/boot/pm.o AS arch/x86/boot/pmjump.o CC arch/x86/boot/printf.o CC arch/x86/boot/regs.o CC arch/x86/boot/string.o CC arch/x86/boot/tty.o CC arch/x86/boot/video.o CC arch/x86/boot/video-mode.o CC arch/x86/boot/version.o CC arch/x86/boot/video-vga.o CC arch/x86/boot/video-vesa.o CC arch/x86/boot/video-bios.o HOSTCC arch/x86/boot/tools/build CPUSTR arch/x86/boot/cpustr.h CC arch/x86/boot/cpu.o LDS arch/x86/boot/compressed/vmlinux.lds AS arch/x86/boot/compressed/kernel_info.o AS arch/x86/boot/compressed/head_32.o VOFFSET arch/x86/boot/compressed/../voffset.h CC arch/x86/boot/compressed/string.o CC arch/x86/boot/compressed/cmdline.o CC arch/x86/boot/compressed/error.o OBJCOPY arch/x86/boot/compressed/vmlinux.bin HOSTCC arch/x86/boot/compressed/mkpiggy CC arch/x86/boot/compressed/cpuflags.o CC arch/x86/boot/compressed/early_serial_console.o CC arch/x86/boot/compressed/kaslr.o CC arch/x86/boot/compressed/acpi.o CC arch/x86/boot/compressed/efi.o GZIP arch/x86/boot/compressed/vmlinux.bin.gz CC arch/x86/boot/compressed/misc.o MKPIGGY arch/x86/boot/compressed/piggy.S AS arch/x86/boot/compressed/piggy.o LD arch/x86/boot/compressed/vmlinux ZOFFSET arch/x86/boot/zoffset.h OBJCOPY arch/x86/boot/vmlinux.bin AS arch/x86/boot/header.o LD arch/x86/boot/setup.elf OBJCOPY arch/x86/boot/setup.bin BUILD arch/x86/boot/bzImage Kernel: arch/x86/boot/bzImage is ready (#1) run-parts: executing /workspace/ci/hooks/20-kernel-doc + SRC_DIR=/workspace/kernel + cd /workspace/kernel + find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*' + xargs ./scripts/kernel-doc -Werror -none include/uapi/drm/xe_drm.h All hooks done ^ permalink raw reply [flat|nested] 16+ messages in thread
* ✗ CI.checksparse: warning for HDCP intel_display refactors 2024-09-10 7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal ` (6 preceding siblings ...) 2024-09-10 10:14 ` ✓ CI.Hooks: " Patchwork @ 2024-09-10 10:16 ` Patchwork 2024-09-10 11:08 ` ✓ CI.BAT: success " Patchwork 2024-09-10 12:46 ` ✗ CI.FULL: failure " Patchwork 9 siblings, 0 replies; 16+ messages in thread From: Patchwork @ 2024-09-10 10:16 UTC (permalink / raw) To: Suraj Kandpal; +Cc: intel-xe == Series Details == Series: HDCP intel_display refactors URL : https://patchwork.freedesktop.org/series/138453/ State : warning == Summary == + trap cleanup EXIT + KERNEL=/kernel + MT=/root/linux/maintainer-tools + git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools Cloning into '/root/linux/maintainer-tools'... warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/ + make -C /root/linux/maintainer-tools make: Entering directory '/root/linux/maintainer-tools' cc -O2 -g -Wextra -o remap-log remap-log.c make: Leaving directory '/root/linux/maintainer-tools' + cd /kernel + git config --global --add safe.directory /kernel + /root/linux/maintainer-tools/dim sparse --fast bab1666fc2379a31ac48e7d61683d3edeaf29244 Sparse version: 0.6.1 (Ubuntu: 0.6.1-2build1) Fast mode used, each commit won't be checked separately. + cleanup ++ stat -c %u:%g /kernel + chown -R 1003:1003 /kernel ^ permalink raw reply [flat|nested] 16+ messages in thread
* ✓ CI.BAT: success for HDCP intel_display refactors 2024-09-10 7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal ` (7 preceding siblings ...) 2024-09-10 10:16 ` ✗ CI.checksparse: warning " Patchwork @ 2024-09-10 11:08 ` Patchwork 2024-09-10 12:46 ` ✗ CI.FULL: failure " Patchwork 9 siblings, 0 replies; 16+ messages in thread From: Patchwork @ 2024-09-10 11:08 UTC (permalink / raw) To: Suraj Kandpal; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 940 bytes --] == Series Details == Series: HDCP intel_display refactors URL : https://patchwork.freedesktop.org/series/138453/ State : success == Summary == CI Bug Log - changes from xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114_BAT -> xe-pw-138453v1_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (8 -> 8) ------------------------------ No changes in participating hosts Changes ------- No changes found Build changes ------------- * Linux: xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114 -> xe-pw-138453v1 IGT_8011: 26dca87f1252b7f6f0c0f833050256f0244d61e9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114: 40360ec4ceee7e8c16a187299cadf3e6babc8114 xe-pw-138453v1: 138453v1 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/index.html [-- Attachment #2: Type: text/html, Size: 1488 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* ✗ CI.FULL: failure for HDCP intel_display refactors 2024-09-10 7:47 [PATCH 0/2] HDCP intel_display refactors Suraj Kandpal ` (8 preceding siblings ...) 2024-09-10 11:08 ` ✓ CI.BAT: success " Patchwork @ 2024-09-10 12:46 ` Patchwork 9 siblings, 0 replies; 16+ messages in thread From: Patchwork @ 2024-09-10 12:46 UTC (permalink / raw) To: Suraj Kandpal; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 65429 bytes --] == Series Details == Series: HDCP intel_display refactors URL : https://patchwork.freedesktop.org/series/138453/ State : failure == Summary == CI Bug Log - changes from xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114_full -> xe-pw-138453v1_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with xe-pw-138453v1_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in xe-pw-138453v1_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 (4 -> 4) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in xe-pw-138453v1_full: ### IGT changes ### #### Possible regressions #### * igt@xe_exec_fault_mode@twice-bindexecqueue-imm: - shard-lnl: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-3/igt@xe_exec_fault_mode@twice-bindexecqueue-imm.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-2/igt@xe_exec_fault_mode@twice-bindexecqueue-imm.html Known issues ------------ Here are the changes found in xe-pw-138453v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_big_fb@4-tiled-16bpp-rotate-270: - shard-lnl: NOTRUN -> [SKIP][3] ([Intel XE#1407]) +2 other tests skip [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html * igt@kms_big_fb@4-tiled-8bpp-rotate-90: - shard-adlp: NOTRUN -> [SKIP][4] ([Intel XE#1124] / [Intel XE#1201]) [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html * igt@kms_big_fb@linear-16bpp-rotate-90: - shard-dg2-set2: NOTRUN -> [SKIP][5] ([Intel XE#1201] / [Intel XE#316]) +2 other tests skip [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_big_fb@linear-16bpp-rotate-90.html * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0: - shard-adlp: NOTRUN -> [FAIL][6] ([Intel XE#1874]) [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0.html * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip: - shard-adlp: NOTRUN -> [FAIL][7] ([Intel XE#1231]) [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow: - shard-dg2-set2: NOTRUN -> [SKIP][8] ([Intel XE#1201] / [Intel XE#607]) [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html - shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#1477]) [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip: - shard-dg2-set2: NOTRUN -> [SKIP][10] ([Intel XE#1124] / [Intel XE#1201]) +2 other tests skip [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html - shard-lnl: NOTRUN -> [SKIP][11] ([Intel XE#1124]) +1 other test skip [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html * igt@kms_bw@connected-linear-tiling-3-displays-3840x2160p: - shard-adlp: NOTRUN -> [SKIP][12] ([Intel XE#1201] / [Intel XE#2191]) [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_bw@connected-linear-tiling-3-displays-3840x2160p.html * igt@kms_bw@linear-tiling-1-displays-3840x2160p: - shard-dg2-set2: NOTRUN -> [SKIP][13] ([Intel XE#1201] / [Intel XE#367]) [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html * igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-b-hdmi-a-6: - shard-dg2-set2: NOTRUN -> [SKIP][14] ([Intel XE#1201] / [Intel XE#787]) +27 other tests skip [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-b-hdmi-a-6.html * igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-c-hdmi-a-1: - shard-adlp: NOTRUN -> [SKIP][15] ([Intel XE#1201] / [Intel XE#787]) +5 other tests skip [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-c-hdmi-a-1.html * igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-d-hdmi-a-1: - shard-adlp: NOTRUN -> [SKIP][16] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +3 other tests skip [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-d-hdmi-a-1.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs: - shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#1399]) +3 other tests skip [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs.html * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs: - shard-dg2-set2: NOTRUN -> [SKIP][18] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +7 other tests skip [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs.html * igt@kms_chamelium_color@ctm-max: - shard-lnl: NOTRUN -> [SKIP][19] ([Intel XE#306]) [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_chamelium_color@ctm-max.html - shard-dg2-set2: NOTRUN -> [SKIP][20] ([Intel XE#1201] / [Intel XE#306]) [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_chamelium_color@ctm-max.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#373]) [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html * igt@kms_chamelium_hpd@dp-hpd-fast: - shard-dg2-set2: NOTRUN -> [SKIP][22] ([Intel XE#1201] / [Intel XE#373]) +1 other test skip [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_chamelium_hpd@dp-hpd-fast.html - shard-adlp: NOTRUN -> [SKIP][23] ([Intel XE#1201] / [Intel XE#373]) [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_chamelium_hpd@dp-hpd-fast.html * igt@kms_cursor_crc@cursor-offscreen-32x32: - shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#1424]) [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_cursor_crc@cursor-offscreen-32x32.html * igt@kms_cursor_crc@cursor-rapid-movement-512x512: - shard-dg2-set2: NOTRUN -> [SKIP][25] ([Intel XE#1201] / [Intel XE#308]) [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html - shard-lnl: NOTRUN -> [SKIP][26] ([Intel XE#1413]) [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy: - shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#309]) [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size: - shard-dg2-set2: NOTRUN -> [SKIP][28] ([Intel XE#1201] / [Intel XE#323]) [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html - shard-lnl: NOTRUN -> [SKIP][29] ([Intel XE#323]) [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html * igt@kms_cursor_legacy@torture-move@pipe-a: - shard-lnl: [PASS][30] -> [DMESG-WARN][31] ([Intel XE#877]) +1 other test dmesg-warn [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-4/igt@kms_cursor_legacy@torture-move@pipe-a.html [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-8/igt@kms_cursor_legacy@torture-move@pipe-a.html * igt@kms_dsc@dsc-fractional-bpp-with-bpc: - shard-adlp: NOTRUN -> [SKIP][32] ([Intel XE#1201] / [Intel XE#455]) +3 other tests skip [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html * igt@kms_flip@2x-blocking-wf_vblank: - shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#1421]) [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_flip@2x-blocking-wf_vblank.html * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset: - shard-adlp: NOTRUN -> [SKIP][34] ([Intel XE#1201] / [Intel XE#310]) [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1: - shard-lnl: [PASS][35] -> [FAIL][36] ([Intel XE#886]) +2 other tests fail [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-6/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-3/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling: - shard-lnl: NOTRUN -> [SKIP][37] ([Intel XE#1401] / [Intel XE#1745]) [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode: - shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#1401]) [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode.html * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-blt: - shard-lnl: NOTRUN -> [SKIP][39] ([Intel XE#651]) +3 other tests skip [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt: - shard-adlp: NOTRUN -> [SKIP][40] ([Intel XE#1201] / [Intel XE#656]) +2 other tests skip [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-render: - shard-adlp: NOTRUN -> [SKIP][41] ([Intel XE#1201] / [Intel XE#651]) +2 other tests skip [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-pgflip-blt: - shard-dg2-set2: NOTRUN -> [SKIP][42] ([Intel XE#1201] / [Intel XE#651]) +8 other tests skip [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc: - shard-lnl: NOTRUN -> [SKIP][43] ([Intel XE#656]) +9 other tests skip [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-slowdraw: - shard-dg2-set2: NOTRUN -> [SKIP][44] ([Intel XE#1201] / [Intel XE#653]) +10 other tests skip [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcpsr-slowdraw.html * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc: - shard-adlp: NOTRUN -> [SKIP][45] ([Intel XE#1201] / [Intel XE#653]) +1 other test skip [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html * igt@kms_plane_lowres@tiling-y: - shard-dg2-set2: NOTRUN -> [SKIP][46] ([Intel XE#1201] / [Intel XE#455]) +5 other tests skip [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_plane_lowres@tiling-y.html - shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#599]) +1 other test skip [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_plane_lowres@tiling-y.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-c-edp-1: - shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#2318]) +7 other tests skip [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-c-edp-1.html * igt@kms_pm_dc@dc6-dpms: - shard-dg2-set2: NOTRUN -> [SKIP][49] ([Intel XE#1201] / [Intel XE#908]) [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_pm_dc@dc6-dpms.html - shard-adlp: NOTRUN -> [FAIL][50] ([Intel XE#718]) [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_pm_dc@dc6-dpms.html * igt@kms_pm_dc@dc6-psr: - shard-lnl: [PASS][51] -> [FAIL][52] ([Intel XE#1430]) [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-3/igt@kms_pm_dc@dc6-psr.html [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-5/igt@kms_pm_dc@dc6-psr.html * igt@kms_pm_rpm@legacy-planes-dpms@plane-41: - shard-lnl: [PASS][53] -> [TIMEOUT][54] ([Intel XE#1620]) +1 other test timeout [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-3/igt@kms_pm_rpm@legacy-planes-dpms@plane-41.html [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-2/igt@kms_pm_rpm@legacy-planes-dpms@plane-41.html * igt@kms_psr2_sf@overlay-plane-move-continuous-sf: - shard-dg2-set2: NOTRUN -> [SKIP][55] ([Intel XE#1201] / [Intel XE#1489]) [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html * igt@kms_psr@pr-no-drrs: - shard-lnl: NOTRUN -> [SKIP][56] ([Intel XE#1406]) [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@kms_psr@pr-no-drrs.html * igt@kms_psr@psr-cursor-render: - shard-dg2-set2: NOTRUN -> [SKIP][57] ([Intel XE#1201] / [Intel XE#929]) +2 other tests skip [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_psr@psr-cursor-render.html * igt@kms_psr@psr2-cursor-plane-move: - shard-adlp: NOTRUN -> [SKIP][58] ([Intel XE#1201] / [Intel XE#929]) +1 other test skip [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_psr@psr2-cursor-plane-move.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90: - shard-dg2-set2: NOTRUN -> [SKIP][59] ([Intel XE#1201] / [Intel XE#327]) [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0: - shard-adlp: NOTRUN -> [SKIP][60] ([Intel XE#1201] / [Intel XE#327]) +1 other test skip [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html * igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-6: - shard-dg2-set2: [PASS][61] -> [FAIL][62] ([Intel XE#899]) [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-434/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-6.html [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-463/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-6.html * igt@kms_writeback@writeback-check-output: - shard-adlp: NOTRUN -> [SKIP][63] ([Intel XE#1201] / [Intel XE#756]) [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@kms_writeback@writeback-check-output.html - shard-dg2-set2: NOTRUN -> [SKIP][64] ([Intel XE#1201] / [Intel XE#756]) [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_writeback@writeback-check-output.html * igt@xe_evict@evict-beng-large-multi-vm-cm: - shard-lnl: NOTRUN -> [SKIP][65] ([Intel XE#688]) [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@xe_evict@evict-beng-large-multi-vm-cm.html * igt@xe_evict@evict-large-multi-vm-cm: - shard-adlp: NOTRUN -> [SKIP][66] ([Intel XE#1201] / [Intel XE#261]) [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@xe_evict@evict-large-multi-vm-cm.html * igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd: - shard-adlp: NOTRUN -> [SKIP][67] ([Intel XE#1201] / [Intel XE#688]) [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd.html * igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap: - shard-adlp: NOTRUN -> [SKIP][68] ([Intel XE#1201] / [Intel XE#1392]) [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap.html * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind: - shard-lnl: NOTRUN -> [SKIP][69] ([Intel XE#1392]) +1 other test skip [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html * igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-imm: - shard-adlp: NOTRUN -> [SKIP][70] ([Intel XE#1201] / [Intel XE#288]) +3 other tests skip [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-imm.html * igt@xe_exec_fault_mode@once-userptr-invalidate-race: - shard-dg2-set2: NOTRUN -> [SKIP][71] ([Intel XE#1201] / [Intel XE#288]) +4 other tests skip [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@xe_exec_fault_mode@once-userptr-invalidate-race.html * igt@xe_exec_mix_modes@exec-simple-batch-store-dma-fence: - shard-adlp: NOTRUN -> [SKIP][72] ([Intel XE#1201] / [Intel XE#2360]) [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@xe_exec_mix_modes@exec-simple-batch-store-dma-fence.html - shard-dg2-set2: NOTRUN -> [SKIP][73] ([Intel XE#1201] / [Intel XE#2360]) [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@xe_exec_mix_modes@exec-simple-batch-store-dma-fence.html * igt@xe_module_load@many-reload: - shard-adlp: [PASS][74] -> [TIMEOUT][75] ([Intel XE#1353] / [Intel XE#1961] / [Intel XE#2026]) [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-adlp-4/igt@xe_module_load@many-reload.html [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-1/igt@xe_module_load@many-reload.html * igt@xe_oa@closed-fd-and-unmapped-access: - shard-dg2-set2: NOTRUN -> [SKIP][76] ([Intel XE#1201] / [Intel XE#2541]) +1 other test skip [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@xe_oa@closed-fd-and-unmapped-access.html * igt@xe_oa@non-sampling-read-error: - shard-adlp: NOTRUN -> [SKIP][77] ([Intel XE#1201] / [Intel XE#2541]) [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@xe_oa@non-sampling-read-error.html * igt@xe_pat@display-vs-wb-transient: - shard-adlp: NOTRUN -> [SKIP][78] ([Intel XE#1201] / [Intel XE#1337]) [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@xe_pat@display-vs-wb-transient.html * igt@xe_pm@d3cold-mmap-system: - shard-dg2-set2: NOTRUN -> [SKIP][79] ([Intel XE#1201] / [Intel XE#2284] / [Intel XE#366]) [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@xe_pm@d3cold-mmap-system.html - shard-lnl: NOTRUN -> [SKIP][80] ([Intel XE#2284] / [Intel XE#366]) [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@xe_pm@d3cold-mmap-system.html * igt@xe_pm@s4-basic-exec: - shard-adlp: [PASS][81] -> [ABORT][82] ([Intel XE#1358] / [Intel XE#1607] / [Intel XE#1794]) [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-adlp-1/igt@xe_pm@s4-basic-exec.html [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-9/igt@xe_pm@s4-basic-exec.html * igt@xe_pm@s4-multiple-execs: - shard-lnl: [PASS][83] -> [ABORT][84] ([Intel XE#1358] / [Intel XE#1607] / [Intel XE#1794]) [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-5/igt@xe_pm@s4-multiple-execs.html [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-2/igt@xe_pm@s4-multiple-execs.html * igt@xe_pm@s4-vm-bind-prefetch: - shard-lnl: [PASS][85] -> [ABORT][86] ([Intel XE#1607] / [Intel XE#1794]) [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-5/igt@xe_pm@s4-vm-bind-prefetch.html [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-2/igt@xe_pm@s4-vm-bind-prefetch.html * igt@xe_pm@s4-vm-bind-unbind-all: - shard-adlp: [PASS][87] -> [ABORT][88] ([Intel XE#1794]) [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-adlp-1/igt@xe_pm@s4-vm-bind-unbind-all.html [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-9/igt@xe_pm@s4-vm-bind-unbind-all.html * igt@xe_pm@s4-vm-bind-userptr: - shard-dg2-set2: [PASS][89] -> [INCOMPLETE][90] ([Intel XE#1195] / [Intel XE#2280]) [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-434/igt@xe_pm@s4-vm-bind-userptr.html [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-463/igt@xe_pm@s4-vm-bind-userptr.html * igt@xe_query@multigpu-query-oa-units: - shard-adlp: NOTRUN -> [SKIP][91] ([Intel XE#1201] / [Intel XE#944]) [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@xe_query@multigpu-query-oa-units.html #### Possible fixes #### * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y: - shard-adlp: [DMESG-WARN][92] ([Intel XE#1033]) -> [PASS][93] [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-adlp-9/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y.html [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-6/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y.html * igt@kms_big_fb@linear-32bpp-rotate-0: - shard-lnl: [FAIL][94] ([Intel XE#1659]) -> [PASS][95] [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-2/igt@kms_big_fb@linear-32bpp-rotate-0.html [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-8/igt@kms_big_fb@linear-32bpp-rotate-0.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy: - {shard-bmg}: [INCOMPLETE][96] -> [PASS][97] +1 other test pass [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-bmg-7/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-bmg-2/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html * igt@kms_cursor_legacy@torture-move: - {shard-bmg}: [DMESG-WARN][98] ([Intel XE#877]) -> [PASS][99] +4 other tests pass [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-bmg-2/igt@kms_cursor_legacy@torture-move.html [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-bmg-5/igt@kms_cursor_legacy@torture-move.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a1: - shard-adlp: [FAIL][100] ([Intel XE#301]) -> [PASS][101] +1 other test pass [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-adlp-6/igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a1.html [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a1.html * igt@kms_flip@wf_vblank-ts-check@b-edp1: - shard-lnl: [FAIL][102] ([Intel XE#886]) -> [PASS][103] +2 other tests pass [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-3/igt@kms_flip@wf_vblank-ts-check@b-edp1.html [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-5/igt@kms_flip@wf_vblank-ts-check@b-edp1.html * igt@kms_plane@plane-position-hole: - shard-lnl: [DMESG-FAIL][104] ([Intel XE#324]) -> [PASS][105] +1 other test pass [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-8/igt@kms_plane@plane-position-hole.html [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-4/igt@kms_plane@plane-position-hole.html * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-hdmi-a-6: - shard-dg2-set2: [INCOMPLETE][106] ([Intel XE#1195]) -> [PASS][107] +1 other test pass [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-434/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-hdmi-a-6.html [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-433/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-hdmi-a-6.html * igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6: - shard-dg2-set2: [FAIL][108] ([Intel XE#899]) -> [PASS][109] [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-434/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6.html [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-463/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6.html * igt@xe_evict@evict-mixed-many-threads-small: - {shard-bmg}: [TIMEOUT][110] ([Intel XE#1473] / [Intel XE#2472]) -> [PASS][111] [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-bmg-3/igt@xe_evict@evict-mixed-many-threads-small.html [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-bmg-8/igt@xe_evict@evict-mixed-many-threads-small.html - shard-dg2-set2: [TIMEOUT][112] ([Intel XE#1473]) -> [PASS][113] [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@xe_evict@evict-mixed-many-threads-small.html [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@xe_evict@evict-mixed-many-threads-small.html * igt@xe_oa@oa-exponents: - shard-lnl: [FAIL][114] ([Intel XE#2723]) -> [PASS][115] [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-1/igt@xe_oa@oa-exponents.html [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-5/igt@xe_oa@oa-exponents.html * igt@xe_pm@s4-basic: - shard-lnl: [ABORT][116] ([Intel XE#1358] / [Intel XE#1607]) -> [PASS][117] [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-2/igt@xe_pm@s4-basic.html [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-1/igt@xe_pm@s4-basic.html * igt@xe_pm@s4-multiple-execs: - shard-adlp: [ABORT][118] ([Intel XE#1358] / [Intel XE#1607] / [Intel XE#1794]) -> [PASS][119] [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-adlp-2/igt@xe_pm@s4-multiple-execs.html [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-2/igt@xe_pm@s4-multiple-execs.html * igt@xe_pm_residency@toggle-gt-c6: - shard-lnl: [FAIL][120] ([Intel XE#958]) -> [PASS][121] [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-lnl-3/igt@xe_pm_residency@toggle-gt-c6.html [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-lnl-5/igt@xe_pm_residency@toggle-gt-c6.html #### Warnings #### * igt@kms_big_fb@4-tiled-8bpp-rotate-270: - shard-dg2-set2: [SKIP][122] ([Intel XE#1201] / [Intel XE#316]) -> [SKIP][123] ([Intel XE#316]) +1 other test skip [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_big_fb@4-tiled-8bpp-rotate-270.html [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_big_fb@4-tiled-8bpp-rotate-270.html * igt@kms_big_fb@x-tiled-16bpp-rotate-90: - shard-dg2-set2: [SKIP][124] ([Intel XE#316]) -> [SKIP][125] ([Intel XE#1201] / [Intel XE#316]) [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html * igt@kms_big_fb@y-tiled-addfb: - shard-dg2-set2: [SKIP][126] ([Intel XE#619]) -> [SKIP][127] ([Intel XE#1201] / [Intel XE#619]) [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_big_fb@y-tiled-addfb.html [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_big_fb@y-tiled-addfb.html * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip: - shard-adlp: [DMESG-FAIL][128] ([Intel XE#324]) -> [FAIL][129] ([Intel XE#1231]) [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-adlp-1/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-adlp-9/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html * igt@kms_big_fb@yf-tiled-16bpp-rotate-0: - shard-dg2-set2: [SKIP][130] ([Intel XE#1124]) -> [SKIP][131] ([Intel XE#1124] / [Intel XE#1201]) +4 other tests skip [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html * igt@kms_big_fb@yf-tiled-addfb-size-overflow: - shard-dg2-set2: [SKIP][132] ([Intel XE#1201] / [Intel XE#610]) -> [SKIP][133] ([Intel XE#610]) [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip: - shard-dg2-set2: [SKIP][134] ([Intel XE#1124] / [Intel XE#1201]) -> [SKIP][135] ([Intel XE#1124]) +3 other tests skip [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html * igt@kms_bw@connected-linear-tiling-1-displays-2560x1440p: - shard-dg2-set2: [SKIP][136] ([Intel XE#1201] / [Intel XE#367]) -> [SKIP][137] ([Intel XE#367]) +1 other test skip [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_bw@connected-linear-tiling-1-displays-2560x1440p.html [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_bw@connected-linear-tiling-1-displays-2560x1440p.html * igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p: - shard-dg2-set2: [SKIP][138] ([Intel XE#367]) -> [SKIP][139] ([Intel XE#1201] / [Intel XE#367]) +1 other test skip [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-6: - shard-dg2-set2: [SKIP][140] ([Intel XE#1201] / [Intel XE#787]) -> [SKIP][141] ([Intel XE#787]) +41 other tests skip [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-6.html [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-6.html * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-6: - shard-dg2-set2: [SKIP][142] ([Intel XE#787]) -> [SKIP][143] ([Intel XE#1201] / [Intel XE#787]) +34 other tests skip [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-6.html [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-6.html * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs: - shard-dg2-set2: [SKIP][144] ([Intel XE#1252]) -> [SKIP][145] ([Intel XE#1201] / [Intel XE#1252]) [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html * igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-4: - shard-dg2-set2: [SKIP][146] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][147] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +9 other tests skip [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-4.html [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-4.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs: - shard-dg2-set2: [SKIP][148] ([Intel XE#1201] / [Intel XE#1252]) -> [SKIP][149] ([Intel XE#1252]) [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html * igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4: - shard-dg2-set2: [SKIP][150] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) -> [SKIP][151] ([Intel XE#455] / [Intel XE#787]) +11 other tests skip [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html * igt@kms_cdclk@mode-transition@pipe-d-dp-4: - shard-dg2-set2: [SKIP][152] ([Intel XE#314]) -> [SKIP][153] ([Intel XE#1201] / [Intel XE#314]) +3 other tests skip [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_cdclk@mode-transition@pipe-d-dp-4.html [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_cdclk@mode-transition@pipe-d-dp-4.html * igt@kms_chamelium_color@ctm-0-25: - shard-dg2-set2: [SKIP][154] ([Intel XE#1201] / [Intel XE#306]) -> [SKIP][155] ([Intel XE#306]) [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_chamelium_color@ctm-0-25.html [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_chamelium_color@ctm-0-25.html * igt@kms_chamelium_edid@dp-edid-change-during-suspend: - shard-dg2-set2: [SKIP][156] ([Intel XE#1201] / [Intel XE#373]) -> [SKIP][157] ([Intel XE#373]) +5 other tests skip [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html * igt@kms_chamelium_hpd@vga-hpd: - shard-dg2-set2: [SKIP][158] ([Intel XE#373]) -> [SKIP][159] ([Intel XE#1201] / [Intel XE#373]) +5 other tests skip [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_chamelium_hpd@vga-hpd.html [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_chamelium_hpd@vga-hpd.html * igt@kms_content_protection@atomic-dpms: - shard-dg2-set2: [INCOMPLETE][160] ([Intel XE#1195] / [Intel XE#2715]) -> [FAIL][161] ([Intel XE#1178]) [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-463/igt@kms_content_protection@atomic-dpms.html [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_content_protection@atomic-dpms.html * igt@kms_content_protection@atomic-dpms@pipe-a-dp-4: - shard-dg2-set2: [INCOMPLETE][162] ([Intel XE#1195]) -> [FAIL][163] ([Intel XE#1178]) [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-463/igt@kms_content_protection@atomic-dpms@pipe-a-dp-4.html [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_content_protection@atomic-dpms@pipe-a-dp-4.html * igt@kms_content_protection@dp-mst-type-1: - shard-dg2-set2: [SKIP][164] ([Intel XE#1201] / [Intel XE#307]) -> [SKIP][165] ([Intel XE#307]) [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_content_protection@dp-mst-type-1.html [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_content_protection@dp-mst-type-1.html * igt@kms_cursor_crc@cursor-offscreen-512x170: - shard-dg2-set2: [SKIP][166] ([Intel XE#1201] / [Intel XE#308]) -> [SKIP][167] ([Intel XE#308]) +1 other test skip [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_cursor_crc@cursor-offscreen-512x170.html [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_cursor_crc@cursor-offscreen-512x170.html * igt@kms_feature_discovery@display-3x: - shard-dg2-set2: [SKIP][168] ([Intel XE#703]) -> [SKIP][169] ([Intel XE#1201] / [Intel XE#703]) [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_feature_discovery@display-3x.html [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_feature_discovery@display-3x.html * igt@kms_feature_discovery@psr2: - shard-dg2-set2: [SKIP][170] ([Intel XE#1135]) -> [SKIP][171] ([Intel XE#1135] / [Intel XE#1201]) [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_feature_discovery@psr2.html [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_feature_discovery@psr2.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling: - shard-dg2-set2: [SKIP][172] ([Intel XE#455]) -> [SKIP][173] ([Intel XE#1201] / [Intel XE#455]) +6 other tests skip [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html * igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-blt: - shard-dg2-set2: [SKIP][174] ([Intel XE#1201] / [Intel XE#651]) -> [SKIP][175] ([Intel XE#651]) +12 other tests skip [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-blt.html [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc: - shard-dg2-set2: [SKIP][176] ([Intel XE#651]) -> [SKIP][177] ([Intel XE#1201] / [Intel XE#651]) +13 other tests skip [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc.html [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y: - shard-dg2-set2: [SKIP][178] ([Intel XE#1201] / [Intel XE#658]) -> [SKIP][179] ([Intel XE#658]) [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html * igt@kms_frontbuffer_tracking@plane-fbc-rte: - shard-dg2-set2: [SKIP][180] ([Intel XE#1158] / [Intel XE#1201]) -> [SKIP][181] ([Intel XE#1158]) [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_frontbuffer_tracking@plane-fbc-rte.html [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_frontbuffer_tracking@plane-fbc-rte.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move: - shard-dg2-set2: [SKIP][182] ([Intel XE#653]) -> [SKIP][183] ([Intel XE#1201] / [Intel XE#653]) +13 other tests skip [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move.html [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc: - shard-dg2-set2: [SKIP][184] ([Intel XE#1201] / [Intel XE#653]) -> [SKIP][185] ([Intel XE#653]) +14 other tests skip [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_hdr@invalid-hdr: - shard-dg2-set2: [SKIP][186] ([Intel XE#1201] / [Intel XE#455]) -> [SKIP][187] ([Intel XE#455]) +7 other tests skip [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_hdr@invalid-hdr.html [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_hdr@invalid-hdr.html * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format: - shard-dg2-set2: [SKIP][188] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#498]) -> [SKIP][189] ([Intel XE#455] / [Intel XE#498]) +1 other test skip [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-6: - shard-dg2-set2: [SKIP][190] ([Intel XE#1201] / [Intel XE#498]) -> [SKIP][191] ([Intel XE#498]) +2 other tests skip [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-6.html [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-6.html * igt@kms_pm_backlight@basic-brightness: - shard-dg2-set2: [SKIP][192] ([Intel XE#870]) -> [SKIP][193] ([Intel XE#1201] / [Intel XE#870]) [192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_pm_backlight@basic-brightness.html [193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_pm_backlight@basic-brightness.html * igt@kms_pm_dc@dc3co-vpb-simulation: - shard-dg2-set2: [SKIP][194] ([Intel XE#1122] / [Intel XE#1201]) -> [SKIP][195] ([Intel XE#1122]) [194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_pm_dc@dc3co-vpb-simulation.html [195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_pm_dc@dc3co-vpb-simulation.html * igt@kms_pm_dc@dc6-psr: - shard-dg2-set2: [SKIP][196] ([Intel XE#1129]) -> [SKIP][197] ([Intel XE#1129] / [Intel XE#1201]) [196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_pm_dc@dc6-psr.html [197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_pm_dc@dc6-psr.html * igt@kms_psr2_sf@cursor-plane-move-continuous-sf: - shard-dg2-set2: [SKIP][198] ([Intel XE#1489]) -> [SKIP][199] ([Intel XE#1201] / [Intel XE#1489]) +1 other test skip [198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html [199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html * igt@kms_psr2_sf@overlay-plane-update-continuous-sf: - shard-dg2-set2: [SKIP][200] ([Intel XE#1201] / [Intel XE#1489]) -> [SKIP][201] ([Intel XE#1489]) +2 other tests skip [200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html [201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html * igt@kms_psr2_su@frontbuffer-xrgb8888: - shard-dg2-set2: [SKIP][202] ([Intel XE#1122]) -> [SKIP][203] ([Intel XE#1122] / [Intel XE#1201]) [202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_psr2_su@frontbuffer-xrgb8888.html [203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_psr2_su@frontbuffer-xrgb8888.html * igt@kms_psr@fbc-psr-no-drrs: - shard-dg2-set2: [SKIP][204] ([Intel XE#929]) -> [SKIP][205] ([Intel XE#1201] / [Intel XE#929]) +6 other tests skip [204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@kms_psr@fbc-psr-no-drrs.html [205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@kms_psr@fbc-psr-no-drrs.html * igt@kms_psr@fbc-psr2-primary-render: - shard-dg2-set2: [SKIP][206] ([Intel XE#1201] / [Intel XE#929]) -> [SKIP][207] ([Intel XE#929]) +6 other tests skip [206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@kms_psr@fbc-psr2-primary-render.html [207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_psr@fbc-psr2-primary-render.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-180: - shard-dg2-set2: [SKIP][208] ([Intel XE#1127] / [Intel XE#1201]) -> [SKIP][209] ([Intel XE#1127]) +1 other test skip [208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html [209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html * igt@kms_tiled_display@basic-test-pattern: - shard-dg2-set2: [SKIP][210] ([Intel XE#1201] / [Intel XE#362]) -> [FAIL][211] ([Intel XE#1729]) [210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern.html [211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@kms_tiled_display@basic-test-pattern.html * igt@sriov_basic@enable-vfs-autoprobe-off: - shard-dg2-set2: [SKIP][212] ([Intel XE#1091] / [Intel XE#1201]) -> [SKIP][213] ([Intel XE#1091]) [212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@sriov_basic@enable-vfs-autoprobe-off.html [213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@sriov_basic@enable-vfs-autoprobe-off.html * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all: - shard-dg2-set2: [SKIP][214] ([Intel XE#1091]) -> [SKIP][215] ([Intel XE#1091] / [Intel XE#1201]) [214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html [215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html * igt@xe_copy_basic@mem-copy-linear-0xfffe: - shard-dg2-set2: [SKIP][216] ([Intel XE#1123]) -> [SKIP][217] ([Intel XE#1123] / [Intel XE#1201]) [216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@xe_copy_basic@mem-copy-linear-0xfffe.html [217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@xe_copy_basic@mem-copy-linear-0xfffe.html * igt@xe_copy_basic@mem-set-linear-0xfffe: - shard-dg2-set2: [SKIP][218] ([Intel XE#1126]) -> [SKIP][219] ([Intel XE#1126] / [Intel XE#1201]) [218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0xfffe.html [219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@xe_copy_basic@mem-set-linear-0xfffe.html * igt@xe_exec_fault_mode@once-bindexecqueue-rebind: - shard-dg2-set2: [SKIP][220] ([Intel XE#1201] / [Intel XE#288]) -> [SKIP][221] ([Intel XE#288]) +12 other tests skip [220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@xe_exec_fault_mode@once-bindexecqueue-rebind.html [221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@xe_exec_fault_mode@once-bindexecqueue-rebind.html * igt@xe_exec_fault_mode@once-rebind-imm: - shard-dg2-set2: [SKIP][222] ([Intel XE#288]) -> [SKIP][223] ([Intel XE#1201] / [Intel XE#288]) +13 other tests skip [222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@xe_exec_fault_mode@once-rebind-imm.html [223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@xe_exec_fault_mode@once-rebind-imm.html * igt@xe_oa@disabled-read-error: - shard-dg2-set2: [SKIP][224] ([Intel XE#2541]) -> [SKIP][225] ([Intel XE#1201] / [Intel XE#2541]) +3 other tests skip [224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@xe_oa@disabled-read-error.html [225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@xe_oa@disabled-read-error.html * igt@xe_oa@non-zero-reason: - shard-dg2-set2: [SKIP][226] ([Intel XE#1201] / [Intel XE#2541]) -> [SKIP][227] ([Intel XE#2541]) +1 other test skip [226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-466/igt@xe_oa@non-zero-reason.html [227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@xe_oa@non-zero-reason.html * igt@xe_pm@d3cold-basic: - shard-dg2-set2: [SKIP][228] ([Intel XE#1201] / [Intel XE#2284] / [Intel XE#366]) -> [SKIP][229] ([Intel XE#2284] / [Intel XE#366]) [228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-433/igt@xe_pm@d3cold-basic.html [229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-432/igt@xe_pm@d3cold-basic.html * igt@xe_pm@vram-d3cold-threshold: - shard-dg2-set2: [SKIP][230] ([Intel XE#579]) -> [SKIP][231] ([Intel XE#1201] / [Intel XE#579]) [230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@xe_pm@vram-d3cold-threshold.html [231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-436/igt@xe_pm@vram-d3cold-threshold.html * igt@xe_query@multigpu-query-invalid-query: - shard-dg2-set2: [SKIP][232] ([Intel XE#944]) -> [SKIP][233] ([Intel XE#1201] / [Intel XE#944]) [232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114/shard-dg2-432/igt@xe_query@multigpu-query-invalid-query.html [233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/shard-dg2-435/igt@xe_query@multigpu-query-invalid-query.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [Intel XE#1033]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1033 [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091 [Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122 [Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123 [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124 [Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126 [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127 [Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129 [Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135 [Intel XE#1158]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1158 [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178 [Intel XE#1195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1195 [Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201 [Intel XE#1231]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1231 [Intel XE#1252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1252 [Intel XE#1337]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1337 [Intel XE#1353]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1353 [Intel XE#1358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1358 [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392 [Intel XE#1399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1399 [Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401 [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406 [Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407 [Intel XE#1413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1413 [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421 [Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424 [Intel XE#1430]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1430 [Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473 [Intel XE#1477]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1477 [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489 [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503 [Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508 [Intel XE#1607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1607 [Intel XE#1620]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1620 [Intel XE#1659]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1659 [Intel XE#1695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1695 [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729 [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745 [Intel XE#1760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1760 [Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794 [Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874 [Intel XE#1961]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1961 [Intel XE#2026]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2026 [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191 [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234 [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244 [Intel XE#2251]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2251 [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252 [Intel XE#2280]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2280 [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284 [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293 [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311 [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313 [Intel XE#2318]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2318 [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320 [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321 [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322 [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325 [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327 [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330 [Intel XE#2333]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2333 [Intel XE#2357]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2357 [Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360 [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380 [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393 [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426 [Intel XE#2436]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2436 [Intel XE#2472]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2472 [Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541 [Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261 [Intel XE#2715]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2715 [Intel XE#2723]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2723 [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288 [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301 [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306 [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307 [Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308 [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309 [Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310 [Intel XE#314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/314 [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316 [Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323 [Intel XE#324]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/324 [Intel XE#327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/327 [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362 [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366 [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367 [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373 [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455 [Intel XE#498]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/498 [Intel XE#579]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/579 [Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599 [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607 [Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610 [Intel XE#619]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/619 [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651 [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653 [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656 [Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658 [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688 [Intel XE#703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/703 [Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718 [Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756 [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787 [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870 [Intel XE#877]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/877 [Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886 [Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899 [Intel XE#908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/908 [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929 [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944 [Intel XE#958]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/958 Build changes ------------- * Linux: xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114 -> xe-pw-138453v1 IGT_8011: 26dca87f1252b7f6f0c0f833050256f0244d61e9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-1918-40360ec4ceee7e8c16a187299cadf3e6babc8114: 40360ec4ceee7e8c16a187299cadf3e6babc8114 xe-pw-138453v1: 138453v1 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138453v1/index.html [-- Attachment #2: Type: text/html, Size: 83672 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 0/2] HDCP intel_display refactors @ 2024-09-11 9:05 Suraj Kandpal 2024-09-11 9:05 ` [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp Suraj Kandpal 0 siblings, 1 reply; 16+ 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 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 | 689 +++++++++--------- 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 | 44 +- 6 files changed, 422 insertions(+), 407 deletions(-) -- 2.43.2 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp 2024-09-11 9:05 [PATCH 0/2] " Suraj Kandpal @ 2024-09-11 9:05 ` Suraj Kandpal 0 siblings, 0 replies; 16+ 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 Move to using intel_display wherever possible in intel_hdcp.c as a part of code refactor. --v2 -Move intel_display to the first line wherever possible [Jani] -use the closest reference when using to_intel_display [Jani] Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> --- drivers/gpu/drm/i915/display/intel_hdcp.c | 685 +++++++++--------- 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, 361 insertions(+), 348 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c index ebec03bc88e9..b964af7425cf 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); /* 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); } } @@ -96,10 +96,10 @@ static int intel_hdcp_required_content_stream(struct intel_atomic_state *state, struct intel_digital_port *dig_port) { + struct intel_display *display = to_intel_display(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 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); 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); 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; } } @@ -470,8 +472,8 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector, const struct intel_hdcp_shim *shim, u8 *ksv_fifo, u8 num_downstream, u8 *bstatus) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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; } @@ -712,15 +714,15 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector, static int intel_hdcp_auth_downstream(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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: @@ -795,8 +797,8 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector) /* Implements Part 1 of the HDCP authorization procedure */ static int intel_hdcp_auth(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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); 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; } @@ -1073,20 +1075,20 @@ static struct intel_connector *intel_hdcp_to_connector(struct intel_hdcp *hdcp) static void intel_hdcp_update_value(struct intel_connector *connector, u64 value, bool update_property) { - struct drm_device *dev = connector->base.dev; + struct intel_display *display = to_intel_display(connector); + struct drm_i915_private *i915 = to_i915(display->drm); 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)); + drm_WARN_ON(display->drm, !mutex_is_locked(&hdcp->mutex)); if (hdcp->value == value) return; - drm_WARN_ON(dev, !mutex_is_locked(&dig_port->hdcp_mutex)); + drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port->hdcp_mutex)); if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED) { - if (!drm_WARN_ON(dev, dig_port->num_hdcp_streams == 0)) + if (!drm_WARN_ON(display->drm, dig_port->num_hdcp_streams == 0)) dig_port->num_hdcp_streams--; } else if (value == DRM_MODE_CONTENT_PROTECTION_ENABLED) { dig_port->num_hdcp_streams++; @@ -1102,8 +1104,8 @@ static void intel_hdcp_update_value(struct intel_connector *connector, /* Implements Part 3 of the HDCP authorization procedure */ static int intel_hdcp_check_link(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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); - 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); } @@ -1199,25 +1201,25 @@ static int hdcp2_prepare_ake_init(struct intel_connector *connector, struct hdcp2_ake_init *ake_data) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } @@ -1229,17 +1231,17 @@ hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector, struct hdcp2_ake_no_stored_km *ek_pub_km, size_t *msg_sz) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } @@ -1257,24 +1259,24 @@ hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector, static int hdcp2_verify_hprime(struct intel_connector *connector, struct hdcp2_ake_send_hprime *rx_hprime) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } @@ -1283,25 +1285,25 @@ static int hdcp2_store_pairing_info(struct intel_connector *connector, struct hdcp2_ake_send_pairing_info *pairing_info) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } @@ -1310,25 +1312,25 @@ static int hdcp2_prepare_lc_init(struct intel_connector *connector, struct hdcp2_lc_init *lc_init) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } @@ -1337,25 +1339,25 @@ static int hdcp2_verify_lprime(struct intel_connector *connector, struct hdcp2_lc_send_lprime *rx_lprime) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } @@ -1363,25 +1365,25 @@ hdcp2_verify_lprime(struct intel_connector *connector, static int hdcp2_prepare_skey(struct intel_connector *connector, struct hdcp2_ske_send_eks *ske_data) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } @@ -1392,17 +1394,17 @@ hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector, *rep_topology, struct hdcp2_rep_send_ack *rep_send_ack) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } @@ -1422,71 +1424,71 @@ static int hdcp2_verify_mprime(struct intel_connector *connector, struct hdcp2_rep_stream_ready *stream_ready) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } static int hdcp2_authenticate_port(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); struct hdcp_port_data *data = &dig_port->hdcp_port_data; - struct 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; } static int hdcp2_close_session(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - 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->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); 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; } @@ -1691,8 +1693,8 @@ int _hdcp2_propagate_stream_management_info(struct intel_connector *connector) static int hdcp2_authenticate_repeater_topology(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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); 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; } @@ -1818,17 +1820,17 @@ static int hdcp2_authenticate_sink(struct intel_connector *connector) static int hdcp2_enable_stream_encryption(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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; @@ -1859,35 +1861,35 @@ static int hdcp2_enable_stream_encryption(struct intel_connector *connector) static int hdcp2_enable_encryption(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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); @@ -1898,32 +1900,33 @@ static int hdcp2_enable_encryption(struct intel_connector *connector) static int hdcp2_disable_encryption(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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); 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); } @@ -1965,8 +1968,8 @@ hdcp2_propagate_stream_management_info(struct intel_connector *connector) static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state, struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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); 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); @@ -2054,23 +2057,23 @@ static int _intel_hdcp2_enable(struct intel_atomic_state *state, static int _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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; @@ -2092,8 +2095,8 @@ _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery /* Implements the Link Integrity Check for HDCP2.2 */ static int intel_hdcp2_check_link(struct intel_connector *connector) { + struct intel_display *display = to_intel_display(connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); - struct drm_i915_private *i915 = to_i915(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, @@ -2169,7 +2172,8 @@ static void intel_hdcp_check_work(struct work_struct *work) struct intel_hdcp, check_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); + struct drm_i915_private *i915 = to_i915(display->drm); if (drm_connector_is_unregistered(&connector->base)) return; @@ -2186,13 +2190,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 +2204,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 +2242,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); 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 +2266,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 +2279,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 +2295,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 +2326,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); 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; } @@ -2371,7 +2376,8 @@ static int _intel_hdcp_enable(struct intel_atomic_state *state, const struct intel_crtc_state *pipe_config, const struct drm_connector_state *conn_state) { - struct drm_i915_private *i915 = to_i915(encoder->base.dev); + struct intel_display *display = to_intel_display(encoder); + struct drm_i915_private *i915 = to_i915(display->drm); struct intel_connector *connector = to_intel_connector(conn_state->connector); struct intel_digital_port *dig_port = intel_attached_dig_port(connector); @@ -2383,14 +2389,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 +2558,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) @@ -2654,7 +2662,8 @@ void intel_hdcp_atomic_check(struct drm_connector *connector, void intel_hdcp_handle_cp_irq(struct intel_connector *connector) { struct intel_hdcp *hdcp = &connector->hdcp; - struct drm_i915_private *i915 = to_i915(connector->base.dev); + struct intel_display *display = to_intel_display(connector); + struct drm_i915_private *i915 = to_i915(display->drm); if (!hdcp->shim) return; 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 ? >->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 = >->uc.gsc; -- 2.43.2 ^ permalink raw reply related [flat|nested] 16+ messages in thread
end of thread, other threads:[~2024-09-11 9:08 UTC | newest] Thread overview: 16+ 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 9:45 ` ✓ CI.Patch_applied: success for HDCP intel_display refactors Patchwork 2024-09-10 9:46 ` ✓ CI.checkpatch: " Patchwork 2024-09-10 9:47 ` ✓ CI.KUnit: " Patchwork 2024-09-10 10:12 ` ✓ CI.Build: " Patchwork 2024-09-10 10:14 ` ✓ CI.Hooks: " Patchwork 2024-09-10 10:16 ` ✗ CI.checksparse: warning " Patchwork 2024-09-10 11:08 ` ✓ CI.BAT: success " Patchwork 2024-09-10 12:46 ` ✗ CI.FULL: 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 1/2] drm/i915/hdcp: Move to using intel_display in intel_hdcp Suraj Kandpal
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox