From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michal Wajdeczko" Subject: Re: [PATCH 1/6] drm/i915/uc: move uC WOPCM setup in uc_init_hw Date: Tue, 30 Jul 2019 16:39:28 +0200 Message-ID: References: <20190729234727.28286-1-daniele.ceraolospurio@intel.com> <20190729234727.28286-2-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed"; DelSp="yes" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8280B6E583 for ; Tue, 30 Jul 2019 14:39:31 +0000 (UTC) In-Reply-To: <20190729234727.28286-2-daniele.ceraolospurio@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, Daniele Ceraolo Spurio List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAzMCBKdWwgMjAxOSAwMTo0NzoyMiArMDIwMCwgRGFuaWVsZSBDZXJhb2xvIFNwdXJp byAgCjxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPiB3cm90ZToKCj4gVGhlIHJlZ2lz dGVyIHdlIHdyaXRlIGFyZSBub3QgV09QQ00gcmVncyBidXQgdUMgb25lcyByZWxhdGVkIHRvIGhv dwo+IEd1QyBhbmQgSHVDIGFyZSBnb2luZyB0byB1c2UgdGhlIFdPUENNLCBzbyBpdCBtYWtlcyBs b2dpY2FsIHNlbnNlCj4gZm9yIHRoZW0gdG8gYmUgcHJvZ3JhbW1lZCBhcyBwYXJ0IG9mIHVjX2lu aXRfaHcuIFRoZSB3b3BjbSBtYXAgb24gdGhlCgpzL3dvcGNtL1dPUENNCgo+IG90aGVyIHNpZGUg aXMgbm90IHVDLXNwZWNpZmljIChhbHRob3VnaCB0aGF0IGlzIG91ciBtYWluIHVzZS1jYXNlKSwg c28KPiBrZWVwIHRoYXQgc2VwYXJhdGUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFv bG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+IENjOiBNaWNoYWwg V2FqZGVjemtvIDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4KPiBDYzogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX3VjLmMgfCA2MiArKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICB8ICA4ICstLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfd29wY20uYyAgICB8IDY4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3BjbS5oICAgIHwgIDMgLS0KPiAgNCBm aWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jICAKPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmMKPiBpbmRleCBmYWZhOWJlMWUxMmEuLjJm NzFmMzcwNGM0NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRl bF91Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuYwo+IEBA IC0zOTAsNiArMzkwLDYzIEBAIHZvaWQgaW50ZWxfdWNfc2FuaXRpemUoc3RydWN0IGludGVsX3Vj ICp1YykKPiAgCV9fdWNfc2FuaXRpemUodWMpOwo+ICB9Cj4gK3N0YXRpYyBpbnQKPiArd3JpdGVf YW5kX3ZlcmlmeShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAo+ICsJCSBpOTE1X3JlZ190IHJlZywgdTMy IHZhbCwgdTMyIG1hc2ssIHUzMiBsb2NrZWRfYml0KQoKYXMgdGhpcyBmdW5jdGlvbiBpcyBtb3Jl ICd1bmNvcmUnIHRoYW4gJ2d0JyBJIHdvdWxkIGRlZmluZSBpdCBhczoKCnN0YXRpYyBpbmxpbmUg Ym9vbAppbnRlbF91bmNvcmVfd3JpdGVfYW5kX3ZlcmlmeShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1 bmNvcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpOTE1X3JlZ190IHJlZywgdTMy IHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGV4cGVjdGVkX3ZhbHVl LCB1MzIgbWFzaykKaW4gaW50ZWxfdW5jb3JlLmgKCj4gK3sKPiArCXN0cnVjdCBpbnRlbF91bmNv cmUgKnVuY29yZSA9IGd0LT51bmNvcmU7Cj4gKwl1MzIgcmVnX3ZhbDsKPiArCj4gKwlHRU1fQlVH X09OKHZhbCAmIH5tYXNrKTsKPiArCj4gKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCByZWcs IHZhbCk7Cj4gKwo+ICsJcmVnX3ZhbCA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgcmVnKTsK PiArCj4gKwlyZXR1cm4gKHJlZ192YWwgJiBtYXNrKSAhPSAodmFsIHwgbG9ja2VkX2JpdCkgPyAt RUlPIDogMDsKPiArfQo+ICsKPiArLyogSW5pdGlhbGl6ZSBhbmQgdmVyaWZ5IHRoZSB1QyByZWdz IHJlbGF0ZWQgdG8gdUMgcG9zaXRpb25pbmcgaW4gV09QQ00gIAo+ICovCj4gK2ludCB1Y193b3Bj bV9pbml0X2h3KHN0cnVjdCBpbnRlbF91YyAqdWMpCgpzdGF0aWMgaW50IHVjX2luaXRfd29wY20o KQoKPiArewo+ICsJc3RydWN0IGludGVsX2d0ICpndCA9IHVjX3RvX2d0KHVjKTsKPiArCXN0cnVj dCBpbnRlbF93b3BjbSAqd29wY20gPSAmZ3QtPmk5MTUtPndvcGNtOwo+ICsJc3RydWN0IGludGVs X3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKPiArCXUzMiBodWNfYWdlbnQ7Cj4gKwl1MzIg bWFzazsKPiArCWludCBlcnI7Cj4gKwo+ICsJR0VNX0JVR19PTighSEFTX0dUX1VDKGd0LT5pOTE1 KSk7Cj4gKwlHRU1fQlVHX09OKCFpbnRlbF91Y19pc191c2luZ19ndWModWMpKTsKPiArCUdFTV9C VUdfT04oIXdvcGNtLT5ndWMuc2l6ZSk7CgpvbiBvbmUgaGFuZCB0aGVyZSBpcyBpbnRlbF93b3Bj bV9ndWNfc2l6ZSgpIHRoYXQgY2FuIGJlIHVzZWQgaGVyZSwKYnV0IG9uIG90aGVyIGhhbmQgdGhl cmUgaXMgbm8gaW50ZWxfd29wY21fZ3VjX2Jhc2UgOygKCj4gKwlHRU1fQlVHX09OKCF3b3BjbS0+ Z3VjLmJhc2UpOwo+ICsKPiArCWVyciA9IHdyaXRlX2FuZF92ZXJpZnkoZ3QsIEdVQ19XT1BDTV9T SVpFLCB3b3BjbS0+Z3VjLnNpemUsCj4gKwkJCSAgICAgICBHVUNfV09QQ01fU0laRV9NQVNLIHwg R1VDX1dPUENNX1NJWkVfTE9DS0VELAo+ICsJCQkgICAgICAgR1VDX1dPUENNX1NJWkVfTE9DS0VE KTsKCmhtbSwgYXMgdGhlc2UgYXJlIHdyaXRlLW9uY2UgcmVnaXN0ZXJzLCBtYXliZSB3ZSBzaG91 bGQgd3JpdGUgb25seSBvbmNlCihub3QgaGVyZSkgYW5kIG9ubHkgdmVyaWZ5IGV2ZXJ5IHRpbWUg aW4gdWNfaW5pdF9odyA/Cgo+ICsJaWYgKGVycikKPiArCQlnb3RvIGVycl9vdXQ7Cj4gKwo+ICsJ aHVjX2FnZW50ID0gaW50ZWxfdWNfaXNfdXNpbmdfaHVjKHVjKSA/IEhVQ19MT0FESU5HX0FHRU5U X0dVQyA6IDA7Cj4gKwltYXNrID0gR1VDX1dPUENNX09GRlNFVF9NQVNLIHwgR1VDX1dPUENNX09G RlNFVF9WQUxJRCB8IGh1Y19hZ2VudDsKPiArCWVyciA9IHdyaXRlX2FuZF92ZXJpZnkoZ3QsIERN QV9HVUNfV09QQ01fT0ZGU0VULAo+ICsJCQkgICAgICAgd29wY20tPmd1Yy5iYXNlIHwgaHVjX2Fn ZW50LCBtYXNrLAo+ICsJCQkgICAgICAgR1VDX1dPUENNX09GRlNFVF9WQUxJRCk7Cj4gKwlpZiAo ZXJyKQo+ICsJCWdvdG8gZXJyX291dDsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2Vycl9vdXQ6 Cj4gKwlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0IFdPUENNIHJlZ2lzdGVyczpcbiIpOwoKSW4g Y29tbWl0IG1zZyB5b3Ugc2FpZCB0aGF0IHRoZXNlIGFyZSBub3QgV09QQ00gcmVnaXN0ZXJzIDsp Cgo+ICsJRFJNX0VSUk9SKCJETUFfR1VDX1dPUENNX09GRlNFVD0lI3hcbiIsCj4gKwkJICBpbnRl bF91bmNvcmVfcmVhZCh1bmNvcmUsIERNQV9HVUNfV09QQ01fT0ZGU0VUKSk7Cj4gKwlEUk1fRVJS T1IoIkdVQ19XT1BDTV9TSVpFPSUjeFxuIiwKPiArCQkgIGludGVsX3VuY29yZV9yZWFkKHVuY29y ZSwgR1VDX1dPUENNX1NJWkUpKTsKCmJ0dywgd2UgY2FuIGF2b2lkIGV4dHJhIHJlYWQgYnkgcmVw b3J0aW5nIGFscmVhZHkgZmFpbGVkIHdyaXRlCmluIGludGVsX3VuY29yZV93cml0ZV9hbmRfdmVy aWZ5KCkKCj4gKwo+ICsJcmV0dXJuIGVycjsKPiArfQo+ICsKPiAgaW50IGludGVsX3VjX2luaXRf aHcoc3RydWN0IGludGVsX3VjICp1YykKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUgPSB1Y190b19ndCh1YyktPmk5MTU7Cj4gQEAgLTQwMiw2ICs0NTksMTAgQEAgaW50IGlu dGVsX3VjX2luaXRfaHcoc3RydWN0IGludGVsX3VjICp1YykKPiAJR0VNX0JVR19PTighaW50ZWxf dWNfZndfc3VwcG9ydGVkKCZndWMtPmZ3KSk7Cj4gKwlyZXQgPSB1Y193b3BjbV9pbml0X2h3KHVj KTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBvdXQ7CgppdCBzaG91bGQgYmUgaGFybWxlc3MgdG8g cmV1c2UgZXhpc3RpbmcgZXJyX291dCBsYWJlbAoKPiArCj4gIAlndWNfcmVzZXRfaW50ZXJydXB0 cyhndWMpOwo+IAkvKiBXYUVuYWJsZXVLZXJuZWxIZWFkZXJWYWxpZEZpeDpza2wgKi8KPiBAQCAt NDg2LDYgKzU0Nyw3IEBAIGludCBpbnRlbF91Y19pbml0X2h3KHN0cnVjdCBpbnRlbF91YyAqdWMp Cj4gIAlpZiAoR0VNX1dBUk5fT04ocmV0ID09IC1FSU8pKQo+ICAJCXJldCA9IC1FSU5WQUw7Cj4g K291dDoKPiAgCWRldl9lcnIoaTkxNS0+ZHJtLmRldiwgIkd1QyBpbml0aWFsaXphdGlvbiBmYWls ZWQgJWRcbiIsIHJldCk7Cj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgIAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+IGluZGV4IDAxZGQwZDFkOWJmNi4uYWU0ZTdjYzNlM2Y5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCj4gQEAgLTEyMzksMTQgKzEyMzksOCBAQCBpbnQgaTkxNV9nZW1faW5p dF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAgCj4gKmk5MTUpCj4gIAkJZ290byBvdXQ7Cj4g IAl9Cj4gLQlyZXQgPSBpbnRlbF93b3BjbV9pbml0X2h3KCZpOTE1LT53b3BjbSwgZ3QpOwo+IC0J aWYgKHJldCkgewo+IC0JCURSTV9FUlJPUigiRW5hYmxpbmcgV09QQ00gZmFpbGVkICglZClcbiIs IHJldCk7Cj4gLQkJZ290byBvdXQ7Cj4gLQl9Cj4gLQo+ICAJLyogV2UgY2FuJ3QgZW5hYmxlIGNv bnRleHRzIHVudGlsIGFsbCBmaXJtd2FyZSBpcyBsb2FkZWQgKi8KPiAtCXJldCA9IGludGVsX3Vj X2luaXRfaHcoJmk5MTUtPmd0LnVjKTsKPiArCXJldCA9IGludGVsX3VjX2luaXRfaHcoJmd0LT51 Yyk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9SKCJFbmFibGluZyB1YyBmYWlsZWQgKCVk KVxuIiwgcmV0KTsKPiAgCQlnb3RvIG91dDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfd29wY20uYyAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3Bj bS5jCj4gaW5kZXggMGU4NmE5ZTg1YjQ5Li5kOTk3M2MwYjAzODQgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29wY20uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3dvcGNtLmMKPiBAQCAtMjI0LDcxICsyMjQsMyBAQCBpbnQgaW50ZWxfd29wY21f aW5pdChzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKQo+IAlyZXR1cm4gMDsKPiAgfQo+IC0KPiAt c3RhdGljIGludAo+IC13cml0ZV9hbmRfdmVyaWZ5KHN0cnVjdCBpbnRlbF9ndCAqZ3QsCj4gLQkJ IGk5MTVfcmVnX3QgcmVnLCB1MzIgdmFsLCB1MzIgbWFzaywgdTMyIGxvY2tlZF9iaXQpCj4gLXsK PiAtCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7Cj4gLQl1MzIgcmVn X3ZhbDsKPiAtCj4gLQlHRU1fQlVHX09OKHZhbCAmIH5tYXNrKTsKPiAtCj4gLQlpbnRlbF91bmNv cmVfd3JpdGUodW5jb3JlLCByZWcsIHZhbCk7Cj4gLQo+IC0JcmVnX3ZhbCA9IGludGVsX3VuY29y ZV9yZWFkKHVuY29yZSwgcmVnKTsKPiAtCj4gLQlyZXR1cm4gKHJlZ192YWwgJiBtYXNrKSAhPSAo dmFsIHwgbG9ja2VkX2JpdCkgPyAtRUlPIDogMDsKPiAtfQo+IC0KPiAtLyoqCj4gLSAqIGludGVs X3dvcGNtX2luaXRfaHcoKSAtIFNldHVwIEd1QyBXT1BDTSByZWdpc3RlcnMuCj4gLSAqIEB3b3Bj bTogcG9pbnRlciB0byBpbnRlbF93b3BjbS4KPiAtICogQGd0OiBwb2ludGVyIHRvIHRoZSBjb250 YWluaW5nIEdUCj4gLSAqCj4gLSAqIFNldHVwIHRoZSBHdUMgV09QQ00gc2l6ZSBhbmQgb2Zmc2V0 IHJlZ2lzdGVycyB3aXRoIHRoZSBjYWxjdWxhdGVkICAKPiB2YWx1ZXMuIEl0Cj4gLSAqIHdpbGwg dmVyaWZ5IHRoZSByZWdpc3RlciB2YWx1ZXMgdG8gbWFrZSBzdXJlIHRoZSByZWdpc3RlcnMgYXJl ICAKPiBsb2NrZWQgd2l0aAo+IC0gKiBjb3JyZWN0IHZhbHVlcy4KPiAtICoKPiAtICogUmV0dXJu OiAwIG9uIHN1Y2Nlc3MuIC1FSU8gaWYgcmVnaXN0ZXJzIHdlcmUgbG9ja2VkIHdpdGggaW5jb3Jy ZWN0ICAKPiB2YWx1ZXMuCj4gLSAqLwo+IC1pbnQgaW50ZWxfd29wY21faW5pdF9odyhzdHJ1Y3Qg aW50ZWxfd29wY20gKndvcGNtLCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQo+IC17Cj4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHdvcGNtX3RvX2k5MTUod29wY20pOwo+IC0Jc3RydWN0 IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKPiAtCXUzMiBodWNfYWdlbnQ7Cj4g LQl1MzIgbWFzazsKPiAtCWludCBlcnI7Cj4gLQo+IC0JaWYgKCFVU0VTX0dVQyhpOTE1KSkKPiAt CQlyZXR1cm4gMDsKPiAtCj4gLQlHRU1fQlVHX09OKCFIQVNfR1RfVUMoaTkxNSkpOwo+IC0JR0VN X0JVR19PTighd29wY20tPmd1Yy5zaXplKTsKPiAtCUdFTV9CVUdfT04oIXdvcGNtLT5ndWMuYmFz ZSk7Cj4gLQo+IC0JZXJyID0gd3JpdGVfYW5kX3ZlcmlmeShndCwgR1VDX1dPUENNX1NJWkUsIHdv cGNtLT5ndWMuc2l6ZSwKPiAtCQkJICAgICAgIEdVQ19XT1BDTV9TSVpFX01BU0sgfCBHVUNfV09Q Q01fU0laRV9MT0NLRUQsCj4gLQkJCSAgICAgICBHVUNfV09QQ01fU0laRV9MT0NLRUQpOwo+IC0J aWYgKGVycikKPiAtCQlnb3RvIGVycl9vdXQ7Cj4gLQo+IC0JaHVjX2FnZW50ID0gVVNFU19IVUMo aTkxNSkgPyBIVUNfTE9BRElOR19BR0VOVF9HVUMgOiAwOwo+IC0JbWFzayA9IEdVQ19XT1BDTV9P RkZTRVRfTUFTSyB8IEdVQ19XT1BDTV9PRkZTRVRfVkFMSUQgfCBodWNfYWdlbnQ7Cj4gLQllcnIg PSB3cml0ZV9hbmRfdmVyaWZ5KGd0LCBETUFfR1VDX1dPUENNX09GRlNFVCwKPiAtCQkJICAgICAg IHdvcGNtLT5ndWMuYmFzZSB8IGh1Y19hZ2VudCwgbWFzaywKPiAtCQkJICAgICAgIEdVQ19XT1BD TV9PRkZTRVRfVkFMSUQpOwo+IC0JaWYgKGVycikKPiAtCQlnb3RvIGVycl9vdXQ7Cj4gLQo+IC0J cmV0dXJuIDA7Cj4gLQo+IC1lcnJfb3V0Ogo+IC0JRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdCBX T1BDTSByZWdpc3RlcnM6XG4iKTsKPiAtCURSTV9FUlJPUigiRE1BX0dVQ19XT1BDTV9PRkZTRVQ9 JSN4XG4iLAo+IC0JCSAgaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBETUFfR1VDX1dPUENNX09G RlNFVCkpOwo+IC0JRFJNX0VSUk9SKCJHVUNfV09QQ01fU0laRT0lI3hcbiIsCj4gLQkJICBpbnRl bF91bmNvcmVfcmVhZCh1bmNvcmUsIEdVQ19XT1BDTV9TSVpFKSk7Cj4gLQo+IC0JcmV0dXJuIGVy cjsKPiAtfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3BjbS5o ICAKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcGNtLmgKPiBpbmRleCA1NmFhZWQ0 ZDY0ZmYuLmUxZjBmNjZhYWE0NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF93b3BjbS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29wY20uaAo+ IEBAIC05LDggKzksNiBAQAo+ICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+IC1zdHJ1Y3QgaW50 ZWxfZ3Q7Cj4gLQo+ICAvKioKPiAgICogc3RydWN0IGludGVsX3dvcGNtIC0gT3ZlcmFsbCBXT1BD TSBpbmZvIGFuZCBXT1BDTSByZWdpb25zLgo+ICAgKiBAc2l6ZTogU2l6ZSBvZiBvdmVyYWxsIFdP UENNLgo+IEBAIC00Myw2ICs0MSw1IEBAIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX3dvcGNtX2d1 Y19zaXplKHN0cnVjdCAgCj4gaW50ZWxfd29wY20gKndvcGNtKQo+IHZvaWQgaW50ZWxfd29wY21f aW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKTsKPiAgaW50IGludGVsX3dvcGNt X2luaXQoc3RydWN0IGludGVsX3dvcGNtICp3b3BjbSk7Cj4gLWludCBpbnRlbF93b3BjbV9pbml0 X2h3KHN0cnVjdCBpbnRlbF93b3BjbSAqd29wY20sIHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwo+ICNl bmRpZgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=