Lines Matching full:connector
32 static int intel_conn_to_vcpi(struct intel_connector *connector) in intel_conn_to_vcpi() argument
40 if (!connector->port) in intel_conn_to_vcpi()
42 mgr = connector->port->mgr; in intel_conn_to_vcpi()
46 payload = drm_atomic_get_mst_payload_state(mst_state, connector->port); in intel_conn_to_vcpi()
75 struct intel_connector *connector; in intel_hdcp_required_content_stream() local
87 for_each_intel_connector_iter(connector, &conn_iter) { in intel_hdcp_required_content_stream()
88 if (connector->base.status == connector_status_disconnected) in intel_hdcp_required_content_stream()
91 if (!intel_encoder_is_mst(intel_attached_encoder(connector))) in intel_hdcp_required_content_stream()
94 conn_dig_port = intel_attached_dig_port(connector); in intel_hdcp_required_content_stream()
101 data->streams[data->k].stream_id = intel_conn_to_vcpi(connector); in intel_hdcp_required_content_stream()
124 static int intel_hdcp_prepare_streams(struct intel_connector *connector) in intel_hdcp_prepare_streams() argument
126 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_prepare_streams()
128 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_prepare_streams()
131 if (!intel_encoder_is_mst(intel_attached_encoder(connector))) { in intel_hdcp_prepare_streams()
180 bool intel_hdcp_capable(struct intel_connector *connector) in intel_hdcp_capable() argument
182 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_capable()
183 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_capable()
201 bool intel_hdcp2_capable(struct intel_connector *connector) in intel_hdcp2_capable() argument
203 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp2_capable()
204 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp2_capable()
205 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_capable()
404 int intel_hdcp_validate_v_prime(struct intel_connector *connector, in intel_hdcp_validate_v_prime() argument
408 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_validate_v_prime()
409 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_validate_v_prime()
410 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_validate_v_prime()
648 int intel_hdcp_auth_downstream(struct intel_connector *connector) in intel_hdcp_auth_downstream() argument
650 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth_downstream()
651 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_auth_downstream()
652 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_auth_downstream()
709 ret = intel_hdcp_validate_v_prime(connector, shim, in intel_hdcp_auth_downstream()
731 static int intel_hdcp_auth(struct intel_connector *connector) in intel_hdcp_auth() argument
733 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth()
734 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_auth()
735 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_auth()
737 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_auth()
886 ret = shim->stream_encryption(connector, true); in intel_hdcp_auth()
889 connector->base.name, connector->base.base.id); in intel_hdcp_auth()
897 return intel_hdcp_auth_downstream(connector); in intel_hdcp_auth()
903 static int _intel_hdcp_disable(struct intel_connector *connector) in _intel_hdcp_disable() argument
905 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp_disable()
906 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in _intel_hdcp_disable()
907 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_disable()
914 connector->base.name, connector->base.base.id); in _intel_hdcp_disable()
917 ret = hdcp->shim->stream_encryption(connector, false); in _intel_hdcp_disable()
920 connector->base.name, connector->base.base.id); in _intel_hdcp_disable()
959 static int _intel_hdcp_enable(struct intel_connector *connector) in _intel_hdcp_enable() argument
961 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in _intel_hdcp_enable()
962 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_enable()
966 connector->base.name, connector->base.base.id); in _intel_hdcp_enable()
987 ret = intel_hdcp_auth(connector); in _intel_hdcp_enable()
996 _intel_hdcp_disable(connector); in _intel_hdcp_enable()
1009 static void intel_hdcp_update_value(struct intel_connector *connector, in intel_hdcp_update_value() argument
1012 struct drm_device *dev = connector->base.dev; in intel_hdcp_update_value()
1013 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_update_value()
1014 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_value()
1016 drm_WARN_ON(connector->base.dev, !mutex_is_locked(&hdcp->mutex)); in intel_hdcp_update_value()
1032 drm_connector_get(&connector->base); in intel_hdcp_update_value()
1038 static int intel_hdcp_check_link(struct intel_connector *connector) in intel_hdcp_check_link() argument
1040 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_check_link()
1041 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_check_link()
1042 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_check_link()
1063 connector->base.name, connector->base.base.id, in intel_hdcp_check_link()
1066 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1072 if (hdcp->shim->check_link(dig_port, connector)) { in intel_hdcp_check_link()
1074 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1082 connector->base.name, connector->base.base.id); in intel_hdcp_check_link()
1084 ret = _intel_hdcp_disable(connector); in intel_hdcp_check_link()
1087 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1093 ret = _intel_hdcp_enable(connector); in intel_hdcp_check_link()
1096 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1112 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_prop_work() local
1113 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_prop_work()
1124 drm_hdcp_update_content_protection(&connector->base, in intel_hdcp_prop_work()
1130 drm_connector_put(&connector->base); in intel_hdcp_prop_work()
1140 hdcp2_prepare_ake_init(struct intel_connector *connector, in hdcp2_prepare_ake_init() argument
1143 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_ake_init()
1145 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_prepare_ake_init()
1167 hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector, in hdcp2_verify_rx_cert_prepare_km() argument
1173 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rx_cert_prepare_km()
1175 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_rx_cert_prepare_km()
1198 static int hdcp2_verify_hprime(struct intel_connector *connector, in hdcp2_verify_hprime() argument
1201 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_hprime()
1203 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_hprime()
1224 hdcp2_store_pairing_info(struct intel_connector *connector, in hdcp2_store_pairing_info() argument
1227 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_store_pairing_info()
1229 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_store_pairing_info()
1251 hdcp2_prepare_lc_init(struct intel_connector *connector, in hdcp2_prepare_lc_init() argument
1254 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_lc_init()
1256 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_prepare_lc_init()
1278 hdcp2_verify_lprime(struct intel_connector *connector, in hdcp2_verify_lprime() argument
1281 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_lprime()
1283 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_lprime()
1304 static int hdcp2_prepare_skey(struct intel_connector *connector, in hdcp2_prepare_skey() argument
1307 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_skey()
1309 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_prepare_skey()
1331 hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector, in hdcp2_verify_rep_topology_prepare_ack() argument
1336 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rep_topology_prepare_ack()
1338 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_rep_topology_prepare_ack()
1362 hdcp2_verify_mprime(struct intel_connector *connector, in hdcp2_verify_mprime() argument
1365 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_mprime()
1367 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_mprime()
1387 static int hdcp2_authenticate_port(struct intel_connector *connector) in hdcp2_authenticate_port() argument
1389 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_port()
1391 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_authenticate_port()
1412 static int hdcp2_close_mei_session(struct intel_connector *connector) in hdcp2_close_mei_session() argument
1414 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_close_mei_session()
1415 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_close_mei_session()
1434 static int hdcp2_deauthenticate_port(struct intel_connector *connector) in hdcp2_deauthenticate_port() argument
1436 return hdcp2_close_mei_session(connector); in hdcp2_deauthenticate_port()
1440 static int hdcp2_authentication_key_exchange(struct intel_connector *connector) in hdcp2_authentication_key_exchange() argument
1442 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authentication_key_exchange()
1443 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_authentication_key_exchange()
1444 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authentication_key_exchange()
1460 ret = hdcp2_prepare_ake_init(connector, &msgs.ake_init); in hdcp2_authentication_key_exchange()
1492 ret = hdcp2_verify_rx_cert_prepare_km(connector, &msgs.send_cert, in hdcp2_authentication_key_exchange()
1507 ret = hdcp2_verify_hprime(connector, &msgs.send_hprime); in hdcp2_authentication_key_exchange()
1520 ret = hdcp2_store_pairing_info(connector, &msgs.pairing_info); in hdcp2_authentication_key_exchange()
1529 static int hdcp2_locality_check(struct intel_connector *connector) in hdcp2_locality_check() argument
1531 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_locality_check()
1532 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_locality_check()
1541 ret = hdcp2_prepare_lc_init(connector, &msgs.lc_init); in hdcp2_locality_check()
1557 ret = hdcp2_verify_lprime(connector, &msgs.send_lprime); in hdcp2_locality_check()
1565 static int hdcp2_session_key_exchange(struct intel_connector *connector) in hdcp2_session_key_exchange() argument
1567 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_session_key_exchange()
1568 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_session_key_exchange()
1572 ret = hdcp2_prepare_skey(connector, &send_eks); in hdcp2_session_key_exchange()
1585 int _hdcp2_propagate_stream_management_info(struct intel_connector *connector) in _hdcp2_propagate_stream_management_info() argument
1587 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _hdcp2_propagate_stream_management_info()
1589 struct intel_hdcp *hdcp = &connector->hdcp; in _hdcp2_propagate_stream_management_info()
1597 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) in _hdcp2_propagate_stream_management_info()
1626 ret = hdcp2_verify_mprime(connector, &msgs.stream_ready); in _hdcp2_propagate_stream_management_info()
1635 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector) in hdcp2_authenticate_repeater_topology() argument
1637 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_repeater_topology()
1638 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_authenticate_repeater_topology()
1639 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_repeater_topology()
1695 ret = hdcp2_verify_rep_topology_prepare_ack(connector, in hdcp2_authenticate_repeater_topology()
1710 static int hdcp2_authenticate_sink(struct intel_connector *connector) in hdcp2_authenticate_sink() argument
1712 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_sink()
1713 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_sink()
1714 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_sink()
1718 ret = hdcp2_authentication_key_exchange(connector); in hdcp2_authenticate_sink()
1724 ret = hdcp2_locality_check(connector); in hdcp2_authenticate_sink()
1731 ret = hdcp2_session_key_exchange(connector); in hdcp2_authenticate_sink()
1746 ret = hdcp2_authenticate_repeater_topology(connector); in hdcp2_authenticate_sink()
1757 static int hdcp2_enable_stream_encryption(struct intel_connector *connector) in hdcp2_enable_stream_encryption() argument
1759 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_enable_stream_encryption()
1760 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_enable_stream_encryption()
1762 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_stream_encryption()
1770 connector->base.name, connector->base.base.id); in hdcp2_enable_stream_encryption()
1776 ret = hdcp->shim->stream_2_2_encryption(connector, true); in hdcp2_enable_stream_encryption()
1779 connector->base.name, connector->base.base.id); in hdcp2_enable_stream_encryption()
1789 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_enable_stream_encryption()
1798 static int hdcp2_enable_encryption(struct intel_connector *connector) in hdcp2_enable_encryption() argument
1800 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_enable_encryption()
1801 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_enable_encryption()
1802 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_encryption()
1839 static int hdcp2_disable_encryption(struct intel_connector *connector) in hdcp2_disable_encryption() argument
1841 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_disable_encryption()
1842 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_disable_encryption()
1843 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_disable_encryption()
1877 hdcp2_propagate_stream_management_info(struct intel_connector *connector) in hdcp2_propagate_stream_management_info() argument
1879 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_propagate_stream_management_info()
1882 if (!connector->hdcp.is_repeater) in hdcp2_propagate_stream_management_info()
1886 ret = _hdcp2_propagate_stream_management_info(connector); in hdcp2_propagate_stream_management_info()
1891 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) { in hdcp2_propagate_stream_management_info()
1905 static int hdcp2_authenticate_and_encrypt(struct intel_connector *connector) in hdcp2_authenticate_and_encrypt() argument
1907 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_and_encrypt()
1908 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_and_encrypt()
1912 ret = hdcp2_authenticate_sink(connector); in hdcp2_authenticate_and_encrypt()
1914 ret = intel_hdcp_prepare_streams(connector); in hdcp2_authenticate_and_encrypt()
1922 ret = hdcp2_propagate_stream_management_info(connector); in hdcp2_authenticate_and_encrypt()
1930 ret = hdcp2_authenticate_port(connector); in hdcp2_authenticate_and_encrypt()
1940 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
1950 ret = hdcp2_enable_encryption(connector); in hdcp2_authenticate_and_encrypt()
1954 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
1960 ret = hdcp2_enable_stream_encryption(connector); in hdcp2_authenticate_and_encrypt()
1965 static int _intel_hdcp2_enable(struct intel_connector *connector) in _intel_hdcp2_enable() argument
1967 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp2_enable()
1968 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_enable()
1972 connector->base.name, connector->base.base.id, in _intel_hdcp2_enable()
1975 ret = hdcp2_authenticate_and_encrypt(connector); in _intel_hdcp2_enable()
1983 connector->base.name, connector->base.base.id, in _intel_hdcp2_enable()
1991 _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery) in _intel_hdcp2_disable() argument
1993 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp2_disable()
1994 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp2_disable()
1996 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_disable()
2000 connector->base.name, connector->base.base.id); in _intel_hdcp2_disable()
2003 ret = hdcp->shim->stream_2_2_encryption(connector, false); in _intel_hdcp2_disable()
2006 connector->base.name, connector->base.base.id); in _intel_hdcp2_disable()
2016 ret = hdcp2_disable_encryption(connector); in _intel_hdcp2_disable()
2018 if (hdcp2_deauthenticate_port(connector) < 0) in _intel_hdcp2_disable()
2021 connector->hdcp.hdcp2_encrypted = false; in _intel_hdcp2_disable()
2029 static int intel_hdcp2_check_link(struct intel_connector *connector) in intel_hdcp2_check_link() argument
2031 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp2_check_link()
2032 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp2_check_link()
2033 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_check_link()
2055 _intel_hdcp2_disable(connector, true); in intel_hdcp2_check_link()
2056 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2062 ret = hdcp->shim->check_2_2_link(dig_port, connector); in intel_hdcp2_check_link()
2065 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2078 ret = hdcp2_authenticate_repeater_topology(connector); in intel_hdcp2_check_link()
2080 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2087 connector->base.name, connector->base.base.id, in intel_hdcp2_check_link()
2092 connector->base.name, connector->base.base.id); in intel_hdcp2_check_link()
2095 ret = _intel_hdcp2_disable(connector, true); in intel_hdcp2_check_link()
2099 connector->base.name, connector->base.base.id, ret); in intel_hdcp2_check_link()
2100 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2105 ret = _intel_hdcp2_enable(connector); in intel_hdcp2_check_link()
2109 connector->base.name, connector->base.base.id, in intel_hdcp2_check_link()
2111 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2128 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_check_work() local
2130 if (drm_connector_is_unregistered(&connector->base)) in intel_hdcp_check_work()
2133 if (!intel_hdcp2_check_link(connector)) in intel_hdcp_check_work()
2136 else if (!intel_hdcp_check_link(connector)) in intel_hdcp_check_work()
2193 static int initialize_hdcp_port_data(struct intel_connector *connector, in initialize_hdcp_port_data() argument
2197 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in initialize_hdcp_port_data()
2199 struct intel_hdcp *hdcp = &connector->hdcp; in initialize_hdcp_port_data()
2271 static void intel_hdcp2_init(struct intel_connector *connector, in intel_hdcp2_init() argument
2275 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_init()
2276 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_init()
2279 ret = initialize_hdcp_port_data(connector, dig_port, shim); in intel_hdcp2_init()
2288 int intel_hdcp_init(struct intel_connector *connector, in intel_hdcp_init() argument
2292 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_init()
2293 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_init()
2300 intel_hdcp2_init(connector, dig_port, shim); in intel_hdcp_init()
2303 drm_connector_attach_content_protection_property(&connector->base, in intel_hdcp_init()
2320 int intel_hdcp_enable(struct intel_connector *connector, in intel_hdcp_enable() argument
2323 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_enable()
2324 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_enable()
2325 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_enable()
2332 if (!connector->encoder) { in intel_hdcp_enable()
2334 connector->base.name, connector->base.base.id); in intel_hdcp_enable()
2359 if (intel_hdcp2_capable(connector)) { in intel_hdcp_enable()
2360 ret = _intel_hdcp2_enable(connector); in intel_hdcp_enable()
2369 if (ret && intel_hdcp_capable(connector) && in intel_hdcp_enable()
2371 ret = _intel_hdcp_enable(connector); in intel_hdcp_enable()
2376 intel_hdcp_update_value(connector, in intel_hdcp_enable()
2386 int intel_hdcp_disable(struct intel_connector *connector) in intel_hdcp_disable() argument
2388 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_disable()
2389 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_disable()
2401 intel_hdcp_update_value(connector, in intel_hdcp_disable()
2404 ret = _intel_hdcp2_disable(connector, false); in intel_hdcp_disable()
2406 ret = _intel_hdcp_disable(connector); in intel_hdcp_disable()
2420 struct intel_connector *connector = in intel_hdcp_update_pipe() local
2421 to_intel_connector(conn_state->connector); in intel_hdcp_update_pipe()
2422 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_pipe()
2425 if (!connector->hdcp.shim) in intel_hdcp_update_pipe()
2440 intel_hdcp_disable(connector); in intel_hdcp_update_pipe()
2449 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2466 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2472 intel_hdcp_enable(connector, in intel_hdcp_update_pipe()
2491 void intel_hdcp_cleanup(struct intel_connector *connector) in intel_hdcp_cleanup() argument
2493 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_cleanup()
2499 * If the connector is registered, it's possible userspace could kick in intel_hdcp_cleanup()
2502 drm_WARN_ON(connector->base.dev, in intel_hdcp_cleanup()
2503 connector->base.registration_state == DRM_CONNECTOR_REGISTERED); in intel_hdcp_cleanup()
2506 * Now that the connector is not registered, check_work won't be run, in intel_hdcp_cleanup()
2514 * function. Instead, we rely on the connector references grabbed before in intel_hdcp_cleanup()
2515 * scheduling prop_work to ensure the connector is alive when prop_work in intel_hdcp_cleanup()
2520 drm_WARN_ON(connector->base.dev, work_pending(&hdcp->prop_work)); in intel_hdcp_cleanup()
2527 void intel_hdcp_atomic_check(struct drm_connector *connector, in intel_hdcp_atomic_check() argument
2537 * If the connector is being disabled with CP enabled, mark it in intel_hdcp_atomic_check()
2538 * desired so it's re-enabled when the connector is brought back in intel_hdcp_atomic_check()
2575 void intel_hdcp_handle_cp_irq(struct intel_connector *connector) in intel_hdcp_handle_cp_irq() argument
2577 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_handle_cp_irq()
2582 atomic_inc(&connector->hdcp.cp_irq_count); in intel_hdcp_handle_cp_irq()
2583 wake_up_all(&connector->hdcp.cp_irq_queue); in intel_hdcp_handle_cp_irq()