From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v4] drm/i915/bxt: Broxton decoupled MMIO Date: Tue, 15 Nov 2016 10:59:54 +0000 Message-ID: <274b1dd5-27c2-b309-a21d-7aa1cbb8697e@linux.intel.com> References: <20161004195644.GA28117@nuc-i3427.alporthouse.com> <1479192015-4247-1-git-send-email-praveen.paneri@intel.com> <918c98b4-9f0f-9920-3529-6b31ab4d6b4e@linux.intel.com> <582AE9CE.2070908@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 225D36E173 for ; Tue, 15 Nov 2016 10:59:57 +0000 (UTC) In-Reply-To: <582AE9CE.2070908@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Praveen Paneri , intel-gfx@lists.freedesktop.org Cc: Zhe Wang , rodrigo.vivi@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE1LzExLzIwMTYgMTA6NTYsIFByYXZlZW4gUGFuZXJpIHdyb3RlOgo+IEhpIFR2cnRrbywK Pgo+IE9uIFR1ZXNkYXkgMTUgTm92ZW1iZXIgMjAxNiAwMzowNiBQTSwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4+Cj4+IE9uIDE1LzExLzIwMTYgMDY6NDAsIFByYXZlZW4gUGFuZXJpIHdyb3RlOgo+ Pj4gRGVjb3VwbGVkIE1NSU8gaXMgYW4gYWx0ZXJuYXRpdmUgd2F5IHRvIGFjY2VzcyBmb3JjZXdh a2UgZG9tYWluCj4+PiByZWdpc3RlcnMsIHdoaWNoIHJlcXVpcmVzIGxlc3MgY3ljbGVzIGZvciBh IHNpbmdsZSByZWFkL3dyaXRlIGFuZAo+Pj4gYXZvaWRzIGZyZXF1ZW50IHNvZnR3YXJlIGZvcmNl d2FrZS4KPj4+IFRoaXMgY2VydGFpbmx5IGdpdmVzIGFkdmFudGFnZSBvdmVyIHRoZSBmb3JjZXdh a2UgYXMgdGhpcyBuZXcKPj4+IG1lY2hhbmlzbSDigJxkZWNvdXBsZXPigJ0gQ1BVIGN5Y2xlcyBh bmQgYWxsb3cgdGhlbSB0byBjb21wbGV0ZSBldmVuCj4+PiB3aGVuIEdUIGlzIGluIGEgQ1BEIChm cmVxdWVuY3kgY2hhbmdlKSBvciBDNiBzdGF0ZS4KPj4+Cj4+PiBUaGlzIGNhbiBjby1leGlzdCB3 aXRoIGZvcmNld2FrZSBhbmQgd2Ugd2lsbCBjb250aW51ZSB0byB1c2UgZm9yY2V3YWtlCj4+PiBh cyBhcHByb3ByaWF0ZS4gRS5nLiA2NC1iaXQgcmVnaXN0ZXIgd3JpdGVzIHRvIGF2b2lkIHdyaXRp bmcgMiBkd29yZHMKPj4+IHNlcGFyYXRlbHkgYW5kIGxhbmQgaW50byBmdW5ueSBzaXR1YXRpb25z Lgo+Pj4KPj4+IHYyOgo+Pj4gLSBNb3ZlZCBwbGF0Zm9ybSBjaGVjayBvdXQgb2YgdGhlIGZ1bmN0 aW9uIGFuZCBnb3QgcmlkIG9mIGR1cGxpY2F0ZQo+Pj4gIGZ1bmN0aW9ucyB0byBmaW5kIG91dCBk ZWNvdXBsZWQgcG93ZXIgZG9tYWluIChDaHJpcykKPj4+IC0gQWRkZWQgYSBjaGVjayBmb3IgZm9y Y2V3YWtlIGFscmVhZHkgaGVsZCBhbmQgc2tpcHBlZCBkZWNvdXBsZWQKPj4+ICBhY2Nlc3MgKENo cmlzKQo+Pj4gLSBTa2lwcGVkIHdyaXRpbmcgNjQgYml0IHJlZ2lzdGVycyB0aHJvdWdoIGRlY291 cGxlZCBNTUlPIChDaHJpcykKPj4+Cj4+PiB2MzoKPj4+IC0gSW1wcm92ZWQgY29tbWl0IG1lc3Nh Z2Ugd2l0aCBtb3JlIGluZm8gb24gZGVjb3VwbGVkIG1taW8gKFR2cnRrbykKPj4+IC0gQ2hhbmdl ZCBkZWNvdXBsZWQgb3BlcmF0aW9uIHRvIGVudW0gYW5kIHVzZWQgdTMyIGluc3RlYWQgb2YKPj4+ ICB1aW50XzMyIGRhdGEgdHlwZSBmb3IgcmVnaXN0ZXIgb2Zmc2V0IChUdnJ0a28pCj4+PiAtIE1v dmVkIEhBU19ERUNPVVBMRURfTU1JTyB0byBkZXZpY2UgaW5mbyAoVHZydGtvKQo+Pj4gLSBBZGRl ZCBsb29rdXAgdGFibGUgZm9yIGNvbnZlcnRpbmcgZndfZW5naW5lIHRvIHBkX2VuZ2luZSAoVHZy dGtvKQo+Pj4gLSBJbXByb3ZlZCBfX2dlbjlfZGVjb3VwbGVkX3JlYWQgYW5kIF9fZ2VuOV9kZWNv dXBsZWRfd3JpdGUKPj4+ICByb3V0aW5lcyAoVHZydGtvKQo+Pj4KPj4+IHY0Ogo+Pj4gLSBGaXhl ZCBhbGlnbm1lbnQgYW5kIHZhcmlhYmxlIG5hbWVzIChDaHJpcykKPj4+IC0gV3JpdGUgR0VOOV9E RUNPVVBMRURfUkVHMF9EVzEgcmVnaXN0ZXIgaW4ganVzdCBvbmUgZ28gKFpoZSBXYW5nKQo+Pj4K Pj4+IFNpZ25lZC1vZmYtYnk6IFpoZSBXYW5nIDx6aGUxLndhbmdAaW50ZWwuY29tPgo+Pj4gU2ln bmVkLW9mZi1ieTogUHJhdmVlbiBQYW5lcmkgPHByYXZlZW4ucGFuZXJpQGludGVsLmNvbT4KPj4+ IC0tLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgIDE4ICsrKysr LQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgICAgIHwgICAxICsKPj4+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICB8ICAgNyArKysKPj4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyB8IDEwOQo+Pj4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4+PiAgNCBmaWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+IGlu ZGV4IDRlNzE0OGEuLjE1OGYwNWMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ PiBAQCAtNTQ5LDYgKzU0OSwxOCBAQCBlbnVtIGZvcmNld2FrZV9kb21haW5zIHsKPj4+ICAjZGVm aW5lIEZXX1JFR19SRUFEICAoMSkKPj4+ICAjZGVmaW5lIEZXX1JFR19XUklURSAoMikKPj4+Cj4+ PiArZW51bSBkZWNvdXBsZWRfcG93ZXJfZG9tYWluIHsKPj4+ICsgICAgR0VOOV9ERUNPVVBMRURf UERfQkxJVFRFUiA9IDAsCj4+PiArICAgIEdFTjlfREVDT1VQTEVEX1BEX1JFTkRFUiwKPj4+ICsg ICAgR0VOOV9ERUNPVVBMRURfUERfTUVESUEsCj4+PiArICAgIEdFTjlfREVDT1VQTEVEX1BEX0FM TAo+Pj4gK307Cj4+PiArCj4+PiArZW51bSBkZWNvdXBsZWRfb3BzIHsKPj4+ICsgICAgR0VOOV9E RUNPVVBMRURfT1BfV1JJVEUgPSAwLAo+Pj4gKyAgICBHRU45X0RFQ09VUExFRF9PUF9SRUFECj4+ PiArfTsKPj4+ICsKPj4+ICBlbnVtIGZvcmNld2FrZV9kb21haW5zCj4+PiAgaW50ZWxfdW5jb3Jl X2ZvcmNld2FrZV9mb3JfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+ ICAgICAgICAgICAgICAgICAgICAgaTkxNV9yZWdfdCByZWcsIHVuc2lnbmVkIGludCBvcCk7Cj4+ PiBAQCAtNjgzLDcgKzY5NSw4IEBAIHN0cnVjdCBpbnRlbF9jc3Igewo+Pj4gICAgICBmdW5jKGN1 cnNvcl9uZWVkc19waHlzaWNhbCk7IFwKPj4+ICAgICAgZnVuYyhod3NfbmVlZHNfcGh5c2ljYWwp OyBcCj4+PiAgICAgIGZ1bmMob3ZlcmxheV9uZWVkc19waHlzaWNhbCk7IFwKPj4+IC0gICAgZnVu YyhzdXBwb3J0c190dikKPj4+ICsgICAgZnVuYyhzdXBwb3J0c190dik7IFwKPj4+ICsgICAgZnVu YyhoYXNfZGVjb3VwbGVkX21taW8pCj4+Pgo+Pj4gIHN0cnVjdCBzc2V1X2Rldl9pbmZvIHsKPj4+ ICAgICAgdTggc2xpY2VfbWFzazsKPj4+IEBAIC0yNjUyLDYgKzI2NjUsOSBAQCBzdHJ1Y3QgZHJt X2k5MTVfY21kX3RhYmxlIHsKPj4+ICAjZGVmaW5lIEdUX0ZSRVFVRU5DWV9NVUxUSVBMSUVSIDUw Cj4+PiAgI2RlZmluZSBHRU45X0ZSRVFfU0NBTEVSIDMKPj4+Cj4+PiArI2RlZmluZSBIQVNfREVD T1VQTEVEX01NSU8oZGV2KSAoSU5URUxfSU5GTyhkZXYpLT5oYXNfZGVjb3VwbGVkX21taW8gXAo+ Pj4gKyAgICAgICAgJiYgSVNfQlhUX1JFVklEKGRldiwgQlhUX1JFVklEX0MwLCBSRVZJRF9GT1JF VkVSKSkKPj4+ICsKPj4KPj4gTG9va3MgbGlrZSBJJ3ZlIG1pc3NlZCB0aGlzIGJlZm9yZSwgYnV0 IFdvdWxkIHlvdSBtaW5kIHJlbmFtaW5nIHRoZSBkZXYKPj4gYXJndW1lbnQgdG8gZGV2X3ByaXY/ Cj4+Cj4+PiAgI2luY2x1ZGUgImk5MTVfdHJhY2UuaCIKPj4+Cj4+PiAgc3RhdGljIGlubGluZSBi b29sIGludGVsX3NjYW5vdXRfbmVlZHNfdnRkX3dhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4+ PiAqZGV2X3ByaXYpCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w Y2kuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4+PiBpbmRleCA3MGE5 OWNlLi5mY2U4ZTE5IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w Y2kuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+Pj4gQEAgLTM2 Myw2ICszNjMsNyBAQAo+Pj4gICAgICAuaGFzX2h3X2NvbnRleHRzID0gMSwKPj4+ICAgICAgLmhh c19sb2dpY2FsX3JpbmdfY29udGV4dHMgPSAxLAo+Pj4gICAgICAuaGFzX2d1YyA9IDEsCj4+PiAr ICAgIC5oYXNfZGVjb3VwbGVkX21taW8gPSAxLAo+Pj4gICAgICAuZGRiX3NpemUgPSA1MTIsCj4+ PiAgICAgIEdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+Pj4gICAgICBJVkJfQ1VSU09SX09GRlNF VFMsCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+PiBpbmRleCAzMzYxZDdmLi5jNzBj MDdhIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4gQEAgLTczNDIsNiArNzM0 MiwxMyBAQCBlbnVtIHsKPj4+ICAjZGVmaW5lICBTS0xfRlVTRV9QRzFfRElTVF9TVEFUVVMgICAg ICAgICAgICAgICgxPDwyNikKPj4+ICAjZGVmaW5lICBTS0xfRlVTRV9QRzJfRElTVF9TVEFUVVMg ICAgICAgICAgICAgICgxPDwyNSkKPj4+Cj4+PiArLyogRGVjb3VwbGVkIE1NSU8gcmVnaXN0ZXIg cGFpciBmb3Iga2VybmVsIGRyaXZlciAqLwo+Pj4gKyNkZWZpbmUgR0VOOV9ERUNPVVBMRURfUkVH MF9EVzAgICAgICAgICAgICBfTU1JTygweEYwMCkKPj4+ICsjZGVmaW5lIEdFTjlfREVDT1VQTEVE X1JFRzBfRFcxICAgICAgICAgICAgX01NSU8oMHhGMDQpCj4+PiArI2RlZmluZSBHRU45X0RFQ09V UExFRF9EVzFfR08gICAgICAgICAgICAoMTw8MzEpCj4+PiArI2RlZmluZSBHRU45X0RFQ09VUExF RF9QRF9TSElGVCAgICAgICAgICAgIDI4Cj4+PiArI2RlZmluZSBHRU45X0RFQ09VUExFRF9PUF9T SElGVCAgICAgICAgICAgIDI0Cj4+PiArCj4+PiAgLyogUGVyLXBpcGUgRERJIEZ1bmN0aW9uIENv bnRyb2wgKi8KPj4+ICAjZGVmaW5lIF9UUkFOU19ERElfRlVOQ19DVExfQSAgICAgICAgMHg2MDQw MAo+Pj4gICNkZWZpbmUgX1RSQU5TX0RESV9GVU5DX0NUTF9CICAgICAgICAweDYxNDAwCj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPj4+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPj4+IGluZGV4IGUyYjE4OGQuLmU0YzUw Y2IgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPj4+IEBAIC04MzEs NiArODMxLDY2IEBAIHN0YXRpYyBib29sIGlzX2dlbjhfc2hhZG93ZWQodTMyIG9mZnNldCkKPj4+ ICAgICAgX191bmNsYWltZWRfcmVnX2RlYnVnKGRldl9wcml2LCByZWcsIHJlYWQsIGJlZm9yZSk7 Cj4+PiAgfQo+Pj4KPj4+ICtzdGF0aWMgY29uc3QgZW51bSBkZWNvdXBsZWRfcG93ZXJfZG9tYWlu IGZ3MmRwZF9kb21haW5bXSA9IHsKPj4+ICsgICAgR0VOOV9ERUNPVVBMRURfUERfUkVOREVSLAo+ Pj4gKyAgICBHRU45X0RFQ09VUExFRF9QRF9CTElUVEVSLAo+Pj4gKyAgICBHRU45X0RFQ09VUExF RF9QRF9BTEwsCj4+PiArICAgIEdFTjlfREVDT1VQTEVEX1BEX01FRElBLAo+Pj4gKyAgICBHRU45 X0RFQ09VUExFRF9QRF9BTEwsCj4+PiArICAgIEdFTjlfREVDT1VQTEVEX1BEX0FMTCwKPj4+ICsg ICAgR0VOOV9ERUNPVVBMRURfUERfQUxMCj4+PiArfTsKPj4+ICsKPj4+ICsvKgo+Pj4gKyAqIERl Y291cGxlZCBNTUlPIGFjY2VzcyBmb3Igb25seSAxIERXT1JECj4+PiArICovCj4+PiArc3RhdGlj IHZvaWQgX19nZW45X2RlY291cGxlZF9tbWlvX2FjY2VzcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZQo+Pj4gKmRldl9wcml2LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIHUzMiByZWcsCj4+PiAr ICAgICAgICAgICAgICAgICAgICAgZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW4sCj4+ PiArICAgICAgICAgICAgICAgICAgICAgZW51bSBkZWNvdXBsZWRfb3BzIG9wZXJhdGlvbikKPj4+ ICt7Cj4+PiArICAgIGVudW0gZGVjb3VwbGVkX3Bvd2VyX2RvbWFpbiBkcF9kb21haW47Cj4+PiAr ICAgIHUzMiBjdHJsX3JlZ19kYXRhID0gMDsKPj4+ICsKPj4+ICsgICAgZHBfZG9tYWluID0gZncy ZHBkX2RvbWFpbltmd19kb21haW4gLSAxXTsKPj4+ICsKPj4+ICsgICAgY3RybF9yZWdfZGF0YSB8 PSByZWc7Cj4+PiArICAgIGN0cmxfcmVnX2RhdGEgfD0gKG9wZXJhdGlvbiA8PCBHRU45X0RFQ09V UExFRF9PUF9TSElGVCk7Cj4+PiArICAgIGN0cmxfcmVnX2RhdGEgfD0gKGRwX2RvbWFpbiA8PCBH RU45X0RFQ09VUExFRF9QRF9TSElGVCk7Cj4+PiArICAgIGN0cmxfcmVnX2RhdGEgfD0gR0VOOV9E RUNPVVBMRURfRFcxX0dPOwo+Pj4gKyAgICBfX3Jhd19pOTE1X3dyaXRlMzIoZGV2X3ByaXYsIEdF TjlfREVDT1VQTEVEX1JFRzBfRFcxLAo+Pj4gY3RybF9yZWdfZGF0YSk7Cj4+PiArCj4+PiArICAg IGlmICh3YWl0X2Zvcl9hdG9taWMoKF9fcmF3X2k5MTVfcmVhZDMyKGRldl9wcml2LAo+Pj4gKyAg ICAgICAgICAgICAgICBHRU45X0RFQ09VUExFRF9SRUcwX0RXMSkgJgo+Pj4gKyAgICAgICAgICAg ICAgICBHRU45X0RFQ09VUExFRF9EVzFfR08pID09IDAsCj4+PiArICAgICAgICAgICAgICAgIEZP UkNFV0FLRV9BQ0tfVElNRU9VVF9NUykpCj4+PiArICAgICAgICBEUk1fRVJST1IoIkRlY291cGxl ZCBNTUlPIHdhaXQgdGltZWQgb3V0XG4iKTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGlubGlu ZSB1MzIKPj4+ICtfX2dlbjlfZGVjb3VwbGVkX21taW9fcmVhZDMyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPj4+ICsgICAgICAgICAgICAgICAgIHUzMiByZWcsCj4+PiArICAg ICAgICAgICAgICAgICBlbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2RvbWFpbikKPj4+ICt7Cj4+ PiArICAgIF9fZ2VuOV9kZWNvdXBsZWRfbW1pb19hY2Nlc3MoZGV2X3ByaXYsIHJlZywgZndfZG9t YWluLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIEdFTjlfREVDT1VQTEVEX09QX1JFQUQpOwo+ Pj4gKwo+Pj4gKyAgICByZXR1cm4gX19yYXdfaTkxNV9yZWFkMzIoZGV2X3ByaXYsIEdFTjlfREVD T1VQTEVEX1JFRzBfRFcwKTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGlubGluZSB2b2lkCj4+ PiArX19nZW45X2RlY291cGxlZF9tbWlvX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPj4+ICsgICAgICAgICAgICAgICAgdTMyIHJlZywgdTMyIGRhdGEsCj4+PiArICAg ICAgICAgICAgICAgIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluKQo+Pj4gK3sKPj4+ ICsKPj4+ICsgICAgX19yYXdfaTkxNV93cml0ZTMyKGRldl9wcml2LCBHRU45X0RFQ09VUExFRF9S RUcwX0RXMCwgZGF0YSk7Cj4+PiArCj4+PiArICAgIF9fZ2VuOV9kZWNvdXBsZWRfbW1pb19hY2Nl c3MoZGV2X3ByaXYsIHJlZywgZndfZG9tYWluLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIEdF TjlfREVDT1VQTEVEX09QX1dSSVRFKTsKPj4+ICt9Cj4+PiArCj4+PiArCj4+PiAgI2RlZmluZSBH RU4yX1JFQURfSEVBREVSKHgpIFwKPj4+ICAgICAgdSMjeCB2YWwgPSAwOyBcCj4+PiAgICAgIGFz c2VydF9ycG1fd2FrZWxvY2tfaGVsZChkZXZfcHJpdik7Cj4+PiBAQCAtOTM1LDYgKzk5NSwyOCBA QCBzdGF0aWMgaW5saW5lIHZvaWQgX19mb3JjZV93YWtlX2F1dG8oc3RydWN0Cj4+PiBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPj4+ICAgICAgR0VONl9SRUFEX0ZPT1RFUjsgXAo+Pj4gIH0K Pj4+Cj4+PiArI2RlZmluZSBfX2dlbjlfZGVjb3VwbGVkX3JlYWQoeCkgXAo+Pj4gK3N0YXRpYyB1 IyN4IFwKPj4+ICtnZW45X2RlY291cGxlZF9yZWFkIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgXAo+Pj4gKyAgICAgICAgICAgICAgIGk5MTVfcmVnX3QgcmVnLCBib29sIHRy YWNlKSB7IFwKPj4+ICsgICAgZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19lbmdpbmU7IFwKPj4+ ICsgICAgR0VONl9SRUFEX0hFQURFUih4KTsgXAo+Pj4gKyAgICBmd19lbmdpbmUgPSBfX2Z3dGFi bGVfcmVnX3JlYWRfZndfZG9tYWlucyhvZmZzZXQpOyBcCj4+PiArICAgIGlmIChmd19lbmdpbmUg JiB+ZGV2X3ByaXYtPnVuY29yZS5md19kb21haW5zX2FjdGl2ZSkgeyBcCj4+PiArICAgICAgICB1 bnNpZ25lZCBpOyBcCj4+PiArICAgICAgICB1MzIgKnB0cl9kYXRhID0gKHUzMiAqKSAmdmFsOyBc Cj4+PiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwgeC8zMjsgaSsrLCBvZmZzZXQgKz0gc2l6ZW9m KHUzMiksIHB0cl9kYXRhKyspIFwKPj4+ICsgICAgICAgICAgICAqcHRyX2RhdGEgPSBfX2dlbjlf ZGVjb3VwbGVkX21taW9fcmVhZDMyKGRldl9wcml2LCBcCj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0LCBcCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZndfZW5naW5lKTsgXAo+Pj4gKyAgICB9IGVsc2UgeyBcCj4+PiArICAgICAgICB2YWwg PSBfX3Jhd19pOTE1X3JlYWQjI3goZGV2X3ByaXYsIHJlZyk7IFwKPj4+ICsgICAgfSBcCj4+PiAr ICAgIEdFTjZfUkVBRF9GT09URVI7IFwKPj4+ICt9Cj4+PiArCj4+PiArX19nZW45X2RlY291cGxl ZF9yZWFkKDMyKQo+Pj4gK19fZ2VuOV9kZWNvdXBsZWRfcmVhZCg2NCkKPj4+ICBfX2Z3dGFibGVf cmVhZCg4KQo+Pj4gIF9fZnd0YWJsZV9yZWFkKDE2KQo+Pj4gIF9fZnd0YWJsZV9yZWFkKDMyKQo+ Pj4gQEAgLTEwNjQsNiArMTE0NiwyNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19mb3JjZV93YWtl X2F1dG8oc3RydWN0Cj4+PiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+ICAgICAgR0VO Nl9XUklURV9GT09URVI7IFwKPj4+ICB9Cj4+Pgo+Pj4gKyNkZWZpbmUgX19nZW45X2RlY291cGxl ZF93cml0ZSh4KSBcCj4+PiArc3RhdGljIHZvaWQgXAo+Pj4gK2dlbjlfZGVjb3VwbGVkX3dyaXRl IyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgXAo+Pj4gKyAgICAgICAgICAg IGk5MTVfcmVnX3QgcmVnLCB1IyN4IHZhbCwgXAo+Pj4gKyAgICAgICAgYm9vbCB0cmFjZSkgeyBc Cj4+PiArICAgIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZW5naW5lOyBcCj4+PiArICAgIEdF TjZfV1JJVEVfSEVBREVSOyBcCj4+PiArICAgIGZ3X2VuZ2luZSA9IF9fZnd0YWJsZV9yZWdfd3Jp dGVfZndfZG9tYWlucyhvZmZzZXQpOyBcCj4+PiArICAgIGlmIChmd19lbmdpbmUgJiB+ZGV2X3By aXYtPnVuY29yZS5md19kb21haW5zX2FjdGl2ZSkgXAo+Pj4gKyAgICAgICAgX19nZW45X2RlY291 cGxlZF9tbWlvX3dyaXRlKGRldl9wcml2LCBcCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0LCBcCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgdmFsLCBcCj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgZndfZW5naW5lKTsgXAo+Pj4gKyAgICBlbHNlIFwKPj4+ICsgICAg ICAgIF9fcmF3X2k5MTVfd3JpdGUjI3goZGV2X3ByaXYsIHJlZywgdmFsKTsgXAo+Pj4gKyAgICBH RU42X1dSSVRFX0ZPT1RFUjsgXAo+Pj4gK30KPj4+ICsKPj4+ICtfX2dlbjlfZGVjb3VwbGVkX3dy aXRlKDMyKQo+Pj4gIF9fZnd0YWJsZV93cml0ZSg4KQo+Pj4gIF9fZnd0YWJsZV93cml0ZSgxNikK Pj4+ICBfX2Z3dGFibGVfd3JpdGUoMzIpCj4+PiBAQCAtMTI4Nyw2ICsxMzg4LDE0IEBAIHZvaWQg aW50ZWxfdW5jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPj4+ICpkZXZfcHJpdikK Pj4+ICAgICAgICAgIEFTU0lHTl9GV19ET01BSU5TX1RBQkxFKF9fZ2VuOV9md19yYW5nZXMpOwo+ Pj4gICAgICAgICAgQVNTSUdOX1dSSVRFX01NSU9fVkZVTkNTKGZ3dGFibGUpOwo+Pj4gICAgICAg ICAgQVNTSUdOX1JFQURfTU1JT19WRlVOQ1MoZnd0YWJsZSk7Cj4+PiArICAgICAgICBpZiAoSEFT X0RFQ09VUExFRF9NTUlPKGRldl9wcml2KSkgewo+Pj4gKyAgICAgICAgICAgIGRldl9wcml2LT51 bmNvcmUuZnVuY3MubW1pb19yZWFkbCA9Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgZ2Vu OV9kZWNvdXBsZWRfcmVhZDMyOwo+Pj4gKyAgICAgICAgICAgIGRldl9wcml2LT51bmNvcmUuZnVu Y3MubW1pb19yZWFkcSA9Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgZ2VuOV9kZWNvdXBs ZWRfcmVhZDY0Owo+Pj4gKyAgICAgICAgICAgIGRldl9wcml2LT51bmNvcmUuZnVuY3MubW1pb193 cml0ZWwgPQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGdlbjlfZGVjb3VwbGVkX3dyaXRl MzI7Cj4+PiArICAgICAgICB9Cj4+PiAgICAgICAgICBicmVhazsKPj4+ICAgICAgY2FzZSA4Ogo+ Pj4gICAgICAgICAgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4+Pgo+Pgo+PiBXaXRo IHRoZSByZW5hbWUgZml4IGFib3ZlOgo+Pgo+PiBSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3LiBX aWxsIGZpeCB0aGUgbmFtZSBhbmQgcmUgc2VuZC4KCkNocmlzIGFsc28gbWFkZSBhIGdvb2Qgc3Vn Z2VzdGlvbiBzaW5jZSB0aGUgSEFTX0RFQ09VUExFRF9NTUlPIGlzIApjdXJyZW50bHkgZGlmZmVy ZW50IGZyb20gaW5mby0+aGFzX2RlY291cGxlZF9tbWlvIHdoaWNoIGlzIGNvbmZ1c2luZy4KCkkg dGhpbmsgaGlzIGlkZWEgd2FzIHRvIGVkaXQgaW5mby0+aGFzX2RlY291cGxlZF9tbWlvIGluIApp bnRlbF9kZXZpY2VfcnVudGltZV9pbml0IHVzaW5nIHRoZSBzdGVwcGluZyBkYXRhIGFuZCByZW1v dmUgdGhlIHNhbWUgCmZyb20gdGhlIG1hY3JvLgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK