Lines Matching full:i915
123 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_hdcp_read_valid_bksv() local
135 drm_dbg_kms(&i915->drm, "Bksv is invalid\n"); in intel_hdcp_read_valid_bksv()
166 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_capable() local
170 /* I915 support for HDCP2.2 */ in intel_hdcp2_capable()
175 if (intel_hdcp_gsc_cs_required(i915)) { in intel_hdcp2_capable()
176 if (!intel_hdcp_gsc_check_status(i915)) in intel_hdcp2_capable()
181 mutex_lock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp2_capable()
182 if (!i915->display.hdcp.comp_added || !i915->display.hdcp.arbiter) { in intel_hdcp2_capable()
183 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp2_capable()
186 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp2_capable()
194 static bool intel_hdcp_in_use(struct drm_i915_private *i915, in intel_hdcp_in_use() argument
197 return intel_de_read(i915, in intel_hdcp_in_use()
198 HDCP_STATUS(i915, cpu_transcoder, port)) & in intel_hdcp_in_use()
202 static bool intel_hdcp2_in_use(struct drm_i915_private *i915, in intel_hdcp2_in_use() argument
205 return intel_de_read(i915, in intel_hdcp2_in_use()
206 HDCP2_STATUS(i915, cpu_transcoder, port)) & in intel_hdcp2_in_use()
231 static bool hdcp_key_loadable(struct drm_i915_private *i915) in hdcp_key_loadable() argument
241 if (IS_HASWELL(i915) || IS_BROADWELL(i915)) in hdcp_key_loadable()
247 with_intel_runtime_pm(&i915->runtime_pm, wakeref) in hdcp_key_loadable()
248 enabled = intel_display_power_well_is_enabled(i915, id); in hdcp_key_loadable()
259 static void intel_hdcp_clear_keys(struct drm_i915_private *i915) in intel_hdcp_clear_keys() argument
261 intel_de_write(i915, HDCP_KEY_CONF, HDCP_CLEAR_KEYS_TRIGGER); in intel_hdcp_clear_keys()
262 intel_de_write(i915, HDCP_KEY_STATUS, in intel_hdcp_clear_keys()
266 static int intel_hdcp_load_keys(struct drm_i915_private *i915) in intel_hdcp_load_keys() argument
271 val = intel_de_read(i915, HDCP_KEY_STATUS); in intel_hdcp_load_keys()
279 if (IS_HASWELL(i915) || IS_BROADWELL(i915)) in intel_hdcp_load_keys()
280 if (!(intel_de_read(i915, HDCP_KEY_STATUS) & HDCP_KEY_LOAD_DONE)) in intel_hdcp_load_keys()
291 if (DISPLAY_VER(i915) == 9 && !IS_BROXTON(i915)) { in intel_hdcp_load_keys()
292 ret = snb_pcode_write(&i915->uncore, SKL_PCODE_LOAD_HDCP_KEYS, 1); in intel_hdcp_load_keys()
294 drm_err(&i915->drm, in intel_hdcp_load_keys()
300 intel_de_write(i915, HDCP_KEY_CONF, HDCP_KEY_LOAD_TRIGGER); in intel_hdcp_load_keys()
304 ret = __intel_wait_for_register(&i915->uncore, HDCP_KEY_STATUS, in intel_hdcp_load_keys()
313 intel_de_write(i915, HDCP_KEY_CONF, HDCP_AKSV_SEND_TRIGGER); in intel_hdcp_load_keys()
319 static int intel_write_sha_text(struct drm_i915_private *i915, u32 sha_text) in intel_write_sha_text() argument
321 intel_de_write(i915, HDCP_SHA_TEXT, sha_text); in intel_write_sha_text()
322 if (intel_de_wait_for_set(i915, HDCP_REP_CTL, HDCP_SHA1_READY, 1)) { in intel_write_sha_text()
323 drm_err(&i915->drm, "Timed out waiting for SHA1 ready\n"); in intel_write_sha_text()
330 u32 intel_hdcp_get_repeater_ctl(struct drm_i915_private *i915, in intel_hdcp_get_repeater_ctl() argument
333 if (DISPLAY_VER(i915) >= 12) { in intel_hdcp_get_repeater_ctl()
348 drm_err(&i915->drm, "Unknown transcoder %d\n", in intel_hdcp_get_repeater_ctl()
366 drm_err(&i915->drm, "Unknown port %d\n", port); in intel_hdcp_get_repeater_ctl()
377 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_validate_v_prime() local
388 intel_de_write(i915, HDCP_SHA_V_PRIME(i), vprime); in intel_hdcp_validate_v_prime()
404 rep_ctl = intel_hdcp_get_repeater_ctl(i915, cpu_transcoder, port); in intel_hdcp_validate_v_prime()
405 intel_de_write(i915, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32); in intel_hdcp_validate_v_prime()
417 ret = intel_write_sha_text(i915, sha_text); in intel_hdcp_validate_v_prime()
424 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
441 ret = intel_write_sha_text(i915, sha_text); in intel_hdcp_validate_v_prime()
457 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
459 ret = intel_write_sha_text(i915, in intel_hdcp_validate_v_prime()
466 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
468 ret = intel_write_sha_text(i915, 0); in intel_hdcp_validate_v_prime()
474 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
476 ret = intel_write_sha_text(i915, 0); in intel_hdcp_validate_v_prime()
483 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
488 ret = intel_write_sha_text(i915, sha_text); in intel_hdcp_validate_v_prime()
494 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
496 ret = intel_write_sha_text(i915, 0); in intel_hdcp_validate_v_prime()
502 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
504 ret = intel_write_sha_text(i915, 0); in intel_hdcp_validate_v_prime()
511 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
514 ret = intel_write_sha_text(i915, sha_text); in intel_hdcp_validate_v_prime()
520 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
523 ret = intel_write_sha_text(i915, 0); in intel_hdcp_validate_v_prime()
533 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
536 ret = intel_write_sha_text(i915, sha_text); in intel_hdcp_validate_v_prime()
542 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
545 ret = intel_write_sha_text(i915, sha_text); in intel_hdcp_validate_v_prime()
551 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
553 ret = intel_write_sha_text(i915, bstatus[1]); in intel_hdcp_validate_v_prime()
559 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
561 ret = intel_write_sha_text(i915, 0); in intel_hdcp_validate_v_prime()
567 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
569 ret = intel_write_sha_text(i915, 0); in intel_hdcp_validate_v_prime()
574 drm_dbg_kms(&i915->drm, "Invalid number of leftovers %d\n", in intel_hdcp_validate_v_prime()
579 intel_de_write(i915, HDCP_REP_CTL, rep_ctl | HDCP_SHA1_TEXT_32); in intel_hdcp_validate_v_prime()
582 ret = intel_write_sha_text(i915, 0); in intel_hdcp_validate_v_prime()
594 ret = intel_write_sha_text(i915, sha_text); in intel_hdcp_validate_v_prime()
599 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
601 if (intel_de_wait_for_set(i915, HDCP_REP_CTL, in intel_hdcp_validate_v_prime()
603 drm_err(&i915->drm, "Timed out waiting for SHA1 complete\n"); in intel_hdcp_validate_v_prime()
606 if (!(intel_de_read(i915, HDCP_REP_CTL) & HDCP_SHA1_V_MATCH)) { in intel_hdcp_validate_v_prime()
607 drm_dbg_kms(&i915->drm, "SHA-1 mismatch, HDCP failed\n"); in intel_hdcp_validate_v_prime()
619 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_auth_downstream() local
626 drm_dbg_kms(&i915->drm, in intel_hdcp_auth_downstream()
637 drm_dbg_kms(&i915->drm, "Max Topology Limit Exceeded\n"); in intel_hdcp_auth_downstream()
650 drm_dbg_kms(&i915->drm, in intel_hdcp_auth_downstream()
657 drm_dbg_kms(&i915->drm, "Out of mem: ksv_fifo\n"); in intel_hdcp_auth_downstream()
665 if (drm_hdcp_check_ksvs_revoked(&i915->drm, ksv_fifo, in intel_hdcp_auth_downstream()
667 drm_err(&i915->drm, "Revoked Ksv(s) in ksv_fifo\n"); in intel_hdcp_auth_downstream()
685 drm_dbg_kms(&i915->drm, in intel_hdcp_auth_downstream()
690 drm_dbg_kms(&i915->drm, "HDCP is enabled (%d downstream devices)\n", in intel_hdcp_auth_downstream()
702 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_auth() local
734 drm_dbg_kms(&i915->drm, in intel_hdcp_auth()
742 intel_de_write(i915, in intel_hdcp_auth()
743 HDCP_ANINIT(i915, cpu_transcoder, port), in intel_hdcp_auth()
745 intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port), in intel_hdcp_auth()
749 if (intel_de_wait_for_set(i915, in intel_hdcp_auth()
750 HDCP_STATUS(i915, cpu_transcoder, port), in intel_hdcp_auth()
752 drm_err(&i915->drm, "Timed out waiting for An\n"); in intel_hdcp_auth()
756 an.reg[0] = intel_de_read(i915, in intel_hdcp_auth()
757 HDCP_ANLO(i915, cpu_transcoder, port)); in intel_hdcp_auth()
758 an.reg[1] = intel_de_read(i915, in intel_hdcp_auth()
759 HDCP_ANHI(i915, cpu_transcoder, port)); in intel_hdcp_auth()
772 if (drm_hdcp_check_ksvs_revoked(&i915->drm, bksv.shim, 1) > 0) { in intel_hdcp_auth()
773 drm_err(&i915->drm, "BKSV is revoked\n"); in intel_hdcp_auth()
777 intel_de_write(i915, HDCP_BKSVLO(i915, cpu_transcoder, port), in intel_hdcp_auth()
779 intel_de_write(i915, HDCP_BKSVHI(i915, cpu_transcoder, port), in intel_hdcp_auth()
786 intel_de_write(i915, HDCP_REP_CTL, in intel_hdcp_auth()
787 intel_hdcp_get_repeater_ctl(i915, cpu_transcoder, port)); in intel_hdcp_auth()
793 intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port), in intel_hdcp_auth()
797 if (wait_for(intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)) & in intel_hdcp_auth()
799 drm_err(&i915->drm, "Timed out waiting for R0 ready\n"); in intel_hdcp_auth()
825 intel_de_write(i915, in intel_hdcp_auth()
826 HDCP_RPRIME(i915, cpu_transcoder, port), in intel_hdcp_auth()
830 if (!wait_for(intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)) & in intel_hdcp_auth()
836 drm_dbg_kms(&i915->drm, in intel_hdcp_auth()
838 intel_de_read(i915, in intel_hdcp_auth()
839 HDCP_STATUS(i915, cpu_transcoder, port))); in intel_hdcp_auth()
844 if (intel_de_wait_for_set(i915, in intel_hdcp_auth()
845 HDCP_STATUS(i915, cpu_transcoder, port), in intel_hdcp_auth()
848 drm_err(&i915->drm, "Timed out waiting for encryption\n"); in intel_hdcp_auth()
856 drm_err(&i915->drm, "[%s:%d] Failed to enable HDCP 1.4 stream enc\n", in intel_hdcp_auth()
860 drm_dbg_kms(&i915->drm, "HDCP 1.4 transcoder: %s stream encrypted\n", in intel_hdcp_auth()
867 drm_dbg_kms(&i915->drm, "HDCP is enabled (no repeater present)\n"); in intel_hdcp_auth()
874 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp_disable() local
881 drm_dbg_kms(&i915->drm, "[%s:%d] HDCP is being disabled...\n", in _intel_hdcp_disable()
887 drm_err(&i915->drm, "[%s:%d] Failed to disable HDCP 1.4 stream enc\n", in _intel_hdcp_disable()
891 drm_dbg_kms(&i915->drm, "HDCP 1.4 transcoder: %s stream encryption disabled\n", in _intel_hdcp_disable()
903 intel_de_write(i915, HDCP_CONF(i915, cpu_transcoder, port), 0); in _intel_hdcp_disable()
904 if (intel_de_wait_for_clear(i915, in _intel_hdcp_disable()
905 HDCP_STATUS(i915, cpu_transcoder, port), in _intel_hdcp_disable()
907 drm_err(&i915->drm, in _intel_hdcp_disable()
912 repeater_ctl = intel_hdcp_get_repeater_ctl(i915, cpu_transcoder, in _intel_hdcp_disable()
914 intel_de_rmw(i915, HDCP_REP_CTL, repeater_ctl, 0); in _intel_hdcp_disable()
918 drm_err(&i915->drm, "Failed to disable HDCP signalling\n"); in _intel_hdcp_disable()
922 drm_dbg_kms(&i915->drm, "HDCP is disabled\n"); in _intel_hdcp_disable()
928 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp1_enable() local
932 drm_dbg_kms(&i915->drm, "[%s:%d] HDCP is being enabled...\n", in intel_hdcp1_enable()
935 if (!hdcp_key_loadable(i915)) { in intel_hdcp1_enable()
936 drm_err(&i915->drm, "HDCP key Load is not possible\n"); in intel_hdcp1_enable()
941 ret = intel_hdcp_load_keys(i915); in intel_hdcp1_enable()
944 intel_hdcp_clear_keys(i915); in intel_hdcp1_enable()
947 drm_err(&i915->drm, "Could not load HDCP keys, (%d)\n", in intel_hdcp1_enable()
960 drm_dbg_kms(&i915->drm, "HDCP Auth failure (%d)\n", ret); in intel_hdcp1_enable()
966 drm_dbg_kms(&i915->drm, in intel_hdcp1_enable()
982 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_update_value() local
1001 queue_work(i915->unordered_wq, &hdcp->prop_work); in intel_hdcp_update_value()
1009 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_check_link() local
1027 if (drm_WARN_ON(&i915->drm, in intel_hdcp_check_link()
1028 !intel_hdcp_in_use(i915, cpu_transcoder, port))) { in intel_hdcp_check_link()
1029 drm_err(&i915->drm, in intel_hdcp_check_link()
1032 intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port))); in intel_hdcp_check_link()
1048 drm_dbg_kms(&i915->drm, in intel_hdcp_check_link()
1054 drm_err(&i915->drm, "Failed to disable hdcp (%d)\n", ret); in intel_hdcp_check_link()
1063 drm_err(&i915->drm, "Failed to enable hdcp (%d)\n", ret); in intel_hdcp_check_link()
1081 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_prop_work() local
1083 drm_modeset_lock(&i915->drm.mode_config.connection_mutex, NULL); in intel_hdcp_prop_work()
1096 drm_modeset_unlock(&i915->drm.mode_config.connection_mutex); in intel_hdcp_prop_work()
1101 bool is_hdcp_supported(struct drm_i915_private *i915, enum port port) in is_hdcp_supported() argument
1103 return DISPLAY_RUNTIME_INFO(i915)->has_hdcp && in is_hdcp_supported()
1104 (DISPLAY_VER(i915) >= 12 || port < PORT_E); in is_hdcp_supported()
1113 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_prepare_ake_init() local
1117 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_prepare_ake_init()
1118 arbiter = i915->display.hdcp.arbiter; in hdcp2_prepare_ake_init()
1121 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_prepare_ake_init()
1127 drm_dbg_kms(&i915->drm, "Prepare_ake_init failed. %d\n", in hdcp2_prepare_ake_init()
1129 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_prepare_ake_init()
1143 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_rx_cert_prepare_km() local
1147 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_rx_cert_prepare_km()
1148 arbiter = i915->display.hdcp.arbiter; in hdcp2_verify_rx_cert_prepare_km()
1151 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_rx_cert_prepare_km()
1159 drm_dbg_kms(&i915->drm, "Verify rx_cert failed. %d\n", in hdcp2_verify_rx_cert_prepare_km()
1161 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_rx_cert_prepare_km()
1171 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_hprime() local
1175 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_hprime()
1176 arbiter = i915->display.hdcp.arbiter; in hdcp2_verify_hprime()
1179 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_hprime()
1185 drm_dbg_kms(&i915->drm, "Verify hprime failed. %d\n", ret); in hdcp2_verify_hprime()
1186 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_hprime()
1197 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_store_pairing_info() local
1201 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_store_pairing_info()
1202 arbiter = i915->display.hdcp.arbiter; in hdcp2_store_pairing_info()
1205 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_store_pairing_info()
1211 drm_dbg_kms(&i915->drm, "Store pairing info failed. %d\n", in hdcp2_store_pairing_info()
1213 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_store_pairing_info()
1224 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_prepare_lc_init() local
1228 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_prepare_lc_init()
1229 arbiter = i915->display.hdcp.arbiter; in hdcp2_prepare_lc_init()
1232 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_prepare_lc_init()
1238 drm_dbg_kms(&i915->drm, "Prepare lc_init failed. %d\n", in hdcp2_prepare_lc_init()
1240 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_prepare_lc_init()
1251 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_lprime() local
1255 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_lprime()
1256 arbiter = i915->display.hdcp.arbiter; in hdcp2_verify_lprime()
1259 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_lprime()
1265 drm_dbg_kms(&i915->drm, "Verify L_Prime failed. %d\n", in hdcp2_verify_lprime()
1267 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_lprime()
1277 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_prepare_skey() local
1281 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_prepare_skey()
1282 arbiter = i915->display.hdcp.arbiter; in hdcp2_prepare_skey()
1285 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_prepare_skey()
1291 drm_dbg_kms(&i915->drm, "Get session key failed. %d\n", in hdcp2_prepare_skey()
1293 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_prepare_skey()
1306 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_rep_topology_prepare_ack() local
1310 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_rep_topology_prepare_ack()
1311 arbiter = i915->display.hdcp.arbiter; in hdcp2_verify_rep_topology_prepare_ack()
1314 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_rep_topology_prepare_ack()
1323 drm_dbg_kms(&i915->drm, in hdcp2_verify_rep_topology_prepare_ack()
1325 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_rep_topology_prepare_ack()
1336 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_mprime() local
1340 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_mprime()
1341 arbiter = i915->display.hdcp.arbiter; in hdcp2_verify_mprime()
1344 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_mprime()
1350 drm_dbg_kms(&i915->drm, "Verify mprime failed. %d\n", ret); in hdcp2_verify_mprime()
1351 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_verify_mprime()
1360 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_port() local
1364 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_authenticate_port()
1365 arbiter = i915->display.hdcp.arbiter; in hdcp2_authenticate_port()
1368 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_authenticate_port()
1374 drm_dbg_kms(&i915->drm, "Enable hdcp auth failed. %d\n", in hdcp2_authenticate_port()
1376 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_authenticate_port()
1384 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_close_session() local
1388 mutex_lock(&i915->display.hdcp.hdcp_mutex); in hdcp2_close_session()
1389 arbiter = i915->display.hdcp.arbiter; in hdcp2_close_session()
1392 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_close_session()
1398 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in hdcp2_close_session()
1411 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authentication_key_exchange() local
1443 drm_dbg_kms(&i915->drm, "cert.rx_caps dont claim HDCP2.2\n"); in hdcp2_authentication_key_exchange()
1449 if (drm_hdcp_check_ksvs_revoked(&i915->drm, in hdcp2_authentication_key_exchange()
1452 drm_err(&i915->drm, "Receiver ID is revoked\n"); in hdcp2_authentication_key_exchange()
1604 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_repeater_topology() local
1624 drm_dbg_kms(&i915->drm, "Topology Max Size Exceeded\n"); in hdcp2_authenticate_repeater_topology()
1641 drm_dbg_kms(&i915->drm, in hdcp2_authenticate_repeater_topology()
1648 drm_dbg_kms(&i915->drm, "Seq_num_v roll over.\n"); in hdcp2_authenticate_repeater_topology()
1654 if (drm_hdcp_check_ksvs_revoked(&i915->drm, in hdcp2_authenticate_repeater_topology()
1657 drm_err(&i915->drm, "Revoked receiver ID(s) is in list\n"); in hdcp2_authenticate_repeater_topology()
1678 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_sink() local
1685 drm_dbg_kms(&i915->drm, "AKE Failed. Err : %d\n", ret); in hdcp2_authenticate_sink()
1691 drm_dbg_kms(&i915->drm, in hdcp2_authenticate_sink()
1698 drm_dbg_kms(&i915->drm, "SKE Failed. Err : %d\n", ret); in hdcp2_authenticate_sink()
1713 drm_dbg_kms(&i915->drm, in hdcp2_authenticate_sink()
1725 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_enable_stream_encryption() local
1732 if (!(intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) & in hdcp2_enable_stream_encryption()
1734 drm_err(&i915->drm, "[%s:%d] HDCP 2.2 Link is not encrypted\n", in hdcp2_enable_stream_encryption()
1743 drm_err(&i915->drm, "[%s:%d] Failed to enable HDCP 2.2 stream enc\n", in hdcp2_enable_stream_encryption()
1747 drm_dbg_kms(&i915->drm, "HDCP 2.2 transcoder: %s stream encrypted\n", in hdcp2_enable_stream_encryption()
1755 drm_dbg_kms(&i915->drm, "Port deauth failed.\n"); in hdcp2_enable_stream_encryption()
1766 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_enable_encryption() local
1772 drm_WARN_ON(&i915->drm, in hdcp2_enable_encryption()
1773 intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) & in hdcp2_enable_encryption()
1779 drm_err(&i915->drm, in hdcp2_enable_encryption()
1786 if (intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) & in hdcp2_enable_encryption()
1789 intel_de_rmw(i915, HDCP2_CTL(i915, cpu_transcoder, port), in hdcp2_enable_encryption()
1792 ret = intel_de_wait_for_set(i915, in hdcp2_enable_encryption()
1793 HDCP2_STATUS(i915, cpu_transcoder, in hdcp2_enable_encryption()
1805 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_disable_encryption() local
1811 drm_WARN_ON(&i915->drm, !(intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port)) & in hdcp2_disable_encryption()
1814 intel_de_rmw(i915, HDCP2_CTL(i915, cpu_transcoder, port), in hdcp2_disable_encryption()
1817 ret = intel_de_wait_for_clear(i915, in hdcp2_disable_encryption()
1818 HDCP2_STATUS(i915, cpu_transcoder, in hdcp2_disable_encryption()
1823 drm_dbg_kms(&i915->drm, "Disable Encryption Timedout"); in hdcp2_disable_encryption()
1829 drm_err(&i915->drm, in hdcp2_disable_encryption()
1842 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_propagate_stream_management_info() local
1855 drm_dbg_kms(&i915->drm, in hdcp2_propagate_stream_management_info()
1860 drm_dbg_kms(&i915->drm, in hdcp2_propagate_stream_management_info()
1871 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_and_encrypt() local
1881 drm_dbg_kms(&i915->drm, in hdcp2_authenticate_and_encrypt()
1890 drm_dbg_kms(&i915->drm, "HDCP2 port auth failed.(%d)\n", in hdcp2_authenticate_and_encrypt()
1895 drm_dbg_kms(&i915->drm, "HDCP2.2 Auth %d of %d Failed.(%d)\n", in hdcp2_authenticate_and_encrypt()
1898 drm_dbg_kms(&i915->drm, "Port deauth failed.\n"); in hdcp2_authenticate_and_encrypt()
1909 drm_dbg_kms(&i915->drm, in hdcp2_authenticate_and_encrypt()
1912 drm_dbg_kms(&i915->drm, "Port deauth failed.\n"); in hdcp2_authenticate_and_encrypt()
1924 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp2_enable() local
1928 drm_dbg_kms(&i915->drm, "[%s:%d] HDCP2.2 is being enabled. Type: %d\n", in _intel_hdcp2_enable()
1934 drm_dbg_kms(&i915->drm, "HDCP2 Type%d Enabling Failed. (%d)\n", in _intel_hdcp2_enable()
1939 drm_dbg_kms(&i915->drm, "[%s:%d] HDCP2.2 is enabled. Type %d\n", in _intel_hdcp2_enable()
1951 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp2_disable() local
1956 drm_dbg_kms(&i915->drm, "[%s:%d] HDCP2.2 is being Disabled\n", in _intel_hdcp2_disable()
1962 drm_err(&i915->drm, "[%s:%d] Failed to disable HDCP 2.2 stream enc\n", in _intel_hdcp2_disable()
1966 drm_dbg_kms(&i915->drm, "HDCP 2.2 transcoder: %s stream encryption disabled\n", in _intel_hdcp2_disable()
1976 drm_dbg_kms(&i915->drm, "Port deauth failed.\n"); in _intel_hdcp2_disable()
1989 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_check_link() local
2006 if (drm_WARN_ON(&i915->drm, in intel_hdcp2_check_link()
2007 !intel_hdcp2_in_use(i915, cpu_transcoder, port))) { in intel_hdcp2_check_link()
2008 drm_err(&i915->drm, in intel_hdcp2_check_link()
2010 intel_de_read(i915, HDCP2_STATUS(i915, cpu_transcoder, port))); in intel_hdcp2_check_link()
2033 drm_dbg_kms(&i915->drm, in intel_hdcp2_check_link()
2042 drm_dbg_kms(&i915->drm, in intel_hdcp2_check_link()
2047 drm_dbg_kms(&i915->drm, in intel_hdcp2_check_link()
2054 drm_err(&i915->drm, in intel_hdcp2_check_link()
2064 drm_dbg_kms(&i915->drm, in intel_hdcp2_check_link()
2086 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_check_work() local
2092 queue_delayed_work(i915->unordered_wq, &hdcp->check_work, in intel_hdcp_check_work()
2095 queue_delayed_work(i915->unordered_wq, &hdcp->check_work, in intel_hdcp_check_work()
2102 struct drm_i915_private *i915 = kdev_to_i915(i915_kdev); in i915_hdcp_component_bind() local
2104 drm_dbg(&i915->drm, "I915 HDCP comp bind\n"); in i915_hdcp_component_bind()
2105 mutex_lock(&i915->display.hdcp.hdcp_mutex); in i915_hdcp_component_bind()
2106 i915->display.hdcp.arbiter = (struct i915_hdcp_arbiter *)data; in i915_hdcp_component_bind()
2107 i915->display.hdcp.arbiter->hdcp_dev = mei_kdev; in i915_hdcp_component_bind()
2108 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in i915_hdcp_component_bind()
2116 struct drm_i915_private *i915 = kdev_to_i915(i915_kdev); in i915_hdcp_component_unbind() local
2118 drm_dbg(&i915->drm, "I915 HDCP comp unbind\n"); in i915_hdcp_component_unbind()
2119 mutex_lock(&i915->display.hdcp.hdcp_mutex); in i915_hdcp_component_unbind()
2120 i915->display.hdcp.arbiter = NULL; in i915_hdcp_component_unbind()
2121 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in i915_hdcp_component_unbind()
2155 struct drm_i915_private *i915 = to_i915(connector->base.dev); in initialize_hdcp_port_data() local
2159 if (DISPLAY_VER(i915) < 12) in initialize_hdcp_port_data()
2179 data->streams = kcalloc(INTEL_NUM_PIPES(i915), in initialize_hdcp_port_data()
2183 drm_err(&i915->drm, "Out of Memory\n"); in initialize_hdcp_port_data()
2190 static bool is_hdcp2_supported(struct drm_i915_private *i915) in is_hdcp2_supported() argument
2192 if (intel_hdcp_gsc_cs_required(i915)) in is_hdcp2_supported()
2198 return (DISPLAY_VER(i915) >= 10 || in is_hdcp2_supported()
2199 IS_KABYLAKE(i915) || in is_hdcp2_supported()
2200 IS_COFFEELAKE(i915) || in is_hdcp2_supported()
2201 IS_COMETLAKE(i915)); in is_hdcp2_supported()
2204 void intel_hdcp_component_init(struct drm_i915_private *i915) in intel_hdcp_component_init() argument
2208 if (!is_hdcp2_supported(i915)) in intel_hdcp_component_init()
2211 mutex_lock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp_component_init()
2212 drm_WARN_ON(&i915->drm, i915->display.hdcp.comp_added); in intel_hdcp_component_init()
2214 i915->display.hdcp.comp_added = true; in intel_hdcp_component_init()
2215 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp_component_init()
2216 if (intel_hdcp_gsc_cs_required(i915)) in intel_hdcp_component_init()
2217 ret = intel_hdcp_gsc_init(i915); in intel_hdcp_component_init()
2219 ret = component_add_typed(i915->drm.dev, &i915_hdcp_ops, in intel_hdcp_component_init()
2223 drm_dbg_kms(&i915->drm, "Failed at fw component add(%d)\n", in intel_hdcp_component_init()
2225 mutex_lock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp_component_init()
2226 i915->display.hdcp.comp_added = false; in intel_hdcp_component_init()
2227 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp_component_init()
2236 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_init() local
2242 drm_dbg_kms(&i915->drm, "Mei hdcp data init failed\n"); in intel_hdcp2_init()
2253 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_init() local
2260 if (is_hdcp2_supported(i915)) in intel_hdcp_init()
2288 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_hdcp_set_streams() local
2299 drm_connector_list_iter_begin(&i915->drm, &conn_iter); in intel_hdcp_set_streams()
2321 if (drm_WARN_ON(&i915->drm, data->k > INTEL_NUM_PIPES(i915) || data->k == 0)) in intel_hdcp_set_streams()
2332 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in _intel_hdcp_enable() local
2344 drm_err(&i915->drm, "[%s:%d] encoder is not initialized\n", in _intel_hdcp_enable()
2351 drm_WARN_ON(&i915->drm, in _intel_hdcp_enable()
2363 if (DISPLAY_VER(i915) >= 12) in _intel_hdcp_enable()
2379 drm_dbg_kms(&i915->drm, in _intel_hdcp_enable()
2395 queue_delayed_work(i915->unordered_wq, &hdcp->check_work, in _intel_hdcp_enable()
2466 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_update_pipe() local
2493 queue_work(i915->unordered_wq, &hdcp->prop_work); in intel_hdcp_update_pipe()
2510 queue_work(i915->unordered_wq, &hdcp->prop_work); in intel_hdcp_update_pipe()
2518 void intel_hdcp_component_fini(struct drm_i915_private *i915) in intel_hdcp_component_fini() argument
2520 mutex_lock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp_component_fini()
2521 if (!i915->display.hdcp.comp_added) { in intel_hdcp_component_fini()
2522 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp_component_fini()
2526 i915->display.hdcp.comp_added = false; in intel_hdcp_component_fini()
2527 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp_component_fini()
2529 if (intel_hdcp_gsc_cs_required(i915)) in intel_hdcp_component_fini()
2530 intel_hdcp_gsc_fini(i915); in intel_hdcp_component_fini()
2532 component_del(i915->drm.dev, &i915_hdcp_ops); in intel_hdcp_component_fini()
2622 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_handle_cp_irq() local
2630 queue_delayed_work(i915->unordered_wq, &hdcp->check_work, 0); in intel_hdcp_handle_cp_irq()