Lines Matching full:connector
30 static int intel_conn_to_vcpi(struct intel_connector *connector) in intel_conn_to_vcpi() argument
33 return connector->port ? connector->port->vcpi.vcpi : 0; in intel_conn_to_vcpi()
37 intel_streams_type1_capable(struct intel_connector *connector) in intel_streams_type1_capable() argument
39 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_streams_type1_capable()
46 shim->streams_type1_capable(connector, &capable); in intel_streams_type1_capable()
66 struct intel_connector *connector; in intel_hdcp_required_content_stream() local
78 for_each_intel_connector_iter(connector, &conn_iter) { in intel_hdcp_required_content_stream()
79 if (connector->base.status == connector_status_disconnected) in intel_hdcp_required_content_stream()
82 if (!intel_encoder_is_mst(intel_attached_encoder(connector))) in intel_hdcp_required_content_stream()
85 conn_dig_port = intel_attached_dig_port(connector); in intel_hdcp_required_content_stream()
89 if (!enforce_type0 && !intel_streams_type1_capable(connector)) in intel_hdcp_required_content_stream()
92 data->streams[data->k].stream_id = intel_conn_to_vcpi(connector); in intel_hdcp_required_content_stream()
152 bool intel_hdcp_capable(struct intel_connector *connector) in intel_hdcp_capable() argument
154 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_capable()
155 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_capable()
173 bool intel_hdcp2_capable(struct intel_connector *connector) in intel_hdcp2_capable() argument
175 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp2_capable()
176 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp2_capable()
177 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_capable()
377 int intel_hdcp_validate_v_prime(struct intel_connector *connector, in intel_hdcp_validate_v_prime() argument
381 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_validate_v_prime()
382 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_validate_v_prime()
383 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_validate_v_prime()
621 int intel_hdcp_auth_downstream(struct intel_connector *connector) in intel_hdcp_auth_downstream() argument
623 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth_downstream()
624 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_auth_downstream()
625 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_auth_downstream()
682 ret = intel_hdcp_validate_v_prime(connector, shim, in intel_hdcp_auth_downstream()
704 static int intel_hdcp_auth(struct intel_connector *connector) in intel_hdcp_auth() argument
706 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth()
707 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_auth()
708 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_auth()
710 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_auth()
859 ret = shim->stream_encryption(connector, true); in intel_hdcp_auth()
862 connector->base.name, connector->base.base.id); in intel_hdcp_auth()
870 return intel_hdcp_auth_downstream(connector); in intel_hdcp_auth()
876 static int _intel_hdcp_disable(struct intel_connector *connector) in _intel_hdcp_disable() argument
878 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp_disable()
879 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in _intel_hdcp_disable()
880 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_disable()
887 connector->base.name, connector->base.base.id); in _intel_hdcp_disable()
890 ret = hdcp->shim->stream_encryption(connector, false); in _intel_hdcp_disable()
893 connector->base.name, connector->base.base.id); in _intel_hdcp_disable()
932 static int _intel_hdcp_enable(struct intel_connector *connector) in _intel_hdcp_enable() argument
934 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in _intel_hdcp_enable()
935 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_enable()
939 connector->base.name, connector->base.base.id); in _intel_hdcp_enable()
960 ret = intel_hdcp_auth(connector); in _intel_hdcp_enable()
969 _intel_hdcp_disable(connector); in _intel_hdcp_enable()
982 static void intel_hdcp_update_value(struct intel_connector *connector, in intel_hdcp_update_value() argument
985 struct drm_device *dev = connector->base.dev; in intel_hdcp_update_value()
986 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_update_value()
987 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_value()
989 drm_WARN_ON(connector->base.dev, !mutex_is_locked(&hdcp->mutex)); in intel_hdcp_update_value()
1005 drm_connector_get(&connector->base); in intel_hdcp_update_value()
1011 static int intel_hdcp_check_link(struct intel_connector *connector) in intel_hdcp_check_link() argument
1013 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_check_link()
1014 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_check_link()
1015 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_check_link()
1036 connector->base.name, connector->base.base.id, in intel_hdcp_check_link()
1039 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1045 if (hdcp->shim->check_link(dig_port, connector)) { in intel_hdcp_check_link()
1047 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1055 connector->base.name, connector->base.base.id); in intel_hdcp_check_link()
1057 ret = _intel_hdcp_disable(connector); in intel_hdcp_check_link()
1060 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1066 ret = _intel_hdcp_enable(connector); in intel_hdcp_check_link()
1069 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1085 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_prop_work() local
1086 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_prop_work()
1097 drm_hdcp_update_content_protection(&connector->base, in intel_hdcp_prop_work()
1103 drm_connector_put(&connector->base); in intel_hdcp_prop_work()
1113 hdcp2_prepare_ake_init(struct intel_connector *connector, in hdcp2_prepare_ake_init() argument
1116 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_ake_init()
1118 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_prepare_ake_init()
1140 hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector, in hdcp2_verify_rx_cert_prepare_km() argument
1146 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rx_cert_prepare_km()
1148 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_rx_cert_prepare_km()
1171 static int hdcp2_verify_hprime(struct intel_connector *connector, in hdcp2_verify_hprime() argument
1174 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_hprime()
1176 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_hprime()
1197 hdcp2_store_pairing_info(struct intel_connector *connector, in hdcp2_store_pairing_info() argument
1200 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_store_pairing_info()
1202 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_store_pairing_info()
1224 hdcp2_prepare_lc_init(struct intel_connector *connector, in hdcp2_prepare_lc_init() argument
1227 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_lc_init()
1229 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_prepare_lc_init()
1251 hdcp2_verify_lprime(struct intel_connector *connector, in hdcp2_verify_lprime() argument
1254 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_lprime()
1256 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_lprime()
1277 static int hdcp2_prepare_skey(struct intel_connector *connector, in hdcp2_prepare_skey() argument
1280 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_skey()
1282 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_prepare_skey()
1304 hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector, in hdcp2_verify_rep_topology_prepare_ack() argument
1309 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rep_topology_prepare_ack()
1311 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_rep_topology_prepare_ack()
1335 hdcp2_verify_mprime(struct intel_connector *connector, in hdcp2_verify_mprime() argument
1338 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_mprime()
1340 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_mprime()
1360 static int hdcp2_authenticate_port(struct intel_connector *connector) in hdcp2_authenticate_port() argument
1362 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_port()
1364 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_authenticate_port()
1385 static int hdcp2_close_mei_session(struct intel_connector *connector) in hdcp2_close_mei_session() argument
1387 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_close_mei_session()
1388 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_close_mei_session()
1407 static int hdcp2_deauthenticate_port(struct intel_connector *connector) in hdcp2_deauthenticate_port() argument
1409 return hdcp2_close_mei_session(connector); in hdcp2_deauthenticate_port()
1413 static int hdcp2_authentication_key_exchange(struct intel_connector *connector) in hdcp2_authentication_key_exchange() argument
1415 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authentication_key_exchange()
1416 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_authentication_key_exchange()
1417 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authentication_key_exchange()
1433 ret = hdcp2_prepare_ake_init(connector, &msgs.ake_init); in hdcp2_authentication_key_exchange()
1465 ret = hdcp2_verify_rx_cert_prepare_km(connector, &msgs.send_cert, in hdcp2_authentication_key_exchange()
1480 ret = hdcp2_verify_hprime(connector, &msgs.send_hprime); in hdcp2_authentication_key_exchange()
1493 ret = hdcp2_store_pairing_info(connector, &msgs.pairing_info); in hdcp2_authentication_key_exchange()
1502 static int hdcp2_locality_check(struct intel_connector *connector) in hdcp2_locality_check() argument
1504 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_locality_check()
1505 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_locality_check()
1514 ret = hdcp2_prepare_lc_init(connector, &msgs.lc_init); in hdcp2_locality_check()
1530 ret = hdcp2_verify_lprime(connector, &msgs.send_lprime); in hdcp2_locality_check()
1538 static int hdcp2_session_key_exchange(struct intel_connector *connector) in hdcp2_session_key_exchange() argument
1540 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_session_key_exchange()
1541 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_session_key_exchange()
1545 ret = hdcp2_prepare_skey(connector, &send_eks); in hdcp2_session_key_exchange()
1558 int _hdcp2_propagate_stream_management_info(struct intel_connector *connector) in _hdcp2_propagate_stream_management_info() argument
1560 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _hdcp2_propagate_stream_management_info()
1562 struct intel_hdcp *hdcp = &connector->hdcp; in _hdcp2_propagate_stream_management_info()
1570 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) in _hdcp2_propagate_stream_management_info()
1599 ret = hdcp2_verify_mprime(connector, &msgs.stream_ready); in _hdcp2_propagate_stream_management_info()
1608 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector) in hdcp2_authenticate_repeater_topology() argument
1610 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_repeater_topology()
1611 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_authenticate_repeater_topology()
1612 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_repeater_topology()
1660 ret = hdcp2_verify_rep_topology_prepare_ack(connector, in hdcp2_authenticate_repeater_topology()
1675 static int hdcp2_authenticate_sink(struct intel_connector *connector) in hdcp2_authenticate_sink() argument
1677 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_sink()
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()
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 *dev_priv = 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 *dev_priv = to_i915(connector->base.dev); in hdcp2_enable_encryption()
1767 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_encryption()
1804 static int hdcp2_disable_encryption(struct intel_connector *connector) in hdcp2_disable_encryption() argument
1806 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_disable_encryption()
1807 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_disable_encryption()
1808 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_disable_encryption()
1842 hdcp2_propagate_stream_management_info(struct intel_connector *connector) in hdcp2_propagate_stream_management_info() argument
1844 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_propagate_stream_management_info()
1847 if (!connector->hdcp.is_repeater) in hdcp2_propagate_stream_management_info()
1851 ret = _hdcp2_propagate_stream_management_info(connector); in hdcp2_propagate_stream_management_info()
1856 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) { in hdcp2_propagate_stream_management_info()
1870 static int hdcp2_authenticate_and_encrypt(struct intel_connector *connector) in hdcp2_authenticate_and_encrypt() argument
1872 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_and_encrypt()
1873 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_and_encrypt()
1877 ret = hdcp2_authenticate_sink(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 intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp2_enable()
1925 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp2_enable()
1927 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_enable()
1931 connector->base.name, connector->base.base.id, in _intel_hdcp2_enable()
1935 if (!intel_encoder_is_mst(intel_attached_encoder(connector))) { in _intel_hdcp2_enable()
1944 ret = hdcp2_authenticate_and_encrypt(connector); in _intel_hdcp2_enable()
1952 connector->base.name, connector->base.base.id, in _intel_hdcp2_enable()
1960 _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery) in _intel_hdcp2_disable() argument
1962 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp2_disable()
1963 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp2_disable()
1965 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_disable()
1969 connector->base.name, connector->base.base.id); in _intel_hdcp2_disable()
1972 ret = hdcp->shim->stream_2_2_encryption(connector, false); in _intel_hdcp2_disable()
1975 connector->base.name, connector->base.base.id); in _intel_hdcp2_disable()
1985 ret = hdcp2_disable_encryption(connector); in _intel_hdcp2_disable()
1987 if (hdcp2_deauthenticate_port(connector) < 0) in _intel_hdcp2_disable()
1990 connector->hdcp.hdcp2_encrypted = false; in _intel_hdcp2_disable()
1998 static int intel_hdcp2_check_link(struct intel_connector *connector) in intel_hdcp2_check_link() argument
2000 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp2_check_link()
2001 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp2_check_link()
2002 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_check_link()
2024 _intel_hdcp2_disable(connector, true); in intel_hdcp2_check_link()
2025 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2031 ret = hdcp->shim->check_2_2_link(dig_port, connector); in intel_hdcp2_check_link()
2034 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2047 ret = hdcp2_authenticate_repeater_topology(connector); in intel_hdcp2_check_link()
2049 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2056 connector->base.name, connector->base.base.id, in intel_hdcp2_check_link()
2061 connector->base.name, connector->base.base.id); in intel_hdcp2_check_link()
2064 ret = _intel_hdcp2_disable(connector, true); in intel_hdcp2_check_link()
2068 connector->base.name, connector->base.base.id, ret); in intel_hdcp2_check_link()
2069 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2074 ret = _intel_hdcp2_enable(connector); in intel_hdcp2_check_link()
2078 connector->base.name, connector->base.base.id, in intel_hdcp2_check_link()
2080 intel_hdcp_update_value(connector, in intel_hdcp2_check_link()
2097 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_check_work() local
2099 if (drm_connector_is_unregistered(&connector->base)) in intel_hdcp_check_work()
2102 if (!intel_hdcp2_check_link(connector)) in intel_hdcp_check_work()
2105 else if (!intel_hdcp_check_link(connector)) in intel_hdcp_check_work()
2162 static int initialize_hdcp_port_data(struct intel_connector *connector, in initialize_hdcp_port_data() argument
2166 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in initialize_hdcp_port_data()
2168 struct intel_hdcp *hdcp = &connector->hdcp; in initialize_hdcp_port_data()
2240 static void intel_hdcp2_init(struct intel_connector *connector, in intel_hdcp2_init() argument
2244 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_init()
2245 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_init()
2248 ret = initialize_hdcp_port_data(connector, dig_port, shim); in intel_hdcp2_init()
2257 int intel_hdcp_init(struct intel_connector *connector, in intel_hdcp_init() argument
2261 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_init()
2262 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_init()
2269 intel_hdcp2_init(connector, dig_port, shim); in intel_hdcp_init()
2272 drm_connector_attach_content_protection_property(&connector->base, in intel_hdcp_init()
2289 int intel_hdcp_enable(struct intel_connector *connector, in intel_hdcp_enable() argument
2292 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_enable()
2293 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_enable()
2294 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_enable()
2301 if (!connector->encoder) { in intel_hdcp_enable()
2303 connector->base.name, connector->base.base.id); in intel_hdcp_enable()
2328 if (intel_hdcp2_capable(connector)) { in intel_hdcp_enable()
2329 ret = _intel_hdcp2_enable(connector); in intel_hdcp_enable()
2338 if (ret && intel_hdcp_capable(connector) && in intel_hdcp_enable()
2340 ret = _intel_hdcp_enable(connector); in intel_hdcp_enable()
2345 intel_hdcp_update_value(connector, in intel_hdcp_enable()
2355 int intel_hdcp_disable(struct intel_connector *connector) in intel_hdcp_disable() argument
2357 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_disable()
2358 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_disable()
2370 intel_hdcp_update_value(connector, in intel_hdcp_disable()
2373 ret = _intel_hdcp2_disable(connector, false); in intel_hdcp_disable()
2375 ret = _intel_hdcp_disable(connector); in intel_hdcp_disable()
2389 struct intel_connector *connector = in intel_hdcp_update_pipe() local
2390 to_intel_connector(conn_state->connector); in intel_hdcp_update_pipe()
2391 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_pipe()
2394 if (!connector->hdcp.shim) in intel_hdcp_update_pipe()
2409 intel_hdcp_disable(connector); in intel_hdcp_update_pipe()
2418 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2435 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2441 intel_hdcp_enable(connector, in intel_hdcp_update_pipe()
2460 void intel_hdcp_cleanup(struct intel_connector *connector) in intel_hdcp_cleanup() argument
2462 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_cleanup()
2468 * If the connector is registered, it's possible userspace could kick in intel_hdcp_cleanup()
2471 drm_WARN_ON(connector->base.dev, in intel_hdcp_cleanup()
2472 connector->base.registration_state == DRM_CONNECTOR_REGISTERED); in intel_hdcp_cleanup()
2475 * Now that the connector is not registered, check_work won't be run, in intel_hdcp_cleanup()
2483 * function. Instead, we rely on the connector references grabbed before in intel_hdcp_cleanup()
2484 * scheduling prop_work to ensure the connector is alive when prop_work in intel_hdcp_cleanup()
2489 drm_WARN_ON(connector->base.dev, work_pending(&hdcp->prop_work)); in intel_hdcp_cleanup()
2496 void intel_hdcp_atomic_check(struct drm_connector *connector, in intel_hdcp_atomic_check() argument
2506 * If the connector is being disabled with CP enabled, mark it in intel_hdcp_atomic_check()
2507 * desired so it's re-enabled when the connector is brought back in intel_hdcp_atomic_check()
2544 void intel_hdcp_handle_cp_irq(struct intel_connector *connector) in intel_hdcp_handle_cp_irq() argument
2546 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_handle_cp_irq()
2551 atomic_inc(&connector->hdcp.cp_irq_count); in intel_hdcp_handle_cp_irq()
2552 wake_up_all(&connector->hdcp.cp_irq_queue); in intel_hdcp_handle_cp_irq()