|
@@ -456,6 +456,12 @@ static void inject_preempt_context(struct intel_engine_cs *engine)
|
|
|
ce->ring->tail &= (ce->ring->size - 1);
|
|
|
ce->lrc_reg_state[CTX_RING_TAIL+1] = ce->ring->tail;
|
|
|
|
|
|
+ GEM_BUG_ON((ce->lrc_reg_state[CTX_CONTEXT_CONTROL + 1] &
|
|
|
+ _MASKED_BIT_ENABLE(CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT |
|
|
|
+ CTX_CTRL_ENGINE_CTX_SAVE_INHIBIT)) !=
|
|
|
+ _MASKED_BIT_ENABLE(CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT |
|
|
|
+ CTX_CTRL_ENGINE_CTX_SAVE_INHIBIT));
|
|
|
+
|
|
|
GEM_TRACE("%s\n", engine->name);
|
|
|
for (n = execlists_num_ports(&engine->execlists); --n; )
|
|
|
elsp_write(0, engine->execlists.elsp);
|
|
@@ -2118,6 +2124,8 @@ static void execlists_init_reg_state(u32 *regs,
|
|
|
MI_LRI_FORCE_POSTED;
|
|
|
|
|
|
CTX_REG(regs, CTX_CONTEXT_CONTROL, RING_CONTEXT_CONTROL(engine),
|
|
|
+ _MASKED_BIT_DISABLE(CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT |
|
|
|
+ CTX_CTRL_ENGINE_CTX_SAVE_INHIBIT) |
|
|
|
_MASKED_BIT_ENABLE(CTX_CTRL_INHIBIT_SYN_CTX_SWITCH |
|
|
|
(HAS_RESOURCE_STREAMER(dev_priv) ?
|
|
|
CTX_CTRL_RS_CTX_ENABLE : 0)));
|