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:16:46 +0300 Message-ID: <20170817121646.GB4914@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> 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 A5E456E365 for ; Thu, 17 Aug 2017 12:16:50 +0000 (UTC) Content-Disposition: inline In-Reply-To: <2470960b-986e-e746-a1f0-24ea8790e975@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: Maarten Lankhorst Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMTcsIDIwMTcgYXQgMTA6MDA6NTJBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMTYtMDgtMTcgb20gMTY6Mzkgc2NocmVlZiB2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4gPgo+ID4gT25lc2hvdCBkaXNhYmxpbmcgb2YgSVBTIHdoZW4gQ1JD IGNhcHR1cmluZyBpcyBzdGFydGVkIGlzIGluc3VmZmljaWVudC4KPiA+IElQUyBtYXkgZ2V0IHJl LWVuYWJsZWQgYnkgYW55IHBsYW5lIHVwZGF0ZSwgYW5kIGhlbmNlIHRlc3RzIHRoYXQga2VlcAo+ ID4gQ1JDIGNhcHR1cmluZyBvbiBhY3Jvc3MgcGxhbmUgdXBkYXRlcyB3aWxsIHN0YXJ0IHRvIHNl ZSBpbmNvbnNpc3RlbnQKPiA+IHJlc3VsdHMgYXMgc29vbiBhcyBJUFMga2lja3MgYmFjayBpbi4g QWRkIGEgbmV3IGtub2IgaW50byB0aGUgY3J0YyBzdGF0ZQo+ID4gdG8gbWFrZSBzdXJlIElQUyBz dGF5cyBkaXNhYmxlZCBhcyBsb25nIGFzIENSQyBjYXB0dXJpbmcgaXMgZW5hYmxlZC4KPiA+Cj4g PiBGb3JjaW5nIGEgbW9kZXNldCBpcyB0aGUgZWFzaWVzdCB3YXkgdG8gaGFuZGxlIHRoaXMgc2lu Y2UgdGhhdCdzIGFscmVhZHkKPiA+IGhvdyB3ZSBkbyB0aGUgcGFuZWwgZml0dGVyIHdvcmthcm91 bmQuIEl0J3MgYSBsaXR0bGUgaGVhdnkgaGFuZGVkIGp1c3QKPiA+IGZvciBJUFMsIGJ1dCBzZWVp bmcgYXMgd2UgbWlnaHQgYWxyZWFkeSBkbyB0aGUgcGFuZWwgZml0dGVyIHdvcmthcm91bmQKPiA+ IEkgdGhpbmsgaXQncyBiZXR0ZXIgdG8gZm9sbG93IHRoYXQuIFdlIG1pZ3RoIHdhbnQgdG8gb3B0 aW1pemUgYm90aCBjYXNlcwo+ID4gbGF0ZXIgaWYgc29tZW9uZSBnZXRzIHRvbyB1cHNldCBieSB0 aGUgZXh0cmEgZGVsYXkgZnJvbSB0aGUgbW9kZXNldC4KPiA+Cj4gPiB2MjogQ2hlY2sgdGhlIHJp Z2h0IHRoaW5nIHdoZW4gZGVjaWRpbmcgd2hldGhlciB0byBmb3JjZSBhIG1vZGVzZXQKPiA+Cj4g PiBDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gPiBDYzogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+IENjOiBNYWFydGVuIExhbmto b3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ID4gQ2M6IE1hcnRhIExv ZnN0ZWR0IDxtYXJ0YS5sb2ZzdGVkdEBpbnRlbC5jb20+Cj4gPiBCdWd6aWxsYTogaHR0cHM6Ly9i dWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjY0Cj4gPiBSZXZpZXdlZC1i eTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gPiBTaWduZWQtb2Zm LWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4g LS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICB8ICA1ICsrKy0K PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgIHwgIDEgKwo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMgfCA0MyArKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygr KSwgMjEgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+ID4gaW5kZXggZWY1ZGRlNWFiMWNmLi4xY2U0Nzk2MTRmNTIgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTcxODksNiArNzE4OSw3IEBAIHN0YXRp YyB2b2lkIGhzd19jb21wdXRlX2lwc19jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4g PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ ICAKPiA+ICAJcGlwZV9jb25maWctPmlwc19lbmFibGVkID0gaTkxNS5lbmFibGVfaXBzICYmCj4g PiArCQkhcGlwZV9jb25maWctPmlwc19mb3JjZV9kaXNhYmxlICYmCj4gPiAgCQloc3dfY3J0Y19z dXBwb3J0c19pcHMoY3J0YykgJiYKPiA+ICAJCXBpcGVfY29uZmlnX3N1cHBvcnRzX2lwcyhkZXZf cHJpdiwgcGlwZV9jb25maWcpOwo+ID4gIH0KPiA+IEBAIC0xMjk1OCw3ICsxMjk1OSw3IEBAIGNs ZWFyX2ludGVsX2NydGNfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSBzY2FsZXJfc3RhdGU7Cj4gPiAg CXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIGRwbGxfaHdfc3RhdGU7Cj4gPiAgCXN0cnVjdCBp bnRlbF9zaGFyZWRfZHBsbCAqc2hhcmVkX2RwbGw7Cj4gPiAtCWJvb2wgZm9yY2VfdGhydTsKPiA+ ICsJYm9vbCBmb3JjZV90aHJ1LCBpcHNfZm9yY2VfZGlzYWJsZTsKPiA+ICAKPiA+ICAJLyogRklY TUU6IGJlZm9yZSB0aGUgc3dpdGNoIHRvIGF0b21pYyBzdGFydGVkLCBhIG5ldyBwaXBlX2NvbmZp ZyB3YXMKPiA+ICAJICoga3phbGxvYydkLiBDb2RlIHRoYXQgZGVwZW5kcyBvbiBhbnkgZmllbGQg YmVpbmcgemVybyBzaG91bGQgYmUKPiA+IEBAIC0xMjk3MCw2ICsxMjk3MSw3IEBAIGNsZWFyX2lu dGVsX2NydGNfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiAg CXNoYXJlZF9kcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7Cj4gPiAgCWRwbGxfaHdfc3Rh dGUgPSBjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlOwo+ID4gIAlmb3JjZV90aHJ1ID0gY3J0Y19z dGF0ZS0+cGNoX3BmaXQuZm9yY2VfdGhydTsKPiA+ICsJaXBzX2ZvcmNlX2Rpc2FibGUgPSBjcnRj X3N0YXRlLT5pcHNfZm9yY2VfZGlzYWJsZTsKPiA+ICAKPiA+ICAJbWVtc2V0KGNydGNfc3RhdGUs IDAsIHNpemVvZiAqY3J0Y19zdGF0ZSk7Cj4gPiAgCj4gPiBAQCAtMTI5NzgsNiArMTI5ODAsNyBA QCBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ID4gIAljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHNoYXJlZF9kcGxsOwo+ID4gIAlj cnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlID0gZHBsbF9od19zdGF0ZTsKPiA+ICAJY3J0Y19zdGF0 ZS0+cGNoX3BmaXQuZm9yY2VfdGhydSA9IGZvcmNlX3RocnU7Cj4gPiArCWNydGNfc3RhdGUtPmlw c19mb3JjZV9kaXNhYmxlID0gaXBzX2ZvcmNlX2Rpc2FibGU7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0 YXRpYyBpbnQKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCAwMjVlNGM4YjNl NjMuLmNhZGJhOWI5MmNjOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4g QEAgLTY1MSw2ICs2NTEsNyBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4gPiAgCXN0cnVj dCBpbnRlbF9saW5rX21fbiBmZGlfbV9uOwo+ID4gIAo+ID4gIAlib29sIGlwc19lbmFibGVkOwo+ ID4gKwlib29sIGlwc19mb3JjZV9kaXNhYmxlOwo+IENvdWxkIHdlIHJlbmFtZSB0aGlzIHRvIGNv bGxlY3RpbmdfY3JjIHRocm91Z2hvdXQgdGhlIHBhdGNoPwoKSWYgd2UgZG8sIHRoZW4gd2Ugc2hv dWxkIHByb2JhYmx5IGtpbGwgb2ZmIHRoZSBzZXBhcmF0ZSBwZml0CmZvcmNlX3RocnUgYm9vbGVh biBhcyB3ZWxsIGFuZCBqdXN0IHVzZSAnY29sbGVjdGluZ19jcmMnIGZvcgp0aGUgcGlwZSBBIHJv dXRpbmcgZGVjaXNpb25zIGFzIHdlbGwuCgo+IAo+IEFuZCBhcyBNYXJ0YSBub3RlZCwgaW50ZWxf Y3J0Y19zZXRfY3JjX3NvdXJjZSBhbHNvIG5lZWRzIGZpeGluZy4gOikKCkRvaC4gSSB0aG91Z2h0 IEkgcmV0aXBwZWQgdGhlIHBhdGNoLCBidXQgYXBwYXJlbnRseSBJIGRpZG4ndC4KCj4gPiAgCj4g PiAgCWJvb2wgZW5hYmxlX2ZiYzsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlw ZV9jcmMuYwo+ID4gaW5kZXggZWYwYzBlMTk1MTY0Li43NDc4MGIwOTBkMWUgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jCj4gPiBAQCAtNTQ3LDggKzU0Nyw4IEBA IHN0YXRpYyBpbnQgaWxrX3BpcGVfY3JjX2N0bF9yZWcoZW51bSBpbnRlbF9waXBlX2NyY19zb3Vy Y2UgKnNvdXJjZSwKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lk IGhzd190cmFuc19lZHBfcGlwZV9BX2NyY193YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiAtCQkJCQlib29sIGVuYWJsZSkKPiA+ICtzdGF0aWMgdm9pZCBoc3dfcGlwZV9B X2NyY193YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiArCQkJICAgICAg Ym9vbCBlbmFibGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9w cml2LT5kcm07Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gaW50ZWxfZ2V0X2NydGNf Zm9yX3BpcGUoZGV2X3ByaXYsIFBJUEVfQSk7Cj4gPiBAQCAtNTcwLDExICs1NzAsMjMgQEAgc3Rh dGljIHZvaWQgaHN3X3RyYW5zX2VkcF9waXBlX0FfY3JjX3dhKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiA+ICAJCWdvdG8gb3V0Owo+ID4gIAl9Cj4gPiAgCj4gPiAtCXBpcGVf Y29uZmlnLT5wY2hfcGZpdC5mb3JjZV90aHJ1ID0gZW5hYmxlOwo+ID4gLQlpZiAocGlwZV9jb25m aWctPmNwdV90cmFuc2NvZGVyID09IFRSQU5TQ09ERVJfRURQICYmCj4gPiAtCSAgICBwaXBlX2Nv bmZpZy0+cGNoX3BmaXQuZW5hYmxlZCAhPSBlbmFibGUpCj4gPiArCS8qCj4gPiArCSAqIFdoZW4g SVBTIGdldHMgZW5hYmxlZCwgdGhlIHBpcGUgQ1JDIGNoYW5nZXMuIFNpbmNlIElQUyBnZXRzCj4g PiArCSAqIGVuYWJsZWQgYW5kIGRpc2FibGVkIGR5bmFtaWNhbGx5IGJhc2VkIG9uIHBhY2thZ2Ug QyBzdGF0ZXMsCj4gPiArCSAqIHVzZXIgc3BhY2UgY2FuJ3QgbWFrZSByZWxpYWJsZSB1c2Ugb2Yg dGhlIENSQ3MsIHNvIGxldCdzIGp1c3QKPiA+ICsJICogY29tcGxldGVseSBkaXNhYmxlIGl0Lgo+ ID4gKwkgKi8KPiA+ICsJcGlwZV9jb25maWctPmlwc19mb3JjZV9kaXNhYmxlID0gZW5hYmxlOwo+ ID4gKwlpZiAocGlwZV9jb25maWctPmlwc19lbmFibGVkID09IGVuYWJsZSkKPiA+ICAJCXBpcGVf Y29uZmlnLT5iYXNlLmNvbm5lY3RvcnNfY2hhbmdlZCA9IHRydWU7Cj4gPiAgCj4gPiArCWlmIChJ U19IQVNXRUxMKGRldl9wcml2KSkgewo+ID4gKwkJcGlwZV9jb25maWctPnBjaF9wZml0LmZvcmNl X3RocnUgPSBlbmFibGU7Cj4gPiArCQlpZiAocGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyID09 IFRSQU5TQ09ERVJfRURQICYmCj4gPiArCQkgICAgcGlwZV9jb25maWctPnBjaF9wZml0LmVuYWJs ZWQgIT0gZW5hYmxlKQo+ID4gKwkJCXBpcGVfY29uZmlnLT5iYXNlLmNvbm5lY3RvcnNfY2hhbmdl ZCA9IHRydWU7Cj4gPiArCX0KPiA+ICsKPiA+ICAJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3Rh dGUpOwo+ID4gIG91dDoKPiA+ICAJV0FSTihyZXQsICJUb2dnbGluZyB3b3JrYXJvdW5kIHRvICVp IHJldHVybnMgJWlcbiIsIGVuYWJsZSwgcmV0KTsKPiA+IEBAIC01OTgsOCArNjEwLDkgQEAgc3Rh dGljIGludCBpdmJfcGlwZV9jcmNfY3RsX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiAgCQkqdmFsID0gUElQRV9DUkNfRU5BQkxFIHwgUElQRV9DUkNfU09VUkNFX1NQ UklURV9JVkI7Cj4gPiAgCQlicmVhazsKPiA+ICAJY2FzZSBJTlRFTF9QSVBFX0NSQ19TT1VSQ0Vf UEY6Cj4gPiAtCQlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYgcGlwZSA9PSBQSVBFX0EpCj4g PiAtCQkJaHN3X3RyYW5zX2VkcF9waXBlX0FfY3JjX3dhKGRldl9wcml2LCB0cnVlKTsKPiA+ICsJ CWlmICgoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwKPiA+ICsJCSAgICAgSVNfQlJPQURXRUxMKGRl dl9wcml2KSkgJiYgcGlwZSA9PSBQSVBFX0EpCj4gPiArCQkJaHN3X3BpcGVfQV9jcmNfd2EoZGV2 X3ByaXYsIHRydWUpOwo+ID4gIAo+ID4gIAkJKnZhbCA9IFBJUEVfQ1JDX0VOQUJMRSB8IFBJUEVf Q1JDX1NPVVJDRV9QRl9JVkI7Cj4gPiAgCQlicmVhazsKPiA+IEBAIC02MTgsNyArNjMxLDYgQEAg c3RhdGljIGludCBwaXBlX2NyY19zZXRfc291cmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+ICAJCQkgICAgICAgZW51bSBpbnRlbF9waXBlX2NyY19zb3VyY2Ugc291cmNl KQo+ID4gIHsKPiA+ICAJc3RydWN0IGludGVsX3BpcGVfY3JjICpwaXBlX2NyYyA9ICZkZXZfcHJp di0+cGlwZV9jcmNbcGlwZV07Cj4gPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gaW50ZWxf Z2V0X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIHBpcGUpOwo+ID4gIAllbnVtIGludGVsX2Rpc3Bs YXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiA+ICAJdTMyIHZhbCA9IDA7IC8qIHNodXQg dXAgZ2NjICovCj4gPiAgCWludCByZXQ7Cj4gPiBAQCAtNjY1LDE0ICs2NzcsNiBAQCBzdGF0aWMg aW50IHBpcGVfY3JjX3NldF9zb3VyY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gIAkJCWdvdG8gb3V0Owo+ID4gIAkJfQo+ID4gIAo+ID4gLQkJLyoKPiA+IC0JCSAqIFdo ZW4gSVBTIGdldHMgZW5hYmxlZCwgdGhlIHBpcGUgQ1JDIGNoYW5nZXMuIFNpbmNlIElQUyBnZXRz Cj4gPiAtCQkgKiBlbmFibGVkIGFuZCBkaXNhYmxlZCBkeW5hbWljYWxseSBiYXNlZCBvbiBwYWNr YWdlIEMgc3RhdGVzLAo+ID4gLQkJICogdXNlciBzcGFjZSBjYW4ndCBtYWtlIHJlbGlhYmxlIHVz ZSBvZiB0aGUgQ1JDcywgc28gbGV0J3MganVzdAo+ID4gLQkJICogY29tcGxldGVseSBkaXNhYmxl IGl0Lgo+ID4gLQkJICovCj4gPiAtCQloc3dfZGlzYWJsZV9pcHMoY3J0Yyk7Cj4gPiAtCj4gPiAg CQlzcGluX2xvY2tfaXJxKCZwaXBlX2NyYy0+bG9jayk7Cj4gPiAgCQlrZnJlZShwaXBlX2NyYy0+ ZW50cmllcyk7Cj4gPiAgCQlwaXBlX2NyYy0+ZW50cmllcyA9IGVudHJpZXM7Cj4gPiBAQCAtNzEz LDEwICs3MTcsOSBAQCBzdGF0aWMgaW50IHBpcGVfY3JjX3NldF9zb3VyY2Uoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJCWc0eF91bmRvX3BpcGVfc2NyYW1ibGVfcmVz ZXQoZGV2X3ByaXYsIHBpcGUpOwo+ID4gIAkJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJp dikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gPiAgCQkJdmx2X3VuZG9fcGlwZV9zY3Jh bWJsZV9yZXNldChkZXZfcHJpdiwgcGlwZSk7Cj4gPiAtCQllbHNlIGlmIChJU19IQVNXRUxMKGRl dl9wcml2KSAmJiBwaXBlID09IFBJUEVfQSkKPiA+IC0JCQloc3dfdHJhbnNfZWRwX3BpcGVfQV9j cmNfd2EoZGV2X3ByaXYsIGZhbHNlKTsKPiA+IC0KPiA+IC0JCWhzd19lbmFibGVfaXBzKGNydGMp Owo+ID4gKwkJZWxzZSBpZiAoKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8Cj4gPiArCQkJICBJU19C Uk9BRFdFTEwoZGV2X3ByaXYpKSAmJiBwaXBlID09IFBJUEVfQSkKPiA+ICsJCQloc3dfcGlwZV9B X2NyY193YShkZXZfcHJpdiwgZmFsc2UpOwo+ID4gIAl9Cj4gPiAgCj4gPiAgCXJldCA9IDA7Cj4g CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK