summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>2025-06-03 16:54:35 -0700
committerDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>2025-06-06 08:33:18 -0700
commit90f4d3f7562a3ce5a5706a4753a0b7b292dc7ec3 (patch)
tree470e870f9984b317221ca8774188e1211f46001b
parent10a2bc580796c0b3162e9be1445c03c3ce49a2d1 (diff)
drm/xe/vf: Boostrap all GTs immediately after MMIO init
Currently we perform the bootstrap for the primary GT early on during device init, while the media GT bootstrap happens when we try and fetch the hwconfig table. For consistency, move the bootstrap of the media GT happen at the same time as the primary GT, so that all the subsequent code can rely on both GTs being in the same state. v2: Also drop config query from min_guc_load since we now do it early (Michal) Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Link: https://lore.kernel.org/r/20250603235432.720833-8-daniele.ceraolospurio@intel.com
-rw-r--r--drivers/gpu/drm/xe/xe_device.c11
-rw-r--r--drivers/gpu/drm/xe/xe_guc.c8
2 files changed, 6 insertions, 13 deletions
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index d4b6e623aa48..7d9a31868ea9 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -802,18 +802,19 @@ int xe_device_probe(struct xe_device *xe)
* be performed.
*/
xe_gt_mmio_init(gt);
- }
- for_each_tile(tile, xe, id) {
if (IS_SRIOV_VF(xe)) {
- xe_guc_comm_init_early(&tile->primary_gt->uc.guc);
- err = xe_gt_sriov_vf_bootstrap(tile->primary_gt);
+ xe_guc_comm_init_early(&gt->uc.guc);
+ err = xe_gt_sriov_vf_bootstrap(gt);
if (err)
return err;
- err = xe_gt_sriov_vf_query_config(tile->primary_gt);
+ err = xe_gt_sriov_vf_query_config(gt);
if (err)
return err;
}
+ }
+
+ for_each_tile(tile, xe, id) {
err = xe_ggtt_init_early(tile->mem.ggtt);
if (err)
return err;
diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index 52453845d1bd..209e5d53c290 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -1102,14 +1102,6 @@ static int vf_guc_min_load_for_hwconfig(struct xe_guc *guc)
struct xe_gt *gt = guc_to_gt(guc);
int ret;
- ret = xe_gt_sriov_vf_bootstrap(gt);
- if (ret)
- return ret;
-
- ret = xe_gt_sriov_vf_query_config(gt);
- if (ret)
- return ret;
-
ret = xe_guc_hwconfig_init(guc);
if (ret)
return ret;