[PATCH 8/8] repeat-csb
Chris Wilson
chris at chris-wilson.co.uk
Wed Dec 27 12:45:03 UTC 2017
---
drivers/gpu/drm/i915/intel_lrc.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index e114776b8836..49b4d8682bee 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -818,8 +818,11 @@ static void execlists_submission_tasklet(unsigned long data)
*/
__clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
if (unlikely(execlists->csb_head == -1)) { /* following a reset */
- head = readl(dev_priv->regs + i915_mmio_reg_offset(RING_CONTEXT_STATUS_PTR(engine)));
- tail = GEN8_CSB_WRITE_PTR(head);
+ do {
+ head = readl(dev_priv->regs +
+ i915_mmio_reg_offset(RING_CONTEXT_STATUS_PTR(engine)));
+ tail = GEN8_CSB_WRITE_PTR(head);
+ } while (unlikely(tail >= GEN8_CSB_ENTRIES));
head = GEN8_CSB_READ_PTR(head);
execlists->csb_head = head;
} else {
--
2.15.1
More information about the Intel-gfx-trybot
mailing list