From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH hwc v2 04/18] drm_hwcomposer: Add resource manager class Date: Tue, 17 Apr 2018 11:33:05 -0400 Message-ID: <20180417153305.GD73214@art_vandelay> References: <1523460149-1740-1-git-send-email-alexandru-cosmin.gheorghe@arm.com> <1523460149-1740-5-git-send-email-alexandru-cosmin.gheorghe@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw0-x229.google.com (mail-yw0-x229.google.com [IPv6:2607:f8b0:4002:c05::229]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9E0416E4D5 for ; Tue, 17 Apr 2018 15:33:07 +0000 (UTC) Received: by mail-yw0-x229.google.com with SMTP id c9so5359954ywb.3 for ; Tue, 17 Apr 2018 08:33:07 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1523460149-1740-5-git-send-email-alexandru-cosmin.gheorghe@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexandru Gheorghe Cc: ayan.halder@arm.com, liviu.dudau@arm.com, dri-devel@lists.freedesktop.org, nd@arm.com List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBBcHIgMTEsIDIwMTggYXQgMDQ6MjI6MTVQTSArMDEwMCwgQWxleGFuZHJ1IEdoZW9y Z2hlIHdyb3RlOgo+IEFkZCBhIHJlc291cmNlIG1hbmFnZXIgb2JqZWN0IHRoYXQgaXMgcmVzcG9u c2libGUgZm9yIGRldGVjdGluZyBhbGwKPiBrbXMgZGV2aWNlcyBhbmQgYWxsb2NhdGVzIHVuaXF1 ZSBkaXNwbGF5IG51bWJlcnMgZm9yIGV2ZXJ5IGRldGVjdGVkCj4gZGlzcGxheS4KPiAKPiBUaGlz IGlzIGNvbnRyb2xsZWQgYnkgdGhlIHZhbHVlIG9mIGh3Yy5kcm0uZGV2aWNlIHByb3BlcnR5LCBp ZiBpdCBlbmRzCj4gd2l0aCBhICUsIGl0IHdpbGwgdHJ5IHRvIG9wZW4gbWlub3IgZGV2aWNlcyB1 bnRpbCBhbmQgZXJyb3IgaXMgZGV0ZWN0ZWQuCj4gRS5nOiAvZGV2L2RyaS9jYXJkJQoKSSdtIGEg Yml0IG9uIHRoZSBmZW5jZSBhcyB0byB3aGV0aGVyIHRvIHVzZSB0aGUgJSwgb3IgYWRkIGEgbmV3 Cmh3Yy5kcm0uc2Nhbl9kZXZpY2VzIHByb3BlcnR5LiBJIGd1ZXNzIHNpbmNlIHdlIG5lZWQgdG8g Y29udmV5IHRoZSBwYXRoIGFueXdheXMKdGhpcyBpcyBmaW5lLCBidXQgaXQgcmVhbGx5IG5lZWRz IHRvIGJlIGJldHRlciBkb2N1bWVudGVkLiAKCj4gCj4gQWRkaXRpb25hbGx5LCB0aGlzIHdpbGwg YmUgdXNlZCBmb3IgZmluZGluZyBhbiBhdmFpbGFibGUgd3JpdGViYWNrCj4gY29ubmVjdG9yIHRo YXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgZmxhdHRlbmluZyBvZiB0aGUgY3VycmVudGx5Cj4gZGlz cGxheWVkIHNjZW5lLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRydSBHaGVvcmdoZSA8YWxl eGFuZHJ1LWNvc21pbi5naGVvcmdoZUBhcm0uY29tPgo+IC0tLQo+ICBBbmRyb2lkLm1rICAgICAg ICAgIHwgIDEgKwo+ICByZXNvdXJjZW1hbmFnZXIuY3BwIHwgNzEgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgcmVzb3VyY2VtYW5hZ2VyLmgg ICB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMDEgaW5z ZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcmVzb3VyY2VtYW5hZ2VyLmNwcAo+ICBj cmVhdGUgbW9kZSAxMDA2NDQgcmVzb3VyY2VtYW5hZ2VyLmgKPiAKPiBkaWZmIC0tZ2l0IGEvQW5k cm9pZC5tayBiL0FuZHJvaWQubWsKPiBpbmRleCAxYWRkMjg2Li43MzZmZTI0IDEwMDY0NAo+IC0t LSBhL0FuZHJvaWQubWsKPiArKysgYi9BbmRyb2lkLm1rCj4gQEAgLTUyLDYgKzUyLDcgQEAgTE9D QUxfQ19JTkNMVURFUyA6PSBcCj4gIAo+ICBMT0NBTF9TUkNfRklMRVMgOj0gXAo+ICAJYXV0b2xv Y2suY3BwIFwKPiArCXJlc291cmNlbWFuYWdlci5jcHAgXAo+ICAJZHJtcmVzb3VyY2VzLmNwcCBc Cj4gIAlkcm1jb25uZWN0b3IuY3BwIFwKPiAgCWRybWNydGMuY3BwIFwKPiBkaWZmIC0tZ2l0IGEv cmVzb3VyY2VtYW5hZ2VyLmNwcCBiL3Jlc291cmNlbWFuYWdlci5jcHAKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmU3YjY1NGUKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv cmVzb3VyY2VtYW5hZ2VyLmNwcAo+IEBAIC0wLDAgKzEsNzEgQEAKPiArI2luY2x1ZGUgInJlc291 cmNlbWFuYWdlci5oIgo+ICsjaW5jbHVkZSA8Y3V0aWxzL2xvZy5oPgo+ICsjaW5jbHVkZSA8Y3V0 aWxzL3Byb3BlcnRpZXMuaD4KPiArCj4gK25hbWVzcGFjZSBhbmRyb2lkIHsKPiArCj4gK1Jlc291 cmNlTWFuYWdlcjo6UmVzb3VyY2VNYW5hZ2VyKCkgOiBncmFsbG9jXyhOVUxMKSB7Cj4gK30KPiAr Cj4gK2ludCBSZXNvdXJjZU1hbmFnZXI6OkluaXQoKSB7Cj4gKyAgY2hhciBwYXRoX3BhdHRlcm5b UFJPUEVSVFlfVkFMVUVfTUFYXTsKPiArICBwcm9wZXJ0eV9nZXQoImh3Yy5kcm0uZGV2aWNlIiwg cGF0aF9wYXR0ZXJuLCAiL2Rldi9kcmkvY2FyZCUiKTsKCldlIHByb2JhYmx5IGFsc28gZG9uJ3Qg d2FudCB0byBkZWZhdWx0IHRvIHNjYW5uaW5nLCBzaW5jZSB0aGF0IG1pZ2h0IGNoYW5nZQpiZWhh dmlvciBpbiBleGlzdGluZyBib2FyZHMuCgo+ICsKPiArICB1aW50OF90IG1pbm9yID0gMDsKClBs ZWFzZSB1c2UgdW5zaWduZWQvaW50IGluc3RlYWQgb2YgZml4ZWQtc2l6ZSB0eXBlcy4gVW5sZXNz IHRoZSBudW1iZXIgb2YgYml0cwppcyByZWxldmFudCB0byB1c2Ugb2YgdGhlIHZhcmlhYmxlLCBs ZXQgdGhlIGNvbXBpbGVyIGhhbmRsZSBpdC4KCj4gKyAgaW50IGxhc3RfZGlzcGxheV9pbmRleCA9 IDA7CgpDb3VsZCB3ZSBqdXN0IGNhbGwgdGhpcyBudW1fZGlzcGxheXM/IEl0IHdhcyBraW5kIG9m IGhhcmQgZm9yIG1lIHRvIHJlYXNvbgp0aHJvdWdoIHRoaXMsIGVzcGVjaWFsbHkgd2hlbiBpdCdz IGNhbGwgInN0YXJ0X2Rpc3BsYXlfaW5kZXgiIHdoZW4geW91IGp1bXAgaW50bwpkcm06OkluaXQo KS4gSSBhbHNvIHRoaW5rIGRybS0+SW5pdCdzIHJldHVybiBwYWlyIHNob3VsZCByZXR1cm4gCjxy ZXQsIGRpc3BsYXlzX2FkZGVkPiBpbnN0ZWFkIG9mIDxyZXQsIGRpc3BsYXlfaW5kZXg+LCBzbyBl YWNoIHRpbWUgeW91IGNhbGwKSW5pdCgpLCB5b3UncmUgYWRkaW5nIHRvIG51bV9kaXNwbGF5cy4K Cj4gKyAgaW50IGxhc3RfY2hhciA9IHN0cmxlbihwYXRoX3BhdHRlcm4pIC0gMTsKPiArICBkbyB7 Cj4gKyAgICBjaGFyIHBhdGhbUFJPUEVSVFlfVkFMVUVfTUFYXTsKClBsZWFzZSB1c2Ugc3RyaW5n Cgo+ICsgICAgaWYgKHBhdGhfcGF0dGVybltsYXN0X2NoYXJdID09ICclJykgewo+ICsgICAgICBw YXRoX3BhdHRlcm5bbGFzdF9jaGFyXSA9ICdcMCc7Cj4gKyAgICAgIHNucHJpbnRmKHBhdGgsIFBS T1BFUlRZX1ZBTFVFX01BWCwgIiVzJWQiLCBwYXRoX3BhdHRlcm4sIG1pbm9yKTsKPiArICAgICAg cGF0aF9wYXR0ZXJuW2xhc3RfY2hhcl0gPSAnJSc7CgpUaGlzIGRvZXNuJ3Qgd29yayBmb3IgbWlu b3IgPiAxMC4KCj4gKyAgICB9IGVsc2Ugewo+ICsgICAgICBzbnByaW50ZihwYXRoLCBQUk9QRVJU WV9WQUxVRV9NQVgsICIlcyIsIHBhdGhfcGF0dGVybik7Cj4gKyAgICB9Cj4gKyAgICBzdGQ6OnVu aXF1ZV9wdHI8RHJtUmVzb3VyY2VzPiBkcm0gPSBzdGQ6Om1ha2VfdW5pcXVlPERybVJlc291cmNl cz4oKTsKPiArICAgIGxhc3RfZGlzcGxheV9pbmRleCA9IGRybS0+SW5pdCh0aGlzLCBwYXRoLCBs YXN0X2Rpc3BsYXlfaW5kZXgpOwo+ICsgICAgaWYgKGxhc3RfZGlzcGxheV9pbmRleCA8IDApIHsK PiArICAgICAgYnJlYWs7Cj4gKyAgICB9Cj4gKyAgICBzdGQ6OnNoYXJlZF9wdHI8SW1wb3J0ZXI+ IGltcG9ydGVyOwo+ICsgICAgaW1wb3J0ZXIucmVzZXQoSW1wb3J0ZXI6OkNyZWF0ZUluc3RhbmNl KGRybS5nZXQoKSkpOwo+ICsgICAgaWYgKCFpbXBvcnRlcikgewo+ICsgICAgICBBTE9HRSgiRmFp bGVkIHRvIGNyZWF0ZSBpbXBvcnRlciBpbnN0YW5jZSIpOwo+ICsgICAgICBicmVhazsKPiArICAg IH0KPiArICAgIGltcG9ydGVyc18ucHVzaF9iYWNrKGltcG9ydGVyKTsKPiArICAgIGRybXNfLnB1 c2hfYmFjayhzdGQ6Om1vdmUoZHJtKSk7Cj4gKyAgICBtaW5vcisrOwo+ICsgICAgbGFzdF9kaXNw bGF5X2luZGV4Kys7Cj4gKyAgfSB3aGlsZSAocGF0aF9wYXR0ZXJuW2xhc3RfY2hhcl0gPT0gJyUn KTsKPiArCj4gKyAgaWYgKCFkcm1zXy5zaXplKCkpIHsKPiArICAgIEFMT0dFKCJGYWlsZWQgdG8g ZmluZCBhbnkgd29ya2luZyBkcm0gZGV2aWNlIik7Cj4gKyAgICByZXR1cm4gLUVJTlZBTDsKPiAr ICB9Cj4gKwo+ICsgIHJldHVybiBod19nZXRfbW9kdWxlKEdSQUxMT0NfSEFSRFdBUkVfTU9EVUxF X0lELAo+ICsgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBod19tb2R1bGVfdCAqKikmZ3Jh bGxvY18pOwo+ICt9CgpDb25zaWRlciB0aGUgZm9sbG93aW5nOgoKaW50IFJlc291cmNlTWFuYWdl cjo6QWRkRHJtRGV2aWNlKHN0ZDo6c3RyaW5nIHBhdGgpIHsKICBzdGQ6OnVuaXF1ZV9wdHI8RHJt RGV2aWNlPiBkcm0gPSBzdGQ6Om1ha2VfdW5pcXVlPERybURldmljZT4oKTsKICBpbnQgZGlzcGxh eXNfYWRkZWQsIHJldDsKICBzdGQ6OnRpZShkaXNwbGF5c19hZGRlZCwgcmV0KSA9IGRybS0+SW5p dChwYXRoLmNfc3RyKCksIG51bV9kaXNwbGF5c18pOwogIGlmIChyZXQpCiAgICByZXR1cm4gcmV0 OwoKICBzdGQ6OnNoYXJlZF9wdHI8SW1wb3J0ZXI+IGltcG9ydGVyOwogIGltcG9ydGVyLnJlc2V0 KEltcG9ydGVyOjpDcmVhdGVJbnN0YW5jZShkcm0uZ2V0KCkpKTsKICBpZiAoIWltcG9ydGVyKSB7 CiAgICBBTE9HRSgiRmFpbGVkIHRvIGNyZWF0ZSBpbXBvcnRlciBpbnN0YW5jZSIpOwogICAgcmV0 dXJuIC1FTk9ERVY7CiAgfQoKICBpbXBvcnRlcnNfLnB1c2hfYmFjayhpbXBvcnRlcik7CiAgZHJt c18ucHVzaF9iYWNrKHN0ZDo6bW92ZShkcm0pKTsKICBudW1fZGlzcGxheXNfICs9IGRpc3BsYXlz X2FkZGVkOwogIHJldHVybiAwOwp9CgppbnQgUmVzb3VyY2VNYW5hZ2VyOjpJbml0KCkgewogIGNo YXIgcGF0aF9wYXR0ZXJuW1BST1BFUlRZX1ZBTFVFX01BWF07CiAgaW50IHBhdGhfbGVuID0gcHJv cGVydHlfZ2V0KCJod2MuZHJtLmRldmljZSIsIHBhdGhfcGF0dGVybiwgIi9kZXYvZHJpL2NhcmQl Iik7CgogIGlmIChwYXRoX3BhdHRlcm5bcGF0aF9sZW4gLSAxXSAhPSAnJScpCiAgICByZXR1cm4g QWRkRHJtRGV2aWNlKHN0ZDo6c3RyaW5nKHBhdGhfcGF0dGVybik7CgogIHBhdGhfcGF0dGVybltw YXRoX2xlbiAtIDFdID0gJ1wwJzsKICBmb3IgKGludCByZXQgPSAwLCBpZHggPSAwOyAhcmV0OyAr K2lkeCkgewogICAgb3N0cmluZ3N0cmVhbSBwYXRoOwogICAgcGF0aCA8PCBwYXRoX3BhdHRlcm4g PDwgaWR4OwogICAgcmV0ID0gQWRkRHJtRGV2aWNlKHBhdGguc3RyKCkpOwogIH0KICBpZiAoIW51 bV9kaXNwbGF5c18pIHsKICAgIEFMT0dFKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBhbnkgZGlzcGxh eXMiKTsKICAgIHJldHVybiAtRUlOVkFMOwogIH0KCiAgcmV0dXJuIGh3X2dldF9tb2R1bGUoR1JB TExPQ19IQVJEV0FSRV9NT0RVTEVfSUQsCiAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGh3 X21vZHVsZV90ICoqKSZncmFsbG9jXyk7Cn0KCkkgdGhpbmsgcmVzb2x2ZXMgdGhlIGlzc3VlcyBm cm9tIHRoZSBvcmlnaW5hbCBwYXRjaGVzIGFuZCBpbmNvcnBvcmF0ZXMgdGhlCnN1Z2dlc3Rpb25z IG9mIGRybS0+SW5pdCgpIHJldHVybmluZyB0aGUgdHVwbGUgb2YgYWRkZWQgZGlzcGxheXMsIGFz IHdlbGwgYXMKZWxpbWluYXRpbmcgdGhlIGJhY2twb2ludGVyLgoKCj4gKwo+ICtEcm1SZXNvdXJj ZXMgKlJlc291cmNlTWFuYWdlcjo6R2V0RHJtUmVzb3VyY2VzKGludCBkaXNwbGF5KSB7Cj4gKyAg Zm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGRybXNfLnNpemUoKTsgaSsrKSB7Cgpmb3IgKGF1dG8g JmRybV86IGRybXNfKSB7Cgo+ICsgICAgaWYgKGRybXNfW2ldLT5IYW5kbGVzRGlzcGxheShkaXNw bGF5KSkKPiArICAgICAgcmV0dXJuIGRybXNfW2ldLmdldCgpOwo+ICsgIH0KPiArICByZXR1cm4g TlVMTDsKPiArfQo+ICsKPiArc3RkOjpzaGFyZWRfcHRyPEltcG9ydGVyPiBSZXNvdXJjZU1hbmFn ZXI6OkdldEltcG9ydGVyKGludCBkaXNwbGF5KSB7Cj4gKyAgZm9yICh1aW50MzJfdCBpID0gMDsg aSA8IGRybXNfLnNpemUoKTsgaSsrKSB7CgpTYW1lIGhlcmUgCgo+ICsgICAgaWYgKGRybXNfW2ld LT5IYW5kbGVzRGlzcGxheShkaXNwbGF5KSkKPiArICAgICAgcmV0dXJuIGltcG9ydGVyc19baV07 Cj4gKyAgfQo+ICsgIHJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtjb25zdCBncmFsbG9jX21vZHVs ZV90ICpSZXNvdXJjZU1hbmFnZXI6OkdldEdyYWxsb2MoKSB7CgpJIHRoaW5rIHRoaXMgc2hvdWxk IGJlIGNhbGxlZCBncmFsbG9jKCkKCj4gKyAgcmV0dXJuIGdyYWxsb2NfOwo+ICt9Cj4gK30KPiBk aWZmIC0tZ2l0IGEvcmVzb3VyY2VtYW5hZ2VyLmggYi9yZXNvdXJjZW1hbmFnZXIuaAo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYjhjYWE5YQo+IC0tLSAvZGV2L251bGwK PiArKysgYi9yZXNvdXJjZW1hbmFnZXIuaAo+IEBAIC0wLDAgKzEsMjkgQEAKPiArI2lmbmRlZiBS RVNPVVJDRU1BTkFHRVJfSAo+ICsjZGVmaW5lIFJFU09VUkNFTUFOQUdFUl9ICj4gKwo+ICsjaW5j bHVkZSAiZHJtcmVzb3VyY2VzLmgiCj4gKyNpbmNsdWRlICJwbGF0Zm9ybS5oIgo+ICsKPiArbmFt ZXNwYWNlIGFuZHJvaWQgewo+ICsKPiArY2xhc3MgRHJtUmVzb3VyY2VzOwo+ICtjbGFzcyBJbXBv cnRlcjsKCkkgdGhpbmsgeW91IG5lZWQgZWl0aGVyIHRoZSBmb3J3YXJkIGRlY2xhcmF0aW9ucyBv ciB0aGUgaW5jbHVkZXMsIGJ1dCBub3QgYm90aD8KCj4gKwo+ICtjbGFzcyBSZXNvdXJjZU1hbmFn ZXIgewo+ICsgcHVibGljOgo+ICsgIFJlc291cmNlTWFuYWdlcigpOwo+ICsgIFJlc291cmNlTWFu YWdlcihjb25zdCBSZXNvdXJjZU1hbmFnZXIgJikgPSBkZWxldGU7Cj4gKyAgUmVzb3VyY2VNYW5h Z2VyICZvcGVyYXRvcj0oY29uc3QgUmVzb3VyY2VNYW5hZ2VyICYpID0gZGVsZXRlOwo+ICsgIGlu dCBJbml0KCk7Cj4gKyAgRHJtUmVzb3VyY2VzICpHZXREcm1SZXNvdXJjZXMoaW50IGRpc3BsYXkp Owo+ICsgIHN0ZDo6c2hhcmVkX3B0cjxJbXBvcnRlcj4gR2V0SW1wb3J0ZXIoaW50IGRpc3BsYXkp Owo+ICsgIGNvbnN0IGdyYWxsb2NfbW9kdWxlX3QgKkdldEdyYWxsb2MoKTsKPiArCj4gKyBwcml2 YXRlOgo+ICsgIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxEcm1SZXNvdXJjZXM+PiBkcm1z XzsKPiArICBzdGQ6OnZlY3RvcjxzdGQ6OnNoYXJlZF9wdHI8SW1wb3J0ZXI+PiBpbXBvcnRlcnNf Owo+ICsgIGNvbnN0IGdyYWxsb2NfbW9kdWxlX3QgKmdyYWxsb2NfOwo+ICt9Owo+ICt9Cj4gKwo+ ICsjZW5kaWYgIC8vIFJFU09VUkNFTUFOQUdFUl9ICj4gLS0gCj4gMi43LjQKPiAKCi0tIApTZWFu IFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK