[Intel-gfx] [PATCH 9/9] drm/i915: Move intel_guc_allocate_vma to guc.c
Sagar Arun Kamble
sagar.a.kamble at intel.com
Sat Sep 30 17:41:37 UTC 2017
On 9/29/2017 11:11 PM, Michal Wajdeczko wrote:
> We want to keep GuC functions together.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Sagar Arun Kamble <sagar.a.kamble at intel.com>
Reviewed-by: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> ---
> drivers/gpu/drm/i915/i915_guc_submission.c | 42 ------------------------------
> drivers/gpu/drm/i915/intel_guc.c | 42 ++++++++++++++++++++++++++++++
> drivers/gpu/drm/i915/intel_guc.h | 2 +-
> 3 files changed, 43 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
> index f70a875..89e2a9c 100644
> --- a/drivers/gpu/drm/i915/i915_guc_submission.c
> +++ b/drivers/gpu/drm/i915/i915_guc_submission.c
> @@ -643,48 +643,6 @@ static void i915_guc_irq_handler(unsigned long data)
> * path of i915_guc_submit() above.
> */
>
> -/**
> - * intel_guc_allocate_vma() - Allocate a GGTT VMA for GuC usage
> - * @guc: the guc
> - * @size: size of area to allocate (both virtual space and memory)
> - *
> - * This is a wrapper to create an object for use with the GuC. In order to
> - * use it inside the GuC, an object needs to be pinned lifetime, so we allocate
> - * both some backing storage and a range inside the Global GTT. We must pin
> - * it in the GGTT somewhere other than than [0, GUC_WOPCM_TOP) because that
> - * range is reserved inside GuC.
> - *
> - * Return: A i915_vma if successful, otherwise an ERR_PTR.
> - */
> -struct i915_vma *intel_guc_allocate_vma(struct intel_guc *guc, u32 size)
> -{
> - struct drm_i915_private *dev_priv = guc_to_i915(guc);
> - struct drm_i915_gem_object *obj;
> - struct i915_vma *vma;
> - int ret;
> -
> - obj = i915_gem_object_create(dev_priv, size);
> - if (IS_ERR(obj))
> - return ERR_CAST(obj);
> -
> - vma = i915_vma_instance(obj, &dev_priv->ggtt.base, NULL);
> - if (IS_ERR(vma))
> - goto err;
> -
> - ret = i915_vma_pin(vma, 0, PAGE_SIZE,
> - PIN_GLOBAL | PIN_OFFSET_BIAS | GUC_WOPCM_TOP);
> - if (ret) {
> - vma = ERR_PTR(ret);
> - goto err;
> - }
> -
> - return vma;
> -
> -err:
> - i915_gem_object_put(obj);
> - return vma;
> -}
> -
> /* Check that a doorbell register is in the expected state */
> static bool doorbell_ok(struct intel_guc *guc, u16 db_id)
> {
> diff --git a/drivers/gpu/drm/i915/intel_guc.c b/drivers/gpu/drm/i915/intel_guc.c
> index 793cf49..d337ac2 100644
> --- a/drivers/gpu/drm/i915/intel_guc.c
> +++ b/drivers/gpu/drm/i915/intel_guc.c
> @@ -219,3 +219,45 @@ int intel_guc_resume(struct drm_i915_private *dev_priv)
>
> return intel_guc_send(guc, data, ARRAY_SIZE(data));
> }
> +
> +/**
> + * intel_guc_allocate_vma() - Allocate a GGTT VMA for GuC usage
> + * @guc: the guc
> + * @size: size of area to allocate (both virtual space and memory)
> + *
> + * This is a wrapper to create an object for use with the GuC. In order to
> + * use it inside the GuC, an object needs to be pinned lifetime, so we allocate
> + * both some backing storage and a range inside the Global GTT. We must pin
> + * it in the GGTT somewhere other than than [0, GUC_WOPCM_TOP) because that
> + * range is reserved inside GuC.
> + *
> + * Return: A i915_vma if successful, otherwise an ERR_PTR.
> + */
> +struct i915_vma *intel_guc_allocate_vma(struct intel_guc *guc, u32 size)
> +{
> + struct drm_i915_private *i915 = guc_to_i915(guc);
> + struct drm_i915_gem_object *obj;
> + struct i915_vma *vma;
> + int ret;
> +
> + obj = i915_gem_object_create(i915, size);
> + if (IS_ERR(obj))
> + return ERR_CAST(obj);
> +
> + vma = i915_vma_instance(obj, &i915->ggtt.base, NULL);
> + if (IS_ERR(vma))
> + goto err;
> +
> + ret = i915_vma_pin(vma, 0, PAGE_SIZE,
> + PIN_GLOBAL | PIN_OFFSET_BIAS | GUC_WOPCM_TOP);
> + if (ret) {
> + vma = ERR_PTR(ret);
> + goto err;
> + }
> +
> + return vma;
> +
> +err:
> + i915_gem_object_put(obj);
> + return vma;
> +}
> diff --git a/drivers/gpu/drm/i915/intel_guc.h b/drivers/gpu/drm/i915/intel_guc.h
> index ffedb06..45acfbd 100644
> --- a/drivers/gpu/drm/i915/intel_guc.h
> +++ b/drivers/gpu/drm/i915/intel_guc.h
> @@ -151,6 +151,7 @@ int intel_guc_sample_forcewake(struct intel_guc *guc);
> int intel_guc_auth_huc(struct intel_guc *guc, u32 rsa_offset);
> int intel_guc_suspend(struct drm_i915_private *dev_priv);
> int intel_guc_resume(struct drm_i915_private *dev_priv);
> +struct i915_vma *intel_guc_allocate_vma(struct intel_guc *guc, u32 size);
>
> /* intel_guc_loader.c */
> int intel_guc_select_fw(struct intel_guc *guc);
> @@ -162,7 +163,6 @@ int i915_guc_submission_init(struct drm_i915_private *dev_priv);
> int i915_guc_submission_enable(struct drm_i915_private *dev_priv);
> void i915_guc_submission_disable(struct drm_i915_private *dev_priv);
> void i915_guc_submission_fini(struct drm_i915_private *dev_priv);
> -struct i915_vma *intel_guc_allocate_vma(struct intel_guc *guc, u32 size);
>
> /* intel_guc_log.c */
> int intel_guc_log_create(struct intel_guc *guc);
More information about the Intel-gfx
mailing list