• Ville Syrjälä's avatar
    drm/i915: Fix ILK-IVB sprite enable delays · 8e7a4424
    Ville Syrjälä authored
    Sprite enable on ILK-IVB may take two frames to complete
    when the hardware is in big FIFO mode (LP1+). That is
    not entirely great as it means the sprite enable may
    actually happen one frame after we've already signalled
    flip completion. At the very least crc checks may fail
    due to the sprite not yet being visible when we expect it.
    
    We already have code to deal with big FIFO mode when it
    comes to the sprite scaling on IVB
    (WaCxSRDisabledForSpriteScaling:ivb). Let's extend that
    workaround to kick in whenever the sprite is in the process
    of being enabled. Also ILK/SNB bspec has some notes to
    indicate that we should most likely also do the sprite
    scaling w/a on all three platforms, so let's do that as well.
    
    Pretty easy to reproduce on SNB/IVB. ILK has proved more
    elusive, but let's trust the spec and include it as well.
    
    v2: Make sure the pipe is active before the vblank wait
    
    Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
    Testcase: igt/kms_plane/pixel-format-pipe-*-planes
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107749Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> #v1
    Link: https://patchwork.freedesktop.org/patch/msgid/20181004121527.30249-1-ville.syrjala@linux.intel.com
    8e7a4424
intel_display.c 463 KB