Lines Matching full:display

16 #include <drm/display/drm_hdcp_helper.h>
40 struct intel_display *display = to_intel_display(encoder); in intel_hdcp_adjust_hdcp_line_rekeying() local
48 if (DISPLAY_VER(display) >= 30) { in intel_hdcp_adjust_hdcp_line_rekeying()
49 rekey_reg = TRANS_DDI_FUNC_CTL(display, hdcp->cpu_transcoder); in intel_hdcp_adjust_hdcp_line_rekeying()
51 } else if (IS_DISPLAY_VERx100_STEP(display, 1401, STEP_B0, STEP_FOREVER) || in intel_hdcp_adjust_hdcp_line_rekeying()
52 IS_DISPLAY_VERx100_STEP(display, 2000, STEP_B0, STEP_FOREVER)) { in intel_hdcp_adjust_hdcp_line_rekeying()
53 rekey_reg = TRANS_DDI_FUNC_CTL(display, hdcp->cpu_transcoder); in intel_hdcp_adjust_hdcp_line_rekeying()
55 } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { in intel_hdcp_adjust_hdcp_line_rekeying()
56 rekey_reg = CHICKEN_TRANS(display, hdcp->cpu_transcoder); in intel_hdcp_adjust_hdcp_line_rekeying()
61 intel_de_rmw(display, rekey_reg, rekey_bit, enable ? 0 : rekey_bit); in intel_hdcp_adjust_hdcp_line_rekeying()
106 struct intel_display *display = to_intel_display(state); in intel_hdcp_required_content_stream() local
122 drm_connector_list_iter_begin(display->drm, &conn_iter); in intel_hdcp_required_content_stream()
144 if (drm_WARN_ON(display->drm, data->k > INTEL_NUM_PIPES(display) || data->k == 0)) in intel_hdcp_required_content_stream()
192 struct intel_display *display = to_intel_display(dig_port); in intel_hdcp_read_valid_bksv() local
204 drm_dbg_kms(display->drm, "Bksv is invalid\n"); in intel_hdcp_read_valid_bksv()
243 struct intel_display *display = to_intel_display(connector); in intel_hdcp2_prerequisite() local
251 if (intel_hdcp_gsc_cs_required(display)) { in intel_hdcp2_prerequisite()
252 if (!intel_hdcp_gsc_check_status(display)) in intel_hdcp2_prerequisite()
257 mutex_lock(&display->hdcp.hdcp_mutex); in intel_hdcp2_prerequisite()
258 if (!display->hdcp.comp_added || !display->hdcp.arbiter) { in intel_hdcp2_prerequisite()
259 mutex_unlock(&display->hdcp.hdcp_mutex); in intel_hdcp2_prerequisite()
262 mutex_unlock(&display->hdcp.hdcp_mutex); in intel_hdcp2_prerequisite()
298 static bool intel_hdcp_in_use(struct intel_display *display, in intel_hdcp_in_use() argument
301 return intel_de_read(display, in intel_hdcp_in_use()
302 HDCP_STATUS(display, cpu_transcoder, port)) & in intel_hdcp_in_use()
306 static bool intel_hdcp2_in_use(struct intel_display *display, in intel_hdcp2_in_use() argument
309 return intel_de_read(display, in intel_hdcp2_in_use()
310 HDCP2_STATUS(display, cpu_transcoder, port)) & in intel_hdcp2_in_use()
335 static bool hdcp_key_loadable(struct intel_display *display) in hdcp_key_loadable() argument
337 struct drm_i915_private *i915 = to_i915(display->drm); in hdcp_key_loadable()
343 * On HSW and BDW, Display HW loads the Key as soon as Display resumes. in hdcp_key_loadable()
346 if (display->platform.haswell || display->platform.broadwell) in hdcp_key_loadable()
353 enabled = intel_display_power_well_is_enabled(display, id); in hdcp_key_loadable()
364 static void intel_hdcp_clear_keys(struct intel_display *display) in intel_hdcp_clear_keys() argument
366 intel_de_write(display, HDCP_KEY_CONF, HDCP_CLEAR_KEYS_TRIGGER); in intel_hdcp_clear_keys()
367 intel_de_write(display, HDCP_KEY_STATUS, in intel_hdcp_clear_keys()
371 static int intel_hdcp_load_keys(struct intel_display *display) in intel_hdcp_load_keys() argument
373 struct drm_i915_private *i915 = to_i915(display->drm); in intel_hdcp_load_keys()
377 val = intel_de_read(display, HDCP_KEY_STATUS); in intel_hdcp_load_keys()
382 * On HSW and BDW HW loads the HDCP1.4 Key when Display comes in intel_hdcp_load_keys()
385 if (display->platform.haswell || display->platform.broadwell) in intel_hdcp_load_keys()
386 if (!(intel_de_read(display, HDCP_KEY_STATUS) & HDCP_KEY_LOAD_DONE)) in intel_hdcp_load_keys()
392 * BXT+ platforms, HDCP key needs to be loaded by SW. Only display in intel_hdcp_load_keys()
397 if (DISPLAY_VER(display) == 9 && !display->platform.broxton) { in intel_hdcp_load_keys()
400 drm_err(display->drm, in intel_hdcp_load_keys()
406 intel_de_write(display, HDCP_KEY_CONF, HDCP_KEY_LOAD_TRIGGER); in intel_hdcp_load_keys()
410 ret = intel_de_wait_custom(display, HDCP_KEY_STATUS, in intel_hdcp_load_keys()
418 /* Send Aksv over to PCH display for use in authentication */ in intel_hdcp_load_keys()
419 intel_de_write(display, HDCP_KEY_CONF, HDCP_AKSV_SEND_TRIGGER); in intel_hdcp_load_keys()
425 static int intel_write_sha_text(struct intel_display *display, u32 sha_text) in intel_write_sha_text() argument
427 intel_de_write(display, HDCP_SHA_TEXT, sha_text); in intel_write_sha_text()
428 if (intel_de_wait_for_set(display, HDCP_REP_CTL, HDCP_SHA1_READY, 1)) { in intel_write_sha_text()
429 drm_err(display->drm, "Timed out waiting for SHA1 ready\n"); in intel_write_sha_text()
436 u32 intel_hdcp_get_repeater_ctl(struct intel_display *display, in intel_hdcp_get_repeater_ctl() argument
439 if (DISPLAY_VER(display) >= 12) { in intel_hdcp_get_repeater_ctl()
454 drm_err(display->drm, "Unknown transcoder %d\n", in intel_hdcp_get_repeater_ctl()
472 drm_err(display->drm, "Unknown port %d\n", port); in intel_hdcp_get_repeater_ctl()
482 struct intel_display *display = to_intel_display(connector); in intel_hdcp_validate_v_prime() local
494 intel_de_write(display, HDCP_SHA_V_PRIME(i), vprime); in intel_hdcp_validate_v_prime()
510 rep_ctl = intel_hdcp_get_repeater_ctl(display, cpu_transcoder, port); in intel_hdcp_validate_v_prime()
511 intel_de_write(display, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32); in intel_hdcp_validate_v_prime()
523 ret = intel_write_sha_text(display, sha_text); in intel_hdcp_validate_v_prime()
530 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
547 ret = intel_write_sha_text(display, sha_text); in intel_hdcp_validate_v_prime()
563 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
565 ret = intel_write_sha_text(display, in intel_hdcp_validate_v_prime()
572 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
574 ret = intel_write_sha_text(display, 0); in intel_hdcp_validate_v_prime()
580 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
582 ret = intel_write_sha_text(display, 0); in intel_hdcp_validate_v_prime()
589 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
594 ret = intel_write_sha_text(display, sha_text); in intel_hdcp_validate_v_prime()
600 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
602 ret = intel_write_sha_text(display, 0); in intel_hdcp_validate_v_prime()
608 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
610 ret = intel_write_sha_text(display, 0); in intel_hdcp_validate_v_prime()
617 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
620 ret = intel_write_sha_text(display, sha_text); in intel_hdcp_validate_v_prime()
626 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
629 ret = intel_write_sha_text(display, 0); in intel_hdcp_validate_v_prime()
639 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
642 ret = intel_write_sha_text(display, sha_text); in intel_hdcp_validate_v_prime()
648 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
651 ret = intel_write_sha_text(display, sha_text); in intel_hdcp_validate_v_prime()
657 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
659 ret = intel_write_sha_text(display, bstatus[1]); in intel_hdcp_validate_v_prime()
665 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
667 ret = intel_write_sha_text(display, 0); in intel_hdcp_validate_v_prime()
673 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
675 ret = intel_write_sha_text(display, 0); in intel_hdcp_validate_v_prime()
680 drm_dbg_kms(display->drm, "Invalid number of leftovers %d\n", in intel_hdcp_validate_v_prime()
685 intel_de_write(display, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32); in intel_hdcp_validate_v_prime()
688 ret = intel_write_sha_text(display, 0); in intel_hdcp_validate_v_prime()
700 ret = intel_write_sha_text(display, sha_text); in intel_hdcp_validate_v_prime()
705 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
707 if (intel_de_wait_for_set(display, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
709 drm_err(display->drm, "Timed out waiting for SHA1 complete\n"); in intel_hdcp_validate_v_prime()
712 if (!(intel_de_read(display, HDCP_REP_CTL) & HDCP_SHA1_V_MATCH)) { in intel_hdcp_validate_v_prime()
713 drm_dbg_kms(display->drm, "SHA-1 mismatch, HDCP failed\n"); in intel_hdcp_validate_v_prime()
724 struct intel_display *display = to_intel_display(connector); in intel_hdcp_auth_downstream() local
732 drm_dbg_kms(display->drm, in intel_hdcp_auth_downstream()
743 drm_dbg_kms(display->drm, "Max Topology Limit Exceeded\n"); in intel_hdcp_auth_downstream()
750 * display. As there is no consumption of encrypted content in the in intel_hdcp_auth_downstream()
756 drm_dbg_kms(display->drm, in intel_hdcp_auth_downstream()
763 drm_dbg_kms(display->drm, "Out of mem: ksv_fifo\n"); in intel_hdcp_auth_downstream()
771 if (drm_hdcp_check_ksvs_revoked(display->drm, ksv_fifo, in intel_hdcp_auth_downstream()
773 drm_err(display->drm, "Revoked Ksv(s) in ksv_fifo\n"); in intel_hdcp_auth_downstream()
791 drm_dbg_kms(display->drm, in intel_hdcp_auth_downstream()
796 drm_dbg_kms(display->drm, "HDCP is enabled (%d downstream devices)\n", in intel_hdcp_auth_downstream()
807 struct intel_display *display = to_intel_display(connector); in intel_hdcp_auth() local
830 * Detects whether the display is HDCP capable. Although we check for in intel_hdcp_auth()
832 * whether the display supports HDCP before we write An. For HDMI in intel_hdcp_auth()
840 drm_dbg_kms(display->drm, in intel_hdcp_auth()
848 intel_de_write(display, in intel_hdcp_auth()
849 HDCP_ANINIT(display, cpu_transcoder, port), in intel_hdcp_auth()
851 intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port), in intel_hdcp_auth()
855 if (intel_de_wait_for_set(display, in intel_hdcp_auth()
856 HDCP_STATUS(display, cpu_transcoder, port), in intel_hdcp_auth()
858 drm_err(display->drm, "Timed out waiting for An\n"); in intel_hdcp_auth()
862 an.reg[0] = intel_de_read(display, in intel_hdcp_auth()
863 HDCP_ANLO(display, cpu_transcoder, port)); in intel_hdcp_auth()
864 an.reg[1] = intel_de_read(display, in intel_hdcp_auth()
865 HDCP_ANHI(display, cpu_transcoder, port)); in intel_hdcp_auth()
878 if (drm_hdcp_check_ksvs_revoked(display->drm, bksv.shim, 1) > 0) { in intel_hdcp_auth()
879 drm_err(display->drm, "BKSV is revoked\n"); in intel_hdcp_auth()
883 intel_de_write(display, HDCP_BKSVLO(display, cpu_transcoder, port), in intel_hdcp_auth()
885 intel_de_write(display, HDCP_BKSVHI(display, cpu_transcoder, port), in intel_hdcp_auth()
892 intel_de_write(display, HDCP_REP_CTL, in intel_hdcp_auth()
893 intel_hdcp_get_repeater_ctl(display, cpu_transcoder, port)); in intel_hdcp_auth()
899 intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port), in intel_hdcp_auth()
903 if (wait_for(intel_de_read(display, HDCP_STATUS(display, cpu_transcoder, port)) & in intel_hdcp_auth()
905 drm_err(display->drm, "Timed out waiting for R0 ready\n"); in intel_hdcp_auth()
931 intel_de_write(display, in intel_hdcp_auth()
932 HDCP_RPRIME(display, cpu_transcoder, port), in intel_hdcp_auth()
936 if (!wait_for(intel_de_read(display, HDCP_STATUS(display, cpu_transcoder, port)) & in intel_hdcp_auth()
942 drm_dbg_kms(display->drm, in intel_hdcp_auth()
944 intel_de_read(display, in intel_hdcp_auth()
945 HDCP_STATUS(display, cpu_transcoder, port))); in intel_hdcp_auth()
950 if (intel_de_wait_for_set(display, in intel_hdcp_auth()
951 HDCP_STATUS(display, cpu_transcoder, port), in intel_hdcp_auth()
954 drm_err(display->drm, "Timed out waiting for encryption\n"); in intel_hdcp_auth()
962 drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 1.4 stream enc\n", in intel_hdcp_auth()
966 drm_dbg_kms(display->drm, "HDCP 1.4 transcoder: %s stream encrypted\n", in intel_hdcp_auth()
973 drm_dbg_kms(display->drm, "HDCP is enabled (no repeater present)\n"); in intel_hdcp_auth()
979 struct intel_display *display = to_intel_display(connector); in _intel_hdcp_disable() local
987 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being disabled...\n", in _intel_hdcp_disable()
993 drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 1.4 stream enc\n", in _intel_hdcp_disable()
997 drm_dbg_kms(display->drm, "HDCP 1.4 transcoder: %s stream encryption disabled\n", in _intel_hdcp_disable()
1009 intel_de_write(display, HDCP_CONF(display, cpu_transcoder, port), 0); in _intel_hdcp_disable()
1010 if (intel_de_wait_for_clear(display, in _intel_hdcp_disable()
1011 HDCP_STATUS(display, cpu_transcoder, port), in _intel_hdcp_disable()
1013 drm_err(display->drm, in _intel_hdcp_disable()
1018 repeater_ctl = intel_hdcp_get_repeater_ctl(display, cpu_transcoder, in _intel_hdcp_disable()
1020 intel_de_rmw(display, HDCP_REP_CTL, repeater_ctl, 0); in _intel_hdcp_disable()
1024 drm_err(display->drm, "Failed to disable HDCP signalling\n"); in _intel_hdcp_disable()
1028 drm_dbg_kms(display->drm, "HDCP is disabled\n"); in _intel_hdcp_disable()
1034 struct intel_display *display = to_intel_display(connector); in intel_hdcp1_enable() local
1038 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being enabled...\n", in intel_hdcp1_enable()
1041 if (!hdcp_key_loadable(display)) { in intel_hdcp1_enable()
1042 drm_err(display->drm, "HDCP key Load is not possible\n"); in intel_hdcp1_enable()
1047 ret = intel_hdcp_load_keys(display); in intel_hdcp1_enable()
1050 intel_hdcp_clear_keys(display); in intel_hdcp1_enable()
1053 drm_err(display->drm, "Could not load HDCP keys, (%d)\n", in intel_hdcp1_enable()
1068 drm_dbg_kms(display->drm, "HDCP Auth failure (%d)\n", ret); in intel_hdcp1_enable()
1074 drm_dbg_kms(display->drm, in intel_hdcp1_enable()
1087 struct intel_display *display = to_intel_display(connector); in intel_hdcp_update_value() local
1088 struct drm_i915_private *i915 = to_i915(display->drm); in intel_hdcp_update_value()
1092 drm_WARN_ON(display->drm, !mutex_is_locked(&hdcp->mutex)); in intel_hdcp_update_value()
1097 drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port->hdcp.mutex)); in intel_hdcp_update_value()
1100 if (!drm_WARN_ON(display->drm, dig_port->hdcp.num_streams == 0)) in intel_hdcp_update_value()
1117 struct intel_display *display = to_intel_display(connector); in intel_hdcp_check_link() local
1136 if (drm_WARN_ON(display->drm, in intel_hdcp_check_link()
1137 !intel_hdcp_in_use(display, cpu_transcoder, port))) { in intel_hdcp_check_link()
1138 drm_err(display->drm, in intel_hdcp_check_link()
1141 intel_de_read(display, HDCP_STATUS(display, cpu_transcoder, port))); in intel_hdcp_check_link()
1157 drm_dbg_kms(display->drm, in intel_hdcp_check_link()
1163 drm_err(display->drm, "Failed to disable hdcp (%d)\n", ret); in intel_hdcp_check_link()
1172 drm_err(display->drm, "Failed to enable hdcp (%d)\n", ret); in intel_hdcp_check_link()
1190 struct intel_display *display = to_intel_display(connector); in intel_hdcp_prop_work() local
1192 drm_modeset_lock(&display->drm->mode_config.connection_mutex, NULL); in intel_hdcp_prop_work()
1205 drm_modeset_unlock(&display->drm->mode_config.connection_mutex); in intel_hdcp_prop_work()
1210 bool is_hdcp_supported(struct intel_display *display, enum port port) in is_hdcp_supported() argument
1212 return DISPLAY_RUNTIME_INFO(display)->has_hdcp && in is_hdcp_supported()
1213 (DISPLAY_VER(display) >= 12 || port < PORT_E); in is_hdcp_supported()
1220 struct intel_display *display = to_intel_display(connector); in hdcp2_prepare_ake_init() local
1226 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_prepare_ake_init()
1227 arbiter = display->hdcp.arbiter; in hdcp2_prepare_ake_init()
1230 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_prepare_ake_init()
1236 drm_dbg_kms(display->drm, "Prepare_ake_init failed. %d\n", in hdcp2_prepare_ake_init()
1238 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_prepare_ake_init()
1250 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_rx_cert_prepare_km() local
1256 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_verify_rx_cert_prepare_km()
1257 arbiter = display->hdcp.arbiter; in hdcp2_verify_rx_cert_prepare_km()
1260 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_rx_cert_prepare_km()
1268 drm_dbg_kms(display->drm, "Verify rx_cert failed. %d\n", in hdcp2_verify_rx_cert_prepare_km()
1270 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_rx_cert_prepare_km()
1278 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_hprime() local
1284 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_verify_hprime()
1285 arbiter = display->hdcp.arbiter; in hdcp2_verify_hprime()
1288 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_hprime()
1294 drm_dbg_kms(display->drm, "Verify hprime failed. %d\n", ret); in hdcp2_verify_hprime()
1295 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_hprime()
1304 struct intel_display *display = to_intel_display(connector); in hdcp2_store_pairing_info() local
1310 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_store_pairing_info()
1311 arbiter = display->hdcp.arbiter; in hdcp2_store_pairing_info()
1314 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_store_pairing_info()
1320 drm_dbg_kms(display->drm, "Store pairing info failed. %d\n", in hdcp2_store_pairing_info()
1322 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_store_pairing_info()
1331 struct intel_display *display = to_intel_display(connector); in hdcp2_prepare_lc_init() local
1337 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_prepare_lc_init()
1338 arbiter = display->hdcp.arbiter; in hdcp2_prepare_lc_init()
1341 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_prepare_lc_init()
1347 drm_dbg_kms(display->drm, "Prepare lc_init failed. %d\n", in hdcp2_prepare_lc_init()
1349 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_prepare_lc_init()
1358 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_lprime() local
1364 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_verify_lprime()
1365 arbiter = display->hdcp.arbiter; in hdcp2_verify_lprime()
1368 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_lprime()
1374 drm_dbg_kms(display->drm, "Verify L_Prime failed. %d\n", in hdcp2_verify_lprime()
1376 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_lprime()
1384 struct intel_display *display = to_intel_display(connector); in hdcp2_prepare_skey() local
1390 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_prepare_skey()
1391 arbiter = display->hdcp.arbiter; in hdcp2_prepare_skey()
1394 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_prepare_skey()
1400 drm_dbg_kms(display->drm, "Get session key failed. %d\n", in hdcp2_prepare_skey()
1402 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_prepare_skey()
1413 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_rep_topology_prepare_ack() local
1419 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_verify_rep_topology_prepare_ack()
1420 arbiter = display->hdcp.arbiter; in hdcp2_verify_rep_topology_prepare_ack()
1423 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_rep_topology_prepare_ack()
1432 drm_dbg_kms(display->drm, in hdcp2_verify_rep_topology_prepare_ack()
1434 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_rep_topology_prepare_ack()
1443 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_mprime() local
1449 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_verify_mprime()
1450 arbiter = display->hdcp.arbiter; in hdcp2_verify_mprime()
1453 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_mprime()
1459 drm_dbg_kms(display->drm, "Verify mprime failed. %d\n", ret); in hdcp2_verify_mprime()
1460 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_verify_mprime()
1467 struct intel_display *display = to_intel_display(connector); in hdcp2_authenticate_port() local
1473 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_authenticate_port()
1474 arbiter = display->hdcp.arbiter; in hdcp2_authenticate_port()
1477 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_authenticate_port()
1483 drm_dbg_kms(display->drm, "Enable hdcp auth failed. %d\n", in hdcp2_authenticate_port()
1485 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_authenticate_port()
1492 struct intel_display *display = to_intel_display(connector); in hdcp2_close_session() local
1497 mutex_lock(&display->hdcp.hdcp_mutex); in hdcp2_close_session()
1498 arbiter = display->hdcp.arbiter; in hdcp2_close_session()
1501 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_close_session()
1507 mutex_unlock(&display->hdcp.hdcp_mutex); in hdcp2_close_session()
1520 struct intel_display *display = to_intel_display(connector); in hdcp2_authentication_key_exchange() local
1583 drm_dbg_kms(display->drm, "cert.rx_caps dont claim HDCP2.2\n"); in hdcp2_authentication_key_exchange()
1589 if (drm_hdcp_check_ksvs_revoked(display->drm, in hdcp2_authentication_key_exchange()
1592 drm_err(display->drm, "Receiver ID is revoked\n"); in hdcp2_authentication_key_exchange()
1743 struct intel_display *display = to_intel_display(connector); in hdcp2_authenticate_repeater_topology() local
1764 drm_dbg_kms(display->drm, "Topology Max Size Exceeded\n"); in hdcp2_authenticate_repeater_topology()
1777 drm_dbg_kms(display->drm, in hdcp2_authenticate_repeater_topology()
1787 drm_dbg_kms(display->drm, in hdcp2_authenticate_repeater_topology()
1794 drm_dbg_kms(display->drm, "Seq_num_v roll over.\n"); in hdcp2_authenticate_repeater_topology()
1800 if (drm_hdcp_check_ksvs_revoked(display->drm, in hdcp2_authenticate_repeater_topology()
1803 drm_err(display->drm, "Revoked receiver ID(s) is in list\n"); in hdcp2_authenticate_repeater_topology()
1824 struct intel_display *display = to_intel_display(connector); in hdcp2_authenticate_sink() local
1831 drm_dbg_kms(display->drm, "AKE Failed. Err : %d\n", ret); in hdcp2_authenticate_sink()
1837 drm_dbg_kms(display->drm, in hdcp2_authenticate_sink()
1844 drm_dbg_kms(display->drm, "SKE Failed. Err : %d\n", ret); in hdcp2_authenticate_sink()
1859 drm_dbg_kms(display->drm, in hdcp2_authenticate_sink()
1870 struct intel_display *display = to_intel_display(connector); in hdcp2_enable_stream_encryption() local
1878 if (!(intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) & in hdcp2_enable_stream_encryption()
1880 drm_err(display->drm, "[CONNECTOR:%d:%s] HDCP 2.2 Link is not encrypted\n", in hdcp2_enable_stream_encryption()
1889 drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 2.2 stream enc\n", in hdcp2_enable_stream_encryption()
1893 drm_dbg_kms(display->drm, "HDCP 2.2 transcoder: %s stream encrypted\n", in hdcp2_enable_stream_encryption()
1901 drm_dbg_kms(display->drm, "Port deauth failed.\n"); in hdcp2_enable_stream_encryption()
1911 struct intel_display *display = to_intel_display(connector); in hdcp2_enable_encryption() local
1918 drm_WARN_ON(display->drm, in hdcp2_enable_encryption()
1919 intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) & in hdcp2_enable_encryption()
1925 drm_err(display->drm, in hdcp2_enable_encryption()
1932 if (intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) & in hdcp2_enable_encryption()
1935 intel_de_rmw(display, HDCP2_CTL(display, cpu_transcoder, port), in hdcp2_enable_encryption()
1938 ret = intel_de_wait_for_set(display, in hdcp2_enable_encryption()
1939 HDCP2_STATUS(display, cpu_transcoder, in hdcp2_enable_encryption()
1950 struct intel_display *display = to_intel_display(connector); in hdcp2_disable_encryption() local
1957 drm_WARN_ON(display->drm, in hdcp2_disable_encryption()
1958 !(intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port)) & in hdcp2_disable_encryption()
1961 intel_de_rmw(display, HDCP2_CTL(display, cpu_transcoder, port), in hdcp2_disable_encryption()
1964 ret = intel_de_wait_for_clear(display, in hdcp2_disable_encryption()
1965 HDCP2_STATUS(display, cpu_transcoder, in hdcp2_disable_encryption()
1970 drm_dbg_kms(display->drm, "Disable Encryption Timedout"); in hdcp2_disable_encryption()
1976 drm_err(display->drm, in hdcp2_disable_encryption()
1989 struct intel_display *display = to_intel_display(connector); in hdcp2_propagate_stream_management_info() local
2002 drm_dbg_kms(display->drm, in hdcp2_propagate_stream_management_info()
2007 drm_dbg_kms(display->drm, in hdcp2_propagate_stream_management_info()
2018 struct intel_display *display = to_intel_display(connector); in hdcp2_authenticate_and_encrypt() local
2027 drm_dbg_kms(display->drm, in hdcp2_authenticate_and_encrypt()
2035 drm_dbg_kms(display->drm, in hdcp2_authenticate_and_encrypt()
2044 drm_dbg_kms(display->drm, "HDCP2 port auth failed.(%d)\n", in hdcp2_authenticate_and_encrypt()
2049 drm_dbg_kms(display->drm, "HDCP2.2 Auth %d of %d Failed.(%d)\n", in hdcp2_authenticate_and_encrypt()
2052 drm_dbg_kms(display->drm, "Port deauth failed.\n"); in hdcp2_authenticate_and_encrypt()
2063 drm_dbg_kms(display->drm, in hdcp2_authenticate_and_encrypt()
2066 drm_dbg_kms(display->drm, "Port deauth failed.\n"); in hdcp2_authenticate_and_encrypt()
2079 struct intel_display *display = to_intel_display(connector); in _intel_hdcp2_enable() local
2083 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being enabled. Type: %d\n", in _intel_hdcp2_enable()
2091 drm_dbg_kms(display->drm, "HDCP2 Type%d Enabling Failed. (%d)\n", in _intel_hdcp2_enable()
2096 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is enabled. Type %d\n", in _intel_hdcp2_enable()
2107 struct intel_display *display = to_intel_display(connector); in _intel_hdcp2_disable() local
2113 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being Disabled\n", in _intel_hdcp2_disable()
2119 drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 2.2 stream enc\n", in _intel_hdcp2_disable()
2123 drm_dbg_kms(display->drm, "HDCP 2.2 transcoder: %s stream encryption disabled\n", in _intel_hdcp2_disable()
2133 drm_dbg_kms(display->drm, "Port deauth failed.\n"); in _intel_hdcp2_disable()
2145 struct intel_display *display = to_intel_display(connector); in intel_hdcp2_check_link() local
2163 if (drm_WARN_ON(display->drm, in intel_hdcp2_check_link()
2164 !intel_hdcp2_in_use(display, cpu_transcoder, port))) { in intel_hdcp2_check_link()
2165 drm_err(display->drm, in intel_hdcp2_check_link()
2167 intel_de_read(display, HDCP2_STATUS(display, cpu_transcoder, port))); in intel_hdcp2_check_link()
2190 drm_dbg_kms(display->drm, in intel_hdcp2_check_link()
2201 drm_dbg_kms(display->drm, in intel_hdcp2_check_link()
2206 drm_dbg_kms(display->drm, in intel_hdcp2_check_link()
2213 drm_err(display->drm, in intel_hdcp2_check_link()
2235 struct intel_display *display = to_intel_display(connector); in intel_hdcp_check_work() local
2236 struct drm_i915_private *i915 = to_i915(display->drm); in intel_hdcp_check_work()
2252 struct intel_display *display = to_intel_display(drv_kdev); in i915_hdcp_component_bind() local
2254 drm_dbg(display->drm, "I915 HDCP comp bind\n"); in i915_hdcp_component_bind()
2255 mutex_lock(&display->hdcp.hdcp_mutex); in i915_hdcp_component_bind()
2256 display->hdcp.arbiter = (struct i915_hdcp_arbiter *)data; in i915_hdcp_component_bind()
2257 display->hdcp.arbiter->hdcp_dev = mei_kdev; in i915_hdcp_component_bind()
2258 mutex_unlock(&display->hdcp.hdcp_mutex); in i915_hdcp_component_bind()
2266 struct intel_display *display = to_intel_display(drv_kdev); in i915_hdcp_component_unbind() local
2268 drm_dbg(display->drm, "I915 HDCP comp unbind\n"); in i915_hdcp_component_unbind()
2269 mutex_lock(&display->hdcp.hdcp_mutex); in i915_hdcp_component_unbind()
2270 display->hdcp.arbiter = NULL; in i915_hdcp_component_unbind()
2271 mutex_unlock(&display->hdcp.hdcp_mutex); in i915_hdcp_component_unbind()
2305 struct intel_display *display = to_intel_display(connector); in initialize_hdcp_port_data() local
2309 if (DISPLAY_VER(display) < 12) in initialize_hdcp_port_data()
2329 data->streams = kcalloc(INTEL_NUM_PIPES(display), in initialize_hdcp_port_data()
2333 drm_err(display->drm, "Out of Memory\n"); in initialize_hdcp_port_data()
2340 static bool is_hdcp2_supported(struct intel_display *display) in is_hdcp2_supported() argument
2342 if (intel_hdcp_gsc_cs_required(display)) in is_hdcp2_supported()
2348 return DISPLAY_VER(display) >= 10 || in is_hdcp2_supported()
2349 display->platform.kabylake || in is_hdcp2_supported()
2350 display->platform.coffeelake || in is_hdcp2_supported()
2351 display->platform.cometlake; in is_hdcp2_supported()
2354 void intel_hdcp_component_init(struct intel_display *display) in intel_hdcp_component_init() argument
2358 if (!is_hdcp2_supported(display)) in intel_hdcp_component_init()
2361 mutex_lock(&display->hdcp.hdcp_mutex); in intel_hdcp_component_init()
2362 drm_WARN_ON(display->drm, display->hdcp.comp_added); in intel_hdcp_component_init()
2364 display->hdcp.comp_added = true; in intel_hdcp_component_init()
2365 mutex_unlock(&display->hdcp.hdcp_mutex); in intel_hdcp_component_init()
2366 if (intel_hdcp_gsc_cs_required(display)) in intel_hdcp_component_init()
2367 ret = intel_hdcp_gsc_init(display); in intel_hdcp_component_init()
2369 ret = component_add_typed(display->drm->dev, &i915_hdcp_ops, in intel_hdcp_component_init()
2373 drm_dbg_kms(display->drm, "Failed at fw component add(%d)\n", in intel_hdcp_component_init()
2375 mutex_lock(&display->hdcp.hdcp_mutex); in intel_hdcp_component_init()
2376 display->hdcp.comp_added = false; in intel_hdcp_component_init()
2377 mutex_unlock(&display->hdcp.hdcp_mutex); in intel_hdcp_component_init()
2386 struct intel_display *display = to_intel_display(connector); in intel_hdcp2_init() local
2392 drm_dbg_kms(display->drm, "Mei hdcp data init failed\n"); in intel_hdcp2_init()
2403 struct intel_display *display = to_intel_display(connector); in intel_hdcp_init() local
2410 if (is_hdcp2_supported(display)) in intel_hdcp_init()
2435 struct intel_display *display = to_intel_display(encoder); in _intel_hdcp_enable() local
2436 struct drm_i915_private *i915 = to_i915(display->drm); in _intel_hdcp_enable()
2448 drm_err(display->drm, "[CONNECTOR:%d:%s] encoder is not initialized\n", in _intel_hdcp_enable()
2455 drm_WARN_ON(display->drm, in _intel_hdcp_enable()
2467 if (DISPLAY_VER(display) >= 12) in _intel_hdcp_enable()
2483 drm_dbg_kms(display->drm, "Forcing HDCP 1.4\n"); in _intel_hdcp_enable()
2630 void intel_hdcp_component_fini(struct intel_display *display) in intel_hdcp_component_fini() argument
2632 mutex_lock(&display->hdcp.hdcp_mutex); in intel_hdcp_component_fini()
2633 if (!display->hdcp.comp_added) { in intel_hdcp_component_fini()
2634 mutex_unlock(&display->hdcp.hdcp_mutex); in intel_hdcp_component_fini()
2638 display->hdcp.comp_added = false; in intel_hdcp_component_fini()
2639 mutex_unlock(&display->hdcp.hdcp_mutex); in intel_hdcp_component_fini()
2641 if (intel_hdcp_gsc_cs_required(display)) in intel_hdcp_component_fini()
2642 intel_hdcp_gsc_fini(display); in intel_hdcp_component_fini()
2644 component_del(display->drm->dev, &i915_hdcp_ops); in intel_hdcp_component_fini()
2734 struct intel_display *display = to_intel_display(connector); in intel_hdcp_handle_cp_irq() local
2735 struct drm_i915_private *i915 = to_i915(display->drm); in intel_hdcp_handle_cp_irq()
2788 struct intel_display *display = to_intel_display(connector); in intel_hdcp_sink_capability_show() local
2791 ret = drm_modeset_lock_single_interruptible(&display->drm->mode_config.connection_mutex); in intel_hdcp_sink_capability_show()
2806 drm_modeset_unlock(&display->drm->mode_config.connection_mutex); in intel_hdcp_sink_capability_show()
2838 struct intel_display *display = to_intel_display(connector); in intel_hdcp_force_14_show() local
2847 ret = drm_modeset_lock_single_interruptible(&display->drm->mode_config.connection_mutex); in intel_hdcp_force_14_show()
2860 drm_modeset_unlock(&display->drm->mode_config.connection_mutex); in intel_hdcp_force_14_show()