#include "xe_guc.h"
#include <drm/drm_managed.h>
#include <generated/xe_wa_oob.h>
#include "abi/guc_actions_abi.h"
#include "abi/guc_errors_abi.h"
#include "regs/xe_gt_regs.h"
#include "regs/xe_gtt_defs.h"
#include "regs/xe_guc_regs.h"
#include "xe_bo.h"
#include "xe_device.h"
#include "xe_force_wake.h"
#include "xe_gt.h"
#include "xe_gt_printk.h"
#include "xe_gt_sriov_vf.h"
#include "xe_gt_throttle.h"
#include "xe_guc_ads.h"
#include "xe_guc_ct.h"
#include "xe_guc_db_mgr.h"
#include "xe_guc_hwconfig.h"
#include "xe_guc_log.h"
#include "xe_guc_pc.h"
#include "xe_guc_relay.h"
#include "xe_guc_submit.h"
#include "xe_memirq.h"
#include "xe_mmio.h"
#include "xe_platform_types.h"
#include "xe_sriov.h"
#include "xe_uc.h"
#include "xe_uc_fw.h"
#include "xe_wa.h"
#include "xe_wopcm.h"
static u32 guc_bo_ggtt_addr(struct xe_guc *guc,
struct xe_bo *bo)
{ … }
static u32 guc_ctl_debug_flags(struct xe_guc *guc)
{ … }
static u32 guc_ctl_feature_flags(struct xe_guc *guc)
{ … }
static u32 guc_ctl_log_params_flags(struct xe_guc *guc)
{ … }
static u32 guc_ctl_ads_flags(struct xe_guc *guc)
{ … }
static u32 guc_ctl_wa_flags(struct xe_guc *guc)
{ … }
static u32 guc_ctl_devid(struct xe_guc *guc)
{ … }
static void guc_print_params(struct xe_guc *guc)
{ … }
static void guc_init_params(struct xe_guc *guc)
{ … }
static void guc_init_params_post_hwconfig(struct xe_guc *guc)
{ … }
static void guc_write_params(struct xe_guc *guc)
{ … }
static void guc_fini_hw(void *arg)
{ … }
void xe_guc_comm_init_early(struct xe_guc *guc)
{ … }
static int xe_guc_realloc_post_hwconfig(struct xe_guc *guc)
{ … }
static int vf_guc_init(struct xe_guc *guc)
{ … }
int xe_guc_init(struct xe_guc *guc)
{ … }
static int vf_guc_init_post_hwconfig(struct xe_guc *guc)
{ … }
int xe_guc_init_post_hwconfig(struct xe_guc *guc)
{ … }
int xe_guc_post_load_init(struct xe_guc *guc)
{ … }
int xe_guc_reset(struct xe_guc *guc)
{ … }
static void guc_prepare_xfer(struct xe_guc *guc)
{ … }
static int guc_xfer_rsa(struct xe_guc *guc)
{ … }
static int guc_load_done(u32 status)
{ … }
static s32 guc_pc_get_cur_freq(struct xe_guc_pc *guc_pc)
{ … }
#if defined(CONFIG_DRM_XE_DEBUG)
#define GUC_LOAD_RETRY_LIMIT …
#else
#define GUC_LOAD_RETRY_LIMIT …
#endif
#define GUC_LOAD_TIME_WARN_MS …
static void guc_wait_ucode(struct xe_guc *guc)
{ … }
static int __xe_guc_upload(struct xe_guc *guc)
{ … }
static int vf_guc_min_load_for_hwconfig(struct xe_guc *guc)
{ … }
int xe_guc_min_load_for_hwconfig(struct xe_guc *guc)
{ … }
int xe_guc_upload(struct xe_guc *guc)
{ … }
static void guc_handle_mmio_msg(struct xe_guc *guc)
{ … }
static void guc_enable_irq(struct xe_guc *guc)
{ … }
int xe_guc_enable_communication(struct xe_guc *guc)
{ … }
int xe_guc_suspend(struct xe_guc *guc)
{ … }
void xe_guc_notify(struct xe_guc *guc)
{ … }
int xe_guc_auth_huc(struct xe_guc *guc, u32 rsa_addr)
{ … }
int xe_guc_mmio_send_recv(struct xe_guc *guc, const u32 *request,
u32 len, u32 *response_buf)
{ … }
int xe_guc_mmio_send(struct xe_guc *guc, const u32 *request, u32 len)
{ … }
static int guc_self_cfg(struct xe_guc *guc, u16 key, u16 len, u64 val)
{ … }
int xe_guc_self_cfg32(struct xe_guc *guc, u16 key, u32 val)
{ … }
int xe_guc_self_cfg64(struct xe_guc *guc, u16 key, u64 val)
{ … }
void xe_guc_irq_handler(struct xe_guc *guc, const u16 iir)
{ … }
void xe_guc_sanitize(struct xe_guc *guc)
{ … }
int xe_guc_reset_prepare(struct xe_guc *guc)
{ … }
void xe_guc_reset_wait(struct xe_guc *guc)
{ … }
void xe_guc_stop_prepare(struct xe_guc *guc)
{ … }
void xe_guc_stop(struct xe_guc *guc)
{ … }
int xe_guc_start(struct xe_guc *guc)
{ … }
void xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p)
{ … }
void xe_guc_declare_wedged(struct xe_guc *guc)
{ … }