[Intel-gfx] [PATCH 01/14] drm/i915/guc: Pass intel_guc struct as parameter to intel_guc_wopcm_size

Michal Wajdeczko michal.wajdeczko at intel.com
Tue Sep 19 20:17:20 UTC 2017


On Tue, 19 Sep 2017 19:27:38 +0200, Sagar Arun Kamble  
<sagar.a.kamble at intel.com> wrote:

> Pass intel_guc struct as parameter to intel_guc_wopcm_size instead of
> drm_i915_private. intel_guc_suspend/resume parameters are not updated in
> this patch as those functions are updated in the upcoming patches.
>

hmm, missing answer to the "why" question.

> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: MichaƂ Winiarski <michal.winiarski at intel.com>
> Signed-off-by: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_guc_loader.c | 3 ++-
>  drivers/gpu/drm/i915/intel_uc.c         | 4 ++--
>  drivers/gpu/drm/i915/intel_uc.h         | 2 +-
>  3 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c  
> b/drivers/gpu/drm/i915/intel_guc_loader.c
> index 8b0ae7f..6ee7c16 100644
> --- a/drivers/gpu/drm/i915/intel_guc_loader.c
> +++ b/drivers/gpu/drm/i915/intel_guc_loader.c
> @@ -250,8 +250,9 @@ static int guc_ucode_xfer_dma(struct  
> drm_i915_private *dev_priv,
>  	return ret;
>  }
> -u32 intel_guc_wopcm_size(struct drm_i915_private *dev_priv)
> +u32 intel_guc_wopcm_size(struct intel_guc *guc)

Maybe better option would be to convert this function into inline
as it is used only in uc.c file.

Michal

>  {
> +	struct drm_i915_private *dev_priv = guc_to_i915(guc);
>  	u32 wopcm_size = GUC_WOPCM_TOP;
> 	/* On BXT, the top of WOPCM is reserved for RC6 context */
> diff --git a/drivers/gpu/drm/i915/intel_uc.c  
> b/drivers/gpu/drm/i915/intel_uc.c
> index 0178ba4..b91f848 100644
> --- a/drivers/gpu/drm/i915/intel_uc.c
> +++ b/drivers/gpu/drm/i915/intel_uc.c
> @@ -188,7 +188,7 @@ static void fetch_uc_fw(struct drm_i915_private  
> *dev_priv,
>  		size = uc_fw->header_size + uc_fw->ucode_size;
> 		/* Top 32k of WOPCM is reserved (8K stack + 24k RC6 context). */
> -		if (size > intel_guc_wopcm_size(dev_priv)) {
> +		if (size > intel_guc_wopcm_size(&dev_priv->guc)) {
>  			DRM_ERROR("Firmware is too large to fit in WOPCM\n");
>  			goto fail;
>  		}
> @@ -353,7 +353,7 @@ int intel_uc_init_hw(struct drm_i915_private  
> *dev_priv)
>  	}
> 	/* init WOPCM */
> -	I915_WRITE(GUC_WOPCM_SIZE, intel_guc_wopcm_size(dev_priv));
> +	I915_WRITE(GUC_WOPCM_SIZE, intel_guc_wopcm_size(guc));
>  	I915_WRITE(DMA_GUC_WOPCM_OFFSET,
>  		   GUC_WOPCM_OFFSET_VALUE | HUC_LOADING_AGENT_GUC);
> diff --git a/drivers/gpu/drm/i915/intel_uc.h  
> b/drivers/gpu/drm/i915/intel_uc.h
> index 7703c9a..8560a7e 100644
> --- a/drivers/gpu/drm/i915/intel_uc.h
> +++ b/drivers/gpu/drm/i915/intel_uc.h
> @@ -227,7 +227,7 @@ static inline void intel_guc_notify(struct intel_guc  
> *guc)
>  int intel_guc_init_hw(struct intel_guc *guc);
>  int intel_guc_suspend(struct drm_i915_private *dev_priv);
>  int intel_guc_resume(struct drm_i915_private *dev_priv);
> -u32 intel_guc_wopcm_size(struct drm_i915_private *dev_priv);
> +u32 intel_guc_wopcm_size(struct intel_guc *guc);
> /* i915_guc_submission.c */
>  int i915_guc_submission_init(struct drm_i915_private *dev_priv);


More information about the Intel-gfx mailing list