mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-27 15:50:48 +00:00

The GuC compatibility version that we read from the CSS header in native/PF and the GuC VF version that we get when a VF handshakes with the GuC are the same version number, so we should store it into the same structure. This makes all the checks based on the compatibility version automatically work for VFs without having to copy the value over. For completion, also copy the wanted version and set the path to a known string to indicate that the FW is PF-loaded. This way all the info will be coherent when dumped from debugfs. v2: several code cleanups and style changes (Michal), rebase on bootstrap changes. v3: s/min/wanted/, clarify that handshake must happen before we can get the VF versions (Michal) Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Lukasz Laguna <lukasz.laguna@intel.com> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Link: https://lore.kernel.org/r/20250603235432.720833-10-daniele.ceraolospurio@intel.com
42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2023-2024 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _XE_GT_SRIOV_VF_H_
|
|
#define _XE_GT_SRIOV_VF_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct drm_printer;
|
|
struct xe_gt;
|
|
struct xe_reg;
|
|
struct xe_uc_fw_version;
|
|
|
|
int xe_gt_sriov_vf_reset(struct xe_gt *gt);
|
|
int xe_gt_sriov_vf_bootstrap(struct xe_gt *gt);
|
|
void xe_gt_sriov_vf_guc_versions(struct xe_gt *gt,
|
|
struct xe_uc_fw_version *wanted,
|
|
struct xe_uc_fw_version *found);
|
|
int xe_gt_sriov_vf_query_config(struct xe_gt *gt);
|
|
int xe_gt_sriov_vf_connect(struct xe_gt *gt);
|
|
int xe_gt_sriov_vf_query_runtime(struct xe_gt *gt);
|
|
int xe_gt_sriov_vf_notify_resfix_done(struct xe_gt *gt);
|
|
void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt);
|
|
|
|
u32 xe_gt_sriov_vf_gmdid(struct xe_gt *gt);
|
|
u16 xe_gt_sriov_vf_guc_ids(struct xe_gt *gt);
|
|
u64 xe_gt_sriov_vf_lmem(struct xe_gt *gt);
|
|
u64 xe_gt_sriov_vf_ggtt(struct xe_gt *gt);
|
|
u64 xe_gt_sriov_vf_ggtt_base(struct xe_gt *gt);
|
|
s64 xe_gt_sriov_vf_ggtt_shift(struct xe_gt *gt);
|
|
|
|
u32 xe_gt_sriov_vf_read32(struct xe_gt *gt, struct xe_reg reg);
|
|
void xe_gt_sriov_vf_write32(struct xe_gt *gt, struct xe_reg reg, u32 val);
|
|
|
|
void xe_gt_sriov_vf_print_config(struct xe_gt *gt, struct drm_printer *p);
|
|
void xe_gt_sriov_vf_print_runtime(struct xe_gt *gt, struct drm_printer *p);
|
|
void xe_gt_sriov_vf_print_version(struct xe_gt *gt, struct drm_printer *p);
|
|
|
|
#endif
|