From mboxrd@z Thu Jan 1 00:00:00 1970 From: Praveen Paneri Subject: Re: [PATCH v5] drm/i915/bxt: Broxton decoupled MMIO Date: Wed, 16 Nov 2016 14:33:22 +0530 Message-ID: <582C20DA.9030707@intel.com> References: <84d90b8c-4c0a-0546-bdc7-cabd3384c29e@linux.intel.com> <1479230360-22395-1-git-send-email-praveen.paneri@intel.com> <441a562d-d378-9988-9f20-0e6dd25e0779@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E2CC6E659 for ; Wed, 16 Nov 2016 08:58:23 +0000 (UTC) In-Reply-To: <441a562d-d378-9988-9f20-0e6dd25e0779@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: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org Cc: Zhe Wang , rodrigo.vivi@intel.com List-Id: intel-gfx@lists.freedesktop.org SGkgVHZydGtvLAoKT24gV2VkbmVzZGF5IDE2IE5vdmVtYmVyIDIwMTYgMDE6NTUgUE0sIFR2cnRr byBVcnN1bGluIHdyb3RlOgo+Cj4gT24gMTUvMTEvMjAxNiAxNzoxOSwgUHJhdmVlbiBQYW5lcmkg d3JvdGU6Cj4+IERlY291cGxlZCBNTUlPIGlzIGFuIGFsdGVybmF0aXZlIHdheSB0byBhY2Nlc3Mg Zm9yY2V3YWtlIGRvbWFpbgo+PiByZWdpc3RlcnMsIHdoaWNoIHJlcXVpcmVzIGxlc3MgY3ljbGVz IGZvciBhIHNpbmdsZSByZWFkL3dyaXRlIGFuZAo+PiBhdm9pZHMgZnJlcXVlbnQgc29mdHdhcmUg Zm9yY2V3YWtlLgo+PiBUaGlzIGNlcnRhaW5seSBnaXZlcyBhZHZhbnRhZ2Ugb3ZlciB0aGUgZm9y Y2V3YWtlIGFzIHRoaXMgbmV3Cj4+IG1lY2hhbmlzbSDigJxkZWNvdXBsZXPigJ0gQ1BVIGN5Y2xl cyBhbmQgYWxsb3cgdGhlbSB0byBjb21wbGV0ZSBldmVuCj4+IHdoZW4gR1QgaXMgaW4gYSBDUEQg KGZyZXF1ZW5jeSBjaGFuZ2UpIG9yIEM2IHN0YXRlLgo+Pgo+PiBUaGlzIGNhbiBjby1leGlzdCB3 aXRoIGZvcmNld2FrZSBhbmQgd2Ugd2lsbCBjb250aW51ZSB0byB1c2UgZm9yY2V3YWtlCj4+IGFz IGFwcHJvcHJpYXRlLiBFLmcuIDY0LWJpdCByZWdpc3RlciB3cml0ZXMgdG8gYXZvaWQgd3JpdGlu ZyAyIGR3b3Jkcwo+PiBzZXBhcmF0ZWx5IGFuZCBsYW5kIGludG8gZnVubnkgc2l0dWF0aW9ucy4K Pj4KPj4gdjI6Cj4+IC0gTW92ZWQgcGxhdGZvcm0gY2hlY2sgb3V0IG9mIHRoZSBmdW5jdGlvbiBh bmQgZ290IHJpZCBvZiBkdXBsaWNhdGUKPj4gIGZ1bmN0aW9ucyB0byBmaW5kIG91dCBkZWNvdXBs ZWQgcG93ZXIgZG9tYWluIChDaHJpcykKPj4gLSBBZGRlZCBhIGNoZWNrIGZvciBmb3JjZXdha2Ug YWxyZWFkeSBoZWxkIGFuZCBza2lwcGVkIGRlY291cGxlZAo+PiAgYWNjZXNzIChDaHJpcykKPj4g LSBTa2lwcGVkIHdyaXRpbmcgNjQgYml0IHJlZ2lzdGVycyB0aHJvdWdoIGRlY291cGxlZCBNTUlP IChDaHJpcykKPj4KPj4gdjM6Cj4+IC0gSW1wcm92ZWQgY29tbWl0IG1lc3NhZ2Ugd2l0aCBtb3Jl IGluZm8gb24gZGVjb3VwbGVkIG1taW8gKFR2cnRrbykKPj4gLSBDaGFuZ2VkIGRlY291cGxlZCBv cGVyYXRpb24gdG8gZW51bSBhbmQgdXNlZCB1MzIgaW5zdGVhZCBvZgo+PiAgdWludF8zMiBkYXRh IHR5cGUgZm9yIHJlZ2lzdGVyIG9mZnNldCAoVHZydGtvKQo+PiAtIE1vdmVkIEhBU19ERUNPVVBM RURfTU1JTyB0byBkZXZpY2UgaW5mbyAoVHZydGtvKQo+PiAtIEFkZGVkIGxvb2t1cCB0YWJsZSBm b3IgY29udmVydGluZyBmd19lbmdpbmUgdG8gcGRfZW5naW5lIChUdnJ0a28pCj4+IC0gSW1wcm92 ZWQgX19nZW45X2RlY291cGxlZF9yZWFkIGFuZCBfX2dlbjlfZGVjb3VwbGVkX3dyaXRlCj4+ICBy b3V0aW5lcyAoVHZydGtvKQo+Pgo+PiB2NDoKPj4gLSBGaXhlZCBhbGlnbm1lbnQgYW5kIHZhcmlh YmxlIG5hbWVzIChDaHJpcykKPj4gLSBXcml0ZSBHRU45X0RFQ09VUExFRF9SRUcwX0RXMSByZWdp c3RlciBpbiBqdXN0IG9uZSBnbyAoWmhlIFdhbmcpCj4+Cj4+IHY1Ogo+PiAtIENoYW5nZWQgSEFT X0RFQ09VUExFRF9NTUlPKCkgYXJndW1lbnQgbmFtZSB0byBkZXZfcHJpdiAoVHZydGtvKQo+PiAt IFNhbml0aXplIGluZm8tPmhhZF9kZWNvdXBsZWRfbW1pbyBhdCBpbml0IChDaHJpcykKPj4KPj4g U2lnbmVkLW9mZi1ieTogWmhlIFdhbmcgPHpoZTEud2FuZ0BpbnRlbC5jb20+Cj4+IFNpZ25lZC1v ZmYtYnk6IFByYXZlZW4gUGFuZXJpIDxwcmF2ZWVuLnBhbmVyaUBpbnRlbC5jb20+Cj4+IFJldmll d2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Cj4gUGxl YXNlIHB1dCAiKHY0KSIgd2hlbiB5b3UgY2Fycnkgb3ZlciB0aGUgci1iIGFuZCBpdCB3YXNuJ3Qg ZXhwbGljaXRseQo+IHNhaWQgeW91IGFyZSBPSyB0byBqdXN0IGtlZXAgaXQuClN1cmUgd2lsbCB0 YWtlIGNhcmUgZ29pbmcgZndkLgo+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgfCAgMTcgKysrKystCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bj aS5jICAgICB8ICAgMSArCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICB8 ICAgNyArKysKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIHwgMTE1Cj4+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgNCBmaWxlcyBjaGFuZ2Vk LCAxMzkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPj4gaW5kZXggNGU3MTQ4YS4uYzFlZWMwNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4+IEBAIC01NDksNiArNTQ5LDE4IEBAIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMg ewo+PiAgI2RlZmluZSBGV19SRUdfUkVBRCAgKDEpCj4+ICAjZGVmaW5lIEZXX1JFR19XUklURSAo MikKPj4KPj4gK2VudW0gZGVjb3VwbGVkX3Bvd2VyX2RvbWFpbiB7Cj4+ICsgICAgR0VOOV9ERUNP VVBMRURfUERfQkxJVFRFUiA9IDAsCj4+ICsgICAgR0VOOV9ERUNPVVBMRURfUERfUkVOREVSLAo+ PiArICAgIEdFTjlfREVDT1VQTEVEX1BEX01FRElBLAo+PiArICAgIEdFTjlfREVDT1VQTEVEX1BE X0FMTAo+PiArfTsKPj4gKwo+PiArZW51bSBkZWNvdXBsZWRfb3BzIHsKPj4gKyAgICBHRU45X0RF Q09VUExFRF9PUF9XUklURSA9IDAsCj4+ICsgICAgR0VOOV9ERUNPVVBMRURfT1BfUkVBRAo+PiAr fTsKPj4gKwo+PiAgZW51bSBmb3JjZXdha2VfZG9tYWlucwo+PiAgaW50ZWxfdW5jb3JlX2ZvcmNl d2FrZV9mb3JfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gICAgICAg ICAgICAgICAgICAgICBpOTE1X3JlZ190IHJlZywgdW5zaWduZWQgaW50IG9wKTsKPj4gQEAgLTY4 Myw3ICs2OTUsOCBAQCBzdHJ1Y3QgaW50ZWxfY3NyIHsKPj4gICAgICBmdW5jKGN1cnNvcl9uZWVk c19waHlzaWNhbCk7IFwKPj4gICAgICBmdW5jKGh3c19uZWVkc19waHlzaWNhbCk7IFwKPj4gICAg ICBmdW5jKG92ZXJsYXlfbmVlZHNfcGh5c2ljYWwpOyBcCj4+IC0gICAgZnVuYyhzdXBwb3J0c190 dikKPj4gKyAgICBmdW5jKHN1cHBvcnRzX3R2KTsgXAo+PiArICAgIGZ1bmMoaGFzX2RlY291cGxl ZF9tbWlvKQo+Pgo+PiAgc3RydWN0IHNzZXVfZGV2X2luZm8gewo+PiAgICAgIHU4IHNsaWNlX21h c2s7Cj4+IEBAIC0yNjUyLDYgKzI2NjUsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxlIHsK Pj4gICNkZWZpbmUgR1RfRlJFUVVFTkNZX01VTFRJUExJRVIgNTAKPj4gICNkZWZpbmUgR0VOOV9G UkVRX1NDQUxFUiAzCj4+Cj4+ICsjZGVmaW5lIEhBU19ERUNPVVBMRURfTU1JTyhkZXZfcHJpdikK Pj4gKElOVEVMX0lORk8oZGV2X3ByaXYpLT5oYXNfZGVjb3VwbGVkX21taW8pCj4+ICsKPj4gICNp bmNsdWRlICJpOTE1X3RyYWNlLmgiCj4+Cj4+ICBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfc2Nh bm91dF9uZWVkc192dGRfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPj4gKmRldl9wcml2KQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+PiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPj4gaW5kZXggNzBhOTljZS4uZmNlOGUxOSAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4+IEBAIC0zNjMsNiArMzYzLDcgQEAKPj4gICAg ICAuaGFzX2h3X2NvbnRleHRzID0gMSwKPj4gICAgICAuaGFzX2xvZ2ljYWxfcmluZ19jb250ZXh0 cyA9IDEsCj4+ICAgICAgLmhhc19ndWMgPSAxLAo+PiArICAgIC5oYXNfZGVjb3VwbGVkX21taW8g PSAxLAo+PiAgICAgIC5kZGJfc2l6ZSA9IDUxMiwKPj4gICAgICBHRU5fREVGQVVMVF9QSVBFT0ZG U0VUUywKPj4gICAgICBJVkJfQ1VSU09SX09GRlNFVFMsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+PiBpbmRleCAzMzYxZDdmLi5jNzBjMDdhIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPj4gQEAgLTczNDIsNiArNzM0MiwxMyBAQCBlbnVtIHsKPj4gICNkZWZpbmUgIFNLTF9G VVNFX1BHMV9ESVNUX1NUQVRVUyAgICAgICAgICAgICAgKDE8PDI2KQo+PiAgI2RlZmluZSAgU0tM X0ZVU0VfUEcyX0RJU1RfU1RBVFVTICAgICAgICAgICAgICAoMTw8MjUpCj4+Cj4+ICsvKiBEZWNv dXBsZWQgTU1JTyByZWdpc3RlciBwYWlyIGZvciBrZXJuZWwgZHJpdmVyICovCj4+ICsjZGVmaW5l IEdFTjlfREVDT1VQTEVEX1JFRzBfRFcwICAgICAgICAgICAgX01NSU8oMHhGMDApCj4+ICsjZGVm aW5lIEdFTjlfREVDT1VQTEVEX1JFRzBfRFcxICAgICAgICAgICAgX01NSU8oMHhGMDQpCj4+ICsj ZGVmaW5lIEdFTjlfREVDT1VQTEVEX0RXMV9HTyAgICAgICAgICAgICgxPDwzMSkKPj4gKyNkZWZp bmUgR0VOOV9ERUNPVVBMRURfUERfU0hJRlQgICAgICAgICAgICAyOAo+PiArI2RlZmluZSBHRU45 X0RFQ09VUExFRF9PUF9TSElGVCAgICAgICAgICAgIDI0Cj4+ICsKPj4gIC8qIFBlci1waXBlIERE SSBGdW5jdGlvbiBDb250cm9sICovCj4+ICAjZGVmaW5lIF9UUkFOU19ERElfRlVOQ19DVExfQSAg ICAgICAgMHg2MDQwMAo+PiAgI2RlZmluZSBfVFJBTlNfRERJX0ZVTkNfQ1RMX0IgICAgICAgIDB4 NjE0MDAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5j Cj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPj4gaW5kZXggZTJiMTg4 ZC4uZTk1MzMwMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5j b3JlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPj4gQEAg LTQwMiw2ICs0MDIsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF91bmNvcmVfZWRyYW1fZGV0ZWN0KHN0 cnVjdAo+PiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIHN0YXRpYyB2b2lkIF9faW50 ZWxfdW5jb3JlX2Vhcmx5X3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4+ICpkZXZf cHJpdiwKPj4gICAgICAgICAgICAgICAgICAgICAgICBib29sIHJlc3RvcmVfZm9yY2V3YWtlKQo+ PiAgewo+PiArICAgIHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbyA9IG1rd3JpdGVfZGV2 aWNlX2luZm8oZGV2X3ByaXYpOwo+PiArCj4+ICAgICAgLyogY2xlYXIgb3V0IHVuY2xhaW1lZCBy ZWcgZGV0ZWN0aW9uIGJpdCAqLwo+PiAgICAgIGlmIChjaGVja19mb3JfdW5jbGFpbWVkX21taW8o ZGV2X3ByaXYpKQo+PiAgICAgICAgICBEUk1fREVCVUcoInVuY2xhaW1lZCBtbWlvIGRldGVjdGVk IG9uIHVuY29yZSBpbml0LCBjbGVhcmluZ1xuIik7Cj4+IEBAIC00MTksNiArNDIxLDEwIEBAIHN0 YXRpYyB2b2lkIF9faW50ZWxfdW5jb3JlX2Vhcmx5X3Nhbml0aXplKHN0cnVjdAo+PiBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPj4gICAgICAgICAgICAgICAgICAgICBHVF9GSUZPX0NUTF9S QzZfUE9MSUNZX1NUQUxMKTsKPj4gICAgICB9Cj4+Cj4+ICsgICAgLyogRW5hYmxlIERlY291cGxl ZCBNTUlPIG9ubHkgb24gQlhUIEMgc3RlcHBpbmcgb253YXJkcyAqLwo+PiArICAgIGlmICghSVNf QlhUX1JFVklEKGRldl9wcml2LCBCWFRfUkVWSURfQzAsIFJFVklEX0ZPUkVWRVIpKQo+PiArICAg ICAgICBpbmZvLT5oYXNfZGVjb3VwbGVkX21taW8gPSBmYWxzZTsKPgo+IFdoeSBoYXZlIHlvdSBk ZWNpZGVkIHRvIHB1dCBpdCBpbiBoZXJlPyBJdCBkb2Vzbid0IG1ha2UgbXVjaCBkaWZmZXJlbmNl Cj4gZXhjZXB0IGNvbmNlcHR1YWxseS4gVGhpcyBydW5zIGV2ZXJ5IHRpbWUgb24gcmVzdW1lIHdo aWxlIEkgdGhvdWdodAo+IGludGVsX2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdCB3b3VsZCBoYXZl IGJlZW4gbW9yZSBhcHByb3ByaWF0ZS4KU29ycnkgYWJvdXQgcGlja2luZyB0aGUgYmFkIHBsYWNl IGZvciB0aGlzIGJ1dCBpbnRlbF91bmNvcmVfaW5pdCgpIHdoaWNoIAp1c2VzIHRoaXMgaW5mbyBn ZXRzIGV4ZWN1dGVkIGJlZm9yZSBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQoKSBpbiAK ZHJpdmVyX2xvYWQgc2VxdWVuY2UuIElmIEkgYW0gbm90IHdyb25nLCB3ZSBuZWVkIHRvIGZpbmQg YW4gYXBwcm9wcmlhdGUgCnBsYWNlIGZvciB0aGlzLgoKVGhhbmtzLApQcmF2ZWVuCj4KPiBSZWdh cmRzLAo+Cj4gVHZydGtvCj4KPj4gKwo+PiAgICAgIGludGVsX3VuY29yZV9mb3JjZXdha2VfcmVz ZXQoZGV2X3ByaXYsIHJlc3RvcmVfZm9yY2V3YWtlKTsKPj4gIH0KPj4KPj4gQEAgLTgzMSw2ICs4 MzcsNjYgQEAgc3RhdGljIGJvb2wgaXNfZ2VuOF9zaGFkb3dlZCh1MzIgb2Zmc2V0KQo+PiAgICAg IF9fdW5jbGFpbWVkX3JlZ19kZWJ1ZyhkZXZfcHJpdiwgcmVnLCByZWFkLCBiZWZvcmUpOwo+PiAg fQo+Pgo+PiArc3RhdGljIGNvbnN0IGVudW0gZGVjb3VwbGVkX3Bvd2VyX2RvbWFpbiBmdzJkcGRf ZG9tYWluW10gPSB7Cj4+ICsgICAgR0VOOV9ERUNPVVBMRURfUERfUkVOREVSLAo+PiArICAgIEdF TjlfREVDT1VQTEVEX1BEX0JMSVRURVIsCj4+ICsgICAgR0VOOV9ERUNPVVBMRURfUERfQUxMLAo+ PiArICAgIEdFTjlfREVDT1VQTEVEX1BEX01FRElBLAo+PiArICAgIEdFTjlfREVDT1VQTEVEX1BE X0FMTCwKPj4gKyAgICBHRU45X0RFQ09VUExFRF9QRF9BTEwsCj4+ICsgICAgR0VOOV9ERUNPVVBM RURfUERfQUxMCj4+ICt9Owo+PiArCj4+ICsvKgo+PiArICogRGVjb3VwbGVkIE1NSU8gYWNjZXNz IGZvciBvbmx5IDEgRFdPUkQKPj4gKyAqLwo+PiArc3RhdGljIHZvaWQgX19nZW45X2RlY291cGxl ZF9tbWlvX2FjY2VzcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+PiAqZGV2X3ByaXYsCj4+ICsg ICAgICAgICAgICAgICAgICAgICB1MzIgcmVnLAo+PiArICAgICAgICAgICAgICAgICAgICAgZW51 bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW4sCj4+ICsgICAgICAgICAgICAgICAgICAgICBl bnVtIGRlY291cGxlZF9vcHMgb3BlcmF0aW9uKQo+PiArewo+PiArICAgIGVudW0gZGVjb3VwbGVk X3Bvd2VyX2RvbWFpbiBkcF9kb21haW47Cj4+ICsgICAgdTMyIGN0cmxfcmVnX2RhdGEgPSAwOwo+ PiArCj4+ICsgICAgZHBfZG9tYWluID0gZncyZHBkX2RvbWFpbltmd19kb21haW4gLSAxXTsKPj4g Kwo+PiArICAgIGN0cmxfcmVnX2RhdGEgfD0gcmVnOwo+PiArICAgIGN0cmxfcmVnX2RhdGEgfD0g KG9wZXJhdGlvbiA8PCBHRU45X0RFQ09VUExFRF9PUF9TSElGVCk7Cj4+ICsgICAgY3RybF9yZWdf ZGF0YSB8PSAoZHBfZG9tYWluIDw8IEdFTjlfREVDT1VQTEVEX1BEX1NISUZUKTsKPj4gKyAgICBj dHJsX3JlZ19kYXRhIHw9IEdFTjlfREVDT1VQTEVEX0RXMV9HTzsKPj4gKyAgICBfX3Jhd19pOTE1 X3dyaXRlMzIoZGV2X3ByaXYsIEdFTjlfREVDT1VQTEVEX1JFRzBfRFcxLAo+PiBjdHJsX3JlZ19k YXRhKTsKPj4gKwo+PiArICAgIGlmICh3YWl0X2Zvcl9hdG9taWMoKF9fcmF3X2k5MTVfcmVhZDMy KGRldl9wcml2LAo+PiArICAgICAgICAgICAgICAgIEdFTjlfREVDT1VQTEVEX1JFRzBfRFcxKSAm Cj4+ICsgICAgICAgICAgICAgICAgR0VOOV9ERUNPVVBMRURfRFcxX0dPKSA9PSAwLAo+PiArICAg ICAgICAgICAgICAgIEZPUkNFV0FLRV9BQ0tfVElNRU9VVF9NUykpCj4+ICsgICAgICAgIERSTV9F UlJPUigiRGVjb3VwbGVkIE1NSU8gd2FpdCB0aW1lZCBvdXRcbiIpOwo+PiArfQo+PiArCj4+ICtz dGF0aWMgaW5saW5lIHUzMgo+PiArX19nZW45X2RlY291cGxlZF9tbWlvX3JlYWQzMihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICsgICAgICAgICAgICAgICAgIHUzMiByZWcs Cj4+ICsgICAgICAgICAgICAgICAgIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluKQo+ PiArewo+PiArICAgIF9fZ2VuOV9kZWNvdXBsZWRfbW1pb19hY2Nlc3MoZGV2X3ByaXYsIHJlZywg ZndfZG9tYWluLAo+PiArICAgICAgICAgICAgICAgICAgICAgR0VOOV9ERUNPVVBMRURfT1BfUkVB RCk7Cj4+ICsKPj4gKyAgICByZXR1cm4gX19yYXdfaTkxNV9yZWFkMzIoZGV2X3ByaXYsIEdFTjlf REVDT1VQTEVEX1JFRzBfRFcwKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGlubGluZSB2b2lkCj4+ ICtfX2dlbjlfZGVjb3VwbGVkX21taW9fd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+PiArICAgICAgICAgICAgICAgIHUzMiByZWcsIHUzMiBkYXRhLAo+PiArICAgICAg ICAgICAgICAgIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluKQo+PiArewo+PiArCj4+ ICsgICAgX19yYXdfaTkxNV93cml0ZTMyKGRldl9wcml2LCBHRU45X0RFQ09VUExFRF9SRUcwX0RX MCwgZGF0YSk7Cj4+ICsKPj4gKyAgICBfX2dlbjlfZGVjb3VwbGVkX21taW9fYWNjZXNzKGRldl9w cml2LCByZWcsIGZ3X2RvbWFpbiwKPj4gKyAgICAgICAgICAgICAgICAgICAgIEdFTjlfREVDT1VQ TEVEX09QX1dSSVRFKTsKPj4gK30KPj4gKwo+PiArCj4+ICAjZGVmaW5lIEdFTjJfUkVBRF9IRUFE RVIoeCkgXAo+PiAgICAgIHUjI3ggdmFsID0gMDsgXAo+PiAgICAgIGFzc2VydF9ycG1fd2FrZWxv Y2tfaGVsZChkZXZfcHJpdik7Cj4+IEBAIC05MzUsNiArMTAwMSwyOCBAQCBzdGF0aWMgaW5saW5l IHZvaWQgX19mb3JjZV93YWtlX2F1dG8oc3RydWN0Cj4+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+PiAgICAgIEdFTjZfUkVBRF9GT09URVI7IFwKPj4gIH0KPj4KPj4gKyNkZWZpbmUgX19n ZW45X2RlY291cGxlZF9yZWFkKHgpIFwKPj4gK3N0YXRpYyB1IyN4IFwKPj4gK2dlbjlfZGVjb3Vw bGVkX3JlYWQjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBcCj4+ICsgICAg ICAgICAgICAgICBpOTE1X3JlZ190IHJlZywgYm9vbCB0cmFjZSkgeyBcCj4+ICsgICAgZW51bSBm b3JjZXdha2VfZG9tYWlucyBmd19lbmdpbmU7IFwKPj4gKyAgICBHRU42X1JFQURfSEVBREVSKHgp OyBcCj4+ICsgICAgZndfZW5naW5lID0gX19md3RhYmxlX3JlZ19yZWFkX2Z3X2RvbWFpbnMob2Zm c2V0KTsgXAo+PiArICAgIGlmIChmd19lbmdpbmUgJiB+ZGV2X3ByaXYtPnVuY29yZS5md19kb21h aW5zX2FjdGl2ZSkgeyBcCj4+ICsgICAgICAgIHVuc2lnbmVkIGk7IFwKPj4gKyAgICAgICAgdTMy ICpwdHJfZGF0YSA9ICh1MzIgKikgJnZhbDsgXAo+PiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwg eC8zMjsgaSsrLCBvZmZzZXQgKz0gc2l6ZW9mKHUzMiksIHB0cl9kYXRhKyspIFwKPj4gKyAgICAg ICAgICAgICpwdHJfZGF0YSA9IF9fZ2VuOV9kZWNvdXBsZWRfbW1pb19yZWFkMzIoZGV2X3ByaXYs IFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCwgXAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZndfZW5naW5lKTsgXAo+PiArICAgIH0gZWxz ZSB7IFwKPj4gKyAgICAgICAgdmFsID0gX19yYXdfaTkxNV9yZWFkIyN4KGRldl9wcml2LCByZWcp OyBcCj4+ICsgICAgfSBcCj4+ICsgICAgR0VONl9SRUFEX0ZPT1RFUjsgXAo+PiArfQo+PiArCj4+ ICtfX2dlbjlfZGVjb3VwbGVkX3JlYWQoMzIpCj4+ICtfX2dlbjlfZGVjb3VwbGVkX3JlYWQoNjQp Cj4+ICBfX2Z3dGFibGVfcmVhZCg4KQo+PiAgX19md3RhYmxlX3JlYWQoMTYpCj4+ICBfX2Z3dGFi bGVfcmVhZCgzMikKPj4gQEAgLTEwNjQsNiArMTE1MiwyNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQg X19mb3JjZV93YWtlX2F1dG8oc3RydWN0Cj4+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ PiAgICAgIEdFTjZfV1JJVEVfRk9PVEVSOyBcCj4+ICB9Cj4+Cj4+ICsjZGVmaW5lIF9fZ2VuOV9k ZWNvdXBsZWRfd3JpdGUoeCkgXAo+PiArc3RhdGljIHZvaWQgXAo+PiArZ2VuOV9kZWNvdXBsZWRf d3JpdGUjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBcCj4+ICsgICAgICAg ICAgICBpOTE1X3JlZ190IHJlZywgdSMjeCB2YWwsIFwKPj4gKyAgICAgICAgYm9vbCB0cmFjZSkg eyBcCj4+ICsgICAgZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19lbmdpbmU7IFwKPj4gKyAgICBH RU42X1dSSVRFX0hFQURFUjsgXAo+PiArICAgIGZ3X2VuZ2luZSA9IF9fZnd0YWJsZV9yZWdfd3Jp dGVfZndfZG9tYWlucyhvZmZzZXQpOyBcCj4+ICsgICAgaWYgKGZ3X2VuZ2luZSAmIH5kZXZfcHJp di0+dW5jb3JlLmZ3X2RvbWFpbnNfYWN0aXZlKSBcCj4+ICsgICAgICAgIF9fZ2VuOV9kZWNvdXBs ZWRfbW1pb193cml0ZShkZXZfcHJpdiwgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0LCBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICB2YWwsIFwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGZ3X2VuZ2luZSk7IFwKPj4gKyAgICBlbHNlIFwKPj4gKyAgICAgICAgX19y YXdfaTkxNV93cml0ZSMjeChkZXZfcHJpdiwgcmVnLCB2YWwpOyBcCj4+ICsgICAgR0VONl9XUklU RV9GT09URVI7IFwKPj4gK30KPj4gKwo+PiArX19nZW45X2RlY291cGxlZF93cml0ZSgzMikKPj4g IF9fZnd0YWJsZV93cml0ZSg4KQo+PiAgX19md3RhYmxlX3dyaXRlKDE2KQo+PiAgX19md3RhYmxl X3dyaXRlKDMyKQo+PiBAQCAtMTI4Nyw2ICsxMzk0LDE0IEBAIHZvaWQgaW50ZWxfdW5jb3JlX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPj4gKmRldl9wcml2KQo+PiAgICAgICAgICBBU1NJ R05fRldfRE9NQUlOU19UQUJMRShfX2dlbjlfZndfcmFuZ2VzKTsKPj4gICAgICAgICAgQVNTSUdO X1dSSVRFX01NSU9fVkZVTkNTKGZ3dGFibGUpOwo+PiAgICAgICAgICBBU1NJR05fUkVBRF9NTUlP X1ZGVU5DUyhmd3RhYmxlKTsKPj4gKyAgICAgICAgaWYgKEhBU19ERUNPVVBMRURfTU1JTyhkZXZf cHJpdikpIHsKPj4gKyAgICAgICAgICAgIGRldl9wcml2LT51bmNvcmUuZnVuY3MubW1pb19yZWFk bCA9Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBnZW45X2RlY291cGxlZF9yZWFkMzI7Cj4+ ICsgICAgICAgICAgICBkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fcmVhZHEgPQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgZ2VuOV9kZWNvdXBsZWRfcmVhZDY0Owo+PiArICAgICAgICAg ICAgZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlvX3dyaXRlbCA9Cj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICBnZW45X2RlY291cGxlZF93cml0ZTMyOwo+PiArICAgICAgICB9Cj4+ICAgICAg ICAgIGJyZWFrOwo+PiAgICAgIGNhc2UgODoKPj4gICAgICAgICAgaWYgKElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKSB7Cj4+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=