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;
25
26ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
27 size_t msg_in_len, u8 *msg_out,
28 size_t msg_out_len);
29bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915);
30int
31intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
32 struct hdcp2_ake_init *ake_data);
33int
34intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev,
35 struct hdcp_port_data *data,
36 struct hdcp2_ake_send_cert *rx_cert,
37 bool *km_stored,
38 struct hdcp2_ake_no_stored_km
39 *ek_pub_km,
40 size_t *msg_sz);
41int
42intel_hdcp_gsc_verify_hprime(struct device *dev, struct hdcp_port_data *data,
43 struct hdcp2_ake_send_hprime *rx_hprime);
44int
45intel_hdcp_gsc_store_pairing_info(struct device *dev, struct hdcp_port_data *data,
46 struct hdcp2_ake_send_pairing_info *pairing_info);
47int
48intel_hdcp_gsc_initiate_locality_check(struct device *dev,
49 struct hdcp_port_data *data,
50 struct hdcp2_lc_init *lc_init_data);
51int
52intel_hdcp_gsc_verify_lprime(struct device *dev, struct hdcp_port_data *data,
53 struct hdcp2_lc_send_lprime *rx_lprime);
54int intel_hdcp_gsc_get_session_key(struct device *dev,
55 struct hdcp_port_data *data,
56 struct hdcp2_ske_send_eks *ske_data);
57int
58intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,
59 struct hdcp_port_data *data,
60 struct hdcp2_rep_send_receiverid_list
61 *rep_topology,
62 struct hdcp2_rep_send_ack
63 *rep_send_ack);
64int intel_hdcp_gsc_verify_mprime(struct device *dev,
65 struct hdcp_port_data *data,
66 struct hdcp2_rep_stream_ready *stream_ready);
67int intel_hdcp_gsc_enable_authentication(struct device *dev,
68 struct hdcp_port_data *data);
69int
70intel_hdcp_gsc_close_session(struct device *dev, struct hdcp_port_data *data);
71
72#endif /* __INTEL_HDCP_GSC_MESSAGE_H__ */
73

source code of linux/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h