From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 4/6] drm/i915/crc: Make IPS workaround generic Date: Fri, 1 Mar 2019 15:35:50 +0200 Message-ID: <20190301133550.GP20097@intel.com> References: <20190228013259.30026-1-jose.souza@intel.com> <20190228013259.30026-4-jose.souza@intel.com> <20190228165648.GM20097@intel.com> <7cf45d6fa43e67e3a81c396b199a74b512e3efb8.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F8636E2EB for ; Fri, 1 Mar 2019 13:35:54 +0000 (UTC) Content-Disposition: inline In-Reply-To: <7cf45d6fa43e67e3a81c396b199a74b512e3efb8.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" , "Pandiyan, Dhinakaran" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBGZWIgMjgsIDIwMTkgYXQgMTE6MjY6NTdQTSArMDAwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gVGh1LCAyMDE5LTAyLTI4IGF0IDE4OjU2ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6Cj4gPiBPbiBXZWQsIEZlYiAyNywgMjAxOSBhdCAwNTozMjo1N1BNIC0wODAwLCBKb3PD qSBSb2JlcnRvIGRlIFNvdXphCj4gPiB3cm90ZToKPiA+ID4gT3RoZXIgZmVhdHVyZXMgbGlrZSBQ U1IyIGFsc28gbmVlZHMgdG8gYmUgZGlzYWJsZWQgd2hpbGUgZ2V0dGluZwo+ID4gPiBDUkMKPiA+ ID4gc28gbGV0cyByZW5hbWUgaXBzX2ZvcmNlX2Rpc2FibGUgdG8gY3JjX2VuYWJsZWQsIGRyb3Ag YWxsIHRoaXMKPiA+ID4gY2hlY2tzCj4gPiA+IGZvciBwaXBlIEEgYW5kIEhTVyBhbmQgQkRXIGFu ZCBtYWtlIGl0IGdlbmVyaWMgYW5kCj4gPiA+IGhzd19jb21wdXRlX2lwc19jb25maWcoKSB3aWxs IHRha2UgY2FyZSBvZiBhbGwgdGhlIGNoZWNrcyByZW1vdmVkCj4gPiA+IGZyb20gaGVyZS4KPiA+ ID4gCj4gPiA+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGlu dGVsLmNvbT4KPiA+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpv c2Uuc291emFAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgfCAxMCArKysrKy0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgIHwgIDMgKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BpcGVfY3JjLmMgfCA0MiArKysrKysrKystLS0tLS0tLS0tLS0KPiA+ID4gLS0tLS0tCj4g PiA+ICAzIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQo+ ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBp bmRleCA4MTZlOGYxMjRiM2IuLjMyODk2N2M2NDJiMyAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBAQCAtNjc1MSw3ICs2NzUxLDEzIEBAIHN0YXRp YyBib29sIGhzd19jb21wdXRlX2lwc19jb25maWcoc3RydWN0Cj4gPiA+IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gPiA+ICAJaWYgKCFoc3dfY3J0Y19zdGF0ZV9pcHNfY2FwYWJsZShj cnRjX3N0YXRlKSkKPiA+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gPiAgCj4gPiA+IC0JaWYgKGNy dGNfc3RhdGUtPmlwc19mb3JjZV9kaXNhYmxlKQo+ID4gPiArCS8qCj4gPiA+ICsJICogV2hlbiBJ UFMgZ2V0cyBlbmFibGVkLCB0aGUgcGlwZSBDUkMgY2hhbmdlcy4gU2luY2UgSVBTIGdldHMKPiA+ ID4gKwkgKiBlbmFibGVkIGFuZCBkaXNhYmxlZCBkeW5hbWljYWxseSBiYXNlZCBvbiBwYWNrYWdl IEMgc3RhdGVzLAo+ID4gPiArCSAqIHVzZXIgc3BhY2UgY2FuJ3QgbWFrZSByZWxpYWJsZSB1c2Ug b2YgdGhlIENSQ3MsIHNvIGxldCdzCj4gPiA+IGp1c3QKPiA+ID4gKwkgKiBjb21wbGV0ZWx5IGRp c2FibGUgaXQuCj4gPiA+ICsJICovCj4gPiA+ICsJaWYgKGNydGNfc3RhdGUtPmNyY19lbmFibGVk KQo+ID4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiAKPiA+IEhtbS4gSSB3YXMgd29uZGVyaW5nIGhv dyB3ZSBldmVuIG1hbmFnZSB0byBwYXNzIHRoZSBzdGF0ZSBjaGVja2VyCj4gPiB3aXRoCj4gPiB0 aGUgY3VycmVudCBjb2RlLiBCdXQgYXBwYXJlbnRseSB3ZSBkb24ndCBoYXZlIHN0YXRlIGNoZWNr aW5nIGZvcgo+ID4gSVBTLgo+ID4gSSB3b3VsZCBzdWdnZXN0IG1vdmluZyB0aGlzIGludG8gaHN3 X2NvbXB1dGVfaXBzX2NvbmZpZygpIGFuZCB0aGVuCj4gPiBhZGRpbmcgdGhlIHN0YXRlIGNoZWNr ZXIgKGZvciBIU1cgb25seSB0aG91Z2ggc2luY2UgQkRXIGNhbid0IGRvIHRoZQo+ID4gcmVhZG91 dCkuCj4gPiAKPiA+ID4gIAo+ID4gPiAgCS8qIElQUyBzaG91bGQgYmUgZmluZSBhcyBsb25nIGFz IGF0IGxlYXN0IG9uZSBwbGFuZSBpcyBlbmFibGVkLgo+ID4gPiAqLwo+ID4gPiBAQCAtMTE2ODQs NyArMTE2OTAsNyBAQCBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKHN0cnVjdAo+ID4gPiBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiAgCXNhdmVkX3N0YXRlLT5zaGFyZWRfZHBsbCA9 IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsOwo+ID4gPiAgCXNhdmVkX3N0YXRlLT5kcGxsX2h3X3N0 YXRlID0gY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKPiA+ID4gIAlzYXZlZF9zdGF0ZS0+cGNo X3BmaXQuZm9yY2VfdGhydSA9IGNydGNfc3RhdGUtCj4gPiA+ID5wY2hfcGZpdC5mb3JjZV90aHJ1 Owo+ID4gPiAtCXNhdmVkX3N0YXRlLT5pcHNfZm9yY2VfZGlzYWJsZSA9IGNydGNfc3RhdGUtPmlw c19mb3JjZV9kaXNhYmxlOwo+ID4gPiArCXNhdmVkX3N0YXRlLT5jcmNfZW5hYmxlZCA9IGNydGNf c3RhdGUtPmNyY19lbmFibGVkOwo+ID4gPiAgCWlmIChJU19HNFgoZGV2X3ByaXYpIHx8Cj4gPiA+ ICAJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYp KQo+ID4gPiAgCQlzYXZlZF9zdGF0ZS0+d20gPSBjcnRjX3N0YXRlLT53bTsKPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gaW5kZXggNTQxMjM3M2UyZjk4Li4yYmU2NDUy OWU0YTIgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IEBAIC05 OTksNyArOTk5LDggQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewo+ID4gPiAgCXN0cnVjdCBp bnRlbF9saW5rX21fbiBmZGlfbV9uOwo+ID4gPiAgCj4gPiA+ICAJYm9vbCBpcHNfZW5hYmxlZDsK PiA+ID4gLQlib29sIGlwc19mb3JjZV9kaXNhYmxlOwo+ID4gPiArCj4gPiA+ICsJYm9vbCBjcmNf ZW5hYmxlZDsKPiA+ID4gIAo+ID4gPiAgCWJvb2wgZW5hYmxlX2ZiYzsKPiA+ID4gIAo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYwo+ID4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gaW5kZXggNTNkNGVj NjhkM2M0Li5mNmQwYjJhYWZmZTIgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcGlwZV9jcmMuYwo+ID4gPiBAQCAtMjgwLDExICsyODAsMTIgQEAgc3RhdGljIGludCBpbGtf cGlwZV9jcmNfY3RsX3JlZyhlbnVtCj4gPiA+IGludGVsX3BpcGVfY3JjX3NvdXJjZSAqc291cmNl LAo+ID4gPiAgCXJldHVybiAwOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1zdGF0aWMgdm9pZCBo c3dfcGlwZV9BX2NyY193YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ IC0JCQkgICAgICBib29sIGVuYWJsZSkKPiA+ID4gK3N0YXRpYyB2b2lkCj4gPiA+ICtpbnRlbF9j cnRjX2NyY19wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgc3RydWN0 Cj4gPiA+IGRybV9jcnRjICpjcnRjLAo+ID4gCj4gPiBKdXN0IHBhc3MgaW4gdGhlIGludGVsX2Ny dGMKPiAKPiBPa2F5Cj4gCj4gPiAKPiA+ID4gKwkJICAgICAgIGJvb2wgZW5hYmxlKQo+ID4gPiAg ewo+ID4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiA+ID4g LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9waXBlKGRldl9w cml2LAo+ID4gPiBQSVBFX0EpOwo+ID4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+IAo+ID4gYW5kIHRoZW4gd2UgZG9uJ3QgaGF2ZSB0 byBoYXZlIGFuIHVnbHkgbmFtZSBmb3IgdGhpcy4KPiA+IAo+ID4gQWxzbyBwYXNpbmcgaW4gZGV2 X3ByaXYgaXMgcmVkdW5kYW50IHdoZW4geW91J3JlIGFscmVhZHkgcGFzc2luZyBpbgo+ID4gdGhl Cj4gPiBjcnRjLgo+ID4gCj4gCj4gb2theQo+IAo+ID4gVGhlIGZ1bmN0aW9uIG5hbWUgaXNuJ3Qg c3VwZXIgZGVzY3JpcHRpdmUuIEl0IG1ha2VzIG1lIHRoaW5rIHdlJ3JlCj4gPiBwcmVwYXJpbmcg Zm9yIENSQyBjYXB0dXJlLCB3aGVuIGluIGZhY3QgaXQganVzdCBhZGRzL3JlbW92ZXMgdGhlCj4g PiB3L2FzLgo+IAo+IFdoYXQgYWJvdXQ6IGludGVsX2NydGNfY3JjX3dvcmthcm91bmRzX3NldHVw KCk/CgpPciBfc2V0dXBfd29ya2Fyb3VuZHMoKSBzbyB0aGF0IGl0IHJlYWRzIG1vcmUgbmF0dXJh bGx5PwoKPiAKPiA+IAo+ID4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZzsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gPiA+ICAJc3RydWN0 IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKPiA+ID4gQEAgLTMwMSwyMyArMzAyLDE1IEBA IHN0YXRpYyB2b2lkIGhzd19waXBlX0FfY3JjX3dhKHN0cnVjdAo+ID4gPiBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiA+ID4gIAlzdGF0ZS0+YWNxdWlyZV9jdHggPSAmY3R4Owo+ID4gPiAg Cj4gPiA+ICByZXRyeToKPiA+ID4gLQlwaXBlX2NvbmZpZyA9IGludGVsX2F0b21pY19nZXRfY3J0 Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gPiA+ICsJcGlwZV9jb25maWcgPSBpbnRlbF9hdG9taWNf Z2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwo+ID4gPiAgCWlmIChJU19FUlIocGlw ZV9jb25maWcpKSB7Cj4gPiA+ICAJCXJldCA9IFBUUl9FUlIocGlwZV9jb25maWcpOwo+ID4gPiAg CQlnb3RvIHB1dF9zdGF0ZTsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gLQlpZiAoSEFTX0lQUyhk ZXZfcHJpdikpIHsKPiA+ID4gLQkJLyoKPiA+ID4gLQkJICogV2hlbiBJUFMgZ2V0cyBlbmFibGVk LCB0aGUgcGlwZSBDUkMgY2hhbmdlcy4gU2luY2UKPiA+ID4gSVBTIGdldHMKPiA+ID4gLQkJICog ZW5hYmxlZCBhbmQgZGlzYWJsZWQgZHluYW1pY2FsbHkgYmFzZWQgb24gcGFja2FnZSBDCj4gPiA+ IHN0YXRlcywKPiA+ID4gLQkJICogdXNlciBzcGFjZSBjYW4ndCBtYWtlIHJlbGlhYmxlIHVzZSBv ZiB0aGUgQ1JDcywgc28KPiA+ID4gbGV0J3MganVzdAo+ID4gPiAtCQkgKiBjb21wbGV0ZWx5IGRp c2FibGUgaXQuCj4gPiA+IC0JCSAqLwo+ID4gPiAtCQlwaXBlX2NvbmZpZy0+aXBzX2ZvcmNlX2Rp c2FibGUgPSBlbmFibGU7Cj4gPiA+IC0JfQo+ID4gPiArCXBpcGVfY29uZmlnLT5jcmNfZW5hYmxl ZCA9IGVuYWJsZTsKPiA+ID4gIAo+ID4gPiAtCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSkgewo+ ID4gPiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBpbnRlbF9jcnRjLT5waXBlID09IFBJ UEVfQSkgewo+ID4gPiAgCQlwaXBlX2NvbmZpZy0+cGNoX3BmaXQuZm9yY2VfdGhydSA9IGVuYWJs ZTsKPiA+ID4gIAkJaWYgKHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciA9PSBUUkFOU0NPREVS X0VEUCAmJgo+ID4gPiAgCQkgICAgcGlwZV9jb25maWctPnBjaF9wZml0LmVuYWJsZWQgIT0gZW5h YmxlKQo+ID4gPiBAQCAtMzQzLDggKzMzNiw3IEBAIHN0YXRpYyB2b2lkIGhzd19waXBlX0FfY3Jj X3dhKHN0cnVjdAo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gIHN0YXRp YyBpbnQgaXZiX3BpcGVfY3JjX2N0bF9yZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ID4gPiAgCQkJCWVudW0gcGlwZSBwaXBlLAo+ID4gPiAgCQkJCWVudW0gaW50ZWxfcGlw ZV9jcmNfc291cmNlICpzb3VyY2UsCj4gPiA+IC0JCQkJdTMyICp2YWwsCj4gPiA+IC0JCQkJYm9v bCBzZXRfd2EpCj4gPiA+ICsJCQkJdTMyICp2YWwpCj4gPiA+ICB7Cj4gPiA+ICAJaWYgKCpzb3Vy Y2UgPT0gSU5URUxfUElQRV9DUkNfU09VUkNFX0FVVE8pCj4gPiA+ICAJCSpzb3VyY2UgPSBJTlRF TF9QSVBFX0NSQ19TT1VSQ0VfUElQRTsKPiA+ID4gQEAgLTM1NywxMCArMzQ5LDYgQEAgc3RhdGlj IGludCBpdmJfcGlwZV9jcmNfY3RsX3JlZyhzdHJ1Y3QKPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gPiA+ICAJCSp2YWwgPSBQSVBFX0NSQ19FTkFCTEUgfCBQSVBFX0NSQ19TT1VS Q0VfU1BSSVRFX0lWQjsKPiA+ID4gIAkJYnJlYWs7Cj4gPiA+ICAJY2FzZSBJTlRFTF9QSVBFX0NS Q19TT1VSQ0VfUElQRToKPiA+ID4gLQkJaWYgKHNldF93YSAmJiAoSVNfSEFTV0VMTChkZXZfcHJp dikgfHwKPiA+ID4gLQkJICAgICBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSAmJiBwaXBlID09IFBJ UEVfQSkKPiA+ID4gLQkJCWhzd19waXBlX0FfY3JjX3dhKGRldl9wcml2LCB0cnVlKTsKPiA+ID4g LQo+ID4gPiAgCQkqdmFsID0gUElQRV9DUkNfRU5BQkxFIHwgUElQRV9DUkNfU09VUkNFX1BGX0lW QjsKPiA+ID4gIAkJYnJlYWs7Cj4gPiA+ICAJY2FzZSBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfTk9O RToKPiA+ID4gQEAgLTQxOCw4ICs0MDYsNyBAQCBzdGF0aWMgaW50IHNrbF9waXBlX2NyY19jdGxf cmVnKHN0cnVjdAo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gIAo+ID4g PiAgc3RhdGljIGludCBnZXRfbmV3X2NyY19jdGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiA+ID4gIAkJCSAgICAgICBlbnVtIHBpcGUgcGlwZSwKPiA+ID4gLQkJCSAg ICAgICBlbnVtIGludGVsX3BpcGVfY3JjX3NvdXJjZSAqc291cmNlLCB1MzIKPiA+ID4gKnZhbCwK PiA+ID4gLQkJCSAgICAgICBib29sIHNldF93YSkKPiA+ID4gKwkJCSAgICAgICBlbnVtIGludGVs X3BpcGVfY3JjX3NvdXJjZSAqc291cmNlLCB1MzIKPiA+ID4gKnZhbCkKPiA+ID4gIHsKPiA+ID4g IAlpZiAoSVNfR0VOKGRldl9wcml2LCAyKSkKPiA+ID4gIAkJcmV0dXJuIGk4eHhfcGlwZV9jcmNf Y3RsX3JlZyhzb3VyY2UsIHZhbCk7Cj4gPiA+IEBAIC00MzAsNyArNDE3LDcgQEAgc3RhdGljIGlu dCBnZXRfbmV3X2NyY19jdGxfcmVnKHN0cnVjdAo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+ID4gIAllbHNlIGlmIChJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDUsIDYpKQo+ID4g PiAgCQlyZXR1cm4gaWxrX3BpcGVfY3JjX2N0bF9yZWcoc291cmNlLCB2YWwpOwo+ID4gPiAgCWVs c2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5KQo+ID4gPiAtCQlyZXR1cm4gaXZiX3BpcGVf Y3JjX2N0bF9yZWcoZGV2X3ByaXYsIHBpcGUsIHNvdXJjZSwKPiA+ID4gdmFsLCBzZXRfd2EpOwo+ ID4gPiArCQlyZXR1cm4gaXZiX3BpcGVfY3JjX2N0bF9yZWcoZGV2X3ByaXYsIHBpcGUsIHNvdXJj ZSwKPiA+ID4gdmFsKTsKPiA+ID4gIAllbHNlCj4gPiA+ICAJCXJldHVybiBza2xfcGlwZV9jcmNf Y3RsX3JlZyhkZXZfcHJpdiwgcGlwZSwgc291cmNlLAo+ID4gPiB2YWwpOwo+ID4gPiAgfQo+ID4g PiBAQCAtNjE4LDcgKzYwNSw5IEBAIGludCBpbnRlbF9jcnRjX3NldF9jcmNfc291cmNlKHN0cnVj dCBkcm1fY3J0Ywo+ID4gPiAqY3J0YywgY29uc3QgY2hhciAqc291cmNlX25hbWUpCj4gPiA+ICAJ CXJldHVybiAtRUlPOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAtCXJldCA9IGdldF9uZXdfY3Jj X2N0bF9yZWcoZGV2X3ByaXYsIGNydGMtPmluZGV4LCAmc291cmNlLCAmdmFsLAo+ID4gPiB0cnVl KTsKPiA+ID4gKwlpbnRlbF9jcnRjX2NyY19wcmVwYXJlKGRldl9wcml2LCBjcnRjLCBzb3VyY2Ug IT0KPiA+ID4gSU5URUxfUElQRV9DUkNfU09VUkNFX05PTkUpOwo+ID4gPiArCj4gPiAKPiA+IEFy ZW4ndCB3ZSBwb3RlbnRpYWxseSBjb3JydXB0aW5nIHRoZSBsYXN0IENSQyhzKSBieSB0dXJuaW5n IG9mZiB0aGUKPiA+IHcvYXMKPiA+IGJlZm9yZSBkaXNibGluZyBDUkMgY2FwdHVyZT8KPiAKPiBJ dCB3aWxsIG9ubHkgYmUgTlVMTCB3aGVuIHVzZXMgY2xvc2VzIHRoZSBmaWxlIGRlc2NyaXB0b3Ig dG8gQ1JDIGRhdGEsCj4gc28gZXZlbiBpZiBpdHMgY29ycnVwdGVkIHVzZXIgd2lsbCBuZXZlciBn ZXQgdGhvc2UgQ1JDcy4KClVzZXJzcGFjZSBtYXkgbm90IGdldCBpdCBidXQgdGhlIHRyYWNlcG9p bnQgd2lsbCBzdGlsbCBzZWUgaXQuIFdoaWNoIG1heQpjYXVzZSBjb25mdXNpb24uCgo+IAo+ID4g Cj4gPiA+ICsJcmV0ID0gZ2V0X25ld19jcmNfY3RsX3JlZyhkZXZfcHJpdiwgY3J0Yy0+aW5kZXgs ICZzb3VyY2UsCj4gPiA+ICZ2YWwpOwo+ID4gPiAgCWlmIChyZXQgIT0gMCkKPiA+ID4gIAkJZ290 byBvdXQ7Cj4gPiA+ICAKPiA+ID4gQEAgLTYyOSw5ICs2MTgsNiBAQCBpbnQgaW50ZWxfY3J0Y19z ZXRfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMKPiA+ID4gKmNydGMsIGNvbnN0IGNoYXIgKnNv dXJjZV9uYW1lKQo+ID4gPiAgCWlmICghc291cmNlKSB7Cj4gPiA+ICAJCWlmIChJU19WQUxMRVlW SUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiA+ID4gIAkJCXZsdl91 bmRvX3BpcGVfc2NyYW1ibGVfcmVzZXQoZGV2X3ByaXYsIGNydGMtCj4gPiA+ID5pbmRleCk7Cj4g PiA+IC0JCWVsc2UgaWYgKChJU19IQVNXRUxMKGRldl9wcml2KSB8fAo+ID4gPiAtCQkJICBJU19C Uk9BRFdFTEwoZGV2X3ByaXYpKSAmJiBjcnRjLT5pbmRleCA9PQo+ID4gPiBQSVBFX0EpCj4gPiA+ IC0JCQloc3dfcGlwZV9BX2NyY193YShkZXZfcHJpdiwgZmFsc2UpOwo+ID4gPiAgCX0KPiA+ID4g IAo+ID4gPiAgCXBpcGVfY3JjLT5za2lwcGVkID0gMDsKPiA+ID4gQEAgLTY1Miw3ICs2MzgsNyBA QCB2b2lkIGludGVsX2NydGNfZW5hYmxlX3BpcGVfY3JjKHN0cnVjdAo+ID4gPiBpbnRlbF9jcnRj ICppbnRlbF9jcnRjKQo+ID4gPiAgCWlmICghY3J0Yy0+Y3JjLm9wZW5lZCkKPiA+ID4gIAkJcmV0 dXJuOwo+ID4gPiAgCj4gPiA+IC0JaWYgKGdldF9uZXdfY3JjX2N0bF9yZWcoZGV2X3ByaXYsIGNy dGMtPmluZGV4LCAmcGlwZV9jcmMtCj4gPiA+ID5zb3VyY2UsICZ2YWwsIGZhbHNlKSA8IDApCj4g PiA+ICsJaWYgKGdldF9uZXdfY3JjX2N0bF9yZWcoZGV2X3ByaXYsIGNydGMtPmluZGV4LCAmcGlw ZV9jcmMtCj4gPiA+ID5zb3VyY2UsICZ2YWwpIDwgMCkKPiA+ID4gIAkJcmV0dXJuOwo+ID4gPiAg Cj4gPiA+ICAJLyogRG9uJ3QgbmVlZCBwaXBlX2NyYy0+bG9jayBoZXJlLCBJUlFzIGFyZSBub3Qg Z2VuZXJhdGVkLiAqLwo+ID4gPiAtLSAKPiA+ID4gMi4yMS4wCgoKCi0tIApWaWxsZSBTeXJqw6Rs w6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4