From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey.Brodkin@synopsys.com (Alexey Brodkin) Date: Thu, 9 Jun 2016 12:48:31 +0000 Subject: [PATCH 03/27] drm/arc: Actually bother with handling atomic events. In-Reply-To: <20160609122631.GO3363@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> List-ID: Message-ID: <1465476465.3203.66.camel@synopsys.com> To: linux-snps-arc@lists.infradead.org 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. -Alexey From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Brodkin Subject: Re: [PATCH 03/27] drm/arc: Actually bother with handling atomic events. Date: Thu, 9 Jun 2016 12:48:31 +0000 Message-ID: <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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-7" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160609122631.GO3363@phenom.ffwll.local> Content-Language: en-US Content-ID: <687F507904D7CE4FB497590C10349341@internal.synopsys.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+gla-linux-snps-arc=m.gmane.org@lists.infradead.org To: "daniel@ffwll.ch" Cc: "daniel.vetter@ffwll.ch" , "maarten.lankhorst@linux.intel.com" , "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 SGkgRGFuaWVsLAoKT24gVGh1LCAyMDE2LTA2LTA5IGF0IDE0OjI2ICstMDIwMCwgRGFuaWVsIFZl dHRlciB3cm90ZToKPiBPbiBUaHUsIEp1biAwOSwgMjAxNiBhdCAxMDo1NDo0NUFNICstMDAwMCwg QWxleGV5IEJyb2RraW4gd3JvdGU6Cj4gPiAKPiA+IEhpIERhbmllbCwKPiA+IAo+ID4gT24gV2Vk LCAyMDE2LTA2LTA4IGF0IDE2OjMwICstMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4g Cj4gPiA+IE9uIFdlZCwgSnVuIDA4LCAyMDE2IGF0IDA0OjE0OjM4UE0gKy0wMjAwLCBNYWFydGVu IExhbmtob3JzdCB3cm90ZToKPiA+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiBPcCAwOC0wNi0xNiBv bSAxNDoxOCBzY2hyZWVmIERhbmllbCBWZXR0ZXI6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IAo+ID4g PiA+ID4gVGhlIGRybSBjb3JlIGhhcyBhIG5pY2UgcmVhZHktbWFkZSBoZWxwZXIgZm9yIGV4YWN0 bHkgdGhlIHNpbXBsZSBjYXNlCj4gPiA+ID4gPiB3aGVyZSBpdCBzaG91bGQgZmlyZSBvbiB0aGUg bmV4dCB2YmxhbmsuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IE5vdGUgdGhhdCBhcm1pbmcgdGhlIHZi bGFuayBldmVudCBpbiBfYmVnaW4gaXMgcHJvYmFibHkgdG9vIGVhcmx5LCBhbmQKPiA+ID4gPiA+ IG1pZ2h0IGVhc2lseSByZXN1bHQgaW4gdGhlIHZibGFuayBmaXJpbmcgdG9vIGVhcmx5LCBiZWZv cmUgdGhlIG5ldyBzZXQKPiA+ID4gPiA+IG9mIHBsYW5lcyBhcmUgYWN0dWFsbHkgZGlzYWJsZWQu IEJ1dCB0aGF0J3Mga2luZGEgYSBtaW5vciBpc3N1ZQo+ID4gPiA+ID4gY29tcGFyZWQgdG8ganVz dCBvdXRyaWdodCBoYW5naW5nIHVzZXJzcGFjZS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gdjI6IEJl IG1vcmUgcm9idXN0IGFuZCBlaXRoZXIgYXJtLCB3aGVuIHRoZSBDUlRDIGlzIG9uLCBvciBqdXN0 IHNlbmQKPiA+ID4gPiA+IHRoZSBldmVudCBvdXQgcmlnaHQgYXdheS4KPiA+ID4gPiA+IAo+ID4g PiA+ID4gQ2M6IENhcmxvcyBQYWxtaW5oYSA8cGFsbWluaGFAc3lub3BzeXMuY29tPgo+ID4gPiA+ ID4gQ2M6IEFsZXhleSBCcm9ka2luIDxhYnJvZGtpbkBzeW5vcHN5cy5jb20+Cj4gPiA+ID4gPiBD YzogbGludXgtc25wcy1hcmNAbGlzdHMuaW5mcmFkZWFkLm9yZwo+ID4gPiA+ID4gU2lnbmVkLW9m Zi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiA+ID4gV291 bGRuJ3QgaXQgYmUgYmV0dGVyIHRvIGRvIHRoaXMgaW4gYXRvbWljX2ZsdXNoIHRoZW4/Cj4gPiA+ IEknbSBub3QgZ29pbmcgdG8gZml4IHVwIG90aGVyIHBlb3BsZSdzIGRyaXZlcnMgY29tcGxldGVs eSwganVzdCBlbm91Z2ggdG8KPiA+ID4gaG9wZWZ1bGx5IG5vdCBicmVhayB0aGVtLiBJZiBhcmMg YWxzbyBibG9ja3MgdmJsYW5rIGludGVycnVwdHMgd2l0aCB0aGUgZ28KPiA+ID4gYml0LCB0aGVu IGRvaW5nIHRoaXMgaW4gX2JlZ2luIGlzIGNvcnJlY3QuIEVpdGhlciB3YXkgaXQgbmVlZHMgaHct c3BlY2lmaWMKPiA+ID4ga25vd2xlZGdlIHRvIGFzc2VzIHdoZXRoZXIgaXQncyBjb3JyZWN0LCBz aW5jZSBkb2luZyB0aGUgdmJsYW5rIGV2ZW50Cj4gPiA+IHN0dWZmIGluIF9mbHVzaCBpcyBhbHNv IHJhY3kgd2l0aG91dCBzb21lIHByZXZlbnRpb24uCj4gPiBBY3R1YWxseSBpbiBBUkMgUEdVIGRy aXZlciB0aGF0IHdhcyBvbmUgb2YgbWFueSBvdGhlciBjb3B5LXBhc3RlcyBmcm9tCj4gPiBvdGhl ciBkcml2ZXJzLiBJLmUuIGZvciBtZSB0aGlzIGlzIGFub3RoZXIgYm9pbGVycGxhdGUgYW5kIGlm IHRoYXQncyB0aGUKPiA+IHNhbWUgZm9yIG90aGVyIGRyaXZlcnMgYXMgd2VsbCBwcm9iYWJseSB0 aGF0J3MgYSBnb29kIGNhbmRpZGF0ZSBmb3IKPiA+IGdlbmVyYWxpemF0aW9uIGludG8gc29tZXRo aW5nIGxpa2UrQUtBLWRybV9oZWxwZXJfY3J0Y19hdG9taWNfY2hlY2soKS4KPgo+IEkgY2hlY2tl ZCB0aGVtIGFsbCwgeW91IGFyZSBzcGVjaWFsIHdpdGggeW91ciBjb2RlIGhlcmUuIEFuZCB0aGlz IGNhbid0IGJlCj4gZ2VuZXJhbGl6ZWQgc2luY2UgeW91IG11c3Qgc2VuZCBvdXQgdmJsYW5rIGV2 ZW50cyBpbiBhIHJhY2UtZnJlZSBtYW5uZXIKPiBhZ2FpbnN0IHRoZSBhY3R1YWwgaHcgdXBkYXRl LiBUaGlzIHJlcXVpcmVzIGRlZXAga25vd2xlZGdlIG9mIHRoZSBhY3R1YWwKPiBodywgYW5kIGl0 J3Mgbm90IHNvbWV0aGluZyB0aGUgaGVscGVycyBjYW4gdGFrZSBjYXJlIG9mIHlvdS4gSXQgaXMg dmVyeQo+IG11Y2ggbm90IGJvaWxlcnBsYXRlLCBidXQgY3J1Y2lhbCBmb3IgYSBjb3JyZWN0IGlt cGxlbWVudGF0aW9uLiBBbmQgbW9zdAo+IGxpa2VseSBhcmNwZ3UgaXMgd3JvbmcsIGJ1dCBzaW5j ZSBJIGRvbid0IGhhdmUgdGhhdCBodyBrbm93bGVkZ2UgSSdtIG5vdAo+IGdvaW5nIHRvIGNoYW5n ZSBpdCBtb3JlIHRoYW4gYWJzb2x1dGVseSByZXF1aXJlZC4KCldlbGwgSSBtZWFudCBhcyBvZiB0 b2RheSB3ZSBkb24ndCBzdXBwb3J0IHZibGFuayBpbnRlcnJ1cHRzIGFuZCBzbwphcmNfcGd1X2Ny dGNfYXRvbWljX2JlZ2luKCkgYmFyZWx5IG1ha2VzIGFueSBzZW5zZS4KClN0aWxsIGluIHRoZSBm dXR1cmUgd2UgZG8gcGxhbiB0byBhZGQgc3VwcG9ydCBvZiBpbnRlcnJ1cHRzLgoKLUFsZXhleQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1zbnBz LWFyYyBtYWlsaW5nIGxpc3QKbGludXgtc25wcy1hcmNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXNucHMtYXJj