[Intel-gfx] [PATCH 02/11] drm/i915/uc: replace uc init/fini misc

Michal Wajdeczko michal.wajdeczko at intel.com
Sat Jul 13 17:32:02 UTC 2019


On Sat, 13 Jul 2019 12:00:07 +0200, Chris Wilson  
<chris at chris-wilson.co.uk> wrote:

> From: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
>
> The "misc" terminology doesn't clearly explain what we intend to cover
> in this phase. The only thing we do in there apart from FW fetch is
> initializing the log workqueue, with the latter being required only in
> the very rare case where we enable the log relay. To clean this up, we
> can move the wq init to when the relay is enabled and rename the
> function to clarify that they only fetch/release the blobs.
>
> v2: only create log wq when needed (Michal), reword commit msg
> accordingly
>
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
> ---

Commit message needs fixup, as now wq is already gone; with that,

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


>  drivers/gpu/drm/i915/i915_gem.c  | 12 +++++------
>  drivers/gpu/drm/i915/intel_guc.c | 14 -------------
>  drivers/gpu/drm/i915/intel_guc.h |  2 --
>  drivers/gpu/drm/i915/intel_huc.c |  8 --------
>  drivers/gpu/drm/i915/intel_huc.h |  6 ------
>  drivers/gpu/drm/i915/intel_uc.c  | 34 ++++++++------------------------
>  drivers/gpu/drm/i915/intel_uc.h  |  4 ++--
>  7 files changed, 15 insertions(+), 65 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c  
> b/drivers/gpu/drm/i915/i915_gem.c
> index e24955b5ebc2..f62dbd8c86de 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1433,13 +1433,11 @@ int i915_gem_init(struct drm_i915_private  
> *dev_priv)
>  	if (ret)
>  		return ret;
> -	ret = intel_uc_init_misc(dev_priv);
> -	if (ret)
> -		return ret;
> +	intel_uc_fetch_firmwares(dev_priv);
> 	ret = intel_wopcm_init(&dev_priv->wopcm);
>  	if (ret)
> -		goto err_uc_misc;
> +		goto err_uc_fw;
> 	/* This is just a security blanket to placate dragons.
>  	 * On some systems, we very sporadically observe that the first TLBs
> @@ -1565,8 +1563,8 @@ int i915_gem_init(struct drm_i915_private  
> *dev_priv)
>  	intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
>  	mutex_unlock(&dev_priv->drm.struct_mutex);
> -err_uc_misc:
> -	intel_uc_fini_misc(dev_priv);
> +err_uc_fw:
> +	intel_uc_cleanup_firmwares(dev_priv);
> 	if (ret != -EIO) {
>  		i915_gem_cleanup_userptr(dev_priv);
> @@ -1632,7 +1630,7 @@ void i915_gem_driver_release(struct  
> drm_i915_private *dev_priv)
> 	intel_cleanup_gt_powersave(dev_priv);
> -	intel_uc_fini_misc(dev_priv);
> +	intel_uc_cleanup_firmwares(dev_priv);
>  	i915_gem_cleanup_userptr(dev_priv);
>  	intel_timelines_fini(dev_priv);
> diff --git a/drivers/gpu/drm/i915/intel_guc.c  
> b/drivers/gpu/drm/i915/intel_guc.c
> index 183ab9b03ed0..4173b35bf104 100644
> --- a/drivers/gpu/drm/i915/intel_guc.c
> +++ b/drivers/gpu/drm/i915/intel_guc.c
> @@ -99,20 +99,6 @@ void intel_guc_init_early(struct intel_guc *guc)
>  	}
>  }
> -int intel_guc_init_misc(struct intel_guc *guc)
> -{
> -	struct drm_i915_private *i915 = guc_to_i915(guc);
> -
> -	intel_uc_fw_fetch(i915, &guc->fw);
> -
> -	return 0;
> -}
> -
> -void intel_guc_fini_misc(struct intel_guc *guc)
> -{
> -	intel_uc_fw_cleanup_fetch(&guc->fw);
> -}
> -
>  static int guc_shared_data_create(struct intel_guc *guc)
>  {
>  	struct i915_vma *vma;
> diff --git a/drivers/gpu/drm/i915/intel_guc.h  
> b/drivers/gpu/drm/i915/intel_guc.h
> index ec1038c1f50e..91d538fd5f65 100644
> --- a/drivers/gpu/drm/i915/intel_guc.h
> +++ b/drivers/gpu/drm/i915/intel_guc.h
> @@ -153,10 +153,8 @@ static inline u32 intel_guc_ggtt_offset(struct  
> intel_guc *guc,
>  void intel_guc_init_early(struct intel_guc *guc);
>  void intel_guc_init_send_regs(struct intel_guc *guc);
>  void intel_guc_init_params(struct intel_guc *guc);
> -int intel_guc_init_misc(struct intel_guc *guc);
>  int intel_guc_init(struct intel_guc *guc);
>  void intel_guc_fini(struct intel_guc *guc);
> -void intel_guc_fini_misc(struct intel_guc *guc);
>  int intel_guc_send_nop(struct intel_guc *guc, const u32 *action, u32  
> len,
>  		       u32 *response_buf, u32 response_buf_size);
>  int intel_guc_send_mmio(struct intel_guc *guc, const u32 *action, u32  
> len,
> diff --git a/drivers/gpu/drm/i915/intel_huc.c  
> b/drivers/gpu/drm/i915/intel_huc.c
> index fb6f693d3cac..2a41ee89a16d 100644
> --- a/drivers/gpu/drm/i915/intel_huc.c
> +++ b/drivers/gpu/drm/i915/intel_huc.c
> @@ -44,14 +44,6 @@ void intel_huc_init_early(struct intel_huc *huc)
>  	}
>  }
> -int intel_huc_init_misc(struct intel_huc *huc)
> -{
> -	struct drm_i915_private *i915 = huc_to_i915(huc);
> -
> -	intel_uc_fw_fetch(i915, &huc->fw);
> -	return 0;
> -}
> -
>  static int intel_huc_rsa_data_create(struct intel_huc *huc)
>  {
>  	struct drm_i915_private *i915 = huc_to_i915(huc);
> diff --git a/drivers/gpu/drm/i915/intel_huc.h  
> b/drivers/gpu/drm/i915/intel_huc.h
> index 2a6c94e79f17..9fa3d4629f2e 100644
> --- a/drivers/gpu/drm/i915/intel_huc.h
> +++ b/drivers/gpu/drm/i915/intel_huc.h
> @@ -45,17 +45,11 @@ struct intel_huc {
>  };
> void intel_huc_init_early(struct intel_huc *huc);
> -int intel_huc_init_misc(struct intel_huc *huc);
>  int intel_huc_init(struct intel_huc *huc);
>  void intel_huc_fini(struct intel_huc *huc);
>  int intel_huc_auth(struct intel_huc *huc);
>  int intel_huc_check_status(struct intel_huc *huc);
> -static inline void intel_huc_fini_misc(struct intel_huc *huc)
> -{
> -	intel_uc_fw_cleanup_fetch(&huc->fw);
> -}
> -
>  static inline int intel_huc_sanitize(struct intel_huc *huc)
>  {
>  	intel_uc_fw_sanitize(&huc->fw);
> diff --git a/drivers/gpu/drm/i915/intel_uc.c  
> b/drivers/gpu/drm/i915/intel_uc.c
> index bc589efd3a6d..00baaccc2f1c 100644
> --- a/drivers/gpu/drm/i915/intel_uc.c
> +++ b/drivers/gpu/drm/i915/intel_uc.c
> @@ -349,44 +349,26 @@ static void guc_disable_communication(struct  
> intel_guc *guc)
>  	DRM_INFO("GuC communication disabled\n");
>  }
> -int intel_uc_init_misc(struct drm_i915_private *i915)
> +void intel_uc_fetch_firmwares(struct drm_i915_private *i915)
>  {
> -	struct intel_guc *guc = &i915->guc;
> -	struct intel_huc *huc = &i915->huc;
> -	int ret;
> -
>  	if (!USES_GUC(i915))
> -		return 0;
> -
> -	ret = intel_guc_init_misc(guc);
> -	if (ret)
> -		return ret;
> -
> -	if (USES_HUC(i915)) {
> -		ret = intel_huc_init_misc(huc);
> -		if (ret)
> -			goto err_guc;
> -	}
> +		return;
> -	return 0;
> +	intel_uc_fw_fetch(i915, &i915->guc.fw);
> -err_guc:
> -	intel_guc_fini_misc(guc);
> -	return ret;
> +	if (USES_HUC(i915))
> +		intel_uc_fw_fetch(i915, &i915->huc.fw);
>  }
> -void intel_uc_fini_misc(struct drm_i915_private *i915)
> +void intel_uc_cleanup_firmwares(struct drm_i915_private *i915)
>  {
> -	struct intel_guc *guc = &i915->guc;
> -	struct intel_huc *huc = &i915->huc;
> -
>  	if (!USES_GUC(i915))
>  		return;
> 	if (USES_HUC(i915))
> -		intel_huc_fini_misc(huc);
> +		intel_uc_fw_cleanup_fetch(&i915->huc.fw);
> -	intel_guc_fini_misc(guc);
> +	intel_uc_fw_cleanup_fetch(&i915->guc.fw);
>  }
> int intel_uc_init(struct drm_i915_private *i915)
> diff --git a/drivers/gpu/drm/i915/intel_uc.h  
> b/drivers/gpu/drm/i915/intel_uc.h
> index 3ea06c87dfcd..5a1383e192dd 100644
> --- a/drivers/gpu/drm/i915/intel_uc.h
> +++ b/drivers/gpu/drm/i915/intel_uc.h
> @@ -31,8 +31,8 @@
>  void intel_uc_init_early(struct drm_i915_private *dev_priv);
>  void intel_uc_cleanup_early(struct drm_i915_private *dev_priv);
>  void intel_uc_init_mmio(struct drm_i915_private *dev_priv);
> -int intel_uc_init_misc(struct drm_i915_private *dev_priv);
> -void intel_uc_fini_misc(struct drm_i915_private *dev_priv);
> +void intel_uc_fetch_firmwares(struct drm_i915_private *dev_priv);
> +void intel_uc_cleanup_firmwares(struct drm_i915_private *dev_priv);
>  void intel_uc_sanitize(struct drm_i915_private *dev_priv);
>  int intel_uc_init_hw(struct drm_i915_private *dev_priv);
>  void intel_uc_fini_hw(struct drm_i915_private *dev_priv);


More information about the Intel-gfx mailing list