From a5efcde69b112d276416f8e6e5e9fd8ede13bfc5 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 11 Oct 2019 20:03:17 +0100 Subject: [PATCH] drm/i915/perf: Replace global wakeref tracking with engine-pm As we now have a specific engine to use OA on, exchange the top-level runtime-pm wakeref with the engine-pm. This still results in the same top-level runtime-pm, but with more nuances to keep the engine and its gt awake. Signed-off-by: Chris Wilson Reviewed-by: Lionel Landwerlin Link: https://patchwork.freedesktop.org/patch/msgid/20191011190325.10979-1-chris@chris-wilson.co.uk --- drivers/gpu/drm/i915/i915_perf.c | 8 ++++---- drivers/gpu/drm/i915/i915_perf_types.h | 6 ------ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c index 77c3cef64548..c4a436dfb7db 100644 --- a/drivers/gpu/drm/i915/i915_perf.c +++ b/drivers/gpu/drm/i915/i915_perf.c @@ -196,7 +196,7 @@ #include #include "gem/i915_gem_context.h" -#include "gem/i915_gem_pm.h" +#include "gt/intel_engine_pm.h" #include "gt/intel_engine_user.h" #include "gt/intel_lrc_reg.h" @@ -1353,7 +1353,7 @@ static void i915_oa_stream_destroy(struct i915_perf_stream *stream) free_oa_buffer(stream); intel_uncore_forcewake_put(stream->uncore, FORCEWAKE_ALL); - intel_runtime_pm_put(stream->uncore->rpm, stream->wakeref); + intel_engine_pm_put(stream->engine); if (stream->ctx) oa_put_render_ctx_id(stream); @@ -2218,7 +2218,7 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream, * In our case we are expecting that taking pm + FORCEWAKE * references will effectively disable RC6. */ - stream->wakeref = intel_runtime_pm_get(stream->uncore->rpm); + intel_engine_pm_get(stream->engine); intel_uncore_forcewake_get(stream->uncore, FORCEWAKE_ALL); ret = alloc_oa_buffer(stream); @@ -2252,7 +2252,7 @@ err_oa_buf_alloc: put_oa_config(stream->oa_config); intel_uncore_forcewake_put(stream->uncore, FORCEWAKE_ALL); - intel_runtime_pm_put(stream->uncore->rpm, stream->wakeref); + intel_engine_pm_put(stream->engine); err_config: if (stream->ctx) diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h index a91ae2d1a543..eb8d1ebd5095 100644 --- a/drivers/gpu/drm/i915/i915_perf_types.h +++ b/drivers/gpu/drm/i915/i915_perf_types.h @@ -135,12 +135,6 @@ struct i915_perf_stream { struct intel_uncore *uncore; /** - * @wakeref: As we keep the device awake while the perf stream is - * active, we track our runtime pm reference for later release. - */ - intel_wakeref_t wakeref; - - /** * @engine: Engine associated with this performance stream. */ struct intel_engine_cs *engine; -- 2.11.0