From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel@ffwll.ch (Daniel Vetter) Date: Thu, 9 Jun 2016 15:23:27 +0200 Subject: [PATCH 03/27] drm/arc: Actually bother with handling atomic events. In-Reply-To: <1465476465.3203.66.camel@synopsys.com> References: <1465388359-8070-1-git-send-email-daniel.vetter@ffwll.ch> <1465388359-8070-3-git-send-email-daniel.vetter@ffwll.ch> <20160608143004.GE3363@phenom.ffwll.local> <1465469639.3203.57.camel@synopsys.com> <20160609122631.GO3363@phenom.ffwll.local> <1465476465.3203.66.camel@synopsys.com> List-ID: Message-ID: <20160609132327.GQ3363@phenom.ffwll.local> To: linux-snps-arc@lists.infradead.org On Thu, Jun 09, 2016@12:48:31PM +0000, Alexey Brodkin wrote: > Hi Daniel, > > On Thu, 2016-06-09@14:26 +0200, Daniel Vetter wrote: > > On Thu, Jun 09, 2016@10:54:45AM +0000, Alexey Brodkin wrote: > > > > > > Hi Daniel, > > > > > > On Wed, 2016-06-08@16:30 +0200, Daniel Vetter wrote: > > > > > > > > On Wed, Jun 08, 2016@04:14:38PM +0200, Maarten Lankhorst wrote: > > > > > > > > > > > > > > > Op 08-06-16 om 14:18 schreef Daniel Vetter: > > > > > > > > > > > > > > > > > > The drm core has a nice ready-made helper for exactly the simple case > > > > > > where it should fire on the next vblank. > > > > > > > > > > > > Note that arming the vblank event in _begin is probably too early, and > > > > > > might easily result in the vblank firing too early, before the new set > > > > > > of planes are actually disabled. But that's kinda a minor issue > > > > > > compared to just outright hanging userspace. > > > > > > > > > > > > v2: Be more robust and either arm, when the CRTC is on, or just send > > > > > > the event out right away. > > > > > > > > > > > > Cc: Carlos Palminha > > > > > > Cc: Alexey Brodkin > > > > > > Cc: linux-snps-arc at lists.infradead.org > > > > > > Signed-off-by: Daniel Vetter > > > > > Wouldn't it be better to do this in atomic_flush then? > > > > I'm not going to fix up other people's drivers completely, just enough to > > > > hopefully not break them. If arc also blocks vblank interrupts with the go > > > > bit, then doing this in _begin is correct. Either way it needs hw-specific > > > > knowledge to asses whether it's correct, since doing the vblank event > > > > stuff in _flush is also racy without some prevention. > > > Actually in ARC PGU driver that was one of many other copy-pastes from > > > other drivers. I.e. for me this is another boilerplate and if that's the > > > same for other drivers as well probably that's a good candidate for > > > generalization into something like?drm_helper_crtc_atomic_check(). > > > > I checked them all, you are special with your code here. And this can't be > > generalized since you must send out vblank events in a race-free manner > > against the actual hw update. This requires deep knowledge of the actual > > hw, and it's not something the helpers can take care of you. It is very > > much not boilerplate, but crucial for a correct implementation. And most > > likely arcpgu is wrong, but since I don't have that hw knowledge I'm not > > going to change it more than absolutely required. > > Well I meant as of today we don't support vblank interrupts and so > arc_pgu_crtc_atomic_begin() barely makes any sense. > > Still in the future we do plan to add support of interrupts. If you don't support vblank interrupts you're driver isn't compliant with atomic. You need to at least fake them. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 03/27] drm/arc: Actually bother with handling atomic events. Date: Thu, 9 Jun 2016 15:23:27 +0200 Message-ID: <20160609132327.GQ3363@phenom.ffwll.local> References: <1465388359-8070-1-git-send-email-daniel.vetter@ffwll.ch> <1465388359-8070-3-git-send-email-daniel.vetter@ffwll.ch> <20160608143004.GE3363@phenom.ffwll.local> <1465469639.3203.57.camel@synopsys.com> <20160609122631.GO3363@phenom.ffwll.local> <1465476465.3203.66.camel@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 611B96E326 for ; Thu, 9 Jun 2016 13:23:32 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id n184so10694064wmn.1 for ; Thu, 09 Jun 2016 06:23:32 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1465476465.3203.66.camel@synopsys.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexey Brodkin Cc: "daniel.vetter@ffwll.ch" , "CARLOS.PALMINHA@synopsys.com" , "dri-devel@lists.freedesktop.org" , "daniel.vetter@intel.com" , "linux-snps-arc@lists.infradead.org" List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKdW4gMDksIDIwMTYgYXQgMTI6NDg6MzFQTSArMDAwMCwgQWxleGV5IEJyb2RraW4g d3JvdGU6Cj4gSGkgRGFuaWVsLAo+IAo+IE9uIFRodSwgMjAxNi0wNi0wOSBhdCAxNDoyNiArMDIw MCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+IE9uIFRodSwgSnVuIDA5LCAyMDE2IGF0IDEwOjU0 OjQ1QU0gKzAwMDAsIEFsZXhleSBCcm9ka2luIHdyb3RlOgo+ID4gPiAKPiA+ID4gSGkgRGFuaWVs LAo+ID4gPiAKPiA+ID4gT24gV2VkLCAyMDE2LTA2LTA4IGF0IDE2OjMwICswMjAwLCBEYW5pZWwg VmV0dGVyIHdyb3RlOgo+ID4gPiA+IAo+ID4gPiA+IE9uIFdlZCwgSnVuIDA4LCAyMDE2IGF0IDA0 OjE0OjM4UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ID4gPiA+ID4gCj4gPiA+ ID4gPiAKPiA+ID4gPiA+IE9wIDA4LTA2LTE2IG9tIDE0OjE4IHNjaHJlZWYgRGFuaWVsIFZldHRl cjoKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBUaGUgZHJtIGNvcmUgaGFz IGEgbmljZSByZWFkeS1tYWRlIGhlbHBlciBmb3IgZXhhY3RseSB0aGUgc2ltcGxlIGNhc2UKPiA+ ID4gPiA+ID4gd2hlcmUgaXQgc2hvdWxkIGZpcmUgb24gdGhlIG5leHQgdmJsYW5rLgo+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gTm90ZSB0aGF0IGFybWluZyB0aGUgdmJsYW5rIGV2ZW50IGluIF9i ZWdpbiBpcyBwcm9iYWJseSB0b28gZWFybHksIGFuZAo+ID4gPiA+ID4gPiBtaWdodCBlYXNpbHkg cmVzdWx0IGluIHRoZSB2YmxhbmsgZmlyaW5nIHRvbyBlYXJseSwgYmVmb3JlIHRoZSBuZXcgc2V0 Cj4gPiA+ID4gPiA+IG9mIHBsYW5lcyBhcmUgYWN0dWFsbHkgZGlzYWJsZWQuIEJ1dCB0aGF0J3Mg a2luZGEgYSBtaW5vciBpc3N1ZQo+ID4gPiA+ID4gPiBjb21wYXJlZCB0byBqdXN0IG91dHJpZ2h0 IGhhbmdpbmcgdXNlcnNwYWNlLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gdjI6IEJlIG1vcmUg cm9idXN0IGFuZCBlaXRoZXIgYXJtLCB3aGVuIHRoZSBDUlRDIGlzIG9uLCBvciBqdXN0IHNlbmQK PiA+ID4gPiA+ID4gdGhlIGV2ZW50IG91dCByaWdodCBhd2F5Lgo+ID4gPiA+ID4gPiAKPiA+ID4g PiA+ID4gQ2M6IENhcmxvcyBQYWxtaW5oYSA8cGFsbWluaGFAc3lub3BzeXMuY29tPgo+ID4gPiA+ ID4gPiBDYzogQWxleGV5IEJyb2RraW4gPGFicm9ka2luQHN5bm9wc3lzLmNvbT4KPiA+ID4gPiA+ ID4gQ2M6IGxpbnV4LXNucHMtYXJjQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+ID4gPiA+ID4gU2ln bmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiA+ ID4gPiBXb3VsZG4ndCBpdCBiZSBiZXR0ZXIgdG8gZG8gdGhpcyBpbiBhdG9taWNfZmx1c2ggdGhl bj8KPiA+ID4gPiBJJ20gbm90IGdvaW5nIHRvIGZpeCB1cCBvdGhlciBwZW9wbGUncyBkcml2ZXJz IGNvbXBsZXRlbHksIGp1c3QgZW5vdWdoIHRvCj4gPiA+ID4gaG9wZWZ1bGx5IG5vdCBicmVhayB0 aGVtLiBJZiBhcmMgYWxzbyBibG9ja3MgdmJsYW5rIGludGVycnVwdHMgd2l0aCB0aGUgZ28KPiA+ ID4gPiBiaXQsIHRoZW4gZG9pbmcgdGhpcyBpbiBfYmVnaW4gaXMgY29ycmVjdC4gRWl0aGVyIHdh eSBpdCBuZWVkcyBody1zcGVjaWZpYwo+ID4gPiA+IGtub3dsZWRnZSB0byBhc3NlcyB3aGV0aGVy IGl0J3MgY29ycmVjdCwgc2luY2UgZG9pbmcgdGhlIHZibGFuayBldmVudAo+ID4gPiA+IHN0dWZm IGluIF9mbHVzaCBpcyBhbHNvIHJhY3kgd2l0aG91dCBzb21lIHByZXZlbnRpb24uCj4gPiA+IEFj dHVhbGx5IGluIEFSQyBQR1UgZHJpdmVyIHRoYXQgd2FzIG9uZSBvZiBtYW55IG90aGVyIGNvcHkt cGFzdGVzIGZyb20KPiA+ID4gb3RoZXIgZHJpdmVycy4gSS5lLiBmb3IgbWUgdGhpcyBpcyBhbm90 aGVyIGJvaWxlcnBsYXRlIGFuZCBpZiB0aGF0J3MgdGhlCj4gPiA+IHNhbWUgZm9yIG90aGVyIGRy aXZlcnMgYXMgd2VsbCBwcm9iYWJseSB0aGF0J3MgYSBnb29kIGNhbmRpZGF0ZSBmb3IKPiA+ID4g Z2VuZXJhbGl6YXRpb24gaW50byBzb21ldGhpbmcgbGlrZcKgZHJtX2hlbHBlcl9jcnRjX2F0b21p Y19jaGVjaygpLgo+ID4KPiA+IEkgY2hlY2tlZCB0aGVtIGFsbCwgeW91IGFyZSBzcGVjaWFsIHdp dGggeW91ciBjb2RlIGhlcmUuIEFuZCB0aGlzIGNhbid0IGJlCj4gPiBnZW5lcmFsaXplZCBzaW5j ZSB5b3UgbXVzdCBzZW5kIG91dCB2YmxhbmsgZXZlbnRzIGluIGEgcmFjZS1mcmVlIG1hbm5lcgo+ ID4gYWdhaW5zdCB0aGUgYWN0dWFsIGh3IHVwZGF0ZS4gVGhpcyByZXF1aXJlcyBkZWVwIGtub3ds ZWRnZSBvZiB0aGUgYWN0dWFsCj4gPiBodywgYW5kIGl0J3Mgbm90IHNvbWV0aGluZyB0aGUgaGVs cGVycyBjYW4gdGFrZSBjYXJlIG9mIHlvdS4gSXQgaXMgdmVyeQo+ID4gbXVjaCBub3QgYm9pbGVy cGxhdGUsIGJ1dCBjcnVjaWFsIGZvciBhIGNvcnJlY3QgaW1wbGVtZW50YXRpb24uIEFuZCBtb3N0 Cj4gPiBsaWtlbHkgYXJjcGd1IGlzIHdyb25nLCBidXQgc2luY2UgSSBkb24ndCBoYXZlIHRoYXQg aHcga25vd2xlZGdlIEknbSBub3QKPiA+IGdvaW5nIHRvIGNoYW5nZSBpdCBtb3JlIHRoYW4gYWJz b2x1dGVseSByZXF1aXJlZC4KPiAKPiBXZWxsIEkgbWVhbnQgYXMgb2YgdG9kYXkgd2UgZG9uJ3Qg c3VwcG9ydCB2YmxhbmsgaW50ZXJydXB0cyBhbmQgc28KPiBhcmNfcGd1X2NydGNfYXRvbWljX2Jl Z2luKCkgYmFyZWx5IG1ha2VzIGFueSBzZW5zZS4KPiAKPiBTdGlsbCBpbiB0aGUgZnV0dXJlIHdl IGRvIHBsYW4gdG8gYWRkIHN1cHBvcnQgb2YgaW50ZXJydXB0cy4KCklmIHlvdSBkb24ndCBzdXBw b3J0IHZibGFuayBpbnRlcnJ1cHRzIHlvdSdyZSBkcml2ZXIgaXNuJ3QgY29tcGxpYW50IHdpdGgK YXRvbWljLiBZb3UgbmVlZCB0byBhdCBsZWFzdCBmYWtlIHRoZW0uCi1EYW5pZWwKLS0gCkRhbmll bCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=