• Ville Syrjälä's avatar
    drm/i915: Really wait for pending flips when panning · 4878cae2
    Ville Syrjälä authored
    Since obj->pending_flips was never set, intel_pipe_set_base() never
    actually waited for pending page flips to complete.
    
    We really do want to wait for the pending flips, because otherwise the
    mmio surface base address update could overtake the flip, and you
    could end up with an old frame on the screen once the flip really
    completes.
    
    Just call intel_crtc_wait_pending_flips() prior to calling
    intel_pipe_set_base() instead of calling just intel_finish_fb()
    from intel_pipe_set_base(). Moving the call outside of
    intel_pipe_set_base() avoids calling it twice from the full
    modeset path.
    
    v2: Wait for pending flips w/o holding struct_mutex
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    4878cae2
intel_display.c 251 KB