linux/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c

// SPDX-License-Identifier: MIT
/*
 * Copyright 2023, Intel Corporation.
 */

#include <drm/intel/i915_hdcp_interface.h>

#include "gem/i915_gem_region.h"
#include "gt/intel_gt.h"
#include "gt/uc/intel_gsc_uc_heci_cmd_submit.h"
#include "i915_drv.h"
#include "i915_utils.h"
#include "intel_hdcp_gsc.h"
#include "intel_hdcp_gsc_message.h"

struct intel_hdcp_gsc_message {};

bool intel_hdcp_gsc_cs_required(struct drm_i915_private *i915)
{}

bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915)
{}

/*This function helps allocate memory for the command that we will send to gsc cs */
static int intel_hdcp_gsc_initialize_message(struct drm_i915_private *i915,
					     struct intel_hdcp_gsc_message *hdcp_message)
{}

static const struct i915_hdcp_ops gsc_hdcp_ops =;

static int intel_hdcp_gsc_hdcp2_init(struct drm_i915_private *i915)
{}

static void intel_hdcp_gsc_free_message(struct drm_i915_private *i915)
{}

int intel_hdcp_gsc_init(struct drm_i915_private *i915)
{}

void intel_hdcp_gsc_fini(struct drm_i915_private *i915)
{}

static int intel_gsc_send_sync(struct drm_i915_private *i915,
			       struct intel_gsc_mtl_header *header_in,
			       struct intel_gsc_mtl_header *header_out,
			       u64 addr_in, u64 addr_out,
			       size_t msg_out_len)
{}

/*
 * This function can now be used for sending requests and will also handle
 * receipt of reply messages hence no different function of message retrieval
 * is required. We will initialize intel_hdcp_gsc_message structure then add
 * gsc cs memory header as stated in specs after which the normal HDCP payload
 * will follow
 */
ssize_t intel_hdcp_gsc_msg_send(struct drm_i915_private *i915, u8 *msg_in,
				size_t msg_in_len, u8 *msg_out,
				size_t msg_out_len)
{}