diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-11-22 08:24:13 -0500 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-11-25 10:03:24 -0500 |
commit | ab5793ad3ae11a5cbe2194b449e5fdd80b19f14f (patch) | |
tree | f4e6c86471319bfac3b3fc2e377773cc7c51b407 | |
parent | 312817a39f17dbb4de000165b5b724e3728cd91c (diff) |
drm/i915: Tweak on-error bbaddr parsing for clarity
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index de95c7bb6dba..9aa1e1dc5fd5 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c | |||
@@ -525,26 +525,23 @@ i915_ringbuffer_last_batch(struct drm_device *dev, | |||
525 | /* Locate the current position in the ringbuffer and walk back | 525 | /* Locate the current position in the ringbuffer and walk back |
526 | * to find the most recently dispatched batch buffer. | 526 | * to find the most recently dispatched batch buffer. |
527 | */ | 527 | */ |
528 | bbaddr = 0; | ||
529 | head = I915_READ_HEAD(ring) & HEAD_ADDR; | 528 | head = I915_READ_HEAD(ring) & HEAD_ADDR; |
530 | val = (u32 *)(ring->virtual_start + head); | ||
531 | 529 | ||
530 | val = (u32 *)(ring->virtual_start + head); | ||
532 | while (--val >= (u32 *)ring->virtual_start) { | 531 | while (--val >= (u32 *)ring->virtual_start) { |
533 | bbaddr = i915_get_bbaddr(dev, val); | 532 | bbaddr = i915_get_bbaddr(dev, val); |
534 | if (bbaddr) | 533 | if (bbaddr) |
535 | break; | 534 | return bbaddr; |
536 | } | 535 | } |
537 | 536 | ||
538 | if (bbaddr == 0) { | 537 | val = (u32 *)(ring->virtual_start + ring->size); |
539 | val = (u32 *)(ring->virtual_start + ring->size); | 538 | while (--val >= (u32 *)ring->virtual_start) { |
540 | while (--val >= (u32 *)ring->virtual_start) { | 539 | bbaddr = i915_get_bbaddr(dev, val); |
541 | bbaddr = i915_get_bbaddr(dev, val); | 540 | if (bbaddr) |
542 | if (bbaddr) | 541 | return bbaddr; |
543 | break; | ||
544 | } | ||
545 | } | 542 | } |
546 | 543 | ||
547 | return bbaddr; | 544 | return 0; |
548 | } | 545 | } |
549 | 546 | ||
550 | static u32 capture_bo_list(struct drm_i915_error_buffer *err, | 547 | static u32 capture_bo_list(struct drm_i915_error_buffer *err, |