[Intel-gfx] [PATCH 1/1] drm/i915: Hold RPM wakelock while initializing OA buffer

Lionel Landwerlin lionel.g.landwerlin at intel.com
Thu Jun 29 09:35:25 UTC 2017


Cc: drm-intel-fixes at lists.freedesktop.org
Fixes: d79651522e89c ("drm/i915: Enable i915 perf stream for Haswell OA 
unit")

On 27/06/17 18:39, Sagar Arun Kamble wrote:
> OA buffer initialization involves access to HW registers to set
> the OA base, head and tail. Ensure device is awake while setting
> these. With this, all oa.ops are covered under RPM and forcewake
> wakelock.
>
> Cc: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> Signed-off-by: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> ---
>   drivers/gpu/drm/i915/i915_perf.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 38c4440..9cd22f8 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -2067,10 +2067,6 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream,
>   			return ret;
>   	}
>   
> -	ret = alloc_oa_buffer(dev_priv);
> -	if (ret)
> -		goto err_oa_buf_alloc;
> -
>   	/* PRM - observability performance counters:
>   	 *
>   	 *   OACONTROL, performance counter enable, note:
> @@ -2086,6 +2082,10 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream,
>   	intel_runtime_pm_get(dev_priv);
>   	intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
>   
> +	ret = alloc_oa_buffer(dev_priv);
> +	if (ret)
> +		goto err_oa_buf_alloc;
> +
>   	ret = dev_priv->perf.oa.ops.enable_metric_set(dev_priv);
>   	if (ret)
>   		goto err_enable;
> @@ -2097,11 +2097,11 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream,
>   	return 0;
>   
>   err_enable:
> -	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
> -	intel_runtime_pm_put(dev_priv);
>   	free_oa_buffer(dev_priv);
>   
>   err_oa_buf_alloc:
> +	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
> +	intel_runtime_pm_put(dev_priv);
>   	if (stream->ctx)
>   		oa_put_render_ctx_id(stream);
>   




More information about the Intel-gfx mailing list