summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/msm_kms.h
diff options
context:
space:
mode:
authorRob Clark2016-11-01 21:35:32 +0100
committerRob Clark2016-11-27 17:32:34 +0100
commit49ec5b2e5acb8174a4418c67a3ce4e4cf9be2790 (patch)
treea215d5dfd383d36c62b7fec7d2ea2f4b524c78bb /drivers/gpu/drm/msm/msm_kms.h
parentdrm/msm/mdp5: dynamically assign hw pipes to planes (diff)
downloadkernel-qcow2-linux-49ec5b2e5acb8174a4418c67a3ce4e4cf9be2790.tar.gz
kernel-qcow2-linux-49ec5b2e5acb8174a4418c67a3ce4e4cf9be2790.tar.xz
kernel-qcow2-linux-49ec5b2e5acb8174a4418c67a3ce4e4cf9be2790.zip
drm/msm/mdp5: handle SMP block allocations "atomically"
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: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_kms.h')
0 files changed, 0 insertions, 0 deletions