• Archit Taneja's avatar
    drm/msm/mdp5: Use plane helpers to configure src/dst rectangles · 3b6acf14
    Archit Taneja authored
    The MDP5 plane's atomic_check ops doesn't perform clipping tests.
    This didn't hurt us much in the past, but clipping becomes important
    with cursor planes.
    
    Use drm_plane_helper_check_state, the way rockchip/intel/mtk drivers
    already do. Use these drivers as reference.
    
    Clipping requires knowledge of the crtc width and height. This requires
    us to call drm_atomic_helper_check_modeset before
    drm_atomic_helper_check_planes in the driver's atomic_check op, because
    check_modetest will populate the mode for the crtc, needed to populate
    the clip rectangle.
    
    We update the plane_enabled(state) local helper to use state->visible,
    since state->visible and 'state->fb && state->crtc' represent the same
    thing.
    
    One issue with the existing code is that we don't have a way to disable
    the plane when it's completely clipped out. Until there isn't an update
    on the crtc (which would de-stage the plane), we would still see the
    plane in its last 'visible' configuration.
    Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    3b6acf14
mdp5_plane.c 26.5 KB