• Archit Taneja's avatar
    drm/msm/mdp5: Add support for legacy cursor updates · 10967a06
    Archit Taneja authored
    This code has been more or less picked up from the vc4 and intel
    implementations of update_plane() funcs for cursor planes.
    
    The update_plane() func is usually the drm_atomic_helper_update_plane
    func that will issue an atomic commit with the plane updates. Such
    commits are not intended to be done faster than the vsync rate.
    
    The legacy cursor userspace API, on the other hand, expects the kernel
    to handle cursor updates immediately.
    
    Create a fast path in update_plane, which updates the cursor registers
    and flushes the configuration. The fast path is taken when there is only
    a change in the cursor's position in the crtc, or a change in the
    cursor's crop co-ordinates. For anything else, we go via the slow path.
    
    We take the slow path even when the fb changes, and when there is
    currently no fb tied to the plane. This should hopefully ensure that we
    always take a slow path for every new fb. This in turn should ensure that
    the fb is pinned/prepared.
    Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    10967a06
mdp5_plane.c 29.8 KB