• Rob Clark's avatar
    drm/msm/mdp4: page_flip cleanups/fixes · 2a2b8fa6
    Rob Clark authored
    There were a few potential problems with the original page_flip/vblank
    code in mdp4_crtc.
    
    1) We need vblank irq for a couple things, both completing flips and
       updating cursor.  We need to keep track of what work is pending so
       that (for example) a cursor update while we are still waiting for
       pageflip_cb (ie. pageflip requested from userspace, but still
       waiting for rendering to complete) would not prematurely trigger
       event to userspace.
    
    2) A preclose -> pageflip-cancel should not cancel a pageflip that
       was requested on a different file (ie. non-master closing should
       not cancel a pending pageflip).
    
    With these fixes, we no longer have problems w/ cursor not updating and
    with occasional hangs with userspace waiting for a pageflip that had
    been cancelled (launching XBMC from gnome-shell overview mode was a good
    way to trigger this, but now works reliably).
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    2a2b8fa6
mdp4_kms.c 9.67 KB