#include <linux/component.h>
#include <drm/intel/i915_pxp_tee_interface.h>
#include <drm/intel/i915_component.h>
#include "gem/i915_gem_lmem.h"
#include "gt/intel_gt_print.h"
#include "i915_drv.h"
#include "gt/intel_gt.h"
#include "intel_pxp.h"
#include "intel_pxp_cmd_interface_42.h"
#include "intel_pxp_huc.h"
#include "intel_pxp_session.h"
#include "intel_pxp_tee.h"
#include "intel_pxp_types.h"
#define PXP_TRANSPORT_TIMEOUT_MS …
static bool
is_fw_err_platform_config(struct intel_pxp *pxp, u32 type)
{ … }
static const char *
fw_err_to_string(u32 type)
{ … }
static int intel_pxp_tee_io_message(struct intel_pxp *pxp,
void *msg_in, u32 msg_in_size,
void *msg_out, u32 msg_out_max_size,
u32 *msg_out_rcv_size)
{ … }
int intel_pxp_tee_stream_message(struct intel_pxp *pxp,
u8 client_id, u32 fence_id,
void *msg_in, size_t msg_in_len,
void *msg_out, size_t msg_out_len)
{ … }
static int i915_pxp_tee_component_bind(struct device *i915_kdev,
struct device *tee_kdev, void *data)
{ … }
static void i915_pxp_tee_component_unbind(struct device *i915_kdev,
struct device *tee_kdev, void *data)
{ … }
static const struct component_ops i915_pxp_tee_component_ops = …;
static int alloc_streaming_command(struct intel_pxp *pxp)
{ … }
static void free_streaming_command(struct intel_pxp *pxp)
{ … }
int intel_pxp_tee_component_init(struct intel_pxp *pxp)
{ … }
void intel_pxp_tee_component_fini(struct intel_pxp *pxp)
{ … }
int intel_pxp_tee_cmd_create_arb_session(struct intel_pxp *pxp,
int arb_session_id)
{ … }
void intel_pxp_tee_end_arb_fw_session(struct intel_pxp *pxp, u32 session_id)
{ … }