1 /* SPDX-License-Identifier: MIT */
3 * Copyright © 2019 Intel Corporation
6 #ifndef __INTEL_HDCP_H__
7 #define __INTEL_HDCP_H__
9 #include <linux/types.h>
12 struct drm_connector_state
;
13 struct drm_i915_private
;
14 struct intel_atomic_state
;
15 struct intel_connector
;
16 struct intel_crtc_state
;
18 struct intel_hdcp_shim
;
22 void intel_hdcp_atomic_check(struct drm_connector
*connector
,
23 struct drm_connector_state
*old_state
,
24 struct drm_connector_state
*new_state
);
25 int intel_hdcp_init(struct intel_connector
*connector
, enum port port
,
26 const struct intel_hdcp_shim
*hdcp_shim
);
27 int intel_hdcp_enable(struct intel_connector
*connector
,
28 enum transcoder cpu_transcoder
, u8 content_type
);
29 int intel_hdcp_disable(struct intel_connector
*connector
);
30 void intel_hdcp_update_pipe(struct intel_atomic_state
*state
,
31 struct intel_encoder
*encoder
,
32 const struct intel_crtc_state
*crtc_state
,
33 const struct drm_connector_state
*conn_state
);
34 bool is_hdcp_supported(struct drm_i915_private
*dev_priv
, enum port port
);
35 bool intel_hdcp_capable(struct intel_connector
*connector
);
36 bool intel_hdcp2_capable(struct intel_connector
*connector
);
37 void intel_hdcp_component_init(struct drm_i915_private
*dev_priv
);
38 void intel_hdcp_component_fini(struct drm_i915_private
*dev_priv
);
39 void intel_hdcp_cleanup(struct intel_connector
*connector
);
40 void intel_hdcp_handle_cp_irq(struct intel_connector
*connector
);
42 #endif /* __INTEL_HDCP_H__ */