From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: Synchronization between a crtc mode_set and page_flip? Date: Thu, 3 Apr 2014 23:24:59 +0200 Message-ID: <20140403212459.GR7225@phenom.ffwll.local> References: <533BDDEF.1050900@ti.com> <533D22B8.7040908@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-we0-f170.google.com (mail-we0-f170.google.com [74.125.82.170]) by gabe.freedesktop.org (Postfix) with ESMTP id 040AC6EA61 for ; Thu, 3 Apr 2014 14:25:03 -0700 (PDT) Received: by mail-we0-f170.google.com with SMTP id w61so2536547wes.15 for ; Thu, 03 Apr 2014 14:25:03 -0700 (PDT) Content-Disposition: inline In-Reply-To: <533D22B8.7040908@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Archit Taneja Cc: "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org 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 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