提交 0da3f250 编写于 作者: C Chris Wilson

drm/i915/gt: Disable arbitration around Braswell's pdp updates

Braswell's pdp workaround is full of dragons, that may be being angered
when they are interrupted. Let's not take that risk and disable
arbitration during the update.
Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210111105735.21515-1-chris@chris-wilson.co.uk
上级 6a3daee1
......@@ -2539,6 +2539,14 @@ static int emit_pdps(struct i915_request *rq)
* GPU hangs to forcewake errors and machine lockups!
*/
cs = intel_ring_begin(rq, 2);
if (IS_ERR(cs))
return PTR_ERR(cs);
*cs++ = MI_ARB_ON_OFF | MI_ARB_DISABLE;
*cs++ = MI_NOOP;
intel_ring_advance(rq, cs);
/* Flush any residual operations from the context load */
err = engine->emit_flush(rq, EMIT_FLUSH);
if (err)
......@@ -2564,7 +2572,8 @@ static int emit_pdps(struct i915_request *rq)
*cs++ = i915_mmio_reg_offset(GEN8_RING_PDP_LDW(base, i));
*cs++ = lower_32_bits(pd_daddr);
}
*cs++ = MI_NOOP;
*cs++ = MI_ARB_ON_OFF | MI_ARB_ENABLE;
intel_ring_advance(rq, cs);
intel_ring_advance(rq, cs);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册