• Home
  • Raw
  • Download

Lines Matching refs:connector

62 bool intel_hdcp_capable(struct intel_connector *connector)  in intel_hdcp_capable()  argument
64 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in intel_hdcp_capable()
65 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_capable()
83 bool intel_hdcp2_capable(struct intel_connector *connector) in intel_hdcp2_capable() argument
85 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp2_capable()
86 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in intel_hdcp2_capable()
87 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_capable()
108 static inline bool intel_hdcp_in_use(struct intel_connector *connector) in intel_hdcp_in_use() argument
110 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_in_use()
111 enum port port = connector->encoder->port; in intel_hdcp_in_use()
118 static inline bool intel_hdcp2_in_use(struct intel_connector *connector) in intel_hdcp2_in_use() argument
120 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp2_in_use()
121 enum port port = connector->encoder->port; in intel_hdcp2_in_use()
493 int intel_hdcp_auth_downstream(struct intel_connector *connector) in intel_hdcp_auth_downstream() argument
495 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in intel_hdcp_auth_downstream()
496 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_auth_downstream()
497 struct drm_device *dev = connector->base.dev; in intel_hdcp_auth_downstream()
572 static int intel_hdcp_auth(struct intel_connector *connector) in intel_hdcp_auth() argument
574 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in intel_hdcp_auth()
575 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_auth()
576 struct drm_device *dev = connector->base.dev; in intel_hdcp_auth()
720 return intel_hdcp_auth_downstream(connector); in intel_hdcp_auth()
726 static int _intel_hdcp_disable(struct intel_connector *connector) in _intel_hdcp_disable() argument
728 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_disable()
729 struct drm_i915_private *dev_priv = connector->base.dev->dev_private; in _intel_hdcp_disable()
730 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in _intel_hdcp_disable()
735 connector->base.name, connector->base.base.id); in _intel_hdcp_disable()
755 static int _intel_hdcp_enable(struct intel_connector *connector) in _intel_hdcp_enable() argument
757 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_enable()
758 struct drm_i915_private *dev_priv = connector->base.dev->dev_private; in _intel_hdcp_enable()
762 connector->base.name, connector->base.base.id); in _intel_hdcp_enable()
782 ret = intel_hdcp_auth(connector); in _intel_hdcp_enable()
791 _intel_hdcp_disable(connector); in _intel_hdcp_enable()
805 static int intel_hdcp_check_link(struct intel_connector *connector) in intel_hdcp_check_link() argument
807 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_check_link()
808 struct drm_i915_private *dev_priv = connector->base.dev->dev_private; in intel_hdcp_check_link()
809 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in intel_hdcp_check_link()
822 if (WARN_ON(!intel_hdcp_in_use(connector))) { in intel_hdcp_check_link()
824 connector->base.name, connector->base.base.id, in intel_hdcp_check_link()
841 connector->base.name, connector->base.base.id); in intel_hdcp_check_link()
843 ret = _intel_hdcp_disable(connector); in intel_hdcp_check_link()
851 ret = _intel_hdcp_enable(connector); in intel_hdcp_check_link()
868 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_prop_work() local
869 struct drm_device *dev = connector->base.dev; in intel_hdcp_prop_work()
880 drm_hdcp_update_content_protection(&connector->base, in intel_hdcp_prop_work()
894 hdcp2_prepare_ake_init(struct intel_connector *connector, in hdcp2_prepare_ake_init() argument
897 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_prepare_ake_init()
898 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_prepare_ake_init()
919 hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector, in hdcp2_verify_rx_cert_prepare_km() argument
925 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_verify_rx_cert_prepare_km()
926 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_rx_cert_prepare_km()
948 static int hdcp2_verify_hprime(struct intel_connector *connector, in hdcp2_verify_hprime() argument
951 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_verify_hprime()
952 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_hprime()
973 hdcp2_store_pairing_info(struct intel_connector *connector, in hdcp2_store_pairing_info() argument
976 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_store_pairing_info()
977 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_store_pairing_info()
998 hdcp2_prepare_lc_init(struct intel_connector *connector, in hdcp2_prepare_lc_init() argument
1001 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_prepare_lc_init()
1002 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_prepare_lc_init()
1023 hdcp2_verify_lprime(struct intel_connector *connector, in hdcp2_verify_lprime() argument
1026 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_verify_lprime()
1027 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_lprime()
1047 static int hdcp2_prepare_skey(struct intel_connector *connector, in hdcp2_prepare_skey() argument
1050 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_prepare_skey()
1051 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_prepare_skey()
1072 hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector, in hdcp2_verify_rep_topology_prepare_ack() argument
1077 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_verify_rep_topology_prepare_ack()
1078 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_rep_topology_prepare_ack()
1101 hdcp2_verify_mprime(struct intel_connector *connector, in hdcp2_verify_mprime() argument
1104 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_verify_mprime()
1105 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_verify_mprime()
1125 static int hdcp2_authenticate_port(struct intel_connector *connector) in hdcp2_authenticate_port() argument
1127 struct hdcp_port_data *data = &connector->hdcp.port_data; in hdcp2_authenticate_port()
1128 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_authenticate_port()
1148 static int hdcp2_close_mei_session(struct intel_connector *connector) in hdcp2_close_mei_session() argument
1150 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_close_mei_session()
1163 &connector->hdcp.port_data); in hdcp2_close_mei_session()
1169 static int hdcp2_deauthenticate_port(struct intel_connector *connector) in hdcp2_deauthenticate_port() argument
1171 return hdcp2_close_mei_session(connector); in hdcp2_deauthenticate_port()
1175 static int hdcp2_authentication_key_exchange(struct intel_connector *connector) in hdcp2_authentication_key_exchange() argument
1177 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in hdcp2_authentication_key_exchange()
1178 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authentication_key_exchange()
1179 struct drm_device *dev = connector->base.dev; in hdcp2_authentication_key_exchange()
1195 ret = hdcp2_prepare_ake_init(connector, &msgs.ake_init); in hdcp2_authentication_key_exchange()
1226 ret = hdcp2_verify_rx_cert_prepare_km(connector, &msgs.send_cert, in hdcp2_authentication_key_exchange()
1241 ret = hdcp2_verify_hprime(connector, &msgs.send_hprime); in hdcp2_authentication_key_exchange()
1254 ret = hdcp2_store_pairing_info(connector, &msgs.pairing_info); in hdcp2_authentication_key_exchange()
1263 static int hdcp2_locality_check(struct intel_connector *connector) in hdcp2_locality_check() argument
1265 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in hdcp2_locality_check()
1266 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_locality_check()
1275 ret = hdcp2_prepare_lc_init(connector, &msgs.lc_init); in hdcp2_locality_check()
1291 ret = hdcp2_verify_lprime(connector, &msgs.send_lprime); in hdcp2_locality_check()
1299 static int hdcp2_session_key_exchange(struct intel_connector *connector) in hdcp2_session_key_exchange() argument
1301 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in hdcp2_session_key_exchange()
1302 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_session_key_exchange()
1306 ret = hdcp2_prepare_skey(connector, &send_eks); in hdcp2_session_key_exchange()
1319 int hdcp2_propagate_stream_management_info(struct intel_connector *connector) in hdcp2_propagate_stream_management_info() argument
1321 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in hdcp2_propagate_stream_management_info()
1322 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_propagate_stream_management_info()
1355 ret = hdcp2_verify_mprime(connector, &msgs.stream_ready); in hdcp2_propagate_stream_management_info()
1370 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector) in hdcp2_authenticate_repeater_topology() argument
1372 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in hdcp2_authenticate_repeater_topology()
1373 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_repeater_topology()
1374 struct drm_device *dev = connector->base.dev; in hdcp2_authenticate_repeater_topology()
1415 ret = hdcp2_verify_rep_topology_prepare_ack(connector, in hdcp2_authenticate_repeater_topology()
1430 static int hdcp2_authenticate_repeater(struct intel_connector *connector) in hdcp2_authenticate_repeater() argument
1434 ret = hdcp2_authenticate_repeater_topology(connector); in hdcp2_authenticate_repeater()
1438 return hdcp2_propagate_stream_management_info(connector); in hdcp2_authenticate_repeater()
1441 static int hdcp2_authenticate_sink(struct intel_connector *connector) in hdcp2_authenticate_sink() argument
1443 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in hdcp2_authenticate_sink()
1444 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_authenticate_sink()
1448 ret = hdcp2_authentication_key_exchange(connector); in hdcp2_authenticate_sink()
1454 ret = hdcp2_locality_check(connector); in hdcp2_authenticate_sink()
1460 ret = hdcp2_session_key_exchange(connector); in hdcp2_authenticate_sink()
1475 ret = hdcp2_authenticate_repeater(connector); in hdcp2_authenticate_sink()
1483 ret = hdcp2_authenticate_port(connector); in hdcp2_authenticate_sink()
1490 static int hdcp2_enable_encryption(struct intel_connector *connector) in hdcp2_enable_encryption() argument
1492 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in hdcp2_enable_encryption()
1493 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_enable_encryption()
1494 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_enable_encryption()
1495 enum port port = connector->encoder->port; in hdcp2_enable_encryption()
1523 static int hdcp2_disable_encryption(struct intel_connector *connector) in hdcp2_disable_encryption() argument
1525 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in hdcp2_disable_encryption()
1526 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in hdcp2_disable_encryption()
1527 struct intel_hdcp *hdcp = &connector->hdcp; in hdcp2_disable_encryption()
1528 enum port port = connector->encoder->port; in hdcp2_disable_encryption()
1554 static int hdcp2_authenticate_and_encrypt(struct intel_connector *connector) in hdcp2_authenticate_and_encrypt() argument
1559 ret = hdcp2_authenticate_sink(connector); in hdcp2_authenticate_and_encrypt()
1566 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
1576 ret = hdcp2_enable_encryption(connector); in hdcp2_authenticate_and_encrypt()
1579 if (hdcp2_deauthenticate_port(connector) < 0) in hdcp2_authenticate_and_encrypt()
1587 static int _intel_hdcp2_enable(struct intel_connector *connector) in _intel_hdcp2_enable() argument
1589 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp2_enable()
1593 connector->base.name, connector->base.base.id, in _intel_hdcp2_enable()
1596 ret = hdcp2_authenticate_and_encrypt(connector); in _intel_hdcp2_enable()
1604 connector->base.name, connector->base.base.id, in _intel_hdcp2_enable()
1611 static int _intel_hdcp2_disable(struct intel_connector *connector) in _intel_hdcp2_disable() argument
1616 connector->base.name, connector->base.base.id); in _intel_hdcp2_disable()
1618 ret = hdcp2_disable_encryption(connector); in _intel_hdcp2_disable()
1620 if (hdcp2_deauthenticate_port(connector) < 0) in _intel_hdcp2_disable()
1623 connector->hdcp.hdcp2_encrypted = false; in _intel_hdcp2_disable()
1629 static int intel_hdcp2_check_link(struct intel_connector *connector) in intel_hdcp2_check_link() argument
1631 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); in intel_hdcp2_check_link()
1632 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp2_check_link()
1633 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_check_link()
1634 enum port port = connector->encoder->port; in intel_hdcp2_check_link()
1646 if (WARN_ON(!intel_hdcp2_in_use(connector))) { in intel_hdcp2_check_link()
1669 ret = hdcp2_authenticate_repeater_topology(connector); in intel_hdcp2_check_link()
1676 connector->base.name, connector->base.base.id, in intel_hdcp2_check_link()
1680 connector->base.name, connector->base.base.id); in intel_hdcp2_check_link()
1683 ret = _intel_hdcp2_disable(connector); in intel_hdcp2_check_link()
1686 connector->base.name, connector->base.base.id, ret); in intel_hdcp2_check_link()
1692 ret = _intel_hdcp2_enable(connector); in intel_hdcp2_check_link()
1695 connector->base.name, connector->base.base.id, in intel_hdcp2_check_link()
1712 struct intel_connector *connector = intel_hdcp_to_connector(hdcp); in intel_hdcp_check_work() local
1714 if (!intel_hdcp2_check_link(connector)) in intel_hdcp_check_work()
1717 else if (!intel_hdcp_check_link(connector)) in intel_hdcp_check_work()
1752 static inline int initialize_hdcp_port_data(struct intel_connector *connector, in initialize_hdcp_port_data() argument
1755 struct intel_hdcp *hdcp = &connector->hdcp; in initialize_hdcp_port_data()
1758 data->port = connector->encoder->port; in initialize_hdcp_port_data()
1810 static void intel_hdcp2_init(struct intel_connector *connector, in intel_hdcp2_init() argument
1813 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_init()
1816 ret = initialize_hdcp_port_data(connector, shim); in intel_hdcp2_init()
1825 int intel_hdcp_init(struct intel_connector *connector, in intel_hdcp_init() argument
1828 struct drm_i915_private *dev_priv = to_i915(connector->base.dev); in intel_hdcp_init()
1829 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_init()
1836 intel_hdcp2_init(connector, shim); in intel_hdcp_init()
1839 drm_connector_attach_content_protection_property(&connector->base, in intel_hdcp_init()
1856 int intel_hdcp_enable(struct intel_connector *connector, u8 content_type) in intel_hdcp_enable() argument
1858 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_enable()
1873 if (intel_hdcp2_capable(connector)) { in intel_hdcp_enable()
1874 ret = _intel_hdcp2_enable(connector); in intel_hdcp_enable()
1883 if (ret && intel_hdcp_capable(connector) && in intel_hdcp_enable()
1885 ret = _intel_hdcp_enable(connector); in intel_hdcp_enable()
1898 int intel_hdcp_disable(struct intel_connector *connector) in intel_hdcp_disable() argument
1900 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_disable()
1911 ret = _intel_hdcp2_disable(connector); in intel_hdcp_disable()
1913 ret = _intel_hdcp_disable(connector); in intel_hdcp_disable()
1935 void intel_hdcp_cleanup(struct intel_connector *connector) in intel_hdcp_cleanup() argument
1937 if (!connector->hdcp.shim) in intel_hdcp_cleanup()
1940 mutex_lock(&connector->hdcp.mutex); in intel_hdcp_cleanup()
1941 kfree(connector->hdcp.port_data.streams); in intel_hdcp_cleanup()
1942 mutex_unlock(&connector->hdcp.mutex); in intel_hdcp_cleanup()
1945 void intel_hdcp_atomic_check(struct drm_connector *connector, in intel_hdcp_atomic_check() argument
1982 void intel_hdcp_handle_cp_irq(struct intel_connector *connector) in intel_hdcp_handle_cp_irq() argument
1984 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_handle_cp_irq()
1989 atomic_inc(&connector->hdcp.cp_irq_count); in intel_hdcp_handle_cp_irq()
1990 wake_up_all(&connector->hdcp.cp_irq_queue); in intel_hdcp_handle_cp_irq()