[PATCH v3 2/4] drm/xe/vf: Boostrap all GTs immediately after MMIO init

Michal Wajdeczko michal.wajdeczko at intel.com
Wed Jun 4 08:31:41 UTC 2025



On 04.06.2025 01:54, Daniele Ceraolo Spurio wrote:
> 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 at intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>

Reviewed-by: Michal Wajdeczko <michal.wajdeczko at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_device.c | 11 ++++++-----
>  drivers/gpu/drm/xe/xe_guc.c    |  8 --------
>  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 660b0c5126dc..7e87344943cd 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -798,18 +798,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;



More information about the Intel-xe mailing list