Re: [PATCH 4/7] drm/vc4: Use drm_atomic_helper_wait_for_flip_done()
From: Boris Brezillon <hidden>
Date: 2017-06-06 20:59:15
Also in:
dri-devel
On Tue, 06 Jun 2017 13:24:33 -0700 Eric Anholt [off-list ref] wrote:
Boris Brezillon [off-list ref] writes:quoted
Replace the drm_atomic_helper_wait_for_vblanks() with a call to drm_atomic_helper_wait_for_flip_done(). This allows better detection of page flip done events which what we are really waiting for in vc4_atomic_complete_commit(). With this approach, we also addresse the 'missed single vblank event' problem that can arise when the CRTC is configured in oneshot mode (only a single frame is generated and the CRTC is immediately paused after this frame). Note that this oneshot mode will be used for the writeback connector feature.Should we just use drm_atomic_helper_commit_tail() and make this change in the core helper, instead?
Hm, not sure changing the default behavior is such a good idea. I don't want to break other drivers.
Actually, I'm confused. drm_atomic_helper_commit_cleanup_done() seems to be waiting for the flip_done on the crtc, already. What's the difference?
Actually, drm_atomic_helper_wait_for_flip_done() is called just before drm_atomic_helper_cleanup_planes() which in turn is called before drm_atomic_helper_commit_cleanup_done(). My understanding was that it was unsafe to call plane->cleanup_fb() on FBs that are still in use, and the only thing guaranteeing that FBs are not used anymore is the flip_done event. Maybe I'm wrong, and FB refcounting is enough to make sure resources are preserved until page flip is actually done. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html