[Intel-xe] [PATCH] drm/xe: Remove unseless xe_force_wake_prune.

Matt Roper matthew.d.roper at intel.com
Fri Feb 17 23:05:51 UTC 2023


On Fri, Feb 17, 2023 at 12:15:35PM -0500, Rodrigo Vivi wrote:
> (!(gt->info.engine_mask & BIT(i))) cases are already
> handled in the init function. And these masks are not
> modified between the init and the prune.

Yep, on i915 we needed to prune the domains because the sequence was:
 - Setup all possible forcewake domains
 - Read hardware fusing
 - Prune the domains for fused-off units

Whereas Xe has:

 - Setup forcewake for GT domain only
 - Read hardware fusing
 - Setup forcewake for various engine domains (taking fusing into
   account).

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> 
> Suggested-by: Matt Roper <matthew.d.roper at intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_force_wake.c | 15 ---------------
>  drivers/gpu/drm/xe/xe_force_wake.h |  2 --
>  drivers/gpu/drm/xe/xe_gt.c         |  2 --
>  3 files changed, 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_force_wake.c b/drivers/gpu/drm/xe/xe_force_wake.c
> index d2080e6fbe10..5bd87118ac73 100644
> --- a/drivers/gpu/drm/xe/xe_force_wake.c
> +++ b/drivers/gpu/drm/xe/xe_force_wake.c
> @@ -100,21 +100,6 @@ void xe_force_wake_init_engines(struct xe_gt *gt, struct xe_force_wake *fw)
>  	}
>  }
>  
> -void xe_force_wake_prune(struct xe_gt *gt, struct xe_force_wake *fw)
> -{
> -	int i, j;
> -
> -	/* Call after fuses have been read, prune domains that are fused off */
> -
> -	for (i = XE_HW_ENGINE_VCS0, j = 0; i <= XE_HW_ENGINE_VCS7; ++i, ++j)
> -		if (!(gt->info.engine_mask & BIT(i)))
> -			fw->domains[XE_FW_DOMAIN_ID_MEDIA_VDBOX0 + j].reg_ctl = 0;
> -
> -	for (i = XE_HW_ENGINE_VECS0, j =0; i <= XE_HW_ENGINE_VECS3; ++i, ++j)
> -		if (!(gt->info.engine_mask & BIT(i)))
> -			fw->domains[XE_FW_DOMAIN_ID_MEDIA_VEBOX0 + j].reg_ctl = 0;
> -}
> -
>  static void domain_wake(struct xe_gt *gt, struct xe_force_wake_domain *domain)
>  {
>  	xe_mmio_write32(gt, domain->reg_ctl, domain->mask | domain->val);
> diff --git a/drivers/gpu/drm/xe/xe_force_wake.h b/drivers/gpu/drm/xe/xe_force_wake.h
> index 5adb8daa3b71..7c534cdd5fe9 100644
> --- a/drivers/gpu/drm/xe/xe_force_wake.h
> +++ b/drivers/gpu/drm/xe/xe_force_wake.h
> @@ -15,8 +15,6 @@ void xe_force_wake_init_gt(struct xe_gt *gt,
>  			   struct xe_force_wake *fw);
>  void xe_force_wake_init_engines(struct xe_gt *gt,
>  				struct xe_force_wake *fw);
> -void xe_force_wake_prune(struct  xe_gt *gt,
> -			 struct xe_force_wake *fw);
>  int xe_force_wake_get(struct xe_force_wake *fw,
>  		      enum xe_force_wake_domains domains);
>  int xe_force_wake_put(struct xe_force_wake *fw,
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index 20dbc08d3685..c17279653561 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -602,8 +602,6 @@ int xe_gt_init(struct xe_gt *gt)
>  	if (err)
>  		return err;
>  
> -	xe_force_wake_prune(gt, gt_to_fw(gt));
> -
>  	err = drmm_add_action_or_reset(&gt_to_xe(gt)->drm, gt_fini, gt);
>  	if (err)
>  		return err;
> -- 
> 2.39.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list