Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1/* SPDX-License-Identifier: MIT */
 2/*
 3 * Copyright © 2023 Intel Corporation
 4 */
 5
 6#ifndef __INTEL_HDCP_GSC_MESSAGE_H__
 7#define __INTEL_HDCP_GSC_MESSAGE_H__
 8
 9#include <linux/types.h>
10
11struct device;
12struct drm_i915_private;
13struct hdcp_port_data;
14struct hdcp2_ake_init;
15struct hdcp2_ake_send_cert;
16struct hdcp2_ake_no_stored_km;
17struct hdcp2_ake_send_hprime;
18struct hdcp2_ake_send_pairing_info;
19struct hdcp2_lc_init;
20struct hdcp2_lc_send_lprime;
21struct hdcp2_ske_send_eks;
22struct hdcp2_rep_send_receiverid_list;
23struct hdcp2_rep_send_ack;
24struct hdcp2_rep_stream_ready;
25struct intel_display;
26
27ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
28				size_t msg_in_len, u8 *msg_out,
29				size_t msg_out_len);
30bool intel_hdcp_gsc_check_status(struct intel_display *display);
31int
32intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
33				struct hdcp2_ake_init *ake_data);
34int
35intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev,
36					       struct hdcp_port_data *data,
37					       struct hdcp2_ake_send_cert *rx_cert,
38					       bool *km_stored,
39					       struct hdcp2_ake_no_stored_km
40					       *ek_pub_km,
41					       size_t *msg_sz);
42int
43intel_hdcp_gsc_verify_hprime(struct device *dev, struct hdcp_port_data *data,
44			     struct hdcp2_ake_send_hprime *rx_hprime);
45int
46intel_hdcp_gsc_store_pairing_info(struct device *dev, struct hdcp_port_data *data,
47				  struct hdcp2_ake_send_pairing_info *pairing_info);
48int
49intel_hdcp_gsc_initiate_locality_check(struct device *dev,
50				       struct hdcp_port_data *data,
51				       struct hdcp2_lc_init *lc_init_data);
52int
53intel_hdcp_gsc_verify_lprime(struct device *dev, struct hdcp_port_data *data,
54			     struct hdcp2_lc_send_lprime *rx_lprime);
55int intel_hdcp_gsc_get_session_key(struct device *dev,
56				   struct hdcp_port_data *data,
57				   struct hdcp2_ske_send_eks *ske_data);
58int
59intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,
60					       struct hdcp_port_data *data,
61					       struct hdcp2_rep_send_receiverid_list
62					       *rep_topology,
63					       struct hdcp2_rep_send_ack
64					       *rep_send_ack);
65int intel_hdcp_gsc_verify_mprime(struct device *dev,
66				 struct hdcp_port_data *data,
67				 struct hdcp2_rep_stream_ready *stream_ready);
68int intel_hdcp_gsc_enable_authentication(struct device *dev,
69					 struct hdcp_port_data *data);
70int
71intel_hdcp_gsc_close_session(struct device *dev, struct hdcp_port_data *data);
72
73#endif /* __INTEL_HDCP_GSC_MESSAGE_H__ */