73 lines · c
1/* SPDX-License-Identifier: MIT */2/*3 * Copyright © 2023 Intel Corporation4 */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);30int31intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,32 struct hdcp2_ake_init *ake_data);33int34intel_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_km39 *ek_pub_km,40 size_t *msg_sz);41int42intel_hdcp_gsc_verify_hprime(struct device *dev, struct hdcp_port_data *data,43 struct hdcp2_ake_send_hprime *rx_hprime);44int45intel_hdcp_gsc_store_pairing_info(struct device *dev, struct hdcp_port_data *data,46 struct hdcp2_ake_send_pairing_info *pairing_info);47int48intel_hdcp_gsc_initiate_locality_check(struct device *dev,49 struct hdcp_port_data *data,50 struct hdcp2_lc_init *lc_init_data);51int52intel_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);57int58intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,59 struct hdcp_port_data *data,60 struct hdcp2_rep_send_receiverid_list61 *rep_topology,62 struct hdcp2_rep_send_ack63 *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);69int70intel_hdcp_gsc_close_session(struct device *dev, struct hdcp_port_data *data);71 72#endif /* __INTEL_HDCP_GSC_MESSAGE_H__ */73