|
@@ -1254,6 +1254,11 @@ out:
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static u32 port_seqno(struct execlist_port *port)
|
|
|
|
+{
|
|
|
|
+ return port->request ? port->request->global_seqno : 0;
|
|
|
|
+}
|
|
|
|
+
|
|
static int gen8_init_common_ring(struct intel_engine_cs *engine)
|
|
static int gen8_init_common_ring(struct intel_engine_cs *engine)
|
|
{
|
|
{
|
|
struct drm_i915_private *dev_priv = engine->i915;
|
|
struct drm_i915_private *dev_priv = engine->i915;
|
|
@@ -1279,6 +1284,10 @@ static int gen8_init_common_ring(struct intel_engine_cs *engine)
|
|
/* After a GPU reset, we may have requests to replay */
|
|
/* After a GPU reset, we may have requests to replay */
|
|
clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
|
|
clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
|
|
if (!execlists_elsp_idle(engine)) {
|
|
if (!execlists_elsp_idle(engine)) {
|
|
|
|
+ DRM_DEBUG_DRIVER("Restarting %s from requests [0x%x, 0x%x]\n",
|
|
|
|
+ engine->name,
|
|
|
|
+ port_seqno(&engine->execlist_port[0]),
|
|
|
|
+ port_seqno(&engine->execlist_port[1]));
|
|
engine->execlist_port[0].count = 0;
|
|
engine->execlist_port[0].count = 0;
|
|
engine->execlist_port[1].count = 0;
|
|
engine->execlist_port[1].count = 0;
|
|
execlists_submit_ports(engine);
|
|
execlists_submit_ports(engine);
|