linux/drivers/gpu/drm/i915/gt/uc/intel_huc.h

/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2014-2019 Intel Corporation
 */

#ifndef _INTEL_HUC_H_
#define _INTEL_HUC_H_

#include "i915_reg_defs.h"
#include "i915_sw_fence.h"
#include "intel_uc_fw.h"
#include "intel_huc_fw.h"

#include <linux/notifier.h>
#include <linux/hrtimer.h>

struct bus_type;
struct i915_vma;

enum intel_huc_delayed_load_status {};

enum intel_huc_authentication_type {};

struct intel_huc {};

int intel_huc_sanitize(struct intel_huc *huc);
void intel_huc_init_early(struct intel_huc *huc);
int intel_huc_init(struct intel_huc *huc);
void intel_huc_fini(struct intel_huc *huc);
void intel_huc_suspend(struct intel_huc *huc);
int intel_huc_auth(struct intel_huc *huc, enum intel_huc_authentication_type type);
int intel_huc_wait_for_auth_complete(struct intel_huc *huc,
				     enum intel_huc_authentication_type type);
bool intel_huc_is_authenticated(struct intel_huc *huc,
				enum intel_huc_authentication_type type);
int intel_huc_check_status(struct intel_huc *huc);
void intel_huc_update_auth_status(struct intel_huc *huc);

void intel_huc_register_gsc_notifier(struct intel_huc *huc, const struct bus_type *bus);
void intel_huc_unregister_gsc_notifier(struct intel_huc *huc, const struct bus_type *bus);

static inline bool intel_huc_is_supported(struct intel_huc *huc)
{}

static inline bool intel_huc_is_wanted(struct intel_huc *huc)
{}

static inline bool intel_huc_is_used(struct intel_huc *huc)
{}

static inline bool intel_huc_is_loaded_by_gsc(const struct intel_huc *huc)
{}

static inline bool intel_huc_wait_required(struct intel_huc *huc)
{}

void intel_huc_load_status(struct intel_huc *huc, struct drm_printer *p);

#endif