From mboxrd@z Thu Jan 1 00:00:00 1970 From: Praveen Paneri Subject: Re: [PATCH v4] drm/i915/bxt: Broxton decoupled MMIO Date: Tue, 15 Nov 2016 16:26:14 +0530 Message-ID: <582AE9CE.2070908@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 EB5F86E585 for ; Tue, 15 Nov 2016 10:51:15 +0000 (UTC) In-Reply-To: <918c98b4-9f0f-9920-3529-6b31ab4d6b4e@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 SGkgVHZydGtvLAoKT24gVHVlc2RheSAxNSBOb3ZlbWJlciAyMDE2IDAzOjA2IFBNLCBUdnJ0a28g VXJzdWxpbiB3cm90ZToKPgo+IE9uIDE1LzExLzIwMTYgMDY6NDAsIFByYXZlZW4gUGFuZXJpIHdy b3RlOgo+PiBEZWNvdXBsZWQgTU1JTyBpcyBhbiBhbHRlcm5hdGl2ZSB3YXkgdG8gYWNjZXNzIGZv cmNld2FrZSBkb21haW4KPj4gcmVnaXN0ZXJzLCB3aGljaCByZXF1aXJlcyBsZXNzIGN5Y2xlcyBm b3IgYSBzaW5nbGUgcmVhZC93cml0ZSBhbmQKPj4gYXZvaWRzIGZyZXF1ZW50IHNvZnR3YXJlIGZv cmNld2FrZS4KPj4gVGhpcyBjZXJ0YWlubHkgZ2l2ZXMgYWR2YW50YWdlIG92ZXIgdGhlIGZvcmNl d2FrZSBhcyB0aGlzIG5ldwo+PiBtZWNoYW5pc20g4oCcZGVjb3VwbGVz4oCdIENQVSBjeWNsZXMg YW5kIGFsbG93IHRoZW0gdG8gY29tcGxldGUgZXZlbgo+PiB3aGVuIEdUIGlzIGluIGEgQ1BEIChm cmVxdWVuY3kgY2hhbmdlKSBvciBDNiBzdGF0ZS4KPj4KPj4gVGhpcyBjYW4gY28tZXhpc3Qgd2l0 aCBmb3JjZXdha2UgYW5kIHdlIHdpbGwgY29udGludWUgdG8gdXNlIGZvcmNld2FrZQo+PiBhcyBh cHByb3ByaWF0ZS4gRS5nLiA2NC1iaXQgcmVnaXN0ZXIgd3JpdGVzIHRvIGF2b2lkIHdyaXRpbmcg MiBkd29yZHMKPj4gc2VwYXJhdGVseSBhbmQgbGFuZCBpbnRvIGZ1bm55IHNpdHVhdGlvbnMuCj4+ Cj4+IHYyOgo+PiAtIE1vdmVkIHBsYXRmb3JtIGNoZWNrIG91dCBvZiB0aGUgZnVuY3Rpb24gYW5k IGdvdCByaWQgb2YgZHVwbGljYXRlCj4+ICBmdW5jdGlvbnMgdG8gZmluZCBvdXQgZGVjb3VwbGVk IHBvd2VyIGRvbWFpbiAoQ2hyaXMpCj4+IC0gQWRkZWQgYSBjaGVjayBmb3IgZm9yY2V3YWtlIGFs cmVhZHkgaGVsZCBhbmQgc2tpcHBlZCBkZWNvdXBsZWQKPj4gIGFjY2VzcyAoQ2hyaXMpCj4+IC0g U2tpcHBlZCB3cml0aW5nIDY0IGJpdCByZWdpc3RlcnMgdGhyb3VnaCBkZWNvdXBsZWQgTU1JTyAo Q2hyaXMpCj4+Cj4+IHYzOgo+PiAtIEltcHJvdmVkIGNvbW1pdCBtZXNzYWdlIHdpdGggbW9yZSBp bmZvIG9uIGRlY291cGxlZCBtbWlvIChUdnJ0a28pCj4+IC0gQ2hhbmdlZCBkZWNvdXBsZWQgb3Bl cmF0aW9uIHRvIGVudW0gYW5kIHVzZWQgdTMyIGluc3RlYWQgb2YKPj4gIHVpbnRfMzIgZGF0YSB0 eXBlIGZvciByZWdpc3RlciBvZmZzZXQgKFR2cnRrbykKPj4gLSBNb3ZlZCBIQVNfREVDT1VQTEVE X01NSU8gdG8gZGV2aWNlIGluZm8gKFR2cnRrbykKPj4gLSBBZGRlZCBsb29rdXAgdGFibGUgZm9y IGNvbnZlcnRpbmcgZndfZW5naW5lIHRvIHBkX2VuZ2luZSAoVHZydGtvKQo+PiAtIEltcHJvdmVk IF9fZ2VuOV9kZWNvdXBsZWRfcmVhZCBhbmQgX19nZW45X2RlY291cGxlZF93cml0ZQo+PiAgcm91 dGluZXMgKFR2cnRrbykKPj4KPj4gdjQ6Cj4+IC0gRml4ZWQgYWxpZ25tZW50IGFuZCB2YXJpYWJs ZSBuYW1lcyAoQ2hyaXMpCj4+IC0gV3JpdGUgR0VOOV9ERUNPVVBMRURfUkVHMF9EVzEgcmVnaXN0 ZXIgaW4ganVzdCBvbmUgZ28gKFpoZSBXYW5nKQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBaaGUgV2Fu ZyA8emhlMS53YW5nQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogUHJhdmVlbiBQYW5lcmkg PHByYXZlZW4ucGFuZXJpQGludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICB8ICAxOCArKysrKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcGNpLmMgICAgIHwgICAxICsKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg ICAgIHwgICA3ICsrKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgfCAx MDkKPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICA0IGZpbGVzIGNo YW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+PiBpbmRleCA0ZTcxNDhhLi4xNThmMDVjIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPj4gQEAgLTU0OSw2ICs1NDksMTggQEAgZW51bSBmb3JjZXdha2VfZG9t YWlucyB7Cj4+ICAjZGVmaW5lIEZXX1JFR19SRUFEICAoMSkKPj4gICNkZWZpbmUgRldfUkVHX1dS SVRFICgyKQo+Pgo+PiArZW51bSBkZWNvdXBsZWRfcG93ZXJfZG9tYWluIHsKPj4gKyAgICBHRU45 X0RFQ09VUExFRF9QRF9CTElUVEVSID0gMCwKPj4gKyAgICBHRU45X0RFQ09VUExFRF9QRF9SRU5E RVIsCj4+ICsgICAgR0VOOV9ERUNPVVBMRURfUERfTUVESUEsCj4+ICsgICAgR0VOOV9ERUNPVVBM RURfUERfQUxMCj4+ICt9Owo+PiArCj4+ICtlbnVtIGRlY291cGxlZF9vcHMgewo+PiArICAgIEdF TjlfREVDT1VQTEVEX09QX1dSSVRFID0gMCwKPj4gKyAgICBHRU45X0RFQ09VUExFRF9PUF9SRUFE Cj4+ICt9Owo+PiArCj4+ICBlbnVtIGZvcmNld2FrZV9kb21haW5zCj4+ICBpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX2Zvcl9yZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAg ICAgICAgICAgICAgICAgICAgIGk5MTVfcmVnX3QgcmVnLCB1bnNpZ25lZCBpbnQgb3ApOwo+PiBA QCAtNjgzLDcgKzY5NSw4IEBAIHN0cnVjdCBpbnRlbF9jc3Igewo+PiAgICAgIGZ1bmMoY3Vyc29y X25lZWRzX3BoeXNpY2FsKTsgXAo+PiAgICAgIGZ1bmMoaHdzX25lZWRzX3BoeXNpY2FsKTsgXAo+ PiAgICAgIGZ1bmMob3ZlcmxheV9uZWVkc19waHlzaWNhbCk7IFwKPj4gLSAgICBmdW5jKHN1cHBv cnRzX3R2KQo+PiArICAgIGZ1bmMoc3VwcG9ydHNfdHYpOyBcCj4+ICsgICAgZnVuYyhoYXNfZGVj b3VwbGVkX21taW8pCj4+Cj4+ICBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyB7Cj4+ICAgICAgdTggc2xp Y2VfbWFzazsKPj4gQEAgLTI2NTIsNiArMjY2NSw5IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFi bGUgewo+PiAgI2RlZmluZSBHVF9GUkVRVUVOQ1lfTVVMVElQTElFUiA1MAo+PiAgI2RlZmluZSBH RU45X0ZSRVFfU0NBTEVSIDMKPj4KPj4gKyNkZWZpbmUgSEFTX0RFQ09VUExFRF9NTUlPKGRldikg KElOVEVMX0lORk8oZGV2KS0+aGFzX2RlY291cGxlZF9tbWlvIFwKPj4gKyAgICAgICAgJiYgSVNf QlhUX1JFVklEKGRldiwgQlhUX1JFVklEX0MwLCBSRVZJRF9GT1JFVkVSKSkKPj4gKwo+Cj4gTG9v a3MgbGlrZSBJJ3ZlIG1pc3NlZCB0aGlzIGJlZm9yZSwgYnV0IFdvdWxkIHlvdSBtaW5kIHJlbmFt aW5nIHRoZSBkZXYKPiBhcmd1bWVudCB0byBkZXZfcHJpdj8KPgo+PiAgI2luY2x1ZGUgImk5MTVf dHJhY2UuaCIKPj4KPj4gIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9zY2Fub3V0X25lZWRzX3Z0 ZF93YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+PiAqZGV2X3ByaXYpCj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wY2kuYwo+PiBpbmRleCA3MGE5OWNlLi5mY2U4ZTE5IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGNpLmMKPj4gQEAgLTM2Myw2ICszNjMsNyBAQAo+PiAgICAgIC5oYXNfaHdfY29u dGV4dHMgPSAxLAo+PiAgICAgIC5oYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzID0gMSwKPj4gICAg ICAuaGFzX2d1YyA9IDEsCj4+ICsgICAgLmhhc19kZWNvdXBsZWRfbW1pbyA9IDEsCj4+ICAgICAg LmRkYl9zaXplID0gNTEyLAo+PiAgICAgIEdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+PiAgICAg IElWQl9DVVJTT1JfT0ZGU0VUUywKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IGluZGV4 IDMzNjFkN2YuLmM3MGMwN2EgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBAQCAt NzM0Miw2ICs3MzQyLDEzIEBAIGVudW0gewo+PiAgI2RlZmluZSAgU0tMX0ZVU0VfUEcxX0RJU1Rf U1RBVFVTICAgICAgICAgICAgICAoMTw8MjYpCj4+ICAjZGVmaW5lICBTS0xfRlVTRV9QRzJfRElT VF9TVEFUVVMgICAgICAgICAgICAgICgxPDwyNSkKPj4KPj4gKy8qIERlY291cGxlZCBNTUlPIHJl Z2lzdGVyIHBhaXIgZm9yIGtlcm5lbCBkcml2ZXIgKi8KPj4gKyNkZWZpbmUgR0VOOV9ERUNPVVBM RURfUkVHMF9EVzAgICAgICAgICAgICBfTU1JTygweEYwMCkKPj4gKyNkZWZpbmUgR0VOOV9ERUNP VVBMRURfUkVHMF9EVzEgICAgICAgICAgICBfTU1JTygweEYwNCkKPj4gKyNkZWZpbmUgR0VOOV9E RUNPVVBMRURfRFcxX0dPICAgICAgICAgICAgKDE8PDMxKQo+PiArI2RlZmluZSBHRU45X0RFQ09V UExFRF9QRF9TSElGVCAgICAgICAgICAgIDI4Cj4+ICsjZGVmaW5lIEdFTjlfREVDT1VQTEVEX09Q X1NISUZUICAgICAgICAgICAgMjQKPj4gKwo+PiAgLyogUGVyLXBpcGUgRERJIEZ1bmN0aW9uIENv bnRyb2wgKi8KPj4gICNkZWZpbmUgX1RSQU5TX0RESV9GVU5DX0NUTF9BICAgICAgICAweDYwNDAw Cj4+ICAjZGVmaW5lIF9UUkFOU19ERElfRlVOQ19DVExfQiAgICAgICAgMHg2MTQwMAo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+PiBpbmRleCBlMmIxODhkLi5lNGM1MGNiIDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+PiBAQCAtODMxLDYgKzgzMSw2 NiBAQCBzdGF0aWMgYm9vbCBpc19nZW44X3NoYWRvd2VkKHUzMiBvZmZzZXQpCj4+ICAgICAgX191 bmNsYWltZWRfcmVnX2RlYnVnKGRldl9wcml2LCByZWcsIHJlYWQsIGJlZm9yZSk7Cj4+ICB9Cj4+ Cj4+ICtzdGF0aWMgY29uc3QgZW51bSBkZWNvdXBsZWRfcG93ZXJfZG9tYWluIGZ3MmRwZF9kb21h aW5bXSA9IHsKPj4gKyAgICBHRU45X0RFQ09VUExFRF9QRF9SRU5ERVIsCj4+ICsgICAgR0VOOV9E RUNPVVBMRURfUERfQkxJVFRFUiwKPj4gKyAgICBHRU45X0RFQ09VUExFRF9QRF9BTEwsCj4+ICsg ICAgR0VOOV9ERUNPVVBMRURfUERfTUVESUEsCj4+ICsgICAgR0VOOV9ERUNPVVBMRURfUERfQUxM LAo+PiArICAgIEdFTjlfREVDT1VQTEVEX1BEX0FMTCwKPj4gKyAgICBHRU45X0RFQ09VUExFRF9Q RF9BTEwKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBEZWNvdXBsZWQgTU1JTyBhY2Nlc3MgZm9y IG9ubHkgMSBEV09SRAo+PiArICovCj4+ICtzdGF0aWMgdm9pZCBfX2dlbjlfZGVjb3VwbGVkX21t aW9fYWNjZXNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4+ICpkZXZfcHJpdiwKPj4gKyAgICAg ICAgICAgICAgICAgICAgIHUzMiByZWcsCj4+ICsgICAgICAgICAgICAgICAgICAgICBlbnVtIGZv cmNld2FrZV9kb21haW5zIGZ3X2RvbWFpbiwKPj4gKyAgICAgICAgICAgICAgICAgICAgIGVudW0g ZGVjb3VwbGVkX29wcyBvcGVyYXRpb24pCj4+ICt7Cj4+ICsgICAgZW51bSBkZWNvdXBsZWRfcG93 ZXJfZG9tYWluIGRwX2RvbWFpbjsKPj4gKyAgICB1MzIgY3RybF9yZWdfZGF0YSA9IDA7Cj4+ICsK Pj4gKyAgICBkcF9kb21haW4gPSBmdzJkcGRfZG9tYWluW2Z3X2RvbWFpbiAtIDFdOwo+PiArCj4+ ICsgICAgY3RybF9yZWdfZGF0YSB8PSByZWc7Cj4+ICsgICAgY3RybF9yZWdfZGF0YSB8PSAob3Bl cmF0aW9uIDw8IEdFTjlfREVDT1VQTEVEX09QX1NISUZUKTsKPj4gKyAgICBjdHJsX3JlZ19kYXRh IHw9IChkcF9kb21haW4gPDwgR0VOOV9ERUNPVVBMRURfUERfU0hJRlQpOwo+PiArICAgIGN0cmxf cmVnX2RhdGEgfD0gR0VOOV9ERUNPVVBMRURfRFcxX0dPOwo+PiArICAgIF9fcmF3X2k5MTVfd3Jp dGUzMihkZXZfcHJpdiwgR0VOOV9ERUNPVVBMRURfUkVHMF9EVzEsCj4+IGN0cmxfcmVnX2RhdGEp Owo+PiArCj4+ICsgICAgaWYgKHdhaXRfZm9yX2F0b21pYygoX19yYXdfaTkxNV9yZWFkMzIoZGV2 X3ByaXYsCj4+ICsgICAgICAgICAgICAgICAgR0VOOV9ERUNPVVBMRURfUkVHMF9EVzEpICYKPj4g KyAgICAgICAgICAgICAgICBHRU45X0RFQ09VUExFRF9EVzFfR08pID09IDAsCj4+ICsgICAgICAg ICAgICAgICAgRk9SQ0VXQUtFX0FDS19USU1FT1VUX01TKSkKPj4gKyAgICAgICAgRFJNX0VSUk9S KCJEZWNvdXBsZWQgTU1JTyB3YWl0IHRpbWVkIG91dFxuIik7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRp YyBpbmxpbmUgdTMyCj4+ICtfX2dlbjlfZGVjb3VwbGVkX21taW9fcmVhZDMyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gKyAgICAgICAgICAgICAgICAgdTMyIHJlZywKPj4g KyAgICAgICAgICAgICAgICAgZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW4pCj4+ICt7 Cj4+ICsgICAgX19nZW45X2RlY291cGxlZF9tbWlvX2FjY2VzcyhkZXZfcHJpdiwgcmVnLCBmd19k b21haW4sCj4+ICsgICAgICAgICAgICAgICAgICAgICBHRU45X0RFQ09VUExFRF9PUF9SRUFEKTsK Pj4gKwo+PiArICAgIHJldHVybiBfX3Jhd19pOTE1X3JlYWQzMihkZXZfcHJpdiwgR0VOOV9ERUNP VVBMRURfUkVHMF9EVzApOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQKPj4gK19f Z2VuOV9kZWNvdXBsZWRfbW1pb193cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4+ICsgICAgICAgICAgICAgICAgdTMyIHJlZywgdTMyIGRhdGEsCj4+ICsgICAgICAgICAg ICAgICAgZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW4pCj4+ICt7Cj4+ICsKPj4gKyAg ICBfX3Jhd19pOTE1X3dyaXRlMzIoZGV2X3ByaXYsIEdFTjlfREVDT1VQTEVEX1JFRzBfRFcwLCBk YXRhKTsKPj4gKwo+PiArICAgIF9fZ2VuOV9kZWNvdXBsZWRfbW1pb19hY2Nlc3MoZGV2X3ByaXYs IHJlZywgZndfZG9tYWluLAo+PiArICAgICAgICAgICAgICAgICAgICAgR0VOOV9ERUNPVVBMRURf T1BfV1JJVEUpOwo+PiArfQo+PiArCj4+ICsKPj4gICNkZWZpbmUgR0VOMl9SRUFEX0hFQURFUih4 KSBcCj4+ICAgICAgdSMjeCB2YWwgPSAwOyBcCj4+ICAgICAgYXNzZXJ0X3JwbV93YWtlbG9ja19o ZWxkKGRldl9wcml2KTsKPj4gQEAgLTkzNSw2ICs5OTUsMjggQEAgc3RhdGljIGlubGluZSB2b2lk IF9fZm9yY2Vfd2FrZV9hdXRvKHN0cnVjdAo+PiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK Pj4gICAgICBHRU42X1JFQURfRk9PVEVSOyBcCj4+ICB9Cj4+Cj4+ICsjZGVmaW5lIF9fZ2VuOV9k ZWNvdXBsZWRfcmVhZCh4KSBcCj4+ICtzdGF0aWMgdSMjeCBcCj4+ICtnZW45X2RlY291cGxlZF9y ZWFkIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgXAo+PiArICAgICAgICAg ICAgICAgaTkxNV9yZWdfdCByZWcsIGJvb2wgdHJhY2UpIHsgXAo+PiArICAgIGVudW0gZm9yY2V3 YWtlX2RvbWFpbnMgZndfZW5naW5lOyBcCj4+ICsgICAgR0VONl9SRUFEX0hFQURFUih4KTsgXAo+ PiArICAgIGZ3X2VuZ2luZSA9IF9fZnd0YWJsZV9yZWdfcmVhZF9md19kb21haW5zKG9mZnNldCk7 IFwKPj4gKyAgICBpZiAoZndfZW5naW5lICYgfmRldl9wcml2LT51bmNvcmUuZndfZG9tYWluc19h Y3RpdmUpIHsgXAo+PiArICAgICAgICB1bnNpZ25lZCBpOyBcCj4+ICsgICAgICAgIHUzMiAqcHRy X2RhdGEgPSAodTMyICopICZ2YWw7IFwKPj4gKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHgvMzI7 IGkrKywgb2Zmc2V0ICs9IHNpemVvZih1MzIpLCBwdHJfZGF0YSsrKSBcCj4+ICsgICAgICAgICAg ICAqcHRyX2RhdGEgPSBfX2dlbjlfZGVjb3VwbGVkX21taW9fcmVhZDMyKGRldl9wcml2LCBcCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsIFwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZ3X2VuZ2luZSk7IFwKPj4gKyAgICB9IGVsc2UgeyBc Cj4+ICsgICAgICAgIHZhbCA9IF9fcmF3X2k5MTVfcmVhZCMjeChkZXZfcHJpdiwgcmVnKTsgXAo+ PiArICAgIH0gXAo+PiArICAgIEdFTjZfUkVBRF9GT09URVI7IFwKPj4gK30KPj4gKwo+PiArX19n ZW45X2RlY291cGxlZF9yZWFkKDMyKQo+PiArX19nZW45X2RlY291cGxlZF9yZWFkKDY0KQo+PiAg X19md3RhYmxlX3JlYWQoOCkKPj4gIF9fZnd0YWJsZV9yZWFkKDE2KQo+PiAgX19md3RhYmxlX3Jl YWQoMzIpCj4+IEBAIC0xMDY0LDYgKzExNDYsMjUgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fZm9y Y2Vfd2FrZV9hdXRvKHN0cnVjdAo+PiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gICAg ICBHRU42X1dSSVRFX0ZPT1RFUjsgXAo+PiAgfQo+Pgo+PiArI2RlZmluZSBfX2dlbjlfZGVjb3Vw bGVkX3dyaXRlKHgpIFwKPj4gK3N0YXRpYyB2b2lkIFwKPj4gK2dlbjlfZGVjb3VwbGVkX3dyaXRl IyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgXAo+PiArICAgICAgICAgICAg aTkxNV9yZWdfdCByZWcsIHUjI3ggdmFsLCBcCj4+ICsgICAgICAgIGJvb2wgdHJhY2UpIHsgXAo+ PiArICAgIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZW5naW5lOyBcCj4+ICsgICAgR0VONl9X UklURV9IRUFERVI7IFwKPj4gKyAgICBmd19lbmdpbmUgPSBfX2Z3dGFibGVfcmVnX3dyaXRlX2Z3 X2RvbWFpbnMob2Zmc2V0KTsgXAo+PiArICAgIGlmIChmd19lbmdpbmUgJiB+ZGV2X3ByaXYtPnVu Y29yZS5md19kb21haW5zX2FjdGl2ZSkgXAo+PiArICAgICAgICBfX2dlbjlfZGVjb3VwbGVkX21t aW9fd3JpdGUoZGV2X3ByaXYsIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCwg XAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgdmFsLCBcCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICBmd19lbmdpbmUpOyBcCj4+ICsgICAgZWxzZSBcCj4+ICsgICAgICAgIF9fcmF3X2k5 MTVfd3JpdGUjI3goZGV2X3ByaXYsIHJlZywgdmFsKTsgXAo+PiArICAgIEdFTjZfV1JJVEVfRk9P VEVSOyBcCj4+ICt9Cj4+ICsKPj4gK19fZ2VuOV9kZWNvdXBsZWRfd3JpdGUoMzIpCj4+ICBfX2Z3 dGFibGVfd3JpdGUoOCkKPj4gIF9fZnd0YWJsZV93cml0ZSgxNikKPj4gIF9fZnd0YWJsZV93cml0 ZSgzMikKPj4gQEAgLTEyODcsNiArMTM4OCwxNCBAQCB2b2lkIGludGVsX3VuY29yZV9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlCj4+ICpkZXZfcHJpdikKPj4gICAgICAgICAgQVNTSUdOX0ZX X0RPTUFJTlNfVEFCTEUoX19nZW45X2Z3X3Jhbmdlcyk7Cj4+ICAgICAgICAgIEFTU0lHTl9XUklU RV9NTUlPX1ZGVU5DUyhmd3RhYmxlKTsKPj4gICAgICAgICAgQVNTSUdOX1JFQURfTU1JT19WRlVO Q1MoZnd0YWJsZSk7Cj4+ICsgICAgICAgIGlmIChIQVNfREVDT1VQTEVEX01NSU8oZGV2X3ByaXYp KSB7Cj4+ICsgICAgICAgICAgICBkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fcmVhZGwgPQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgZ2VuOV9kZWNvdXBsZWRfcmVhZDMyOwo+PiArICAg ICAgICAgICAgZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlvX3JlYWRxID0KPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGdlbjlfZGVjb3VwbGVkX3JlYWQ2NDsKPj4gKyAgICAgICAgICAgIGRl dl9wcml2LT51bmNvcmUuZnVuY3MubW1pb193cml0ZWwgPQo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgZ2VuOV9kZWNvdXBsZWRfd3JpdGUzMjsKPj4gKyAgICAgICAgfQo+PiAgICAgICAgICBi cmVhazsKPj4gICAgICBjYXNlIDg6Cj4+ICAgICAgICAgIGlmIChJU19DSEVSUllWSUVXKGRldl9w cml2KSkgewo+Pgo+Cj4gV2l0aCB0aGUgcmVuYW1lIGZpeCBhYm92ZToKPgo+IFJldmlld2VkLWJ5 OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpUaGFuayB5b3UgZm9y IHlvdXIgcmV2aWV3LiBXaWxsIGZpeCB0aGUgbmFtZSBhbmQgcmUgc2VuZC4KPgo+IFJlZ2FyZHMs Cj4KPiBUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==