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