118fd7f8aSSuraj Kandpal /* SPDX-License-Identifier: MIT */
218fd7f8aSSuraj Kandpal /*
318fd7f8aSSuraj Kandpal  * Copyright © 2023 Intel Corporation
418fd7f8aSSuraj Kandpal  */
518fd7f8aSSuraj Kandpal 
618fd7f8aSSuraj Kandpal #ifndef __INTEL_HDCP_GSC_H__
718fd7f8aSSuraj Kandpal #define __INTEL_HDCP_GSC_H__
818fd7f8aSSuraj Kandpal 
918fd7f8aSSuraj Kandpal #include <linux/err.h>
1018fd7f8aSSuraj Kandpal #include <linux/types.h>
1118fd7f8aSSuraj Kandpal 
1218fd7f8aSSuraj Kandpal struct drm_i915_private;
1318fd7f8aSSuraj Kandpal 
1418fd7f8aSSuraj Kandpal struct intel_hdcp_gsc_message {
1518fd7f8aSSuraj Kandpal 	struct i915_vma *vma;
16*b3e4aae6SSuraj Kandpal 	void *hdcp_cmd_in;
17*b3e4aae6SSuraj Kandpal 	void *hdcp_cmd_out;
1818fd7f8aSSuraj Kandpal };
1918fd7f8aSSuraj Kandpal 
2088363177SSuraj Kandpal bool intel_hdcp_gsc_cs_required(struct drm_i915_private *i915);
2118fd7f8aSSuraj Kandpal ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
2218fd7f8aSSuraj Kandpal 				size_t msg_in_len, u8 *msg_out,
2318fd7f8aSSuraj Kandpal 				size_t msg_out_len);
2488363177SSuraj Kandpal int intel_hdcp_gsc_init(struct drm_i915_private *i915);
2588363177SSuraj Kandpal void intel_hdcp_gsc_fini(struct drm_i915_private *i915);
2618fd7f8aSSuraj Kandpal 
2718fd7f8aSSuraj Kandpal #endif /* __INTEL_HDCP_GCS_H__ */
28