|
Jiri Slaby |
9cb590 |
From: "sagar.a.kamble@intel.com" <sagar.a.kamble@intel.com>
|
|
Jiri Slaby |
9cb590 |
Date: Tue, 27 Jun 2017 23:09:41 +0530
|
|
Jiri Slaby |
9cb590 |
Subject: [PATCH] drm/i915: Hold RPM wakelock while initializing OA buffer
|
|
Jiri Slaby |
9cb590 |
References: bnc#1060662
|
|
Thomas Zimmermann |
1d81d2 |
Patch-mainline: v4.12.4
|
|
Jiri Slaby |
9cb590 |
Git-commit: 04941829b0049d2446c7042ab9686dd057d809a6
|
|
Jiri Slaby |
9cb590 |
Git-commit: 987f8c444aa2c33d98e7030d0c5f0a5325cc84ea
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
commit 04941829b0049d2446c7042ab9686dd057d809a6 upstream.
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
OA buffer initialization involves access to HW registers to set
|
|
Jiri Slaby |
9cb590 |
the OA base, head and tail. Ensure device is awake while setting
|
|
Jiri Slaby |
9cb590 |
these. With this, all oa.ops are covered under RPM and forcewake
|
|
Jiri Slaby |
9cb590 |
wakelock.
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
|
|
Jiri Slaby |
9cb590 |
Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
|
|
Jiri Slaby |
9cb590 |
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
|
|
Jiri Slaby |
9cb590 |
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
Jiri Slaby |
9cb590 |
Link: http://patchwork.freedesktop.org/patch/msgid/1498585181-23048-1-git-send-email-sagar.a.kamble@intel.com
|
|
Jiri Slaby |
9cb590 |
Fixes: d79651522e89c ("drm/i915: Enable i915 perf stream for Haswell OA unit")
|
|
Jiri Slaby |
9cb590 |
(cherry picked from commit 987f8c444aa2c33d98e7030d0c5f0a5325cc84ea)
|
|
Jiri Slaby |
9cb590 |
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Jiri Slaby |
9cb590 |
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Jiri Slaby |
9cb590 |
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
Jiri Slaby |
9cb590 |
---
|
|
Jiri Slaby |
9cb590 |
drivers/gpu/drm/i915/i915_perf.c | 12 ++++++------
|
|
Jiri Slaby |
9cb590 |
1 file changed, 6 insertions(+), 6 deletions(-)
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
|
|
Jiri Slaby |
9cb590 |
index 060b171480d5..aac84dda532c 100644
|
|
Jiri Slaby |
9cb590 |
--- a/drivers/gpu/drm/i915/i915_perf.c
|
|
Jiri Slaby |
9cb590 |
+++ b/drivers/gpu/drm/i915/i915_perf.c
|
|
Jiri Slaby |
9cb590 |
@@ -1210,10 +1210,6 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream,
|
|
Jiri Slaby |
9cb590 |
return ret;
|
|
Jiri Slaby |
9cb590 |
}
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
- ret = alloc_oa_buffer(dev_priv);
|
|
Jiri Slaby |
9cb590 |
- if (ret)
|
|
Jiri Slaby |
9cb590 |
- goto err_oa_buf_alloc;
|
|
Jiri Slaby |
9cb590 |
-
|
|
Jiri Slaby |
9cb590 |
/* PRM - observability performance counters:
|
|
Jiri Slaby |
9cb590 |
*
|
|
Jiri Slaby |
9cb590 |
* OACONTROL, performance counter enable, note:
|
|
Jiri Slaby |
9cb590 |
@@ -1229,6 +1225,10 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream,
|
|
Jiri Slaby |
9cb590 |
intel_runtime_pm_get(dev_priv);
|
|
Jiri Slaby |
9cb590 |
intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
+ ret = alloc_oa_buffer(dev_priv);
|
|
Jiri Slaby |
9cb590 |
+ if (ret)
|
|
Jiri Slaby |
9cb590 |
+ goto err_oa_buf_alloc;
|
|
Jiri Slaby |
9cb590 |
+
|
|
Jiri Slaby |
9cb590 |
ret = dev_priv->perf.oa.ops.enable_metric_set(dev_priv);
|
|
Jiri Slaby |
9cb590 |
if (ret)
|
|
Jiri Slaby |
9cb590 |
goto err_enable;
|
|
Jiri Slaby |
9cb590 |
@@ -1240,11 +1240,11 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream,
|
|
Jiri Slaby |
9cb590 |
return 0;
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
err_enable:
|
|
Jiri Slaby |
9cb590 |
- intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
|
|
Jiri Slaby |
9cb590 |
- intel_runtime_pm_put(dev_priv);
|
|
Jiri Slaby |
9cb590 |
free_oa_buffer(dev_priv);
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
err_oa_buf_alloc:
|
|
Jiri Slaby |
9cb590 |
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
|
|
Jiri Slaby |
9cb590 |
+ intel_runtime_pm_put(dev_priv);
|
|
Jiri Slaby |
9cb590 |
if (stream->ctx)
|
|
Jiri Slaby |
9cb590 |
oa_put_render_ctx_id(stream);
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
--
|
|
Jiri Slaby |
9cb590 |
2.14.2
|
|
Jiri Slaby |
9cb590 |
|