[Intel-gfx] [PATCH 01/14] drm/i915/guc: Pass intel_guc struct as parameter to intel_guc_wopcm_size
Kamble, Sagar A
sagar.a.kamble at intel.com
Wed Sep 20 11:13:31 UTC 2017
On 9/20/2017 1:47 AM, Michal Wajdeczko wrote:
> 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.
To maintain the symmetry with other intel_guc* functions defined in
intel_guc_loader.c I changed this even though this only accesses dev_priv.
Also thought in future some member in intel_guc will have info about
wopcm size. But currently since it only depends on dev_priv I think
it makes more sense to move this as inline into intel_uc.c as you said
below.
>
>> 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