Lines Matching full:connector

34 			      struct intel_connector *connector)  in intel_conn_to_vcpi()  argument
42 if (!connector->port) in intel_conn_to_vcpi()
44 mgr = connector->port->mgr; in intel_conn_to_vcpi()
48 payload = drm_atomic_get_mst_payload_state(mst_state, connector->port); in intel_conn_to_vcpi()
93 static void intel_hdcp_prepare_streams(struct intel_connector *connector) in intel_hdcp_prepare_streams() argument
95 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_prepare_streams()
97 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_prepare_streams()
99 if (!intel_encoder_is_mst(intel_attached_encoder(connector))) { in intel_hdcp_prepare_streams()
143 bool intel_hdcp_capable(struct intel_connector *connector) in intel_hdcp_capable() argument
145 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_capable()
146 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_capable()
164 bool intel_hdcp2_capable(struct intel_connector *connector) in intel_hdcp2_capable() argument
166 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_capable()
167 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_capable()
189 hdcp->shim->hdcp_2_2_capable(connector, &capable); in intel_hdcp2_capable()
372 int intel_hdcp_validate_v_prime(struct intel_connector *connector, in intel_hdcp_validate_v_prime() argument
376 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_validate_v_prime()
377 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_validate_v_prime()
378 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_validate_v_prime()
616 int intel_hdcp_auth_downstream(struct intel_connector *connector) in intel_hdcp_auth_downstream() argument
618 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth_downstream()
619 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_auth_downstream()
620 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_auth_downstream()
677 ret = intel_hdcp_validate_v_prime(connector, shim, in intel_hdcp_auth_downstream()
699 static int intel_hdcp_auth(struct intel_connector *connector) in intel_hdcp_auth() argument
701 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth()
702 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_auth()
703 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_auth()
705 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_auth()
854 ret = shim->stream_encryption(connector, true); in intel_hdcp_auth()
857 connector->base.name, connector->base.base.id); in intel_hdcp_auth()
865 return intel_hdcp_auth_downstream(connector); in intel_hdcp_auth()
871 static int _intel_hdcp_disable(struct intel_connector *connector) in _intel_hdcp_disable() argument
873 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp_disable()
874 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp_disable()
875 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_disable()
882 connector->base.name, connector->base.base.id); in _intel_hdcp_disable()
885 ret = hdcp->shim->stream_encryption(connector, false); in _intel_hdcp_disable()
888 connector->base.name, connector->base.base.id); in _intel_hdcp_disable()
926 static int intel_hdcp1_enable(struct intel_connector *connector) in intel_hdcp1_enable() argument
928 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp1_enable()
929 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp1_enable()
933 connector->base.name, connector->base.base.id); in intel_hdcp1_enable()
954 ret = intel_hdcp_auth(connector); in intel_hdcp1_enable()
963 _intel_hdcp_disable(connector); in intel_hdcp1_enable()
976 static void intel_hdcp_update_value(struct intel_connector *connector, in intel_hdcp_update_value() argument
979 struct drm_device *dev = connector->base.dev; in intel_hdcp_update_value()
980 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_update_value()
981 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_value()
982 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_update_value()
984 drm_WARN_ON(connector->base.dev, !mutex_is_locked(&hdcp->mutex)); in intel_hdcp_update_value()
1000 drm_connector_get(&connector->base); in intel_hdcp_update_value()
1006 static int intel_hdcp_check_link(struct intel_connector *connector) in intel_hdcp_check_link() argument
1008 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_check_link()
1009 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_check_link()
1010 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_check_link()
1031 connector->base.name, connector->base.base.id, in intel_hdcp_check_link()
1034 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1040 if (hdcp->shim->check_link(dig_port, connector)) { in intel_hdcp_check_link()
1042 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1050 connector->base.name, connector->base.base.id); in intel_hdcp_check_link()
1052 ret = _intel_hdcp_disable(connector); in intel_hdcp_check_link()
1055 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1061 ret = intel_hdcp1_enable(connector); in intel_hdcp_check_link()
1064 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1080 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_prop_work() local
1081 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_prop_work()
1092 drm_hdcp_update_content_protection(&connector->base, in intel_hdcp_prop_work()
1098 drm_connector_put(&connector->base); in intel_hdcp_prop_work()
1108 hdcp2_prepare_ake_init(struct intel_connector *connector, in hdcp2_prepare_ake_init() argument
1111 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_ake_init()
1113 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_prepare_ake_init()
1135 hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector, in hdcp2_verify_rx_cert_prepare_km() argument
1141 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rx_cert_prepare_km()
1143 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_rx_cert_prepare_km()
1166 static int hdcp2_verify_hprime(struct intel_connector *connector, in hdcp2_verify_hprime() argument
1169 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_hprime()
1171 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_hprime()
1192 hdcp2_store_pairing_info(struct intel_connector *connector, in hdcp2_store_pairing_info() argument
1195 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_store_pairing_info()
1197 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_store_pairing_info()
1219 hdcp2_prepare_lc_init(struct intel_connector *connector, in hdcp2_prepare_lc_init() argument
1222 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_lc_init()
1224 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_prepare_lc_init()
1246 hdcp2_verify_lprime(struct intel_connector *connector, in hdcp2_verify_lprime() argument
1249 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_lprime()
1251 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_lprime()
1272 static int hdcp2_prepare_skey(struct intel_connector *connector, in hdcp2_prepare_skey() argument
1275 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_skey()
1277 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_prepare_skey()
1299 hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector, in hdcp2_verify_rep_topology_prepare_ack() argument
1304 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rep_topology_prepare_ack()
1306 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_rep_topology_prepare_ack()
1331 hdcp2_verify_mprime(struct intel_connector *connector, in hdcp2_verify_mprime() argument
1334 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_mprime()
1336 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_mprime()
1356 static int hdcp2_authenticate_port(struct intel_connector *connector) in hdcp2_authenticate_port() argument
1358 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_port()
1360 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_port()
1381 static int hdcp2_close_session(struct intel_connector *connector) in hdcp2_close_session() argument
1383 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_close_session()
1384 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_close_session()
1403 static int hdcp2_deauthenticate_port(struct intel_connector *connector) in hdcp2_deauthenticate_port() argument
1405 return hdcp2_close_session(connector); in hdcp2_deauthenticate_port()
1409 static int hdcp2_authentication_key_exchange(struct intel_connector *connector) in hdcp2_authentication_key_exchange() argument
1411 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authentication_key_exchange()
1412 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authentication_key_exchange()
1428 ret = hdcp2_prepare_ake_init(connector, &msgs.ake_init); in hdcp2_authentication_key_exchange()
1432 ret = shim->write_2_2_msg(connector, &msgs.ake_init, in hdcp2_authentication_key_exchange()
1437 ret = shim->read_2_2_msg(connector, HDCP_2_2_AKE_SEND_CERT, in hdcp2_authentication_key_exchange()
1460 ret = hdcp2_verify_rx_cert_prepare_km(connector, &msgs.send_cert, in hdcp2_authentication_key_exchange()
1466 ret = shim->write_2_2_msg(connector, &msgs.no_stored_km, size); in hdcp2_authentication_key_exchange()
1470 ret = shim->read_2_2_msg(connector, HDCP_2_2_AKE_SEND_HPRIME, in hdcp2_authentication_key_exchange()
1475 ret = hdcp2_verify_hprime(connector, &msgs.send_hprime); in hdcp2_authentication_key_exchange()
1481 ret = shim->read_2_2_msg(connector, in hdcp2_authentication_key_exchange()
1488 ret = hdcp2_store_pairing_info(connector, &msgs.pairing_info); in hdcp2_authentication_key_exchange()
1497 static int hdcp2_locality_check(struct intel_connector *connector) in hdcp2_locality_check() argument
1499 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_locality_check()
1508 ret = hdcp2_prepare_lc_init(connector, &msgs.lc_init); in hdcp2_locality_check()
1512 ret = shim->write_2_2_msg(connector, &msgs.lc_init, in hdcp2_locality_check()
1517 ret = shim->read_2_2_msg(connector, in hdcp2_locality_check()
1524 ret = hdcp2_verify_lprime(connector, &msgs.send_lprime); in hdcp2_locality_check()
1532 static int hdcp2_session_key_exchange(struct intel_connector *connector) in hdcp2_session_key_exchange() argument
1534 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_session_key_exchange()
1538 ret = hdcp2_prepare_skey(connector, &send_eks); in hdcp2_session_key_exchange()
1542 ret = hdcp->shim->write_2_2_msg(connector, &send_eks, in hdcp2_session_key_exchange()
1551 int _hdcp2_propagate_stream_management_info(struct intel_connector *connector) in _hdcp2_propagate_stream_management_info() argument
1553 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _hdcp2_propagate_stream_management_info()
1555 struct intel_hdcp *hdcp = &connector->hdcp; in _hdcp2_propagate_stream_management_info()
1563 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) in _hdcp2_propagate_stream_management_info()
1580 ret = shim->write_2_2_msg(connector, &msgs.stream_manage, in _hdcp2_propagate_stream_management_info()
1585 ret = shim->read_2_2_msg(connector, HDCP_2_2_REP_STREAM_READY, in _hdcp2_propagate_stream_management_info()
1592 ret = hdcp2_verify_mprime(connector, &msgs.stream_ready); in _hdcp2_propagate_stream_management_info()
1601 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector) in hdcp2_authenticate_repeater_topology() argument
1603 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_repeater_topology()
1604 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_repeater_topology()
1605 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_repeater_topology()
1615 ret = shim->read_2_2_msg(connector, HDCP_2_2_REP_SEND_RECVID_LIST, in hdcp2_authenticate_repeater_topology()
1661 ret = hdcp2_verify_rep_topology_prepare_ack(connector, in hdcp2_authenticate_repeater_topology()
1668 ret = shim->write_2_2_msg(connector, &msgs.rep_ack, in hdcp2_authenticate_repeater_topology()
1676 static int hdcp2_authenticate_sink(struct intel_connector *connector) in hdcp2_authenticate_sink() argument
1678 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_sink()
1679 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_sink()
1683 ret = hdcp2_authentication_key_exchange(connector); in hdcp2_authenticate_sink()
1689 ret = hdcp2_locality_check(connector); in hdcp2_authenticate_sink()
1696 ret = hdcp2_session_key_exchange(connector); in hdcp2_authenticate_sink()
1703 ret = shim->config_stream_type(connector, in hdcp2_authenticate_sink()
1711 ret = hdcp2_authenticate_repeater_topology(connector); in hdcp2_authenticate_sink()
1722 static int hdcp2_enable_stream_encryption(struct intel_connector *connector) in hdcp2_enable_stream_encryption() argument
1724 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_enable_stream_encryption()
1725 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_enable_stream_encryption()
1727 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_stream_encryption()
1735 connector->base.name, connector->base.base.id); in hdcp2_enable_stream_encryption()
1741 ret = hdcp->shim->stream_2_2_encryption(connector, true); in hdcp2_enable_stream_encryption()
1744 connector->base.name, connector->base.base.id); in hdcp2_enable_stream_encryption()
1754 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_enable_stream_encryption()
1763 static int hdcp2_enable_encryption(struct intel_connector *connector) in hdcp2_enable_encryption() argument
1765 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_enable_encryption()
1766 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_enable_encryption()
1767 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_encryption()
1802 static int hdcp2_disable_encryption(struct intel_connector *connector) in hdcp2_disable_encryption() argument
1804 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_disable_encryption()
1805 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_disable_encryption()
1806 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_disable_encryption()
1840 hdcp2_propagate_stream_management_info(struct intel_connector *connector) in hdcp2_propagate_stream_management_info() argument
1842 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_propagate_stream_management_info()
1845 if (!connector->hdcp.is_repeater) in hdcp2_propagate_stream_management_info()
1849 ret = _hdcp2_propagate_stream_management_info(connector); in hdcp2_propagate_stream_management_info()
1854 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) { in hdcp2_propagate_stream_management_info()
1868 static int hdcp2_authenticate_and_encrypt(struct intel_connector *connector) in hdcp2_authenticate_and_encrypt() argument
1870 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_and_encrypt()
1871 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_and_encrypt()
1875 ret = hdcp2_authenticate_sink(connector); in hdcp2_authenticate_and_encrypt()
1877 intel_hdcp_prepare_streams(connector); in hdcp2_authenticate_and_encrypt()
1879 ret = hdcp2_propagate_stream_management_info(connector); in hdcp2_authenticate_and_encrypt()
1887 ret = hdcp2_authenticate_port(connector); in hdcp2_authenticate_and_encrypt()
1897 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
1907 ret = hdcp2_enable_encryption(connector); in hdcp2_authenticate_and_encrypt()
1911 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
1917 ret = hdcp2_enable_stream_encryption(connector); in hdcp2_authenticate_and_encrypt()
1922 static int _intel_hdcp2_enable(struct intel_connector *connector) in _intel_hdcp2_enable() argument
1924 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp2_enable()
1925 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_enable()
1929 connector->base.name, connector->base.base.id, in _intel_hdcp2_enable()
1932 ret = hdcp2_authenticate_and_encrypt(connector); in _intel_hdcp2_enable()
1940 connector->base.name, connector->base.base.id, in _intel_hdcp2_enable()
1948 _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery) in _intel_hdcp2_disable() argument
1950 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp2_disable()
1951 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp2_disable()
1953 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_disable()
1957 connector->base.name, connector->base.base.id); in _intel_hdcp2_disable()
1960 ret = hdcp->shim->stream_2_2_encryption(connector, false); in _intel_hdcp2_disable()
1963 connector->base.name, connector->base.base.id); in _intel_hdcp2_disable()
1973 ret = hdcp2_disable_encryption(connector); in _intel_hdcp2_disable()
1975 if (hdcp2_deauthenticate_port(connector) < 0) in _intel_hdcp2_disable()
1978 connector->hdcp.hdcp2_encrypted = false; in _intel_hdcp2_disable()
1986 static int intel_hdcp2_check_link(struct intel_connector *connector) in intel_hdcp2_check_link() argument
1988 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp2_check_link()
1989 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_check_link()
1990 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_check_link()
2012 _intel_hdcp2_disable(connector, true); in intel_hdcp2_check_link()
2013 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2019 ret = hdcp->shim->check_2_2_link(dig_port, connector); in intel_hdcp2_check_link()
2022 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2035 ret = hdcp2_authenticate_repeater_topology(connector); in intel_hdcp2_check_link()
2037 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2044 connector->base.name, connector->base.base.id, in intel_hdcp2_check_link()
2049 connector->base.name, connector->base.base.id); in intel_hdcp2_check_link()
2052 ret = _intel_hdcp2_disable(connector, true); in intel_hdcp2_check_link()
2056 connector->base.name, connector->base.base.id, ret); in intel_hdcp2_check_link()
2057 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2062 ret = _intel_hdcp2_enable(connector); in intel_hdcp2_check_link()
2066 connector->base.name, connector->base.base.id, in intel_hdcp2_check_link()
2068 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2085 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_check_work() local
2086 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_check_work()
2088 if (drm_connector_is_unregistered(&connector->base)) in intel_hdcp_check_work()
2091 if (!intel_hdcp2_check_link(connector)) in intel_hdcp_check_work()
2094 else if (!intel_hdcp_check_link(connector)) in intel_hdcp_check_work()
2151 static int initialize_hdcp_port_data(struct intel_connector *connector, in initialize_hdcp_port_data() argument
2155 struct drm_i915_private *i915 = to_i915(connector->base.dev); in initialize_hdcp_port_data()
2232 static void intel_hdcp2_init(struct intel_connector *connector, in intel_hdcp2_init() argument
2236 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_init()
2237 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_init()
2240 ret = initialize_hdcp_port_data(connector, dig_port, shim); in intel_hdcp2_init()
2249 int intel_hdcp_init(struct intel_connector *connector, in intel_hdcp_init() argument
2253 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_init()
2254 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_init()
2261 intel_hdcp2_init(connector, dig_port, shim); in intel_hdcp_init()
2264 drm_connector_attach_content_protection_property(&connector->base, in intel_hdcp_init()
2287 struct intel_connector *connector; in intel_hdcp_set_streams() local
2300 for_each_intel_connector_iter(connector, &conn_iter) { in intel_hdcp_set_streams()
2301 if (connector->base.status == connector_status_disconnected) in intel_hdcp_set_streams()
2304 if (!intel_encoder_is_mst(intel_attached_encoder(connector))) in intel_hdcp_set_streams()
2307 conn_dig_port = intel_attached_dig_port(connector); in intel_hdcp_set_streams()
2312 intel_conn_to_vcpi(&state->base, connector); in intel_hdcp_set_streams()
2333 struct intel_connector *connector = in _intel_hdcp_enable() local
2334 to_intel_connector(conn_state->connector); in _intel_hdcp_enable()
2335 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp_enable()
2336 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_enable()
2343 if (!connector->encoder) { in _intel_hdcp_enable()
2345 connector->base.name, connector->base.base.id); in _intel_hdcp_enable()
2371 if (intel_hdcp2_capable(connector)) { in _intel_hdcp_enable()
2374 ret = _intel_hdcp2_enable(connector); in _intel_hdcp_enable()
2389 if (ret && intel_hdcp_capable(connector) && in _intel_hdcp_enable()
2391 ret = intel_hdcp1_enable(connector); in _intel_hdcp_enable()
2397 intel_hdcp_update_value(connector, in _intel_hdcp_enable()
2412 struct intel_connector *connector = in intel_hdcp_enable() local
2413 to_intel_connector(conn_state->connector); in intel_hdcp_enable()
2414 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_enable()
2428 int intel_hdcp_disable(struct intel_connector *connector) in intel_hdcp_disable() argument
2430 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_disable()
2431 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_disable()
2443 intel_hdcp_update_value(connector, in intel_hdcp_disable()
2446 ret = _intel_hdcp2_disable(connector, false); in intel_hdcp_disable()
2448 ret = _intel_hdcp_disable(connector); in intel_hdcp_disable()
2462 struct intel_connector *connector = in intel_hdcp_update_pipe() local
2463 to_intel_connector(conn_state->connector); in intel_hdcp_update_pipe()
2464 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_pipe()
2466 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_update_pipe()
2468 if (!connector->hdcp.shim) in intel_hdcp_update_pipe()
2483 intel_hdcp_disable(connector); in intel_hdcp_update_pipe()
2492 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2509 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2535 void intel_hdcp_cleanup(struct intel_connector *connector) in intel_hdcp_cleanup() argument
2537 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_cleanup()
2543 * If the connector is registered, it's possible userspace could kick in intel_hdcp_cleanup()
2546 drm_WARN_ON(connector->base.dev, in intel_hdcp_cleanup()
2547 connector->base.registration_state == DRM_CONNECTOR_REGISTERED); in intel_hdcp_cleanup()
2550 * Now that the connector is not registered, check_work won't be run, in intel_hdcp_cleanup()
2558 * function. Instead, we rely on the connector references grabbed before in intel_hdcp_cleanup()
2559 * scheduling prop_work to ensure the connector is alive when prop_work in intel_hdcp_cleanup()
2564 drm_WARN_ON(connector->base.dev, work_pending(&hdcp->prop_work)); in intel_hdcp_cleanup()
2571 void intel_hdcp_atomic_check(struct drm_connector *connector, in intel_hdcp_atomic_check() argument
2581 * If the connector is being disabled with CP enabled, mark it in intel_hdcp_atomic_check()
2582 * desired so it's re-enabled when the connector is brought back in intel_hdcp_atomic_check()
2619 void intel_hdcp_handle_cp_irq(struct intel_connector *connector) in intel_hdcp_handle_cp_irq() argument
2621 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_handle_cp_irq()
2622 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_handle_cp_irq()
2627 atomic_inc(&connector->hdcp.cp_irq_count); in intel_hdcp_handle_cp_irq()
2628 wake_up_all(&connector->hdcp.cp_irq_queue); in intel_hdcp_handle_cp_irq()