• Thomas Daniel's avatar
    drm/i915: Fix startup failure in LRC mode after recent init changes · e7778be1
    Thomas Daniel authored
    A previous commit introduced engine init changes:
    
        commit 372ee59699d9 ("drm/i915: Only init engines once")
    
    This broke execlists as intel_lr_context_render_state_init was trying to emit
    commands to the RCS for the default context before the ring->init_hw was called.
    
    Made a new gen8_init_rcs_context function and assign in to render ring
    init_context.  Moved call to intel_logical_ring_workarounds_emit into
    gen8_init_rcs_context to maintain previous functionality.
    
    Moved call to render_state_init from lr_context_deferred_create into
    gen8_init_rcs_context, and modified deferred_create to call ring->init_context
    for non-default contexts.
    
    Modified i915_gem_context_enable to call ring->init_context for the default
    context.
    
    So init_context will now always be called when the hw is ready - in
    i915_gem_context_enable for the default context and in lr_context_deferred_create
    for other contexts.
    Signed-off-by: default avatarThomas Daniel <thomas.daniel@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    e7778be1
intel_lrc.c 56.8 KB