aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Kuoppala <mika.kuoppala@linux.intel.com>2013-05-13 09:32:09 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-05-31 14:53:53 -0400
commit79ee20dc85072b0edfb5e461799d192a9cc9d422 (patch)
treebd5b154c39d4a21dba7565767f2b1dc79601b11f
parent526682e9fabf22e82a02383e8f864a7330b73b25 (diff)
drm/i915: pass seqno to i915_hangcheck_ring_idle
In preparation for next commit, pass seqno as a parameter to i915_hangcheck_ring_idle as it will be used inside i915_hangcheck_elapsed. Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Reviewed-by: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 879c4ccb00db..0e5c9b0cc5a6 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2274,11 +2274,11 @@ ring_last_seqno(struct intel_ring_buffer *ring)
2274 struct drm_i915_gem_request, list)->seqno; 2274 struct drm_i915_gem_request, list)->seqno;
2275} 2275}
2276 2276
2277static bool i915_hangcheck_ring_idle(struct intel_ring_buffer *ring, bool *err) 2277static bool i915_hangcheck_ring_idle(struct intel_ring_buffer *ring,
2278 u32 ring_seqno, bool *err)
2278{ 2279{
2279 if (list_empty(&ring->request_list) || 2280 if (list_empty(&ring->request_list) ||
2280 i915_seqno_passed(ring->get_seqno(ring, false), 2281 i915_seqno_passed(ring_seqno, ring_last_seqno(ring))) {
2281 ring_last_seqno(ring))) {
2282 /* Issue a wake-up to catch stuck h/w. */ 2282 /* Issue a wake-up to catch stuck h/w. */
2283 if (waitqueue_active(&ring->irq_queue)) { 2283 if (waitqueue_active(&ring->irq_queue)) {
2284 DRM_ERROR("Hangcheck timer elapsed... %s idle\n", 2284 DRM_ERROR("Hangcheck timer elapsed... %s idle\n",
@@ -2395,7 +2395,10 @@ void i915_hangcheck_elapsed(unsigned long data)
2395 memset(acthd, 0, sizeof(acthd)); 2395 memset(acthd, 0, sizeof(acthd));
2396 idle = true; 2396 idle = true;
2397 for_each_ring(ring, dev_priv, i) { 2397 for_each_ring(ring, dev_priv, i) {
2398 idle &= i915_hangcheck_ring_idle(ring, &err); 2398 u32 seqno;
2399
2400 seqno = ring->get_seqno(ring, false);
2401 idle &= i915_hangcheck_ring_idle(ring, seqno, &err);
2399 acthd[i] = intel_ring_get_active_head(ring); 2402 acthd[i] = intel_ring_get_active_head(ring);
2400 } 2403 }
2401 2404