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 intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp2_capable()
167 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_capable()
168 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_capable()
379 int intel_hdcp_validate_v_prime(struct intel_connector *connector, in intel_hdcp_validate_v_prime() argument
383 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_validate_v_prime()
384 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_validate_v_prime()
385 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_validate_v_prime()
623 int intel_hdcp_auth_downstream(struct intel_connector *connector) in intel_hdcp_auth_downstream() argument
625 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth_downstream()
626 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_auth_downstream()
627 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_auth_downstream()
684 ret = intel_hdcp_validate_v_prime(connector, shim, in intel_hdcp_auth_downstream()
706 static int intel_hdcp_auth(struct intel_connector *connector) in intel_hdcp_auth() argument
708 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_auth()
709 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_auth()
710 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_auth()
712 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_auth()
861 ret = shim->stream_encryption(connector, true); in intel_hdcp_auth()
864 connector->base.name, connector->base.base.id); in intel_hdcp_auth()
872 return intel_hdcp_auth_downstream(connector); in intel_hdcp_auth()
878 static int _intel_hdcp_disable(struct intel_connector *connector) in _intel_hdcp_disable() argument
880 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _intel_hdcp_disable()
881 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp_disable()
882 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_disable()
889 connector->base.name, connector->base.base.id); in _intel_hdcp_disable()
892 ret = hdcp->shim->stream_encryption(connector, false); in _intel_hdcp_disable()
895 connector->base.name, connector->base.base.id); in _intel_hdcp_disable()
933 static int _intel_hdcp_enable(struct intel_connector *connector) in _intel_hdcp_enable() argument
935 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp_enable()
936 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_enable()
940 connector->base.name, connector->base.base.id); in _intel_hdcp_enable()
961 ret = intel_hdcp_auth(connector); in _intel_hdcp_enable()
970 _intel_hdcp_disable(connector); in _intel_hdcp_enable()
983 static void intel_hdcp_update_value(struct intel_connector *connector, in intel_hdcp_update_value() argument
986 struct drm_device *dev = connector->base.dev; in intel_hdcp_update_value()
987 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_update_value()
988 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_value()
989 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_update_value()
991 drm_WARN_ON(connector->base.dev, !mutex_is_locked(&hdcp->mutex)); in intel_hdcp_update_value()
1007 drm_connector_get(&connector->base); in intel_hdcp_update_value()
1009 drm_connector_put(&connector->base); in intel_hdcp_update_value()
1014 static int intel_hdcp_check_link(struct intel_connector *connector) in intel_hdcp_check_link() argument
1016 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_check_link()
1017 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_check_link()
1018 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_check_link()
1039 connector->base.name, connector->base.base.id, in intel_hdcp_check_link()
1042 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1048 if (hdcp->shim->check_link(dig_port, connector)) { in intel_hdcp_check_link()
1050 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1058 connector->base.name, connector->base.base.id); in intel_hdcp_check_link()
1060 ret = _intel_hdcp_disable(connector); in intel_hdcp_check_link()
1063 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1069 ret = _intel_hdcp_enable(connector); in intel_hdcp_check_link()
1072 intel_hdcp_update_value(connector, in intel_hdcp_check_link()
1088 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_prop_work() local
1089 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_prop_work()
1100 drm_hdcp_update_content_protection(&connector->base, in intel_hdcp_prop_work()
1106 drm_connector_put(&connector->base); in intel_hdcp_prop_work()
1116 hdcp2_prepare_ake_init(struct intel_connector *connector, in hdcp2_prepare_ake_init() argument
1119 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_ake_init()
1121 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_prepare_ake_init()
1143 hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector, in hdcp2_verify_rx_cert_prepare_km() argument
1149 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rx_cert_prepare_km()
1151 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_rx_cert_prepare_km()
1174 static int hdcp2_verify_hprime(struct intel_connector *connector, in hdcp2_verify_hprime() argument
1177 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_hprime()
1179 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_hprime()
1200 hdcp2_store_pairing_info(struct intel_connector *connector, in hdcp2_store_pairing_info() argument
1203 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_store_pairing_info()
1205 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_store_pairing_info()
1227 hdcp2_prepare_lc_init(struct intel_connector *connector, in hdcp2_prepare_lc_init() argument
1230 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_lc_init()
1232 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_prepare_lc_init()
1254 hdcp2_verify_lprime(struct intel_connector *connector, in hdcp2_verify_lprime() argument
1257 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_lprime()
1259 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_lprime()
1280 static int hdcp2_prepare_skey(struct intel_connector *connector, in hdcp2_prepare_skey() argument
1283 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_prepare_skey()
1285 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_prepare_skey()
1307 hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector, in hdcp2_verify_rep_topology_prepare_ack() argument
1312 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_rep_topology_prepare_ack()
1314 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_rep_topology_prepare_ack()
1339 hdcp2_verify_mprime(struct intel_connector *connector, in hdcp2_verify_mprime() argument
1342 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_verify_mprime()
1344 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_verify_mprime()
1364 static int hdcp2_authenticate_port(struct intel_connector *connector) in hdcp2_authenticate_port() argument
1366 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_port()
1368 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_port()
1389 static int hdcp2_close_session(struct intel_connector *connector) in hdcp2_close_session() argument
1391 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_close_session()
1392 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_close_session()
1411 static int hdcp2_deauthenticate_port(struct intel_connector *connector) in hdcp2_deauthenticate_port() argument
1413 return hdcp2_close_session(connector); in hdcp2_deauthenticate_port()
1417 static int hdcp2_authentication_key_exchange(struct intel_connector *connector) in hdcp2_authentication_key_exchange() argument
1419 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authentication_key_exchange()
1420 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authentication_key_exchange()
1421 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authentication_key_exchange()
1437 ret = hdcp2_prepare_ake_init(connector, &msgs.ake_init); in hdcp2_authentication_key_exchange()
1469 ret = hdcp2_verify_rx_cert_prepare_km(connector, &msgs.send_cert, in hdcp2_authentication_key_exchange()
1484 ret = hdcp2_verify_hprime(connector, &msgs.send_hprime); in hdcp2_authentication_key_exchange()
1497 ret = hdcp2_store_pairing_info(connector, &msgs.pairing_info); in hdcp2_authentication_key_exchange()
1506 static int hdcp2_locality_check(struct intel_connector *connector) in hdcp2_locality_check() argument
1508 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_locality_check()
1509 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_locality_check()
1518 ret = hdcp2_prepare_lc_init(connector, &msgs.lc_init); in hdcp2_locality_check()
1534 ret = hdcp2_verify_lprime(connector, &msgs.send_lprime); in hdcp2_locality_check()
1542 static int hdcp2_session_key_exchange(struct intel_connector *connector) in hdcp2_session_key_exchange() argument
1544 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_session_key_exchange()
1545 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_session_key_exchange()
1549 ret = hdcp2_prepare_skey(connector, &send_eks); in hdcp2_session_key_exchange()
1562 int _hdcp2_propagate_stream_management_info(struct intel_connector *connector) in _hdcp2_propagate_stream_management_info() argument
1564 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in _hdcp2_propagate_stream_management_info()
1566 struct intel_hdcp *hdcp = &connector->hdcp; in _hdcp2_propagate_stream_management_info()
1574 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) in _hdcp2_propagate_stream_management_info()
1603 ret = hdcp2_verify_mprime(connector, &msgs.stream_ready); in _hdcp2_propagate_stream_management_info()
1612 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector) in hdcp2_authenticate_repeater_topology() argument
1614 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_repeater_topology()
1615 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_repeater_topology()
1616 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_repeater_topology()
1672 ret = hdcp2_verify_rep_topology_prepare_ack(connector, in hdcp2_authenticate_repeater_topology()
1687 static int hdcp2_authenticate_sink(struct intel_connector *connector) in hdcp2_authenticate_sink() argument
1689 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_sink()
1690 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_sink()
1691 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_sink()
1695 ret = hdcp2_authentication_key_exchange(connector); in hdcp2_authenticate_sink()
1701 ret = hdcp2_locality_check(connector); in hdcp2_authenticate_sink()
1708 ret = hdcp2_session_key_exchange(connector); in hdcp2_authenticate_sink()
1723 ret = hdcp2_authenticate_repeater_topology(connector); in hdcp2_authenticate_sink()
1734 static int hdcp2_enable_stream_encryption(struct intel_connector *connector) in hdcp2_enable_stream_encryption() argument
1736 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_enable_stream_encryption()
1737 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_enable_stream_encryption()
1739 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_stream_encryption()
1747 connector->base.name, connector->base.base.id); in hdcp2_enable_stream_encryption()
1753 ret = hdcp->shim->stream_2_2_encryption(connector, true); in hdcp2_enable_stream_encryption()
1756 connector->base.name, connector->base.base.id); in hdcp2_enable_stream_encryption()
1766 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_enable_stream_encryption()
1775 static int hdcp2_enable_encryption(struct intel_connector *connector) in hdcp2_enable_encryption() argument
1777 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_enable_encryption()
1778 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_enable_encryption()
1779 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_encryption()
1814 static int hdcp2_disable_encryption(struct intel_connector *connector) in hdcp2_disable_encryption() argument
1816 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_disable_encryption()
1817 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_disable_encryption()
1818 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_disable_encryption()
1852 hdcp2_propagate_stream_management_info(struct intel_connector *connector) in hdcp2_propagate_stream_management_info() argument
1854 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_propagate_stream_management_info()
1857 if (!connector->hdcp.is_repeater) in hdcp2_propagate_stream_management_info()
1861 ret = _hdcp2_propagate_stream_management_info(connector); in hdcp2_propagate_stream_management_info()
1866 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) { in hdcp2_propagate_stream_management_info()
1880 static int hdcp2_authenticate_and_encrypt(struct intel_connector *connector) in hdcp2_authenticate_and_encrypt() argument
1882 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in hdcp2_authenticate_and_encrypt()
1883 struct drm_i915_private *i915 = to_i915(connector->base.dev); in hdcp2_authenticate_and_encrypt()
1887 ret = hdcp2_authenticate_sink(connector); in hdcp2_authenticate_and_encrypt()
1889 intel_hdcp_prepare_streams(connector); in hdcp2_authenticate_and_encrypt()
1891 ret = hdcp2_propagate_stream_management_info(connector); in hdcp2_authenticate_and_encrypt()
1899 ret = hdcp2_authenticate_port(connector); in hdcp2_authenticate_and_encrypt()
1909 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
1919 ret = hdcp2_enable_encryption(connector); in hdcp2_authenticate_and_encrypt()
1923 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
1929 ret = hdcp2_enable_stream_encryption(connector); in hdcp2_authenticate_and_encrypt()
1934 static int _intel_hdcp2_enable(struct intel_connector *connector) in _intel_hdcp2_enable() argument
1936 struct drm_i915_private *i915 = to_i915(connector->base.dev); in _intel_hdcp2_enable()
1937 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_enable()
1941 connector->base.name, connector->base.base.id, 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 *i915 = 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
2098 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_check_work()
2100 if (drm_connector_is_unregistered(&connector->base)) in intel_hdcp_check_work()
2103 if (!intel_hdcp2_check_link(connector)) in intel_hdcp_check_work()
2106 else if (!intel_hdcp_check_link(connector)) in intel_hdcp_check_work()
2163 static int initialize_hdcp_port_data(struct intel_connector *connector, in initialize_hdcp_port_data() argument
2167 struct drm_i915_private *i915 = to_i915(connector->base.dev); in initialize_hdcp_port_data()
2244 static void intel_hdcp2_init(struct intel_connector *connector, in intel_hdcp2_init() argument
2248 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp2_init()
2249 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_init()
2252 ret = initialize_hdcp_port_data(connector, dig_port, shim); in intel_hdcp2_init()
2261 int intel_hdcp_init(struct intel_connector *connector, in intel_hdcp_init() argument
2265 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_init()
2266 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_init()
2273 intel_hdcp2_init(connector, dig_port, shim); in intel_hdcp_init()
2276 drm_connector_attach_content_protection_property(&connector->base, in intel_hdcp_init()
2299 struct intel_connector *connector; in intel_hdcp_set_streams() local
2312 for_each_intel_connector_iter(connector, &conn_iter) { in intel_hdcp_set_streams()
2313 if (connector->base.status == connector_status_disconnected) in intel_hdcp_set_streams()
2316 if (!intel_encoder_is_mst(intel_attached_encoder(connector))) in intel_hdcp_set_streams()
2319 conn_dig_port = intel_attached_dig_port(connector); in intel_hdcp_set_streams()
2324 intel_conn_to_vcpi(&state->base, connector); in intel_hdcp_set_streams()
2345 struct intel_connector *connector = in intel_hdcp_enable() local
2346 to_intel_connector(conn_state->connector); in intel_hdcp_enable()
2347 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_enable()
2348 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_enable()
2355 if (!connector->encoder) { in intel_hdcp_enable()
2357 connector->base.name, connector->base.base.id); in intel_hdcp_enable()
2383 if (intel_hdcp2_capable(connector)) { in intel_hdcp_enable()
2386 ret = _intel_hdcp2_enable(connector); in intel_hdcp_enable()
2401 if (ret && intel_hdcp_capable(connector) && in intel_hdcp_enable()
2403 ret = _intel_hdcp_enable(connector); in intel_hdcp_enable()
2409 intel_hdcp_update_value(connector, in intel_hdcp_enable()
2419 int intel_hdcp_disable(struct intel_connector *connector) in intel_hdcp_disable() argument
2421 struct intel_digital_port *dig_port = intel_attached_dig_port(connector); in intel_hdcp_disable()
2422 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_disable()
2434 intel_hdcp_update_value(connector, in intel_hdcp_disable()
2437 ret = _intel_hdcp2_disable(connector, false); in intel_hdcp_disable()
2439 ret = _intel_hdcp_disable(connector); in intel_hdcp_disable()
2453 struct intel_connector *connector = in intel_hdcp_update_pipe() local
2454 to_intel_connector(conn_state->connector); in intel_hdcp_update_pipe()
2455 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_update_pipe()
2457 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_update_pipe()
2459 if (!connector->hdcp.shim) in intel_hdcp_update_pipe()
2474 intel_hdcp_disable(connector); in intel_hdcp_update_pipe()
2483 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2485 drm_connector_put(&connector->base); in intel_hdcp_update_pipe()
2501 drm_connector_get(&connector->base); in intel_hdcp_update_pipe()
2503 drm_connector_put(&connector->base); in intel_hdcp_update_pipe()
2529 void intel_hdcp_cleanup(struct intel_connector *connector) in intel_hdcp_cleanup() argument
2531 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_cleanup()
2537 * If the connector is registered, it's possible userspace could kick in intel_hdcp_cleanup()
2540 drm_WARN_ON(connector->base.dev, in intel_hdcp_cleanup()
2541 connector->base.registration_state == DRM_CONNECTOR_REGISTERED); in intel_hdcp_cleanup()
2544 * Now that the connector is not registered, check_work won't be run, in intel_hdcp_cleanup()
2552 * function. Instead, we rely on the connector references grabbed before in intel_hdcp_cleanup()
2553 * scheduling prop_work to ensure the connector is alive when prop_work in intel_hdcp_cleanup()
2558 drm_WARN_ON(connector->base.dev, work_pending(&hdcp->prop_work)); in intel_hdcp_cleanup()
2565 void intel_hdcp_atomic_check(struct drm_connector *connector, in intel_hdcp_atomic_check() argument
2575 * If the connector is being disabled with CP enabled, mark it in intel_hdcp_atomic_check()
2576 * desired so it's re-enabled when the connector is brought back in intel_hdcp_atomic_check()
2613 void intel_hdcp_handle_cp_irq(struct intel_connector *connector) in intel_hdcp_handle_cp_irq() argument
2615 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_handle_cp_irq()
2616 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_hdcp_handle_cp_irq()
2621 atomic_inc(&connector->hdcp.cp_irq_count); in intel_hdcp_handle_cp_irq()
2622 wake_up_all(&connector->hdcp.cp_irq_queue); in intel_hdcp_handle_cp_irq()