From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/7] drm: Extract page_flip_{internal, atomic}() Date: Tue, 19 Nov 2019 11:14:43 +0100 Message-ID: <20191119101443.GA30416@phenom.ffwll.local> References: <20191115194204.22244-1-ville.syrjala@linux.intel.com> <20191115194204.22244-4-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20191115194204.22244-4-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBOb3YgMTUsIDIwMTkgYXQgMDk6NDI6MDBQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IFlhbmsgb3V0IHRoZSBjb2RlIGZvciB0aGUgcGxhbmUtPmZiL29sZF9mYi9jcnRj IGhhbmRsaW5nIGZyb20KPiB0aGUgcGFnZSBmbGlwIHBhdGggaW50byBwYWdlX2ZsaXBfaW50ZXJu YWwoKSwgYW5kIHByb3ZpZGUgYQo+IHNpbXBsZXIgdmFyaWFudCBmb3IgYXRvbWljIGRyaXZlcnMu Cj4gCj4gV2UnbGwgYWxzbyBtb3ZlIHRoZSBmYiB2cy4gc3JjIHZpZXdwb3J0IGNoZWNrcyBpbnRv IHRoZSBuZXcKPiBmdW5jdGlvbnMgYXMgdGhleSBhcmUgc2xpZ2h0bHkgZGlmZmVyZW50IGJldHdl ZW4gdGhlIHR3byBwYXRocy4KPiBJZiB0aGUgYXRvbWljIC5wYWdlX2ZsaXAoKSBpbXBsZW1lbnRh dGlvbnMgYXJlIGd1YXJhbnRlZWQKPiB0byBjYWxsIGRybV9hdG9taWNfcGxhbmVfY2hlY2soKSB3 ZSBjb3VsZCBldmVuIGRyb3AgdGhlIGNoZWNrCj4gZW50aXJlbHkgZnJvbSBwYWdlX2ZsaXBfYXRv bWljKCkuIEZvciBub3cgdG9zcyBpbiBhIEZJWE1FLgo+IAo+IHYyOiBCaXQgbW9yZSBwb2xpc2gg aW4gcGFnZV9mbGlwX2ludGVybmFsKCkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vZHJtX3BsYW5lLmMgfCAxNTkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fcGxhbmUuYwo+IGluZGV4IDM4ODc4ZGE1YjcwNC4uNjA1MjQ3NWEyMGE1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fcGxhbmUuYwo+IEBAIC0xMDMxLDEzICsxMDMxLDEwOSBAQCBpbnQgZHJtX21vZGVf Y3Vyc29yMl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJcmV0dXJuIGRybV9tb2Rl X2N1cnNvcl9jb21tb24oZGV2LCByZXEsIGZpbGVfcHJpdik7Cj4gIH0KPiAgCj4gK3N0YXRpYyBp bnQgcGFnZV9mbGlwX2NoZWNrX2Zicyhjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwK PiArCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYikKPiArewo+ ICsJLyogVGhlIGZyYW1lYnVmZmVyIGlzIGN1cnJlbnRseSB1bmJvdW5kLCBwcmVzdW1hYmx5Cj4g KwkgKiBkdWUgdG8gYSBob3RwbHVnIGV2ZW50LCB0aGF0IHVzZXJzcGFjZSBoYXMgbm90Cj4gKwkg KiB5ZXQgZGlzY292ZXJlZC4KPiArCSAqLwo+ICsJaWYgKCFvbGRfZmIpCj4gKwkJcmV0dXJuIC1F QlVTWTsKPiArCj4gKwlpZiAob2xkX2ZiLT5mb3JtYXQgIT0gZmItPmZvcm1hdCkgewo+ICsJCURS TV9ERUJVR19LTVMoIlBhZ2UgZmxpcCBpcyBub3QgYWxsb3dlZCB0byBjaGFuZ2UgZnJhbWUgYnVm ZmVyIGZvcm1hdC5cbiIpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCXJldHVy biAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHBhZ2VfZmxpcF9pbnRlcm5hbChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gKwkJCSAgICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICsJ CQkgICAgICBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplLAo+ICsJCQkgICAgICB1 MzIgZmxhZ3MsCj4gKwkJCSAgICAgIHUzMiB0YXJnZXRfdmJsYW5rLAo+ICsJCQkgICAgICBzdHJ1 Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKPiArewo+ICsJc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUgPSBjcnRjLT5wcmltYXJ5Owo+ICsJaW50IHJldDsKPiArCj4gKwlXQVJOX09OKGRy bV9kcnZfdXNlc19hdG9taWNfbW9kZXNldChjcnRjLT5kZXYpKTsKPiArCj4gKwlyZXQgPSBkcm1f Y3J0Y19jaGVja192aWV3cG9ydChjcnRjLCBjcnRjLT54LCBjcnRjLT55LAo+ICsJCQkJICAgICAg JmNydGMtPm1vZGUsIGZiKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwly ZXQgPSBwYWdlX2ZsaXBfY2hlY2tfZmJzKGZiLCBwbGFuZS0+ZmIpOwo+ICsJaWYgKHJldCkKPiAr CQlyZXR1cm4gcmV0Owo+ICsKPiArCXBsYW5lLT5vbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gKwlpZiAo Y3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQpCj4gKwkJcmV0ID0gY3J0Yy0+ZnVuY3MtPnBh Z2VfZmxpcF90YXJnZXQoY3J0YywgZmIsIGUsIGZsYWdzLAo+ICsJCQkJCQkgICAgdGFyZ2V0X3Zi bGFuaywgY3R4KTsKPiArCWVsc2UKPiArCQlyZXQgPSBjcnRjLT5mdW5jcy0+cGFnZV9mbGlwKGNy dGMsIGZiLCBlLCBmbGFncywgY3R4KTsKPiArCWlmIChyZXQpIHsKPiArCQlwbGFuZS0+b2xkX2Zi ID0gTlVMTDsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXBsYW5lLT5mYiA9IGZiOwo+ ICsJZHJtX2ZyYW1lYnVmZmVyX2dldChwbGFuZS0+ZmIpOwo+ICsKPiArCWRybV9mcmFtZWJ1ZmZl cl9wdXQocGxhbmUtPm9sZF9mYik7Cj4gKwlwbGFuZS0+b2xkX2ZiID0gTlVMTDsKPiArCj4gKwly ZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBwYWdlX2ZsaXBfYXRvbWljKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiArCQkJICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICsJ CQkgICAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSwKPiArCQkJICAgIHUzMiBm bGFncywKPiArCQkJICAgIHUzMiB0YXJnZXRfdmJsYW5rLAo+ICsJCQkgICAgc3RydWN0IGRybV9t b2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gK3sKPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l ID0gY3J0Yy0+cHJpbWFyeTsKPiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl ID0gcGxhbmUtPnN0YXRlOwo+ICsJaW50IHJldDsKPiArCj4gKwlXQVJOX09OKCFkcm1fZHJ2X3Vz ZXNfYXRvbWljX21vZGVzZXQoY3J0Yy0+ZGV2KSk7Cj4gKwo+ICsJLyoKPiArCSAqIEZJWE1FOiBD YW4gd2UgYXNzdW1lIGFsbCBkcml2ZXJzIGVuZCB1cCBjYWxsaW5nCj4gKwkgKiBkcm1fYXRvbWlj X3BsYW5lX2NoZWNrKCkgaW4gdGhlaXIgcGFnZSBmbGlwIHBhdGhzPwo+ICsJICogSWYgc28gd2Ug Y291bGQgcmVtb3ZlIHRoaXMuCj4gKwkgKi8KClRoaXMgaXMgZGVmaW5pdGVseSB3cm9uZywgY29y ZSBoYXMgdG8gY2hlY2sgdGhlc2UuIEN1cnJlbnRseSBubyBkcml2ZXIKY2hlY2tzIHRoaXMgYXQg YWxsLiBJIHRoaW5rIHlvdSdyZSB0aGlua2luZyBvZgpkcm1fYXRvbWljX2hlbHBlcl9jaGVja19w bGFuZV9zdGF0ZSgpLgoKVGhhdCBhc2lkZSBJJ20ga2luZGEgbm90IGdldHRpbmcgdGhlIHBvaW50 IG9mIHRoZSBzaHVmZmxpbmcvY2xlYW51cCBpbiB0aGUKZmlyc3QgNCBwYXRjaGVzIGhlcmUsIHNv IHdpbGwgc2tpcCB0aGVtLgotRGFuaWVsCgo+ICsJcmV0ID0gZHJtX2ZyYW1lYnVmZmVyX2NoZWNr X3NyY19jb29yZHMocGxhbmVfc3RhdGUtPnNyY194LAo+ICsJCQkJCSAgICAgICBwbGFuZV9zdGF0 ZS0+c3JjX3ksCj4gKwkJCQkJICAgICAgIHBsYW5lX3N0YXRlLT5zcmNfdywKPiArCQkJCQkgICAg ICAgcGxhbmVfc3RhdGUtPnNyY19oLAo+ICsJCQkJCSAgICAgICBmYik7Cj4gKwlpZiAocmV0KQo+ ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0ID0gcGFnZV9mbGlwX2NoZWNrX2ZicyhmYiwgcGxh bmVfc3RhdGUtPmZiKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlpZiAo Y3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQpCj4gKwkJcmV0dXJuIGNydGMtPmZ1bmNzLT5w YWdlX2ZsaXBfdGFyZ2V0KGNydGMsIGZiLCBlLCBmbGFncywKPiArCQkJCQkJICAgICB0YXJnZXRf dmJsYW5rLCBjdHgpOwo+ICsJZWxzZQo+ICsJCXJldHVybiBjcnRjLT5mdW5jcy0+cGFnZV9mbGlw KGNydGMsIGZiLCBlLCBmbGFncywgY3R4KTsKPiArfQo+ICsKPiAgaW50IGRybV9tb2RlX3BhZ2Vf ZmxpcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkgICAgIHZvaWQgKmRhdGEs IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfY3J0 Y19wYWdlX2ZsaXBfdGFyZ2V0ICpwYWdlX2ZsaXAgPSBkYXRhOwo+ICAJc3RydWN0IGRybV9jcnRj ICpjcnRjOwo+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gLQlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwgKm9sZF9mYjsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ICAJ c3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSA9IE5VTEw7Cj4gIAl1MzIgdGFyZ2V0 X3ZibGFuayA9IHBhZ2VfZmxpcC0+c2VxdWVuY2U7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNx dWlyZV9jdHggY3R4Owo+IEBAIC0xMTQ1LDY1ICsxMjQxLDE0IEBAIGludCBkcm1fbW9kZV9wYWdl X2ZsaXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWlmIChyZXQpCj4gIAkJZ290 byBvdXQ7Cj4gIAo+IC0JaWYgKHBsYW5lLT5zdGF0ZSkKPiAtCQlvbGRfZmIgPSBwbGFuZS0+c3Rh dGUtPmZiOwo+ICsJaWYgKGRybV9kcnZfdXNlc19hdG9taWNfbW9kZXNldChkZXYpKQo+ICsJCXJl dCA9IHBhZ2VfZmxpcF9hdG9taWMoY3J0YywgZmIsIGUsIHBhZ2VfZmxpcC0+ZmxhZ3MsCj4gKwkJ CQkgICAgICAgdGFyZ2V0X3ZibGFuaywgJmN0eCk7Cj4gIAllbHNlCj4gLQkJb2xkX2ZiID0gcGxh bmUtPmZiOwo+IC0KPiAtCWlmIChvbGRfZmIgPT0gTlVMTCkgewo+IC0JCS8qIFRoZSBmcmFtZWJ1 ZmZlciBpcyBjdXJyZW50bHkgdW5ib3VuZCwgcHJlc3VtYWJseQo+IC0JCSAqIGR1ZSB0byBhIGhv dHBsdWcgZXZlbnQsIHRoYXQgdXNlcnNwYWNlIGhhcyBub3QKPiAtCQkgKiB5ZXQgZGlzY292ZXJl ZC4KPiAtCQkgKi8KPiAtCQlyZXQgPSAtRUJVU1k7Cj4gLQkJZ290byBvdXQ7Cj4gLQl9Cj4gLQo+ IC0JaWYgKHBsYW5lLT5zdGF0ZSkgewo+IC0JCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg KnN0YXRlID0gcGxhbmUtPnN0YXRlOwo+IC0KPiAtCQlyZXQgPSBkcm1fZnJhbWVidWZmZXJfY2hl Y2tfc3JjX2Nvb3JkcyhzdGF0ZS0+c3JjX3gsCj4gLQkJCQkJCSAgICAgICBzdGF0ZS0+c3JjX3ks Cj4gLQkJCQkJCSAgICAgICBzdGF0ZS0+c3JjX3csCj4gLQkJCQkJCSAgICAgICBzdGF0ZS0+c3Jj X2gsCj4gLQkJCQkJCSAgICAgICBmYik7Cj4gLQl9IGVsc2Ugewo+IC0JCXJldCA9IGRybV9jcnRj X2NoZWNrX3ZpZXdwb3J0KGNydGMsIGNydGMtPngsIGNydGMtPnksCj4gLQkJCQkJICAgICAgJmNy dGMtPm1vZGUsIGZiKTsKPiAtCX0KPiAtCWlmIChyZXQpCj4gLQkJZ290byBvdXQ7Cj4gLQo+IC0J aWYgKG9sZF9mYi0+Zm9ybWF0ICE9IGZiLT5mb3JtYXQpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJQ YWdlIGZsaXAgaXMgbm90IGFsbG93ZWQgdG8gY2hhbmdlIGZyYW1lIGJ1ZmZlciBmb3JtYXQuXG4i KTsKPiAtCQlyZXQgPSAtRUlOVkFMOwo+IC0JCWdvdG8gb3V0Owo+IC0JfQo+IC0KPiAtCXBsYW5l LT5vbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gLQlpZiAoY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJn ZXQpCj4gLQkJcmV0ID0gY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQoY3J0YywgZmIsIGUs Cj4gLQkJCQkJCSAgICBwYWdlX2ZsaXAtPmZsYWdzLAo+IC0JCQkJCQkgICAgdGFyZ2V0X3ZibGFu aywKPiAtCQkJCQkJICAgICZjdHgpOwo+IC0JZWxzZQo+IC0JCXJldCA9IGNydGMtPmZ1bmNzLT5w YWdlX2ZsaXAoY3J0YywgZmIsIGUsIHBhZ2VfZmxpcC0+ZmxhZ3MsCj4gLQkJCQkJICAgICAmY3R4 KTsKPiAtCWlmIChyZXQpIHsKPiAtCQkvKiBLZWVwIHRoZSBvbGQgZmIsIGRvbid0IHVucmVmIGl0 LiAqLwo+IC0JCXBsYW5lLT5vbGRfZmIgPSBOVUxMOwo+IC0JfSBlbHNlIHsKPiAtCQlpZiAoIXBs YW5lLT5zdGF0ZSkgewo+IC0JCQlwbGFuZS0+ZmIgPSBmYjsKPiAtCQkJZHJtX2ZyYW1lYnVmZmVy X2dldChmYik7Cj4gLQkJfQo+IC0JfQo+ICsJCXJldCA9IHBhZ2VfZmxpcF9pbnRlcm5hbChjcnRj LCBmYiwgZSwgcGFnZV9mbGlwLT5mbGFncywKPiArCQkJCQkgdGFyZ2V0X3ZibGFuaywgJmN0eCk7 Cj4gIAo+ICBvdXQ6Cj4gLQlpZiAocGxhbmUtPm9sZF9mYikKPiAtCQlkcm1fZnJhbWVidWZmZXJf cHV0KHBsYW5lLT5vbGRfZmIpOwo+IC0JcGxhbmUtPm9sZF9mYiA9IE5VTEw7Cj4gLQo+ICAJaWYg KHJldCA9PSAtRURFQURMSykgewo+ICAJCXJldCA9IGRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7 Cj4gIAkJaWYgKCFyZXQpCj4gLS0gCj4gMi4yMy4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C2ECC432C0 for ; Tue, 19 Nov 2019 10:14:54 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7963122303 for ; Tue, 19 Nov 2019 10:14:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7963122303 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E12FA6E509; Tue, 19 Nov 2019 10:14:53 +0000 (UTC) Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id 740496E509 for ; Tue, 19 Nov 2019 10:14:52 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id z10so23068675wrs.12 for ; Tue, 19 Nov 2019 02:14:52 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=2zFyd6xUKsthnA2NBVBu4sGS7N47ScMvLVBjXke5qTo=; b=HW9M9YYRbgtJ5ZQTMUrVzZ5D7JZowONXMntz0ZiPecmlwQqir27iODc2oDkTD1nmy0 QI5f5GXz4r/0QGy31+WxMfAfYd3Qd/SgjRUmPnO8TBimPFm6VsqRoiWuRGvMr2XP5yyI fNHevFmLa8D79MgRHOz5sI/tkY0jHnLaOo8t84hoRnZ5yJYRsVYTJmtjRO86nFsvSgsE WZ/VFm3EhxVAEhgo6jCGXqbKjC7QgZKd3mANBaLB6D56JHUwdUohCdyR38MUGdElGuuS gPrSNOq/1zWfRxdLbUcPggUyU6XINmw8KTwihRVnjR2Nzde0X9ZYT0fzk2/Lvwramwfz updQ== X-Gm-Message-State: APjAAAUi8qIy8pyV1YIpmnkgnDziRhN957m5cwBk+z1xreN6bbytIj4v LObazwE8mjs4+hoQNkf9Fv4wMQ== X-Google-Smtp-Source: APXvYqwH7mz83dubbKcaZ/Fc9vHzOVUizCtXOILaabtEgSce/j5536YdZ1Y8rkylIpbN4R09s3HwbA== X-Received: by 2002:adf:f4c9:: with SMTP id h9mr28620002wrp.354.1574158490195; Tue, 19 Nov 2019 02:14:50 -0800 (PST) Received: from phenom.ffwll.local (212-51-149-96.fiber7.init7.net. [212.51.149.96]) by smtp.gmail.com with ESMTPSA id w7sm25898558wru.62.2019.11.19.02.14.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Nov 2019 02:14:49 -0800 (PST) Date: Tue, 19 Nov 2019 11:14:43 +0100 From: Daniel Vetter To: Ville Syrjala Subject: Re: [Intel-gfx] [PATCH 3/7] drm: Extract page_flip_{internal, atomic}() Message-ID: <20191119101443.GA30416@phenom.ffwll.local> References: <20191115194204.22244-1-ville.syrjala@linux.intel.com> <20191115194204.22244-4-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191115194204.22244-4-ville.syrjala@linux.intel.com> X-Operating-System: Linux phenom 5.2.0-3-amd64 User-Agent: Mutt/1.12.2 (2019-09-21) X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=2zFyd6xUKsthnA2NBVBu4sGS7N47ScMvLVBjXke5qTo=; b=BNXE1K5M8iEMkfqbT1ObxkTp0/cId6pUrKINJ4B9s5+/01DlTMV07Q786VvsQrR7Ql aDMDkskliOy0R53cIO77bUVP49W8o30JvRr1DTkTZ/MgTYUVgt/8Rp1gowtfuJcjyQRu VQGIvHAIlTsM3D1Y9qNKJ+qIUBRgSOfNLcqKM= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191119101443.QTnTdDbWldrq-up0RcZ7wQcEZctTuKC0iUNXzE4TIUY@z> T24gRnJpLCBOb3YgMTUsIDIwMTkgYXQgMDk6NDI6MDBQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IFlhbmsgb3V0IHRoZSBjb2RlIGZvciB0aGUgcGxhbmUtPmZiL29sZF9mYi9jcnRj IGhhbmRsaW5nIGZyb20KPiB0aGUgcGFnZSBmbGlwIHBhdGggaW50byBwYWdlX2ZsaXBfaW50ZXJu YWwoKSwgYW5kIHByb3ZpZGUgYQo+IHNpbXBsZXIgdmFyaWFudCBmb3IgYXRvbWljIGRyaXZlcnMu Cj4gCj4gV2UnbGwgYWxzbyBtb3ZlIHRoZSBmYiB2cy4gc3JjIHZpZXdwb3J0IGNoZWNrcyBpbnRv IHRoZSBuZXcKPiBmdW5jdGlvbnMgYXMgdGhleSBhcmUgc2xpZ2h0bHkgZGlmZmVyZW50IGJldHdl ZW4gdGhlIHR3byBwYXRocy4KPiBJZiB0aGUgYXRvbWljIC5wYWdlX2ZsaXAoKSBpbXBsZW1lbnRh dGlvbnMgYXJlIGd1YXJhbnRlZWQKPiB0byBjYWxsIGRybV9hdG9taWNfcGxhbmVfY2hlY2soKSB3 ZSBjb3VsZCBldmVuIGRyb3AgdGhlIGNoZWNrCj4gZW50aXJlbHkgZnJvbSBwYWdlX2ZsaXBfYXRv bWljKCkuIEZvciBub3cgdG9zcyBpbiBhIEZJWE1FLgo+IAo+IHYyOiBCaXQgbW9yZSBwb2xpc2gg aW4gcGFnZV9mbGlwX2ludGVybmFsKCkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vZHJtX3BsYW5lLmMgfCAxNTkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fcGxhbmUuYwo+IGluZGV4IDM4ODc4ZGE1YjcwNC4uNjA1MjQ3NWEyMGE1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fcGxhbmUuYwo+IEBAIC0xMDMxLDEzICsxMDMxLDEwOSBAQCBpbnQgZHJtX21vZGVf Y3Vyc29yMl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJcmV0dXJuIGRybV9tb2Rl X2N1cnNvcl9jb21tb24oZGV2LCByZXEsIGZpbGVfcHJpdik7Cj4gIH0KPiAgCj4gK3N0YXRpYyBp bnQgcGFnZV9mbGlwX2NoZWNrX2Zicyhjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwK PiArCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYikKPiArewo+ ICsJLyogVGhlIGZyYW1lYnVmZmVyIGlzIGN1cnJlbnRseSB1bmJvdW5kLCBwcmVzdW1hYmx5Cj4g KwkgKiBkdWUgdG8gYSBob3RwbHVnIGV2ZW50LCB0aGF0IHVzZXJzcGFjZSBoYXMgbm90Cj4gKwkg KiB5ZXQgZGlzY292ZXJlZC4KPiArCSAqLwo+ICsJaWYgKCFvbGRfZmIpCj4gKwkJcmV0dXJuIC1F QlVTWTsKPiArCj4gKwlpZiAob2xkX2ZiLT5mb3JtYXQgIT0gZmItPmZvcm1hdCkgewo+ICsJCURS TV9ERUJVR19LTVMoIlBhZ2UgZmxpcCBpcyBub3QgYWxsb3dlZCB0byBjaGFuZ2UgZnJhbWUgYnVm ZmVyIGZvcm1hdC5cbiIpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCXJldHVy biAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHBhZ2VfZmxpcF9pbnRlcm5hbChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gKwkJCSAgICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICsJ CQkgICAgICBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplLAo+ICsJCQkgICAgICB1 MzIgZmxhZ3MsCj4gKwkJCSAgICAgIHUzMiB0YXJnZXRfdmJsYW5rLAo+ICsJCQkgICAgICBzdHJ1 Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKPiArewo+ICsJc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUgPSBjcnRjLT5wcmltYXJ5Owo+ICsJaW50IHJldDsKPiArCj4gKwlXQVJOX09OKGRy bV9kcnZfdXNlc19hdG9taWNfbW9kZXNldChjcnRjLT5kZXYpKTsKPiArCj4gKwlyZXQgPSBkcm1f Y3J0Y19jaGVja192aWV3cG9ydChjcnRjLCBjcnRjLT54LCBjcnRjLT55LAo+ICsJCQkJICAgICAg JmNydGMtPm1vZGUsIGZiKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwly ZXQgPSBwYWdlX2ZsaXBfY2hlY2tfZmJzKGZiLCBwbGFuZS0+ZmIpOwo+ICsJaWYgKHJldCkKPiAr CQlyZXR1cm4gcmV0Owo+ICsKPiArCXBsYW5lLT5vbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gKwlpZiAo Y3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQpCj4gKwkJcmV0ID0gY3J0Yy0+ZnVuY3MtPnBh Z2VfZmxpcF90YXJnZXQoY3J0YywgZmIsIGUsIGZsYWdzLAo+ICsJCQkJCQkgICAgdGFyZ2V0X3Zi bGFuaywgY3R4KTsKPiArCWVsc2UKPiArCQlyZXQgPSBjcnRjLT5mdW5jcy0+cGFnZV9mbGlwKGNy dGMsIGZiLCBlLCBmbGFncywgY3R4KTsKPiArCWlmIChyZXQpIHsKPiArCQlwbGFuZS0+b2xkX2Zi ID0gTlVMTDsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXBsYW5lLT5mYiA9IGZiOwo+ ICsJZHJtX2ZyYW1lYnVmZmVyX2dldChwbGFuZS0+ZmIpOwo+ICsKPiArCWRybV9mcmFtZWJ1ZmZl cl9wdXQocGxhbmUtPm9sZF9mYik7Cj4gKwlwbGFuZS0+b2xkX2ZiID0gTlVMTDsKPiArCj4gKwly ZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBwYWdlX2ZsaXBfYXRvbWljKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiArCQkJICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICsJ CQkgICAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSwKPiArCQkJICAgIHUzMiBm bGFncywKPiArCQkJICAgIHUzMiB0YXJnZXRfdmJsYW5rLAo+ICsJCQkgICAgc3RydWN0IGRybV9t b2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gK3sKPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l ID0gY3J0Yy0+cHJpbWFyeTsKPiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl ID0gcGxhbmUtPnN0YXRlOwo+ICsJaW50IHJldDsKPiArCj4gKwlXQVJOX09OKCFkcm1fZHJ2X3Vz ZXNfYXRvbWljX21vZGVzZXQoY3J0Yy0+ZGV2KSk7Cj4gKwo+ICsJLyoKPiArCSAqIEZJWE1FOiBD YW4gd2UgYXNzdW1lIGFsbCBkcml2ZXJzIGVuZCB1cCBjYWxsaW5nCj4gKwkgKiBkcm1fYXRvbWlj X3BsYW5lX2NoZWNrKCkgaW4gdGhlaXIgcGFnZSBmbGlwIHBhdGhzPwo+ICsJICogSWYgc28gd2Ug Y291bGQgcmVtb3ZlIHRoaXMuCj4gKwkgKi8KClRoaXMgaXMgZGVmaW5pdGVseSB3cm9uZywgY29y ZSBoYXMgdG8gY2hlY2sgdGhlc2UuIEN1cnJlbnRseSBubyBkcml2ZXIKY2hlY2tzIHRoaXMgYXQg YWxsLiBJIHRoaW5rIHlvdSdyZSB0aGlua2luZyBvZgpkcm1fYXRvbWljX2hlbHBlcl9jaGVja19w bGFuZV9zdGF0ZSgpLgoKVGhhdCBhc2lkZSBJJ20ga2luZGEgbm90IGdldHRpbmcgdGhlIHBvaW50 IG9mIHRoZSBzaHVmZmxpbmcvY2xlYW51cCBpbiB0aGUKZmlyc3QgNCBwYXRjaGVzIGhlcmUsIHNv IHdpbGwgc2tpcCB0aGVtLgotRGFuaWVsCgo+ICsJcmV0ID0gZHJtX2ZyYW1lYnVmZmVyX2NoZWNr X3NyY19jb29yZHMocGxhbmVfc3RhdGUtPnNyY194LAo+ICsJCQkJCSAgICAgICBwbGFuZV9zdGF0 ZS0+c3JjX3ksCj4gKwkJCQkJICAgICAgIHBsYW5lX3N0YXRlLT5zcmNfdywKPiArCQkJCQkgICAg ICAgcGxhbmVfc3RhdGUtPnNyY19oLAo+ICsJCQkJCSAgICAgICBmYik7Cj4gKwlpZiAocmV0KQo+ ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0ID0gcGFnZV9mbGlwX2NoZWNrX2ZicyhmYiwgcGxh bmVfc3RhdGUtPmZiKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlpZiAo Y3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQpCj4gKwkJcmV0dXJuIGNydGMtPmZ1bmNzLT5w YWdlX2ZsaXBfdGFyZ2V0KGNydGMsIGZiLCBlLCBmbGFncywKPiArCQkJCQkJICAgICB0YXJnZXRf dmJsYW5rLCBjdHgpOwo+ICsJZWxzZQo+ICsJCXJldHVybiBjcnRjLT5mdW5jcy0+cGFnZV9mbGlw KGNydGMsIGZiLCBlLCBmbGFncywgY3R4KTsKPiArfQo+ICsKPiAgaW50IGRybV9tb2RlX3BhZ2Vf ZmxpcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkgICAgIHZvaWQgKmRhdGEs IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfY3J0 Y19wYWdlX2ZsaXBfdGFyZ2V0ICpwYWdlX2ZsaXAgPSBkYXRhOwo+ICAJc3RydWN0IGRybV9jcnRj ICpjcnRjOwo+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gLQlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwgKm9sZF9mYjsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ICAJ c3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSA9IE5VTEw7Cj4gIAl1MzIgdGFyZ2V0 X3ZibGFuayA9IHBhZ2VfZmxpcC0+c2VxdWVuY2U7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNx dWlyZV9jdHggY3R4Owo+IEBAIC0xMTQ1LDY1ICsxMjQxLDE0IEBAIGludCBkcm1fbW9kZV9wYWdl X2ZsaXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWlmIChyZXQpCj4gIAkJZ290 byBvdXQ7Cj4gIAo+IC0JaWYgKHBsYW5lLT5zdGF0ZSkKPiAtCQlvbGRfZmIgPSBwbGFuZS0+c3Rh dGUtPmZiOwo+ICsJaWYgKGRybV9kcnZfdXNlc19hdG9taWNfbW9kZXNldChkZXYpKQo+ICsJCXJl dCA9IHBhZ2VfZmxpcF9hdG9taWMoY3J0YywgZmIsIGUsIHBhZ2VfZmxpcC0+ZmxhZ3MsCj4gKwkJ CQkgICAgICAgdGFyZ2V0X3ZibGFuaywgJmN0eCk7Cj4gIAllbHNlCj4gLQkJb2xkX2ZiID0gcGxh bmUtPmZiOwo+IC0KPiAtCWlmIChvbGRfZmIgPT0gTlVMTCkgewo+IC0JCS8qIFRoZSBmcmFtZWJ1 ZmZlciBpcyBjdXJyZW50bHkgdW5ib3VuZCwgcHJlc3VtYWJseQo+IC0JCSAqIGR1ZSB0byBhIGhv dHBsdWcgZXZlbnQsIHRoYXQgdXNlcnNwYWNlIGhhcyBub3QKPiAtCQkgKiB5ZXQgZGlzY292ZXJl ZC4KPiAtCQkgKi8KPiAtCQlyZXQgPSAtRUJVU1k7Cj4gLQkJZ290byBvdXQ7Cj4gLQl9Cj4gLQo+ IC0JaWYgKHBsYW5lLT5zdGF0ZSkgewo+IC0JCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg KnN0YXRlID0gcGxhbmUtPnN0YXRlOwo+IC0KPiAtCQlyZXQgPSBkcm1fZnJhbWVidWZmZXJfY2hl Y2tfc3JjX2Nvb3JkcyhzdGF0ZS0+c3JjX3gsCj4gLQkJCQkJCSAgICAgICBzdGF0ZS0+c3JjX3ks Cj4gLQkJCQkJCSAgICAgICBzdGF0ZS0+c3JjX3csCj4gLQkJCQkJCSAgICAgICBzdGF0ZS0+c3Jj X2gsCj4gLQkJCQkJCSAgICAgICBmYik7Cj4gLQl9IGVsc2Ugewo+IC0JCXJldCA9IGRybV9jcnRj X2NoZWNrX3ZpZXdwb3J0KGNydGMsIGNydGMtPngsIGNydGMtPnksCj4gLQkJCQkJICAgICAgJmNy dGMtPm1vZGUsIGZiKTsKPiAtCX0KPiAtCWlmIChyZXQpCj4gLQkJZ290byBvdXQ7Cj4gLQo+IC0J aWYgKG9sZF9mYi0+Zm9ybWF0ICE9IGZiLT5mb3JtYXQpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJQ YWdlIGZsaXAgaXMgbm90IGFsbG93ZWQgdG8gY2hhbmdlIGZyYW1lIGJ1ZmZlciBmb3JtYXQuXG4i KTsKPiAtCQlyZXQgPSAtRUlOVkFMOwo+IC0JCWdvdG8gb3V0Owo+IC0JfQo+IC0KPiAtCXBsYW5l LT5vbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gLQlpZiAoY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJn ZXQpCj4gLQkJcmV0ID0gY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQoY3J0YywgZmIsIGUs Cj4gLQkJCQkJCSAgICBwYWdlX2ZsaXAtPmZsYWdzLAo+IC0JCQkJCQkgICAgdGFyZ2V0X3ZibGFu aywKPiAtCQkJCQkJICAgICZjdHgpOwo+IC0JZWxzZQo+IC0JCXJldCA9IGNydGMtPmZ1bmNzLT5w YWdlX2ZsaXAoY3J0YywgZmIsIGUsIHBhZ2VfZmxpcC0+ZmxhZ3MsCj4gLQkJCQkJICAgICAmY3R4 KTsKPiAtCWlmIChyZXQpIHsKPiAtCQkvKiBLZWVwIHRoZSBvbGQgZmIsIGRvbid0IHVucmVmIGl0 LiAqLwo+IC0JCXBsYW5lLT5vbGRfZmIgPSBOVUxMOwo+IC0JfSBlbHNlIHsKPiAtCQlpZiAoIXBs YW5lLT5zdGF0ZSkgewo+IC0JCQlwbGFuZS0+ZmIgPSBmYjsKPiAtCQkJZHJtX2ZyYW1lYnVmZmVy X2dldChmYik7Cj4gLQkJfQo+IC0JfQo+ICsJCXJldCA9IHBhZ2VfZmxpcF9pbnRlcm5hbChjcnRj LCBmYiwgZSwgcGFnZV9mbGlwLT5mbGFncywKPiArCQkJCQkgdGFyZ2V0X3ZibGFuaywgJmN0eCk7 Cj4gIAo+ICBvdXQ6Cj4gLQlpZiAocGxhbmUtPm9sZF9mYikKPiAtCQlkcm1fZnJhbWVidWZmZXJf cHV0KHBsYW5lLT5vbGRfZmIpOwo+IC0JcGxhbmUtPm9sZF9mYiA9IE5VTEw7Cj4gLQo+ICAJaWYg KHJldCA9PSAtRURFQURMSykgewo+ICAJCXJldCA9IGRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7 Cj4gIAkJaWYgKCFyZXQpCj4gLS0gCj4gMi4yMy4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs