#ifndef _INTEL_UC_FW_H_
#define _INTEL_UC_FW_H_
#include <linux/sizes.h>
#include <linux/types.h>
#include "intel_uc_fw_abi.h"
#include "intel_device_info.h"
#include "i915_gem.h"
#include "i915_vma.h"
struct drm_printer;
struct drm_i915_private;
struct intel_gt;
#define INTEL_UC_FIRMWARE_URL …
enum intel_uc_fw_status { … };
enum intel_uc_fw_type { … };
#define INTEL_UC_FW_NUM_TYPES …
struct intel_uc_fw_ver { … };
struct intel_uc_fw_file { … };
struct intel_uc_fw { … };
#define INTEL_UC_RSVD_GGTT_PER_FW …
#ifdef CONFIG_DRM_I915_DEBUG_GUC
void intel_uc_fw_change_status(struct intel_uc_fw *uc_fw,
enum intel_uc_fw_status status);
#else
static inline void intel_uc_fw_change_status(struct intel_uc_fw *uc_fw,
enum intel_uc_fw_status status)
{
uc_fw->__status = status;
}
#endif
static inline
const char *intel_uc_fw_status_repr(enum intel_uc_fw_status status)
{ … }
static inline int intel_uc_fw_status_to_error(enum intel_uc_fw_status status)
{ … }
static inline const char *intel_uc_fw_type_repr(enum intel_uc_fw_type type)
{ … }
static inline enum intel_uc_fw_status
__intel_uc_fw_status(struct intel_uc_fw *uc_fw)
{ … }
static inline bool intel_uc_fw_is_supported(struct intel_uc_fw *uc_fw)
{ … }
static inline bool intel_uc_fw_is_enabled(struct intel_uc_fw *uc_fw)
{ … }
static inline bool intel_uc_fw_is_available(struct intel_uc_fw *uc_fw)
{ … }
static inline bool intel_uc_fw_is_loadable(struct intel_uc_fw *uc_fw)
{ … }
static inline bool intel_uc_fw_is_loaded(struct intel_uc_fw *uc_fw)
{ … }
static inline bool intel_uc_fw_is_running(struct intel_uc_fw *uc_fw)
{ … }
static inline bool intel_uc_fw_is_in_error(struct intel_uc_fw *uc_fw)
{ … }
static inline bool intel_uc_fw_is_overridden(const struct intel_uc_fw *uc_fw)
{ … }
static inline void intel_uc_fw_sanitize(struct intel_uc_fw *uc_fw)
{ … }
static inline u32 __intel_uc_fw_get_upload_size(struct intel_uc_fw *uc_fw)
{ … }
static inline u32 intel_uc_fw_get_upload_size(struct intel_uc_fw *uc_fw)
{ … }
void intel_uc_fw_version_from_gsc_manifest(struct intel_uc_fw_ver *ver,
const void *data);
int intel_uc_check_file_version(struct intel_uc_fw *uc_fw, bool *old_ver);
void intel_uc_fw_init_early(struct intel_uc_fw *uc_fw,
enum intel_uc_fw_type type,
bool needs_ggtt_mapping);
int intel_uc_fw_fetch(struct intel_uc_fw *uc_fw);
void intel_uc_fw_cleanup_fetch(struct intel_uc_fw *uc_fw);
int intel_uc_fw_upload(struct intel_uc_fw *uc_fw, u32 offset, u32 dma_flags);
int intel_uc_fw_init(struct intel_uc_fw *uc_fw);
void intel_uc_fw_fini(struct intel_uc_fw *uc_fw);
void intel_uc_fw_resume_mapping(struct intel_uc_fw *uc_fw);
size_t intel_uc_fw_copy_rsa(struct intel_uc_fw *uc_fw, void *dst, u32 max_len);
int intel_uc_fw_mark_load_failed(struct intel_uc_fw *uc_fw, int err);
void intel_uc_fw_dump(const struct intel_uc_fw *uc_fw, struct drm_printer *p);
#endif