• Rob Clark's avatar
    drm/msm/mdp5: handle SMP block allocations "atomically" · 49ec5b2e
    Rob Clark authored
    Previously, SMP block allocation was not checked in the plane's
    atomic_check() fxn, so we could fail allocation SMP block allocation at
    atomic_update() time.  Re-work the block allocation to request blocks
    during atomic_check(), but not update the hw until committing the atomic
    update.
    
    Since SMP blocks allocated at atomic_check() time, we need to manage the
    SMP state as part of mdp5_state (global atomic state).  This actually
    ends up significantly simplifying the SMP management, as the SMP module
    does not need to manage the intermediate state between assigning new
    blocks before setting flush bits and releasing old blocks after vblank.
    (The SMP registers and SMP allocation is not double-buffered, so newly
    allocated blocks need to be updated in kms->prepare_commit() released
    blocks in kms->complete_commit().)
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    49ec5b2e
mdp5_pipe.h 1.72 KB