mirror of
https://github.com/torvalds/linux.git
synced 2026-06-06 13:37:36 +02:00
drm/xe/vf: Enable VF migration only on supported GuC versions
Enable VF migration starting with GuC 70.54.0 (compatibility version 1.27.0) which supports additional VF2GUC_RESFIX_START message required to handle migration recovery in a more robust way. Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Matthew Brost <matthew.brost@intel.com> Cc: Tomasz Lis <tomasz.lis@intel.com> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Link: https://patch.msgid.link/20251201095011.21453-7-satyanarayana.k.v.p@intel.com
This commit is contained in:
parent
aa8225d4ee
commit
2e2dab20dd
|
|
@ -170,6 +170,26 @@ void xe_sriov_vf_init_early(struct xe_device *xe)
|
||||||
vf_migration_init_early(xe);
|
vf_migration_init_early(xe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool vf_migration_init_late(struct xe_device *xe)
|
||||||
|
{
|
||||||
|
struct xe_gt *gt = xe_root_mmio_gt(xe);
|
||||||
|
struct xe_uc_fw_version guc_version;
|
||||||
|
|
||||||
|
if (!xe_sriov_vf_migration_supported(xe))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
xe_gt_sriov_vf_guc_versions(gt, NULL, &guc_version);
|
||||||
|
if (MAKE_GUC_VER_STRUCT(guc_version) < MAKE_GUC_VER(1, 27, 0)) {
|
||||||
|
xe_sriov_vf_migration_disable(xe,
|
||||||
|
"requires GuC ABI >= 1.27.0, but only %u.%u.%u found",
|
||||||
|
guc_version.major, guc_version.minor,
|
||||||
|
guc_version.patch);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return xe_sriov_vf_ccs_init(xe);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* xe_sriov_vf_init_late() - SR-IOV VF late initialization functions.
|
* xe_sriov_vf_init_late() - SR-IOV VF late initialization functions.
|
||||||
* @xe: the &xe_device to initialize
|
* @xe: the &xe_device to initialize
|
||||||
|
|
@ -180,7 +200,7 @@ void xe_sriov_vf_init_early(struct xe_device *xe)
|
||||||
*/
|
*/
|
||||||
int xe_sriov_vf_init_late(struct xe_device *xe)
|
int xe_sriov_vf_init_late(struct xe_device *xe)
|
||||||
{
|
{
|
||||||
return xe_sriov_vf_ccs_init(xe);
|
return vf_migration_init_late(xe);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sa_info_vf_ccs(struct seq_file *m, void *data)
|
static int sa_info_vf_ccs(struct seq_file *m, void *data)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user