Commit 6619c007 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915/perf: Track the rpm wakeref



Keep track of our wakeref used to keep the device awake so we can catch
any leak.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190114142129.24398-7-chris@chris-wilson.co.uk
parent a037121c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1333,6 +1333,8 @@ struct i915_perf_stream {
	 */
	struct list_head link;

	intel_wakeref_t wakeref;

	/**
	 * @sample_flags: Flags representing the `DRM_I915_PERF_PROP_SAMPLE_*`
	 * properties given when opening a stream, representing the contents
+3 −3
Original line number Diff line number Diff line
@@ -1365,7 +1365,7 @@ static void i915_oa_stream_destroy(struct i915_perf_stream *stream)
	free_oa_buffer(dev_priv);

	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
	intel_runtime_pm_put_unchecked(dev_priv);
	intel_runtime_pm_put(dev_priv, stream->wakeref);

	if (stream->ctx)
		oa_put_render_ctx_id(stream);
@@ -2087,7 +2087,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.
	 */
	intel_runtime_pm_get(dev_priv);
	stream->wakeref = intel_runtime_pm_get(dev_priv);
	intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);

	ret = alloc_oa_buffer(dev_priv);
@@ -2123,7 +2123,7 @@ err_oa_buf_alloc:
	put_oa_config(dev_priv, stream->oa_config);

	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
	intel_runtime_pm_put_unchecked(dev_priv);
	intel_runtime_pm_put(dev_priv, stream->wakeref);

err_config:
	if (stream->ctx)