• Peter Antoine's avatar
    drm/i915: Avoid GPU hang when coming out of s3 or s4 · 364aece0
    Peter Antoine authored
    This patch fixes a timing issue that causes a GPU hang when the system
    comes out of power saving.
    
    During pm_resume, We are submitting batchbuffers before enabling
    Interrupts this is causing us to miss the context switch interrupt,
    and in consequence intel_execlists_handle_ctx_events is not triggered.
    
    This patch is based on a patch from Deepak S <deepak.s@intel.com>
    from another platform.
    
    The patch fixes an issue introduced by:
      commit e7778be1
      drm/i915: Fix startup failure in LRC mode after recent init changes
    
    The above patch added a call to init_context() to fix an issue introduced
    by a previous patch. But, it then opened up a small timing window for the
    batches being added by the init_context (basically setting up the context)
    to complete before the interrupts have been turned on, thus hanging the
    GPU.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89600
    Cc: stable@vger.kernel.org # 4.0+
    Signed-off-by: default avatarPeter Antoine <peter.antoine@intel.com>
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    [Jani: fixed typo in subject, massaged the comments a bit]
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    364aece0
i915_drv.c 46.7 KB