forked from Minki/linux
241b507c16
Previously, dpu_crtc_frame_event_work() would try to aquire all the modeset locks in order to check whether it can release bandwidth. (If we only have cmd-mode display, bandwidth can be released at frame-done time.) The problem with this is that it is also responsible for signalling frame_done_comp, which dpu_crtc_commit_kickoff() waits on if there is already a frame pending. This is called in the msm_atomic_commit_tail() path.. which means that for non-nonblock commits, at least some of the modeset locks are already held. Re-work this scheme to use a reference count to track our need to have clocks enabled. It is incremented for each atomic commit, and decremented in the corresponding frame-done. Additionally, any crtc used in video mode hold an extra reference while they are enabled. The net effect is that we can determine in frame-done whether it is safe to drop bandwidth without needing to aquire any modeset locks. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Sean Paul <sean@chromium.org> Signed-off-by: Rob Clark <robdclark@chromium.org> |
||
---|---|---|
.. | ||
adreno | ||
disp | ||
dsi | ||
edp | ||
hdmi | ||
Kconfig | ||
Makefile | ||
msm_atomic.c | ||
msm_debugfs.c | ||
msm_debugfs.h | ||
msm_drv.c | ||
msm_drv.h | ||
msm_fb.c | ||
msm_fbdev.c | ||
msm_fence.c | ||
msm_fence.h | ||
msm_gem_prime.c | ||
msm_gem_shrinker.c | ||
msm_gem_submit.c | ||
msm_gem_vma.c | ||
msm_gem.c | ||
msm_gem.h | ||
msm_gpu_trace.h | ||
msm_gpu_tracepoints.c | ||
msm_gpu.c | ||
msm_gpu.h | ||
msm_gpummu.c | ||
msm_iommu.c | ||
msm_kms.h | ||
msm_mmu.h | ||
msm_perf.c | ||
msm_rd.c | ||
msm_ringbuffer.c | ||
msm_ringbuffer.h | ||
msm_submitqueue.c | ||
NOTES |