Lines Matching full:connector

64 			      struct intel_connector *connector)  in intel_conn_to_vcpi()  argument
72 if (!connector->port) in intel_conn_to_vcpi()
74 mgr = connector->port->mgr; in intel_conn_to_vcpi()
78 payload = drm_atomic_get_mst_payload_state(mst_state, connector->port); in intel_conn_to_vcpi()
108 struct intel_connector *connector; in intel_hdcp_required_content_stream() local
122 for_each_intel_connector_iter(connector, &conn_iter) { in intel_hdcp_required_content_stream()
123 if (connector->base.status == connector_status_disconnected) in intel_hdcp_required_content_stream()
126 if (!intel_encoder_is_mst(intel_attached_encoder(connector))) in intel_hdcp_required_content_stream()
129 conn_dig_port = intel_attached_dig_port(connector); in intel_hdcp_required_content_stream()
134 intel_conn_to_vcpi(state, connector); in intel_hdcp_required_content_stream()
158 struct intel_connector *connector) in intel_hdcp_prepare_streams() argument
160 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_prepare_streams()
162 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_prepare_streams()
164 if (intel_encoder_is_mst(intel_attached_encoder(connector))) in intel_hdcp_prepare_streams()
211 bool intel_hdcp_get_capability(struct intel_connector *connector) in intel_hdcp_get_capability() argument
214 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_get_capability()
218 if (!intel_attached_encoder(connector)) in intel_hdcp_get_capability()
221 dig_port = intel_attached_dig_port(connector); in intel_hdcp_get_capability()
240 static bool intel_hdcp2_prerequisite(struct intel_connector *connector) in intel_hdcp2_prerequisite() argument
242 struct intel_display *display = to_intel_display(connector); in intel_hdcp2_prerequisite()
243 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_prerequisite()
267 bool intel_hdcp2_get_capability(struct intel_connector *connector) in intel_hdcp2_get_capability() argument
269 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_get_capability()
272 if (!intel_hdcp2_prerequisite(connector)) in intel_hdcp2_get_capability()
276 hdcp->shim->hdcp_2_2_get_capability(connector, &capable); in intel_hdcp2_get_capability()
281 void intel_hdcp_get_remote_capability(struct intel_connector *connector, in intel_hdcp_get_remote_capability() argument
285 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_get_remote_capability()
290 hdcp->shim->get_remote_hdcp_capability(connector, hdcp_capable, in intel_hdcp_get_remote_capability()
293 if (!intel_hdcp2_prerequisite(connector)) in intel_hdcp_get_remote_capability()
477 int intel_hdcp_validate_v_prime(struct intel_connector *connector, in intel_hdcp_validate_v_prime() argument
481 struct intel_display *display = to_intel_display(connector); in intel_hdcp_validate_v_prime()
482 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_validate_v_prime()
483 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_validate_v_prime()
721 int intel_hdcp_auth_downstream(struct intel_connector *connector) in intel_hdcp_auth_downstream() argument
723 struct intel_display *display = to_intel_display(connector); in intel_hdcp_auth_downstream()
724 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth_downstream()
725 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_auth_downstream()
782 ret = intel_hdcp_validate_v_prime(connector, shim, in intel_hdcp_auth_downstream()
804 static int intel_hdcp_auth(struct intel_connector *connector) in intel_hdcp_auth() argument
806 struct intel_display *display = to_intel_display(connector); in intel_hdcp_auth()
807 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth()
808 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_auth()
810 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_auth()
959 ret = shim->stream_encryption(connector, true); in intel_hdcp_auth()
961 drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 1.4 stream enc\n", in intel_hdcp_auth()
962 connector->base.base.id, connector->base.name); in intel_hdcp_auth()
970 return intel_hdcp_auth_downstream(connector); in intel_hdcp_auth()
976 static int _intel_hdcp_disable(struct intel_connector *connector) in _intel_hdcp_disable() argument
978 struct intel_display *display = to_intel_display(connector); in _intel_hdcp_disable()
979 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp_disable()
980 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_disable()
986 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being disabled...\n", in _intel_hdcp_disable()
987 connector->base.base.id, connector->base.name); in _intel_hdcp_disable()
990 ret = hdcp->shim->stream_encryption(connector, false); in _intel_hdcp_disable()
992 drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 1.4 stream enc\n", in _intel_hdcp_disable()
993 connector->base.base.id, connector->base.name); in _intel_hdcp_disable()
1031 static int intel_hdcp1_enable(struct intel_connector *connector) in intel_hdcp1_enable() argument
1033 struct intel_display *display = to_intel_display(connector); in intel_hdcp1_enable()
1034 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp1_enable()
1037 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP is being enabled...\n", in intel_hdcp1_enable()
1038 connector->base.base.id, connector->base.name); in intel_hdcp1_enable()
1057 intel_hdcp_adjust_hdcp_line_rekeying(connector->encoder, hdcp, true); in intel_hdcp1_enable()
1061 ret = intel_hdcp_auth(connector); in intel_hdcp1_enable()
1070 _intel_hdcp_disable(connector); in intel_hdcp1_enable()
1083 static void intel_hdcp_update_value(struct intel_connector *connector, in intel_hdcp_update_value() argument
1086 struct intel_display *display = to_intel_display(connector); in intel_hdcp_update_value()
1088 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_update_value()
1089 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_value()
1107 drm_connector_get(&connector->base); in intel_hdcp_update_value()
1109 drm_connector_put(&connector->base); in intel_hdcp_update_value()
1114 static int intel_hdcp_check_link(struct intel_connector *connector) in intel_hdcp_check_link() argument
1116 struct intel_display *display = to_intel_display(connector); in intel_hdcp_check_link()
1117 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_check_link()
1118 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_check_link()
1138 "[CONNECTOR:%d:%s] HDCP link stopped encryption,%x\n", in intel_hdcp_check_link()
1139 connector->base.base.id, connector->base.name, in intel_hdcp_check_link()
1142 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1148 if (hdcp->shim->check_link(dig_port, connector)) { in intel_hdcp_check_link()
1150 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1157 "[CONNECTOR:%d:%s] HDCP link failed, retrying authentication\n", in intel_hdcp_check_link()
1158 connector->base.base.id, connector->base.name); in intel_hdcp_check_link()
1160 ret = _intel_hdcp_disable(connector); in intel_hdcp_check_link()
1163 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1169 ret = intel_hdcp1_enable(connector); in intel_hdcp_check_link()
1172 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1188 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_prop_work() local
1189 struct intel_display *display = to_intel_display(connector); in intel_hdcp_prop_work()
1200 drm_hdcp_update_content_protection(&connector->base, in intel_hdcp_prop_work()
1206 drm_connector_put(&connector->base); in intel_hdcp_prop_work()
1216 hdcp2_prepare_ake_init(struct intel_connector *connector, in hdcp2_prepare_ake_init() argument
1219 struct intel_display *display = to_intel_display(connector); in hdcp2_prepare_ake_init()
1220 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_ake_init()
1243 hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector, in hdcp2_verify_rx_cert_prepare_km() argument
1249 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_rx_cert_prepare_km()
1250 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rx_cert_prepare_km()
1274 static int hdcp2_verify_hprime(struct intel_connector *connector, in hdcp2_verify_hprime() argument
1277 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_hprime()
1278 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_hprime()
1300 hdcp2_store_pairing_info(struct intel_connector *connector, in hdcp2_store_pairing_info() argument
1303 struct intel_display *display = to_intel_display(connector); in hdcp2_store_pairing_info()
1304 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_store_pairing_info()
1327 hdcp2_prepare_lc_init(struct intel_connector *connector, in hdcp2_prepare_lc_init() argument
1330 struct intel_display *display = to_intel_display(connector); in hdcp2_prepare_lc_init()
1331 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_lc_init()
1354 hdcp2_verify_lprime(struct intel_connector *connector, in hdcp2_verify_lprime() argument
1357 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_lprime()
1358 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_lprime()
1380 static int hdcp2_prepare_skey(struct intel_connector *connector, in hdcp2_prepare_skey() argument
1383 struct intel_display *display = to_intel_display(connector); in hdcp2_prepare_skey()
1384 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_skey()
1407 hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector, in hdcp2_verify_rep_topology_prepare_ack() argument
1412 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_rep_topology_prepare_ack()
1413 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rep_topology_prepare_ack()
1439 hdcp2_verify_mprime(struct intel_connector *connector, in hdcp2_verify_mprime() argument
1442 struct intel_display *display = to_intel_display(connector); in hdcp2_verify_mprime()
1443 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_mprime()
1464 static int hdcp2_authenticate_port(struct intel_connector *connector) in hdcp2_authenticate_port() argument
1466 struct intel_display *display = to_intel_display(connector); in hdcp2_authenticate_port()
1467 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_port()
1489 static int hdcp2_close_session(struct intel_connector *connector) in hdcp2_close_session() argument
1491 struct intel_display *display = to_intel_display(connector); in hdcp2_close_session()
1492 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_close_session()
1511 static int hdcp2_deauthenticate_port(struct intel_connector *connector) in hdcp2_deauthenticate_port() argument
1513 return hdcp2_close_session(connector); in hdcp2_deauthenticate_port()
1517 static int hdcp2_authentication_key_exchange(struct intel_connector *connector) in hdcp2_authentication_key_exchange() argument
1519 struct intel_display *display = to_intel_display(connector); in hdcp2_authentication_key_exchange()
1521 intel_attached_dig_port(connector); in hdcp2_authentication_key_exchange()
1522 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authentication_key_exchange()
1544 ret = hdcp2_prepare_ake_init(connector, &msgs.ake_init); in hdcp2_authentication_key_exchange()
1562 if (!intel_hdcp2_get_capability(connector)) { in hdcp2_authentication_key_exchange()
1567 ret = shim->write_2_2_msg(connector, &msgs.ake_init, in hdcp2_authentication_key_exchange()
1572 ret = shim->read_2_2_msg(connector, HDCP_2_2_AKE_SEND_CERT, in hdcp2_authentication_key_exchange()
1599 ret = hdcp2_verify_rx_cert_prepare_km(connector, &msgs.send_cert, in hdcp2_authentication_key_exchange()
1605 ret = shim->write_2_2_msg(connector, &msgs.no_stored_km, size); in hdcp2_authentication_key_exchange()
1609 ret = shim->read_2_2_msg(connector, HDCP_2_2_AKE_SEND_HPRIME, in hdcp2_authentication_key_exchange()
1614 ret = hdcp2_verify_hprime(connector, &msgs.send_hprime); in hdcp2_authentication_key_exchange()
1620 ret = shim->read_2_2_msg(connector, in hdcp2_authentication_key_exchange()
1627 ret = hdcp2_store_pairing_info(connector, &msgs.pairing_info); in hdcp2_authentication_key_exchange()
1636 static int hdcp2_locality_check(struct intel_connector *connector) in hdcp2_locality_check() argument
1638 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_locality_check()
1647 ret = hdcp2_prepare_lc_init(connector, &msgs.lc_init); in hdcp2_locality_check()
1651 ret = shim->write_2_2_msg(connector, &msgs.lc_init, in hdcp2_locality_check()
1656 ret = shim->read_2_2_msg(connector, in hdcp2_locality_check()
1663 ret = hdcp2_verify_lprime(connector, &msgs.send_lprime); in hdcp2_locality_check()
1671 static int hdcp2_session_key_exchange(struct intel_connector *connector) in hdcp2_session_key_exchange() argument
1673 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_session_key_exchange()
1677 ret = hdcp2_prepare_skey(connector, &send_eks); in hdcp2_session_key_exchange()
1681 ret = hdcp->shim->write_2_2_msg(connector, &send_eks, in hdcp2_session_key_exchange()
1690 int _hdcp2_propagate_stream_management_info(struct intel_connector *connector) in _hdcp2_propagate_stream_management_info() argument
1692 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _hdcp2_propagate_stream_management_info()
1694 struct intel_hdcp *hdcp = &connector->hdcp; in _hdcp2_propagate_stream_management_info()
1702 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) in _hdcp2_propagate_stream_management_info()
1719 ret = shim->write_2_2_msg(connector, &msgs.stream_manage, in _hdcp2_propagate_stream_management_info()
1724 ret = shim->read_2_2_msg(connector, HDCP_2_2_REP_STREAM_READY, in _hdcp2_propagate_stream_management_info()
1731 ret = hdcp2_verify_mprime(connector, &msgs.stream_ready); in _hdcp2_propagate_stream_management_info()
1740 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector) in hdcp2_authenticate_repeater_topology() argument
1742 struct intel_display *display = to_intel_display(connector); in hdcp2_authenticate_repeater_topology()
1743 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_repeater_topology()
1744 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_repeater_topology()
1754 ret = shim->read_2_2_msg(connector, HDCP_2_2_REP_SEND_RECVID_LIST, in hdcp2_authenticate_repeater_topology()
1806 ret = hdcp2_verify_rep_topology_prepare_ack(connector, in hdcp2_authenticate_repeater_topology()
1813 ret = shim->write_2_2_msg(connector, &msgs.rep_ack, in hdcp2_authenticate_repeater_topology()
1821 static int hdcp2_authenticate_sink(struct intel_connector *connector) in hdcp2_authenticate_sink() argument
1823 struct intel_display *display = to_intel_display(connector); in hdcp2_authenticate_sink()
1824 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_sink()
1828 ret = hdcp2_authentication_key_exchange(connector); in hdcp2_authenticate_sink()
1834 ret = hdcp2_locality_check(connector); in hdcp2_authenticate_sink()
1841 ret = hdcp2_session_key_exchange(connector); in hdcp2_authenticate_sink()
1848 ret = shim->config_stream_type(connector, in hdcp2_authenticate_sink()
1856 ret = hdcp2_authenticate_repeater_topology(connector); in hdcp2_authenticate_sink()
1867 static int hdcp2_enable_stream_encryption(struct intel_connector *connector) in hdcp2_enable_stream_encryption() argument
1869 struct intel_display *display = to_intel_display(connector); in hdcp2_enable_stream_encryption()
1870 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_enable_stream_encryption()
1872 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_stream_encryption()
1879 drm_err(display->drm, "[CONNECTOR:%d:%s] HDCP 2.2 Link is not encrypted\n", in hdcp2_enable_stream_encryption()
1880 connector->base.base.id, connector->base.name); in hdcp2_enable_stream_encryption()
1886 ret = hdcp->shim->stream_2_2_encryption(connector, true); in hdcp2_enable_stream_encryption()
1888 drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to enable HDCP 2.2 stream enc\n", in hdcp2_enable_stream_encryption()
1889 connector->base.base.id, connector->base.name); in hdcp2_enable_stream_encryption()
1899 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_enable_stream_encryption()
1908 static int hdcp2_enable_encryption(struct intel_connector *connector) in hdcp2_enable_encryption() argument
1910 struct intel_display *display = to_intel_display(connector); in hdcp2_enable_encryption()
1911 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_enable_encryption()
1912 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_encryption()
1947 static int hdcp2_disable_encryption(struct intel_connector *connector) in hdcp2_disable_encryption() argument
1949 struct intel_display *display = to_intel_display(connector); in hdcp2_disable_encryption()
1950 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_disable_encryption()
1951 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_disable_encryption()
1986 hdcp2_propagate_stream_management_info(struct intel_connector *connector) in hdcp2_propagate_stream_management_info() argument
1988 struct intel_display *display = to_intel_display(connector); in hdcp2_propagate_stream_management_info()
1991 if (!connector->hdcp.is_repeater) in hdcp2_propagate_stream_management_info()
1995 ret = _hdcp2_propagate_stream_management_info(connector); in hdcp2_propagate_stream_management_info()
2000 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) { in hdcp2_propagate_stream_management_info()
2015 struct intel_connector *connector) in hdcp2_authenticate_and_encrypt() argument
2017 struct intel_display *display = to_intel_display(connector); in hdcp2_authenticate_and_encrypt()
2018 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_and_encrypt()
2022 ret = hdcp2_authenticate_sink(connector); in hdcp2_authenticate_and_encrypt()
2024 ret = intel_hdcp_prepare_streams(state, connector); in hdcp2_authenticate_and_encrypt()
2032 ret = hdcp2_propagate_stream_management_info(connector); in hdcp2_authenticate_and_encrypt()
2040 ret = hdcp2_authenticate_port(connector); in hdcp2_authenticate_and_encrypt()
2050 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
2060 ret = hdcp2_enable_encryption(connector); in hdcp2_authenticate_and_encrypt()
2064 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
2070 ret = hdcp2_enable_stream_encryption(connector); in hdcp2_authenticate_and_encrypt()
2076 struct intel_connector *connector) in _intel_hdcp2_enable() argument
2078 struct intel_display *display = to_intel_display(connector); in _intel_hdcp2_enable()
2079 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_enable()
2082 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being enabled. Type: %d\n", in _intel_hdcp2_enable()
2083 connector->base.base.id, connector->base.name, in _intel_hdcp2_enable()
2086 intel_hdcp_adjust_hdcp_line_rekeying(connector->encoder, hdcp, false); in _intel_hdcp2_enable()
2088 ret = hdcp2_authenticate_and_encrypt(state, connector); in _intel_hdcp2_enable()
2095 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is enabled. Type %d\n", in _intel_hdcp2_enable()
2096 connector->base.base.id, connector->base.name, in _intel_hdcp2_enable()
2104 _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery) in _intel_hdcp2_disable() argument
2106 struct intel_display *display = to_intel_display(connector); in _intel_hdcp2_disable()
2107 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp2_disable()
2109 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_disable()
2112 drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] HDCP2.2 is being Disabled\n", in _intel_hdcp2_disable()
2113 connector->base.base.id, connector->base.name); in _intel_hdcp2_disable()
2116 ret = hdcp->shim->stream_2_2_encryption(connector, false); in _intel_hdcp2_disable()
2118 drm_err(display->drm, "[CONNECTOR:%d:%s] Failed to disable HDCP 2.2 stream enc\n", in _intel_hdcp2_disable()
2119 connector->base.base.id, connector->base.name); in _intel_hdcp2_disable()
2129 ret = hdcp2_disable_encryption(connector); in _intel_hdcp2_disable()
2131 if (hdcp2_deauthenticate_port(connector) < 0) in _intel_hdcp2_disable()
2134 connector->hdcp.hdcp2_encrypted = false; in _intel_hdcp2_disable()
2142 static int intel_hdcp2_check_link(struct intel_connector *connector) in intel_hdcp2_check_link() argument
2144 struct intel_display *display = to_intel_display(connector); in intel_hdcp2_check_link()
2145 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp2_check_link()
2146 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_check_link()
2168 _intel_hdcp2_disable(connector, true); in intel_hdcp2_check_link()
2169 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2175 ret = hdcp->shim->check_2_2_link(dig_port, connector); in intel_hdcp2_check_link()
2178 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2192 ret = hdcp2_authenticate_repeater_topology(connector); in intel_hdcp2_check_link()
2194 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2201 "[CONNECTOR:%d:%s] Repeater topology auth failed.(%d)\n", in intel_hdcp2_check_link()
2202 connector->base.base.id, connector->base.name, in intel_hdcp2_check_link()
2206 "[CONNECTOR:%d:%s] HDCP2.2 link failed, retrying auth\n", in intel_hdcp2_check_link()
2207 connector->base.base.id, connector->base.name); in intel_hdcp2_check_link()
2210 ret = _intel_hdcp2_disable(connector, true); in intel_hdcp2_check_link()
2213 "[CONNECTOR:%d:%s] Failed to disable hdcp2.2 (%d)\n", in intel_hdcp2_check_link()
2214 connector->base.base.id, connector->base.name, ret); in intel_hdcp2_check_link()
2215 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2220 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2233 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_check_work() local
2234 struct intel_display *display = to_intel_display(connector); in intel_hdcp_check_work()
2237 if (drm_connector_is_unregistered(&connector->base)) in intel_hdcp_check_work()
2240 if (!intel_hdcp2_check_link(connector)) in intel_hdcp_check_work()
2243 else if (!intel_hdcp_check_link(connector)) in intel_hdcp_check_work()
2300 static int initialize_hdcp_port_data(struct intel_connector *connector, in initialize_hdcp_port_data() argument
2304 struct intel_display *display = to_intel_display(connector); in initialize_hdcp_port_data()
2383 static void intel_hdcp2_init(struct intel_connector *connector, in intel_hdcp2_init() argument
2387 struct intel_display *display = to_intel_display(connector); in intel_hdcp2_init()
2388 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_init()
2391 ret = initialize_hdcp_port_data(connector, dig_port, shim); in intel_hdcp2_init()
2400 int intel_hdcp_init(struct intel_connector *connector, in intel_hdcp_init() argument
2404 struct intel_display *display = to_intel_display(connector); in intel_hdcp_init()
2405 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_init()
2412 intel_hdcp2_init(connector, dig_port, shim); in intel_hdcp_init()
2414 ret = drm_connector_attach_content_protection_property(&connector->base, in intel_hdcp_init()
2438 struct intel_connector *connector = in _intel_hdcp_enable() local
2439 to_intel_connector(conn_state->connector); in _intel_hdcp_enable()
2440 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp_enable()
2441 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_enable()
2448 if (!connector->encoder) { in _intel_hdcp_enable()
2449 drm_err(display->drm, "[CONNECTOR:%d:%s] encoder is not initialized\n", in _intel_hdcp_enable()
2450 connector->base.base.id, connector->base.name); in _intel_hdcp_enable()
2476 if (intel_hdcp2_get_capability(connector)) { in _intel_hdcp_enable()
2477 ret = _intel_hdcp2_enable(state, connector); in _intel_hdcp_enable()
2487 if (ret && intel_hdcp_get_capability(connector) && in _intel_hdcp_enable()
2489 ret = intel_hdcp1_enable(connector); in _intel_hdcp_enable()
2495 intel_hdcp_update_value(connector, in _intel_hdcp_enable()
2510 struct intel_connector *connector = in intel_hdcp_enable() local
2511 to_intel_connector(conn_state->connector); in intel_hdcp_enable()
2512 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_enable()
2526 int intel_hdcp_disable(struct intel_connector *connector) in intel_hdcp_disable() argument
2528 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_disable()
2529 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_disable()
2541 intel_hdcp_update_value(connector, in intel_hdcp_disable()
2544 ret = _intel_hdcp2_disable(connector, false); in intel_hdcp_disable()
2546 ret = _intel_hdcp_disable(connector); in intel_hdcp_disable()
2560 struct intel_connector *connector = in intel_hdcp_update_pipe() local
2561 to_intel_connector(conn_state->connector); in intel_hdcp_update_pipe()
2562 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_pipe()
2564 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_update_pipe()
2566 if (!connector->hdcp.shim) in intel_hdcp_update_pipe()
2581 intel_hdcp_disable(connector); in intel_hdcp_update_pipe()
2590 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2592 drm_connector_put(&connector->base); in intel_hdcp_update_pipe()
2608 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2610 drm_connector_put(&connector->base); in intel_hdcp_update_pipe()
2636 void intel_hdcp_cleanup(struct intel_connector *connector) in intel_hdcp_cleanup() argument
2638 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_cleanup()
2644 * If the connector is registered, it's possible userspace could kick in intel_hdcp_cleanup()
2647 drm_WARN_ON(connector->base.dev, in intel_hdcp_cleanup()
2648 connector->base.registration_state == DRM_CONNECTOR_REGISTERED); in intel_hdcp_cleanup()
2651 * Now that the connector is not registered, check_work won't be run, in intel_hdcp_cleanup()
2659 * function. Instead, we rely on the connector references grabbed before in intel_hdcp_cleanup()
2660 * scheduling prop_work to ensure the connector is alive when prop_work in intel_hdcp_cleanup()
2665 drm_WARN_ON(connector->base.dev, work_pending(&hdcp->prop_work)); in intel_hdcp_cleanup()
2672 void intel_hdcp_atomic_check(struct drm_connector *connector, in intel_hdcp_atomic_check() argument
2682 * If the connector is being disabled with CP enabled, mark it in intel_hdcp_atomic_check()
2683 * desired so it's re-enabled when the connector is brought back in intel_hdcp_atomic_check()
2720 void intel_hdcp_handle_cp_irq(struct intel_connector *connector) in intel_hdcp_handle_cp_irq() argument
2722 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_handle_cp_irq()
2723 struct intel_display *display = to_intel_display(connector); in intel_hdcp_handle_cp_irq()
2729 atomic_inc(&connector->hdcp.cp_irq_count); in intel_hdcp_handle_cp_irq()
2730 wake_up_all(&connector->hdcp.cp_irq_queue); in intel_hdcp_handle_cp_irq()