0001
0002
0003
0004
0005
0006 #ifndef __INTEL_HDCP_H__
0007 #define __INTEL_HDCP_H__
0008
0009 #include <linux/types.h>
0010
0011 #define HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS 50
0012
0013 struct drm_connector;
0014 struct drm_connector_state;
0015 struct drm_i915_private;
0016 struct intel_atomic_state;
0017 struct intel_connector;
0018 struct intel_crtc_state;
0019 struct intel_encoder;
0020 struct intel_hdcp_shim;
0021 struct intel_digital_port;
0022 enum port;
0023 enum transcoder;
0024
0025 void intel_hdcp_atomic_check(struct drm_connector *connector,
0026 struct drm_connector_state *old_state,
0027 struct drm_connector_state *new_state);
0028 int intel_hdcp_init(struct intel_connector *connector,
0029 struct intel_digital_port *dig_port,
0030 const struct intel_hdcp_shim *hdcp_shim);
0031 int intel_hdcp_enable(struct intel_connector *connector,
0032 const struct intel_crtc_state *pipe_config, u8 content_type);
0033 int intel_hdcp_disable(struct intel_connector *connector);
0034 void intel_hdcp_update_pipe(struct intel_atomic_state *state,
0035 struct intel_encoder *encoder,
0036 const struct intel_crtc_state *crtc_state,
0037 const struct drm_connector_state *conn_state);
0038 bool is_hdcp_supported(struct drm_i915_private *dev_priv, enum port port);
0039 bool intel_hdcp_capable(struct intel_connector *connector);
0040 bool intel_hdcp2_capable(struct intel_connector *connector);
0041 void intel_hdcp_component_init(struct drm_i915_private *dev_priv);
0042 void intel_hdcp_component_fini(struct drm_i915_private *dev_priv);
0043 void intel_hdcp_cleanup(struct intel_connector *connector);
0044 void intel_hdcp_handle_cp_irq(struct intel_connector *connector);
0045
0046 #endif