• Rob Clark's avatar
    drm/msm/mdp5: dynamically assign hw pipes to planes · 4a0f012d
    Rob Clark authored
    (re)assign the hw pipes to planes based on required caps, and to handle
    situations where we could not modify an in-use plane (ie. SMP block
    reallocation).
    
    This means all planes advertise the superset of formats and properties.
    Userspace must (as always) use atomic TEST_ONLY step for atomic updates,
    as not all planes may be available for use on every frame.
    
    The mapping of hwpipe to plane is stored in mdp5_state, so that state
    updates are atomically committed in the same way that plane/etc state
    updates are managed.  This is needed because the mdp5_plane_state keeps
    a pointer to the hwpipe, and we don't want global state to become out
    of sync with the plane state if an atomic update fails, we hit deadlock/
    backoff scenario, etc.  The use of state_lock keeps multiple parallel
    updates which both re-assign hwpipes properly serialized.
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    4a0f012d
mdp5_kms.h 7.21 KB