• Maarten Lankhorst's avatar
    drm/i915: Kill off intel_crtc->atomic.wait_vblank, v6. · e8861675
    Maarten Lankhorst authored
    Currently we perform our own wait in post_plane_update,
    but the atomic core performs another one in wait_for_vblanks.
    This means that 2 vblanks are done when a fb is changed,
    which is a bit overkill.
    
    Merge them by creating a helper function that takes a crtc mask
    for the planes to wait on.
    
    The broadwell vblank workaround may look gone entirely but this is
    not the case. pipe_config->wm_changed is set to true
    when any plane is turned on, which forces a vblank wait.
    
    Changes since v1:
    - Removing the double vblank wait on broadwell moved to its own commit.
    Changes since v2:
    - Move out POWER_DOMAIN_MODESET handling to its own commit.
    Changes since v3:
    - Do not wait for vblank on legacy cursor updates. (Ville)
    - Move broadwell vblank workaround comment to page_flip_finished. (Ville)
    Changes since v4:
    - Compile fix, legacy_cursor_flip -> *_update.
    Changes since v5:
    - Kill brackets.
    - Add WARN_ON when wait_for_vblanks fails.
    - Remove extra newlines.
    - Split the checks whether vblank is needed to a separate function,
      with comments why a vblank is needed.
    Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/56CD84DA.5030507@linux.intel.comReviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    e8861675
intel_display.c 453 KB