• Matt Roper's avatar
    drm/i915: Don't clobber plane state on internal disables · 0d703d4e
    Matt Roper authored
    We need to disable all sprite planes when disabling the CRTC.  We had
    been using the top-level atomic 'disable' entrypoint to accomplish this,
    which was wrong.  Not only can this lead to various locking issues, it
    also modifies the actual plane state, making it impossible to restore
    the plane properly later.  For example, a DPMS off followed by a DPMS on
    will result in any sprite planes in use not being restored properly.
    
    The proper solution here is to call directly into our 'commit plane'
    hook with a copy of the plane's current state that has 'visible' set to
    false.  Committing this dummy state will turn off the plane, but will
    not touch the actual plane->state pointer, allowing us to properly
    restore the plane state later.
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    0d703d4e
intel_display.c 391 KB