Synchronization between a crtc mode_set and page_flip?

Daniel Vetter daniel at ffwll.ch
Thu Apr 3 14:24:59 PDT 2014


On Thu, Apr 03, 2014 at 02:28:32PM +0530, Archit Taneja wrote:
> On Wednesday 02 April 2014 06:41 PM, Rob Clark wrote:
> >On Wed, Apr 2, 2014 at 5:52 AM, Archit Taneja <archit at ti.com> wrote:
> >>Hi,
> >>
> >>I was trying to figure out how we are supposed to manage synchronization
> >>between a mode_set and a page_flip called on a crtc.
> >>
> >>Say, if a mode_set is immediately followed by a page_flip. The driver can't
> >>process the page_flip straight away since the hardware is still completing
> >>the mode_set.
> >
> >I guess setcrtc is expected to be synchronous(ish).. so a lot of
> >userspace won't expect the first pageflip to fail with -EBUSY.
> 
> Okay, thanks. I guess having setcrtc synchronous isn't that bad.

Yeah, atm I think the rules are that pageflip can only return -EBUSY if
there's still a pageflip ongoing. Everything else is presumed to be at
least implicitly ordered, so if your hw can do async modesets then you
need to synchronize. Also if there's still a pageflip outstanding you need
to wait for that to complete in your set_config callback first (usually in
the set_base or the crtc->disable/prepare hooks when using the crtc
helpers).
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list