for (i = 0; i < ARRAY_SIZE(ctx->hang_timestamp); i++)
                ctx->hang_timestamp[i] = jiffies - CONTEXT_FAST_HANG_JIFFIES;
  
+       ctx->jump_whitelist = NULL;
+       ctx->jump_whitelist_cmds = 0;
+ 
 +      spin_lock(&i915->gem.contexts.lock);
 +      list_add_tail(&ctx->link, &i915->gem.contexts.list);
 +      spin_unlock(&i915->gem.contexts.lock);
 +
        return ctx;
  
  err_free:
 
  {
        struct intel_engine_pool_node *pool;
        struct i915_vma *vma;
+       u64 batch_start;
+       u64 shadow_batch_start;
        int err;
  
 -      pool = intel_engine_pool_get(&eb->engine->pool, eb->batch_len);
 +      pool = intel_engine_get_pool(eb->engine, eb->batch_len);
        if (IS_ERR(pool))
                return ERR_CAST(pool);
  
 
        /* status_notifier: list of callbacks for context-switch changes */
        struct atomic_notifier_head context_status_notifier;
  
- #define I915_ENGINE_NEEDS_CMD_PARSER BIT(0)
 -      struct intel_engine_hangcheck hangcheck;
 -
+ #define I915_ENGINE_USING_CMD_PARSER BIT(0)
  #define I915_ENGINE_SUPPORTS_STATS   BIT(1)
  #define I915_ENGINE_HAS_PREEMPTION   BIT(2)
  #define I915_ENGINE_HAS_SEMAPHORES   BIT(3)
  #define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(4)
  #define I915_ENGINE_IS_VIRTUAL       BIT(5)
 +#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(6)
+ #define I915_ENGINE_REQUIRES_CMD_PARSER BIT(7)
        unsigned int flags;
  
        /*
 
  #define TGL_DMC_DEBUG_DC5_COUNT       _MMIO(0x101084)
  #define TGL_DMC_DEBUG_DC6_COUNT       _MMIO(0x101088)
  
 +#define DMC_DEBUG3            _MMIO(0x101090)
 +
+ /* Display Internal Timeout Register */
+ #define RM_TIMEOUT            _MMIO(0x42060)
+ #define  MMIO_TIMEOUT_US(us)  ((us) << 0)
+ 
  /* interrupts */
  #define DE_MASTER_IRQ_CONTROL   (1 << 31)
  #define DE_SPRITEB_FLIP_DONE    (1 << 29)