From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH v3 4/6] drm/i915/crc: Make IPS workaround generic Date: Fri, 1 Mar 2019 20:07:32 +0000 Message-ID: <7665f952d22bad9455f3c11c54ee9ef2c53cd809.camel@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> <09829413dac540d02e77a8e1190860e00db741e1.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1C24A89DFD for ; Fri, 1 Mar 2019 20:07:34 +0000 (UTC) In-Reply-To: <09829413dac540d02e77a8e1190860e00db741e1.camel@intel.com> Content-Language: en-US Content-ID: <63687BFBD9DC5540B64B05B602BC42D5@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@linux.intel.com" , "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE5LTAyLTI4IGF0IDE3OjE0IC0wODAwLCBTb3V6YSwgSm9zZSB3cm90ZToNCj4g T24gVGh1LCAyMDE5LTAyLTI4IGF0IDE3OjA2IC0wODAwLCBEaGluYWthcmFuIFBhbmRpeWFuIHdy b3RlOg0KPiA+IE9uIFRodSwgMjAxOS0wMi0yOCBhdCAxNToyNiAtMDgwMCwgU291emEsIEpvc2Ug d3JvdGU6DQo+ID4gPiBPbiBUaHUsIDIwMTktMDItMjggYXQgMTg6NTYgKzAyMDAsIFZpbGxlIFN5 cmrDpGzDpCB3cm90ZToNCj4gPiA+ID4gT24gV2VkLCBGZWIgMjcsIDIwMTkgYXQgMDU6MzI6NTdQ TSAtMDgwMCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YQ0KPiA+ID4gPiB3cm90ZToNCj4gPiA+ID4g PiBPdGhlciBmZWF0dXJlcyBsaWtlIFBTUjIgYWxzbyBuZWVkcyB0byBiZSBkaXNhYmxlZCB3aGls ZQ0KPiA+ID4gPiA+IGdldHRpbmcNCj4gPiA+ID4gPiBDUkMNCj4gPiA+ID4gPiBzbyBsZXRzIHJl bmFtZSBpcHNfZm9yY2VfZGlzYWJsZSB0byBjcmNfZW5hYmxlZCwgZHJvcCBhbGwNCj4gPiA+ID4g PiB0aGlzDQo+ID4gPiA+ID4gY2hlY2tzDQo+ID4gPiA+ID4gZm9yIHBpcGUgQSBhbmQgSFNXIGFu ZCBCRFcgYW5kIG1ha2UgaXQgZ2VuZXJpYyBhbmQNCj4gPiA+ID4gPiBoc3dfY29tcHV0ZV9pcHNf Y29uZmlnKCkgd2lsbCB0YWtlIGNhcmUgb2YgYWxsIHRoZSBjaGVja3MNCj4gPiA+ID4gPiByZW1v dmVkDQo+ID4gPiA+ID4gZnJvbSBoZXJlLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IENjOiBEaGlu YWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4NCj4gPiA+ID4g PiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4NCj4g PiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXph QGludGVsLmNvbT4NCj4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jICB8IDEwICsrKysrLS0NCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICB8ICAzICstDQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMgfCA0MiArKysrKysrKystLS0tLS0tLQ0KPiA+ID4g PiA+IC0tLS0NCj4gPiA+ID4gPiAtLS0tLS0NCj4gPiA+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAy NCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQo+ID4gPiA+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiA+ID4gPiBpbmRl eCA4MTZlOGYxMjRiM2IuLjMyODk2N2M2NDJiMyAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiA+ID4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiA+ID4gPiBAQCAtNjc1MSw3ICs2NzUx LDEzIEBAIHN0YXRpYyBib29sDQo+ID4gPiA+ID4gaHN3X2NvbXB1dGVfaXBzX2NvbmZpZyhzdHJ1 Y3QNCj4gPiA+ID4gPiBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQ0KPiA+ID4gPiA+ICAJ aWYgKCFoc3dfY3J0Y19zdGF0ZV9pcHNfY2FwYWJsZShjcnRjX3N0YXRlKSkNCj4gPiA+ID4gPiAg CQlyZXR1cm4gZmFsc2U7DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+IC0JaWYgKGNydGNfc3RhdGUt Pmlwc19mb3JjZV9kaXNhYmxlKQ0KPiA+ID4gPiA+ICsJLyoNCj4gPiA+ID4gPiArCSAqIFdoZW4g SVBTIGdldHMgZW5hYmxlZCwgdGhlIHBpcGUgQ1JDIGNoYW5nZXMuIFNpbmNlDQo+ID4gPiA+ID4g SVBTIGdldHMNCj4gPiA+ID4gPiArCSAqIGVuYWJsZWQgYW5kIGRpc2FibGVkIGR5bmFtaWNhbGx5 IGJhc2VkIG9uIHBhY2thZ2UgQw0KPiA+ID4gPiA+IHN0YXRlcywNCj4gPiA+ID4gPiArCSAqIHVz ZXIgc3BhY2UgY2FuJ3QgbWFrZSByZWxpYWJsZSB1c2Ugb2YgdGhlIENSQ3MsIHNvDQo+ID4gPiA+ ID4gbGV0J3MNCj4gPiA+ID4gPiBqdXN0DQo+ID4gPiA+ID4gKwkgKiBjb21wbGV0ZWx5IGRpc2Fi bGUgaXQuDQo+ID4gPiA+ID4gKwkgKi8NCj4gPiA+ID4gPiArCWlmIChjcnRjX3N0YXRlLT5jcmNf ZW5hYmxlZCkNCj4gPiA+ID4gPiAgCQlyZXR1cm4gZmFsc2U7DQo+ID4gPiA+IA0KPiA+ID4gPiBI bW0uIEkgd2FzIHdvbmRlcmluZyBob3cgd2UgZXZlbiBtYW5hZ2UgdG8gcGFzcyB0aGUgc3RhdGUN Cj4gPiA+ID4gY2hlY2tlcg0KPiA+ID4gPiB3aXRoDQo+ID4gPiA+IHRoZSBjdXJyZW50IGNvZGUu IEJ1dCBhcHBhcmVudGx5IHdlIGRvbid0IGhhdmUgc3RhdGUgY2hlY2tpbmcNCj4gPiA+ID4gZm9y DQo+ID4gPiA+IElQUy4NCj4gPiA+ID4gSSB3b3VsZCBzdWdnZXN0IG1vdmluZyB0aGlzIGludG8g aHN3X2NvbXB1dGVfaXBzX2NvbmZpZygpIGFuZA0KPiA+ID4gPiB0aGVuDQo+ID4gPiA+IGFkZGlu ZyB0aGUgc3RhdGUgY2hlY2tlciAoZm9yIEhTVyBvbmx5IHRob3VnaCBzaW5jZSBCRFcgY2FuJ3QN Cj4gPiA+ID4gZG8NCj4gPiA+ID4gdGhlDQo+ID4gPiA+IHJlYWRvdXQpLg0KPiA+ID4gPiANCj4g PiA+ID4gPiAgDQo+ID4gPiA+ID4gIAkvKiBJUFMgc2hvdWxkIGJlIGZpbmUgYXMgbG9uZyBhcyBh dCBsZWFzdCBvbmUgcGxhbmUgaXMNCj4gPiA+ID4gPiBlbmFibGVkLg0KPiA+ID4gPiA+ICovDQo+ ID4gPiA+ID4gQEAgLTExNjg0LDcgKzExNjkwLDcgQEAgY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShz dHJ1Y3QNCj4gPiA+ID4gPiBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQ0KPiA+ID4gPiA+ ICAJc2F2ZWRfc3RhdGUtPnNoYXJlZF9kcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7DQo+ ID4gPiA+ID4gIAlzYXZlZF9zdGF0ZS0+ZHBsbF9od19zdGF0ZSA9IGNydGNfc3RhdGUtPmRwbGxf aHdfc3RhdGU7DQo+ID4gPiA+ID4gIAlzYXZlZF9zdGF0ZS0+cGNoX3BmaXQuZm9yY2VfdGhydSA9 IGNydGNfc3RhdGUtDQo+ID4gPiA+ID4gPiBwY2hfcGZpdC5mb3JjZV90aHJ1Ow0KPiA+ID4gPiA+ IA0KPiA+ID4gPiA+IC0Jc2F2ZWRfc3RhdGUtPmlwc19mb3JjZV9kaXNhYmxlID0gY3J0Y19zdGF0 ZS0NCj4gPiA+ID4gPiA+IGlwc19mb3JjZV9kaXNhYmxlOw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ ICsJc2F2ZWRfc3RhdGUtPmNyY19lbmFibGVkID0gY3J0Y19zdGF0ZS0+Y3JjX2VuYWJsZWQ7DQo+ ID4gPiA+ID4gIAlpZiAoSVNfRzRYKGRldl9wcml2KSB8fA0KPiA+ID4gPiA+ICAJICAgIElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQ0KPiA+ID4gPiA+ ICAJCXNhdmVkX3N0YXRlLT53bSA9IGNydGNfc3RhdGUtPndtOw0KPiA+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+ID4gPiA+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gPiA+ID4gPiBpbmRleCA1NDEyMzczZTJmOTgu LjJiZTY0NTI5ZTRhMiAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaA0KPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oDQo+ID4gPiA+ID4gQEAgLTk5OSw3ICs5OTksOCBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSB7DQo+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfbGlua19tX24gZmRpX21fbjsNCj4gPiA+ ID4gPiAgDQo+ID4gPiA+ID4gIAlib29sIGlwc19lbmFibGVkOw0KPiA+ID4gPiA+IC0JYm9vbCBp cHNfZm9yY2VfZGlzYWJsZTsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKwlib29sIGNyY19lbmFi bGVkOw0KPiA+ID4gPiA+ICANCj4gPiA+ID4gPiAgCWJvb2wgZW5hYmxlX2ZiYzsNCj4gPiA+ID4g PiAgDQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bp cGVfY3JjLmMNCj4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3Jj LmMNCj4gPiA+ID4gPiBpbmRleCA1M2Q0ZWM2OGQzYzQuLmY2ZDBiMmFhZmZlMiAxMDA2NDQNCj4g PiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jDQo+ID4g PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYw0KPiA+ID4g PiA+IEBAIC0yODAsMTEgKzI4MCwxMiBAQCBzdGF0aWMgaW50IGlsa19waXBlX2NyY19jdGxfcmVn KGVudW0NCj4gPiA+ID4gPiBpbnRlbF9waXBlX2NyY19zb3VyY2UgKnNvdXJjZSwNCj4gPiA+ID4g PiAgCXJldHVybiAwOw0KPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+IC1zdGF0 aWMgdm9pZCBoc3dfcGlwZV9BX2NyY193YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQ0KPiA+ID4g PiA+ICpkZXZfcHJpdiwNCj4gPiA+ID4gPiAtCQkJICAgICAgYm9vbCBlbmFibGUpDQo+ID4gPiA+ ID4gK3N0YXRpYyB2b2lkDQo+ID4gPiA+ID4gK2ludGVsX2NydGNfY3JjX3ByZXBhcmUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+ID4gPiA+IHN0cnVjdA0KPiA+ID4gPiA+ IGRybV9jcnRjICpjcnRjLA0KPiA+ID4gPiANCj4gPiA+ID4gSnVzdCBwYXNzIGluIHRoZSBpbnRl bF9jcnRjDQo+ID4gPiANCj4gPiA+IE9rYXkNCj4gPiA+IA0KPiA+ID4gPiA+ICsJCSAgICAgICBi b29sIGVuYWJsZSkNCj4gPiA+ID4gPiAgew0KPiA+ID4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9ICZkZXZfcHJpdi0+ZHJtOw0KPiA+ID4gPiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPQ0KPiA+ID4gPiA+IGludGVsX2dldF9jcnRjX2Zvcl9waXBlKGRldl9wcml2LA0KPiA+ID4g PiA+IFBJUEVfQSk7DQo+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7DQo+ID4gPiA+IA0KPiA+ID4gPiBhbmQgdGhlbiB3ZSBkb24n dCBoYXZlIHRvIGhhdmUgYW4gdWdseSBuYW1lIGZvciB0aGlzLg0KPiA+ID4gPiANCj4gPiA+ID4g QWxzbyBwYXNpbmcgaW4gZGV2X3ByaXYgaXMgcmVkdW5kYW50IHdoZW4geW91J3JlIGFscmVhZHkN Cj4gPiA+ID4gcGFzc2luZw0KPiA+ID4gPiBpbg0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gY3J0Yy4N Cj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IG9rYXkNCj4gPiA+IA0KPiA+ID4gPiBUaGUgZnVuY3Rp b24gbmFtZSBpc24ndCBzdXBlciBkZXNjcmlwdGl2ZS4gSXQgbWFrZXMgbWUgdGhpbmsNCj4gPiA+ ID4gd2UncmUNCj4gPiA+ID4gcHJlcGFyaW5nIGZvciBDUkMgY2FwdHVyZSwgd2hlbiBpbiBmYWN0 IGl0IGp1c3QgYWRkcy9yZW1vdmVzDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiB3L2FzLg0KPiA+ID4g DQo+ID4gPiBXaGF0IGFib3V0OiBpbnRlbF9jcnRjX2NyY193b3JrYXJvdW5kc19zZXR1cCgpPw0K PiA+ID4gDQo+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWc7 DQo+ID4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7DQo+ID4gPiA+ID4g IAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4Ow0KPiA+ID4gPiA+IEBAIC0zMDEs MjMgKzMwMiwxNSBAQCBzdGF0aWMgdm9pZCBoc3dfcGlwZV9BX2NyY193YShzdHJ1Y3QNCj4gPiA+ ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPiA+ID4gPiAgCXN0YXRlLT5hY3F1 aXJlX2N0eCA9ICZjdHg7DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ICByZXRyeToNCj4gPiA+ID4g PiAtCXBpcGVfY29uZmlnID0gaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRj KTsNCj4gPiA+ID4gPiArCXBpcGVfY29uZmlnID0gaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRl KHN0YXRlLA0KPiA+ID4gPiA+IGludGVsX2NydGMpOw0KPiA+ID4gPiA+ICAJaWYgKElTX0VSUihw aXBlX2NvbmZpZykpIHsNCj4gPiA+ID4gPiAgCQlyZXQgPSBQVFJfRVJSKHBpcGVfY29uZmlnKTsN Cj4gPiA+ID4gPiAgCQlnb3RvIHB1dF9zdGF0ZTsNCj4gPiA+ID4gPiAgCX0NCj4gPiA+ID4gPiAg DQo+ID4gPiA+ID4gLQlpZiAoSEFTX0lQUyhkZXZfcHJpdikpIHsNCj4gPiA+ID4gPiAtCQkvKg0K PiA+ID4gPiA+IC0JCSAqIFdoZW4gSVBTIGdldHMgZW5hYmxlZCwgdGhlIHBpcGUgQ1JDIGNoYW5n ZXMuDQo+ID4gPiA+ID4gU2luY2UNCj4gPiA+ID4gPiBJUFMgZ2V0cw0KPiA+ID4gPiA+IC0JCSAq IGVuYWJsZWQgYW5kIGRpc2FibGVkIGR5bmFtaWNhbGx5IGJhc2VkIG9uDQo+ID4gPiA+ID4gcGFj a2FnZSBDDQo+ID4gPiA+ID4gc3RhdGVzLA0KPiA+ID4gPiA+IC0JCSAqIHVzZXIgc3BhY2UgY2Fu J3QgbWFrZSByZWxpYWJsZSB1c2Ugb2YgdGhlDQo+ID4gPiA+ID4gQ1JDcywgc28NCj4gPiA+ID4g PiBsZXQncyBqdXN0DQo+ID4gPiA+ID4gLQkJICogY29tcGxldGVseSBkaXNhYmxlIGl0Lg0KPiA+ ID4gPiA+IC0JCSAqLw0KPiA+ID4gPiA+IC0JCXBpcGVfY29uZmlnLT5pcHNfZm9yY2VfZGlzYWJs ZSA9IGVuYWJsZTsNCj4gPiA+ID4gPiAtCX0NCj4gPiA+ID4gPiArCXBpcGVfY29uZmlnLT5jcmNf ZW5hYmxlZCA9IGVuYWJsZTsNCj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gLQlpZiAoSVNfSEFTV0VM TChkZXZfcHJpdikpIHsNCj4gPiA+ID4gPiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBp bnRlbF9jcnRjLT5waXBlID09IFBJUEVfQSkNCj4gPiA+ID4gPiB7DQo+ID4gPiA+ID4gIAkJcGlw ZV9jb25maWctPnBjaF9wZml0LmZvcmNlX3RocnUgPSBlbmFibGU7DQo+ID4gPiA+ID4gIAkJaWYg KHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciA9PQ0KPiA+ID4gPiA+IFRSQU5TQ09ERVJfRURQ ICYmDQo+ID4gPiA+ID4gIAkJICAgIHBpcGVfY29uZmlnLT5wY2hfcGZpdC5lbmFibGVkICE9IGVu YWJsZSkNCj4gPiA+ID4gPiBAQCAtMzQzLDggKzMzNiw3IEBAIHN0YXRpYyB2b2lkIGhzd19waXBl X0FfY3JjX3dhKHN0cnVjdA0KPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0K PiA+ID4gPiA+ICBzdGF0aWMgaW50IGl2Yl9waXBlX2NyY19jdGxfcmVnKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlDQo+ID4gPiA+ID4gKmRldl9wcml2LA0KPiA+ID4gPiA+ICAJCQkJZW51bSBwaXBl IHBpcGUsDQo+ID4gPiA+ID4gIAkJCQllbnVtIGludGVsX3BpcGVfY3JjX3NvdXJjZQ0KPiA+ID4g PiA+ICpzb3VyY2UsDQo+ID4gPiA+ID4gLQkJCQl1MzIgKnZhbCwNCj4gPiA+ID4gPiAtCQkJCWJv b2wgc2V0X3dhKQ0KPiA+ID4gPiA+ICsJCQkJdTMyICp2YWwpDQo+ID4gPiA+ID4gIHsNCj4gPiA+ ID4gPiAgCWlmICgqc291cmNlID09IElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9BVVRPKQ0KPiA+ID4g PiA+ICAJCSpzb3VyY2UgPSBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfUElQRTsNCj4gPiA+ID4gPiBA QCAtMzU3LDEwICszNDksNiBAQCBzdGF0aWMgaW50IGl2Yl9waXBlX2NyY19jdGxfcmVnKHN0cnVj dA0KPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+ID4gPiA+ICAJCSp2 YWwgPSBQSVBFX0NSQ19FTkFCTEUgfA0KPiA+ID4gPiA+IFBJUEVfQ1JDX1NPVVJDRV9TUFJJVEVf SVZCOw0KPiA+ID4gPiA+ICAJCWJyZWFrOw0KPiA+ID4gPiA+ICAJY2FzZSBJTlRFTF9QSVBFX0NS Q19TT1VSQ0VfUElQRToNCj4gPiA+ID4gPiAtCQlpZiAoc2V0X3dhICYmIChJU19IQVNXRUxMKGRl dl9wcml2KSB8fA0KPiA+ID4gPiA+IC0JCSAgICAgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgJiYg cGlwZSA9PSBQSVBFX0EpDQo+ID4gPiA+ID4gLQkJCWhzd19waXBlX0FfY3JjX3dhKGRldl9wcml2 LCB0cnVlKTsNCj4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gIAkJKnZhbCA9IFBJUEVfQ1JDX0VOQUJM RSB8DQo+ID4gPiA+ID4gUElQRV9DUkNfU09VUkNFX1BGX0lWQjsNCj4gPiA+ID4gPiAgCQlicmVh azsNCj4gPiA+ID4gPiAgCWNhc2UgSU5URUxfUElQRV9DUkNfU09VUkNFX05PTkU6DQo+ID4gPiA+ ID4gQEAgLTQxOCw4ICs0MDYsNyBAQCBzdGF0aWMgaW50IHNrbF9waXBlX2NyY19jdGxfcmVnKHN0 cnVjdA0KPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+ID4gPiA+ICAN Cj4gPiA+ID4gPiAgc3RhdGljIGludCBnZXRfbmV3X2NyY19jdGxfcmVnKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlDQo+ID4gPiA+ID4gKmRldl9wcml2LA0KPiA+ID4gPiA+ICAJCQkgICAgICAgZW51 bSBwaXBlIHBpcGUsDQo+ID4gPiA+ID4gLQkJCSAgICAgICBlbnVtIGludGVsX3BpcGVfY3JjX3Nv dXJjZQ0KPiA+ID4gPiA+ICpzb3VyY2UsIHUzMg0KPiA+ID4gPiA+ICp2YWwsDQo+ID4gPiA+ID4g LQkJCSAgICAgICBib29sIHNldF93YSkNCj4gPiA+ID4gPiArCQkJICAgICAgIGVudW0gaW50ZWxf cGlwZV9jcmNfc291cmNlDQo+ID4gPiA+ID4gKnNvdXJjZSwgdTMyDQo+ID4gPiA+ID4gKnZhbCkN Cj4gPiA+ID4gPiAgew0KPiA+ID4gPiA+ICAJaWYgKElTX0dFTihkZXZfcHJpdiwgMikpDQo+ID4g PiA+ID4gIAkJcmV0dXJuIGk4eHhfcGlwZV9jcmNfY3RsX3JlZyhzb3VyY2UsIHZhbCk7DQo+ID4g PiA+ID4gQEAgLTQzMCw3ICs0MTcsNyBAQCBzdGF0aWMgaW50IGdldF9uZXdfY3JjX2N0bF9yZWco c3RydWN0DQo+ID4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4gPiA+ID4g IAllbHNlIGlmIChJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDUsIDYpKQ0KPiA+ID4gPiA+ICAJCXJl dHVybiBpbGtfcGlwZV9jcmNfY3RsX3JlZyhzb3VyY2UsIHZhbCk7DQo+ID4gPiA+ID4gIAllbHNl IGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkNCj4gPiA+ID4gPiAtCQlyZXR1cm4gaXZiX3Bp cGVfY3JjX2N0bF9yZWcoZGV2X3ByaXYsIHBpcGUsDQo+ID4gPiA+ID4gc291cmNlLA0KPiA+ID4g PiA+IHZhbCwgc2V0X3dhKTsNCj4gPiA+ID4gPiArCQlyZXR1cm4gaXZiX3BpcGVfY3JjX2N0bF9y ZWcoZGV2X3ByaXYsIHBpcGUsDQo+ID4gPiA+ID4gc291cmNlLA0KPiA+ID4gPiA+IHZhbCk7DQo+ ID4gPiA+ID4gIAllbHNlDQo+ID4gPiA+ID4gIAkJcmV0dXJuIHNrbF9waXBlX2NyY19jdGxfcmVn KGRldl9wcml2LCBwaXBlLA0KPiA+ID4gPiA+IHNvdXJjZSwNCj4gPiA+ID4gPiB2YWwpOw0KPiA+ ID4gPiA+ICB9DQo+ID4gPiA+ID4gQEAgLTYxOCw3ICs2MDUsOSBAQCBpbnQgaW50ZWxfY3J0Y19z ZXRfY3JjX3NvdXJjZShzdHJ1Y3QNCj4gPiA+ID4gPiBkcm1fY3J0Yw0KPiA+ID4gPiA+ICpjcnRj LCBjb25zdCBjaGFyICpzb3VyY2VfbmFtZSkNCj4gPiA+ID4gPiAgCQlyZXR1cm4gLUVJTzsNCj4g PiA+ID4gPiAgCX0NCj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gLQlyZXQgPSBnZXRfbmV3X2NyY19j dGxfcmVnKGRldl9wcml2LCBjcnRjLT5pbmRleCwNCj4gPiA+ID4gPiAmc291cmNlLCAmdmFsLA0K PiA+ID4gPiA+IHRydWUpOw0KPiA+ID4gPiA+ICsJaW50ZWxfY3J0Y19jcmNfcHJlcGFyZShkZXZf cHJpdiwgY3J0Yywgc291cmNlICE9DQo+ID4gPiA+ID4gSU5URUxfUElQRV9DUkNfU09VUkNFX05P TkUpOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gDQo+ID4gPiA+IEFyZW4ndCB3ZSBwb3RlbnRpYWxs eSBjb3JydXB0aW5nIHRoZSBsYXN0IENSQyhzKSBieSB0dXJuaW5nIG9mZg0KPiA+ID4gPiB0aGUN Cj4gPiA+ID4gdy9hcw0KPiA+ID4gPiBiZWZvcmUgZGlzYmxpbmcgQ1JDIGNhcHR1cmU/DQo+ID4g PiANCj4gPiA+IEl0IHdpbGwgb25seSBiZSBOVUxMIHdoZW4gdXNlcyBjbG9zZXMgdGhlIGZpbGUg ZGVzY3JpcHRvciB0byBDUkMNCj4gPiA+IGRhdGEsDQo+ID4gPiBzbyBldmVuIGlmIGl0cyBjb3Jy dXB0ZWQgdXNlciB3aWxsIG5ldmVyIGdldCB0aG9zZSBDUkNzLg0KPiA+IA0KPiA+IEV2ZW4gaWYg dGhlIHVzZXJzcGFjZSByZWFkcyBmcm9tIGFub3RoZXIgdGhyZWFkPyBQcm9iYWJseSBub3QgYQ0K PiA+IGNvbW1vbg0KPiA+IHVzZSBjYXNlIHRob3VnaC4NCj4gDQo+IEl0IGlzIGNhbGxlZCB3aXRo IE5VTEwgZnJvbSB0aGUgcmVsZWFzZSgpIGhvb2ssIHNvIHdoZW4gYWxsDQo+IGZpbGVkZXNjcmlw dG9ycyB0byB0aGlzIGZpbGUgaXMgY2xvc2VkLg0KPiANCj4gQnV0IGFueXdheXMgdGhlIGRybSBj cmMgY29kZSBvbmx5IGFsbG93cyBvbmUgb3BlbigpIG9mIHRoaXMgZmlsZSBhdA0KPiB0aW1lLCBz byBpZiBvdGhlciB0aHJlYWQgdHJpZXMgdG8gcmVhZCBpdCBhZnRlciB0aGUgbWFpbiB0aHJlYWQg aGF2ZQ0KPiBjbG9zZWQgaXQgaXQgd2lsbCBmYWlsIGJlZm9yZSBnZXQgaW50byBhbnkgZHJtIGNv ZGUuDQo+IA0KTWFrZXMgc2Vuc2UsIHRoYW5rcy4NCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA==