From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2] drm/i915: Beef up the IPS vs. CRC workaround Date: Thu, 17 Aug 2017 15:24:19 +0300 Message-ID: <20170817122419.GC4914@intel.com> References: <20161221093105.19120-1-ville.syrjala@linux.intel.com> <20170816143902.28641-1-ville.syrjala@linux.intel.com> <2470960b-986e-e746-a1f0-24ea8790e975@linux.intel.com> <20170817121646.GB4914@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id C2DC16E5A9 for ; Thu, 17 Aug 2017 12:24:24 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170817121646.GB4914@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMTcsIDIwMTcgYXQgMDM6MTY6NDZQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFRodSwgQXVnIDE3LCAyMDE3IGF0IDEwOjAwOjUyQU0gKzAyMDAsIE1hYXJ0 ZW4gTGFua2hvcnN0IHdyb3RlOgo+ID4gT3AgMTYtMDgtMTcgb20gMTY6Mzkgc2NocmVlZiB2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbToKPiA+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4KPiA+ID4gT25lc2hvdCBkaXNhYmxp bmcgb2YgSVBTIHdoZW4gQ1JDIGNhcHR1cmluZyBpcyBzdGFydGVkIGlzIGluc3VmZmljaWVudC4K PiA+ID4gSVBTIG1heSBnZXQgcmUtZW5hYmxlZCBieSBhbnkgcGxhbmUgdXBkYXRlLCBhbmQgaGVu Y2UgdGVzdHMgdGhhdCBrZWVwCj4gPiA+IENSQyBjYXB0dXJpbmcgb24gYWNyb3NzIHBsYW5lIHVw ZGF0ZXMgd2lsbCBzdGFydCB0byBzZWUgaW5jb25zaXN0ZW50Cj4gPiA+IHJlc3VsdHMgYXMgc29v biBhcyBJUFMga2lja3MgYmFjayBpbi4gQWRkIGEgbmV3IGtub2IgaW50byB0aGUgY3J0YyBzdGF0 ZQo+ID4gPiB0byBtYWtlIHN1cmUgSVBTIHN0YXlzIGRpc2FibGVkIGFzIGxvbmcgYXMgQ1JDIGNh cHR1cmluZyBpcyBlbmFibGVkLgo+ID4gPgo+ID4gPiBGb3JjaW5nIGEgbW9kZXNldCBpcyB0aGUg ZWFzaWVzdCB3YXkgdG8gaGFuZGxlIHRoaXMgc2luY2UgdGhhdCdzIGFscmVhZHkKPiA+ID4gaG93 IHdlIGRvIHRoZSBwYW5lbCBmaXR0ZXIgd29ya2Fyb3VuZC4gSXQncyBhIGxpdHRsZSBoZWF2eSBo YW5kZWQganVzdAo+ID4gPiBmb3IgSVBTLCBidXQgc2VlaW5nIGFzIHdlIG1pZ2h0IGFscmVhZHkg ZG8gdGhlIHBhbmVsIGZpdHRlciB3b3JrYXJvdW5kCj4gPiA+IEkgdGhpbmsgaXQncyBiZXR0ZXIg dG8gZm9sbG93IHRoYXQuIFdlIG1pZ3RoIHdhbnQgdG8gb3B0aW1pemUgYm90aCBjYXNlcwo+ID4g PiBsYXRlciBpZiBzb21lb25lIGdldHMgdG9vIHVwc2V0IGJ5IHRoZSBleHRyYSBkZWxheSBmcm9t IHRoZSBtb2Rlc2V0Lgo+ID4gPgo+ID4gPiB2MjogQ2hlY2sgdGhlIHJpZ2h0IHRoaW5nIHdoZW4g ZGVjaWRpbmcgd2hldGhlciB0byBmb3JjZSBhIG1vZGVzZXQKPiA+ID4KPiA+ID4gQ2M6IFBhdWxv IFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gPiBDYzogRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBNYXJ0YSBMb2ZzdGVk dCA8bWFydGEubG9mc3RlZHRAaW50ZWwuY29tPgo+ID4gPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdz LmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjY0Cj4gPiA+IFJldmlld2VkLWJ5 OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiA+ID4gU2lnbmVkLW9m Zi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgIHwgIDUg KysrLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICB8ICAxICsK PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMgfCA0MyArKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAyOCBp bnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKPiA+ID4KPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBpbmRleCBlZjVkZGU1YWIxY2YuLjFjZTQ3OTYxNGY1MiAx MDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBAQCAt NzE4OSw2ICs3MTg5LDcgQEAgc3RhdGljIHZvaWQgaHN3X2NvbXB1dGVfaXBzX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiA+ICAKPiA+ID4gIAlwaXBlX2NvbmZpZy0+aXBzX2Vu YWJsZWQgPSBpOTE1LmVuYWJsZV9pcHMgJiYKPiA+ID4gKwkJIXBpcGVfY29uZmlnLT5pcHNfZm9y Y2VfZGlzYWJsZSAmJgo+ID4gPiAgCQloc3dfY3J0Y19zdXBwb3J0c19pcHMoY3J0YykgJiYKPiA+ ID4gIAkJcGlwZV9jb25maWdfc3VwcG9ydHNfaXBzKGRldl9wcml2LCBwaXBlX2NvbmZpZyk7Cj4g PiA+ICB9Cj4gPiA+IEBAIC0xMjk1OCw3ICsxMjk1OSw3IEBAIGNsZWFyX2ludGVsX2NydGNfc3Rh dGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ICAJc3RydWN0IGlu dGVsX2NydGNfc2NhbGVyX3N0YXRlIHNjYWxlcl9zdGF0ZTsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxf ZHBsbF9od19zdGF0ZSBkcGxsX2h3X3N0YXRlOwo+ID4gPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRf ZHBsbCAqc2hhcmVkX2RwbGw7Cj4gPiA+IC0JYm9vbCBmb3JjZV90aHJ1Owo+ID4gPiArCWJvb2wg Zm9yY2VfdGhydSwgaXBzX2ZvcmNlX2Rpc2FibGU7Cj4gPiA+ICAKPiA+ID4gIAkvKiBGSVhNRTog YmVmb3JlIHRoZSBzd2l0Y2ggdG8gYXRvbWljIHN0YXJ0ZWQsIGEgbmV3IHBpcGVfY29uZmlnIHdh cwo+ID4gPiAgCSAqIGt6YWxsb2MnZC4gQ29kZSB0aGF0IGRlcGVuZHMgb24gYW55IGZpZWxkIGJl aW5nIHplcm8gc2hvdWxkIGJlCj4gPiA+IEBAIC0xMjk3MCw2ICsxMjk3MSw3IEBAIGNsZWFyX2lu dGVsX2NydGNfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ ICAJc2hhcmVkX2RwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKPiA+ID4gIAlkcGxsX2h3 X3N0YXRlID0gY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKPiA+ID4gIAlmb3JjZV90aHJ1ID0g Y3J0Y19zdGF0ZS0+cGNoX3BmaXQuZm9yY2VfdGhydTsKPiA+ID4gKwlpcHNfZm9yY2VfZGlzYWJs ZSA9IGNydGNfc3RhdGUtPmlwc19mb3JjZV9kaXNhYmxlOwo+ID4gPiAgCj4gPiA+ICAJbWVtc2V0 KGNydGNfc3RhdGUsIDAsIHNpemVvZiAqY3J0Y19zdGF0ZSk7Cj4gPiA+ICAKPiA+ID4gQEAgLTEy OTc4LDYgKzEyOTgwLDcgQEAgY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ID4gIAljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHNo YXJlZF9kcGxsOwo+ID4gPiAgCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUgPSBkcGxsX2h3X3N0 YXRlOwo+ID4gPiAgCWNydGNfc3RhdGUtPnBjaF9wZml0LmZvcmNlX3RocnUgPSBmb3JjZV90aHJ1 Owo+ID4gPiArCWNydGNfc3RhdGUtPmlwc19mb3JjZV9kaXNhYmxlID0gaXBzX2ZvcmNlX2Rpc2Fi bGU7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gIHN0YXRpYyBpbnQKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiA+ID4gaW5kZXggMDI1ZTRjOGIzZTYzLi5jYWRiYTliOTJjYzkgMTAwNjQ0 Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IEBAIC02NTEsNiArNjUxLDcg QEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewo+ID4gPiAgCXN0cnVjdCBpbnRlbF9saW5rX21f biBmZGlfbV9uOwo+ID4gPiAgCj4gPiA+ICAJYm9vbCBpcHNfZW5hYmxlZDsKPiA+ID4gKwlib29s IGlwc19mb3JjZV9kaXNhYmxlOwo+ID4gQ291bGQgd2UgcmVuYW1lIHRoaXMgdG8gY29sbGVjdGlu Z19jcmMgdGhyb3VnaG91dCB0aGUgcGF0Y2g/Cj4gCj4gSWYgd2UgZG8sIHRoZW4gd2Ugc2hvdWxk IHByb2JhYmx5IGtpbGwgb2ZmIHRoZSBzZXBhcmF0ZSBwZml0Cj4gZm9yY2VfdGhydSBib29sZWFu IGFzIHdlbGwgYW5kIGp1c3QgdXNlICdjb2xsZWN0aW5nX2NyYycgZm9yCj4gdGhlIHBpcGUgQSBy b3V0aW5nIGRlY2lzaW9ucyBhcyB3ZWxsLgoKT24gZnVydGhlciB0aG91Z2h0IHRoYXQgbmFtZSB3 b3VsZCBiZSBzb21ld2hhdCBtaXNsZWFkaW5nIGlmIHdlIG9ubHkKc2V0IGl0IGZvciBIU1cvQkRX K3BpcGUgQS4KCj4gCj4gPiAKPiA+IEFuZCBhcyBNYXJ0YSBub3RlZCwgaW50ZWxfY3J0Y19zZXRf Y3JjX3NvdXJjZSBhbHNvIG5lZWRzIGZpeGluZy4gOikKPiAKPiBEb2guIEkgdGhvdWdodCBJIHJl dGlwcGVkIHRoZSBwYXRjaCwgYnV0IGFwcGFyZW50bHkgSSBkaWRuJ3QuCj4gCj4gPiA+ICAKPiA+ ID4gIAlib29sIGVuYWJsZV9mYmM7Cj4gPiA+ICAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9waXBlX2NyYy5jCj4gPiA+IGluZGV4IGVmMGMwZTE5NTE2NC4uNzQ3ODBiMDkwZDFlIDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jCj4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gQEAgLTU0 Nyw4ICs1NDcsOCBAQCBzdGF0aWMgaW50IGlsa19waXBlX2NyY19jdGxfcmVnKGVudW0gaW50ZWxf cGlwZV9jcmNfc291cmNlICpzb3VyY2UsCj4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+ ICAKPiA+ID4gLXN0YXRpYyB2b2lkIGhzd190cmFuc19lZHBfcGlwZV9BX2NyY193YShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+IC0JCQkJCWJvb2wgZW5hYmxlKQo+ID4g PiArc3RhdGljIHZvaWQgaHN3X3BpcGVfQV9jcmNfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ID4gPiArCQkJICAgICAgYm9vbCBlbmFibGUpCj4gPiA+ICB7Cj4gPiA+ICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+ID4gPiAgCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIFBJUEVf QSk7Cj4gPiA+IEBAIC01NzAsMTEgKzU3MCwyMyBAQCBzdGF0aWMgdm9pZCBoc3dfdHJhbnNfZWRw X3BpcGVfQV9jcmNfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAg CQlnb3RvIG91dDsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gLQlwaXBlX2NvbmZpZy0+cGNoX3Bm aXQuZm9yY2VfdGhydSA9IGVuYWJsZTsKPiA+ID4gLQlpZiAocGlwZV9jb25maWctPmNwdV90cmFu c2NvZGVyID09IFRSQU5TQ09ERVJfRURQICYmCj4gPiA+IC0JICAgIHBpcGVfY29uZmlnLT5wY2hf cGZpdC5lbmFibGVkICE9IGVuYWJsZSkKPiA+ID4gKwkvKgo+ID4gPiArCSAqIFdoZW4gSVBTIGdl dHMgZW5hYmxlZCwgdGhlIHBpcGUgQ1JDIGNoYW5nZXMuIFNpbmNlIElQUyBnZXRzCj4gPiA+ICsJ ICogZW5hYmxlZCBhbmQgZGlzYWJsZWQgZHluYW1pY2FsbHkgYmFzZWQgb24gcGFja2FnZSBDIHN0 YXRlcywKPiA+ID4gKwkgKiB1c2VyIHNwYWNlIGNhbid0IG1ha2UgcmVsaWFibGUgdXNlIG9mIHRo ZSBDUkNzLCBzbyBsZXQncyBqdXN0Cj4gPiA+ICsJICogY29tcGxldGVseSBkaXNhYmxlIGl0Lgo+ ID4gPiArCSAqLwo+ID4gPiArCXBpcGVfY29uZmlnLT5pcHNfZm9yY2VfZGlzYWJsZSA9IGVuYWJs ZTsKPiA+ID4gKwlpZiAocGlwZV9jb25maWctPmlwc19lbmFibGVkID09IGVuYWJsZSkKPiA+ID4g IAkJcGlwZV9jb25maWctPmJhc2UuY29ubmVjdG9yc19jaGFuZ2VkID0gdHJ1ZTsKPiA+ID4gIAo+ ID4gPiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSkgewo+ID4gPiArCQlwaXBlX2NvbmZpZy0+ cGNoX3BmaXQuZm9yY2VfdGhydSA9IGVuYWJsZTsKPiA+ID4gKwkJaWYgKHBpcGVfY29uZmlnLT5j cHVfdHJhbnNjb2RlciA9PSBUUkFOU0NPREVSX0VEUCAmJgo+ID4gPiArCQkgICAgcGlwZV9jb25m aWctPnBjaF9wZml0LmVuYWJsZWQgIT0gZW5hYmxlKQo+ID4gPiArCQkJcGlwZV9jb25maWctPmJh c2UuY29ubmVjdG9yc19jaGFuZ2VkID0gdHJ1ZTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gIAly ZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4gPiA+ICBvdXQ6Cj4gPiA+ICAJV0FSTihy ZXQsICJUb2dnbGluZyB3b3JrYXJvdW5kIHRvICVpIHJldHVybnMgJWlcbiIsIGVuYWJsZSwgcmV0 KTsKPiA+ID4gQEAgLTU5OCw4ICs2MTAsOSBAQCBzdGF0aWMgaW50IGl2Yl9waXBlX2NyY19jdGxf cmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gIAkJKnZhbCA9IFBJ UEVfQ1JDX0VOQUJMRSB8IFBJUEVfQ1JDX1NPVVJDRV9TUFJJVEVfSVZCOwo+ID4gPiAgCQlicmVh azsKPiA+ID4gIAljYXNlIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9QRjoKPiA+ID4gLQkJaWYgKElT X0hBU1dFTEwoZGV2X3ByaXYpICYmIHBpcGUgPT0gUElQRV9BKQo+ID4gPiAtCQkJaHN3X3RyYW5z X2VkcF9waXBlX0FfY3JjX3dhKGRldl9wcml2LCB0cnVlKTsKPiA+ID4gKwkJaWYgKChJU19IQVNX RUxMKGRldl9wcml2KSB8fAo+ID4gPiArCQkgICAgIElTX0JST0FEV0VMTChkZXZfcHJpdikpICYm IHBpcGUgPT0gUElQRV9BKQo+ID4gPiArCQkJaHN3X3BpcGVfQV9jcmNfd2EoZGV2X3ByaXYsIHRy dWUpOwo+ID4gPiAgCj4gPiA+ICAJCSp2YWwgPSBQSVBFX0NSQ19FTkFCTEUgfCBQSVBFX0NSQ19T T1VSQ0VfUEZfSVZCOwo+ID4gPiAgCQlicmVhazsKPiA+ID4gQEAgLTYxOCw3ICs2MzEsNiBAQCBz dGF0aWMgaW50IHBpcGVfY3JjX3NldF9zb3VyY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ID4gPiAgCQkJICAgICAgIGVudW0gaW50ZWxfcGlwZV9jcmNfc291cmNlIHNvdXJj ZSkKPiA+ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfcGlwZV9jcmMgKnBpcGVfY3JjID0gJmRl dl9wcml2LT5waXBlX2NyY1twaXBlXTsKPiA+ID4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IGludGVsX2dldF9jcnRjX2Zvcl9waXBlKGRldl9wcml2LCBwaXBlKTsKPiA+ID4gIAllbnVtIGlu dGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiA+ID4gIAl1MzIgdmFsID0g MDsgLyogc2h1dCB1cCBnY2MgKi8KPiA+ID4gIAlpbnQgcmV0Owo+ID4gPiBAQCAtNjY1LDE0ICs2 NzcsNiBAQCBzdGF0aWMgaW50IHBpcGVfY3JjX3NldF9zb3VyY2Uoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCQkJZ290byBvdXQ7Cj4gPiA+ICAJCX0KPiA+ID4gIAo+ ID4gPiAtCQkvKgo+ID4gPiAtCQkgKiBXaGVuIElQUyBnZXRzIGVuYWJsZWQsIHRoZSBwaXBlIENS QyBjaGFuZ2VzLiBTaW5jZSBJUFMgZ2V0cwo+ID4gPiAtCQkgKiBlbmFibGVkIGFuZCBkaXNhYmxl ZCBkeW5hbWljYWxseSBiYXNlZCBvbiBwYWNrYWdlIEMgc3RhdGVzLAo+ID4gPiAtCQkgKiB1c2Vy IHNwYWNlIGNhbid0IG1ha2UgcmVsaWFibGUgdXNlIG9mIHRoZSBDUkNzLCBzbyBsZXQncyBqdXN0 Cj4gPiA+IC0JCSAqIGNvbXBsZXRlbHkgZGlzYWJsZSBpdC4KPiA+ID4gLQkJICovCj4gPiA+IC0J CWhzd19kaXNhYmxlX2lwcyhjcnRjKTsKPiA+ID4gLQo+ID4gPiAgCQlzcGluX2xvY2tfaXJxKCZw aXBlX2NyYy0+bG9jayk7Cj4gPiA+ICAJCWtmcmVlKHBpcGVfY3JjLT5lbnRyaWVzKTsKPiA+ID4g IAkJcGlwZV9jcmMtPmVudHJpZXMgPSBlbnRyaWVzOwo+ID4gPiBAQCAtNzEzLDEwICs3MTcsOSBA QCBzdGF0aWMgaW50IHBpcGVfY3JjX3NldF9zb3VyY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ID4gPiAgCQkJZzR4X3VuZG9fcGlwZV9zY3JhbWJsZV9yZXNldChkZXZfcHJp diwgcGlwZSk7Cj4gPiA+ICAJCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4gPiAgCQkJdmx2X3VuZG9fcGlwZV9zY3JhbWJsZV9y ZXNldChkZXZfcHJpdiwgcGlwZSk7Cj4gPiA+IC0JCWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3By aXYpICYmIHBpcGUgPT0gUElQRV9BKQo+ID4gPiAtCQkJaHN3X3RyYW5zX2VkcF9waXBlX0FfY3Jj X3dhKGRldl9wcml2LCBmYWxzZSk7Cj4gPiA+IC0KPiA+ID4gLQkJaHN3X2VuYWJsZV9pcHMoY3J0 Yyk7Cj4gPiA+ICsJCWVsc2UgaWYgKChJU19IQVNXRUxMKGRldl9wcml2KSB8fAo+ID4gPiArCQkJ ICBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSAmJiBwaXBlID09IFBJUEVfQSkKPiA+ID4gKwkJCWhz d19waXBlX0FfY3JjX3dhKGRldl9wcml2LCBmYWxzZSk7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+ ICAJcmV0ID0gMDsKPiA+IAo+IAo+IC0tIAo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsIE9UQwo+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0g ClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==