From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Disable decoupled mmio for GEN9LP Date: Wed, 17 May 2017 11:20:44 +0100 Message-ID: <46e98429-d433-53d3-9322-1354dfc87375@linux.intel.com> References: <20170517010753.3263-1-kai.chen@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 18F6C893EC for ; Wed, 17 May 2017 10:20:48 +0000 (UTC) In-Reply-To: <20170517010753.3263-1-kai.chen@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: kai.chen@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE3LzA1LzIwMTcgMDI6MDcsIGthaS5jaGVuQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBL YWkgQ2hlbiA8a2FpLmNoZW5AaW50ZWwuY29tPgo+Cj4gVGhlIGRlY291cGxlZCBtbWlvIGZlYXR1 cmUgZG9lc24ndCB3b3JrIGFzIGludGVuZGVkIGJ5IEhXIHRlYW0uIEVuYWJsaW5nCj4gaXQgd2l0 aCBmb3JjZXdha2Ugd2lsbCBvbmx5IG1ha2UgZGVidWdnaW5nIGVmZm9ydHMgbW9yZSBkaWZmaWN1 bHQsIHNvCj4gbGV0J3MganVzdCBzaW1wbHkgcmVtb3ZlIGl0Lgo+Cj4gdjI6Cj4gLSBSZW1vdmUg ZGVhZCBjb2RlIHJlbGF0ZWQgdG8gR0VOOUxQIGRlY291cGxlZCBtbWlvLgo+IC0gQ2hhbmdlIGJh Y2tncm91bmRzOiBJbiB0aGVvcnksIGRlY291cGxlZCBtbWlvIHNob3VsZCByZXF1aXJlIGxlc3Mg Y3ljbGVzCj4gICBmb3Igc2luZ2xlIHJlYWQvd3JpdGUgb3BlcmF0aW9uIGJ5IGF2b2lkaW5nIGZy ZXF1ZW50IHNvZnR3YXJlIGZvcmNld2FrZS4KPiAgIEhvd2V2ZXIsIGl0IHR1cm5zIG91dCB0aGlz IGRlc2lnbiBub3QgdG8gYmUgdHJ1ZSBvbiBIVyBwcmFjdGljZSBhbmQgbm90IHRvCj4gICBwcm92 aWRlIGFueSBkZWNvdXBsaW5nIGJlbmVmaXQuIEl0IGFsc28gaW50cm9kdWNlcyBwcm9ibGVtcyB3 aGljaCBjYXVzZQo+ICAgZmFpbHVyZXMgaW4gaW50ZWwtZ3B1LXRvb2xzIChnZW0pLCBhbmQgYWxz byBjYXVzZSBkcml2ZXIgY29kZSBhbmQgZGVidWdnaW5nCj4gICBtb3JlIGNvbXBsZXguCj4gLSBU aGlzIGNoYW5nZSB0aGVyZWZvcmUgcmV2ZXJ0czoKPgo+ICAgY29tbWl0IDg1ZWUxN2ViZWVkZDFh ZjBkY2NkOThmODJhYjRlNjQ0ZTI5ZDg0YzAKPiAgIEF1dGhvcjogUHJhdmVlbiBQYW5lcmkgPHBy YXZlZW4ucGFuZXJpQGludGVsLmNvbT4KPiAgIERhdGU6IFR1ZSwgMTUgTm92IDIwMTYgMjI6NDk6 MjAgKzA1MzAKPgo+ICAgICAgIGRybS9pOTE1L2J4dDogQnJveHRvbiBkZWNvdXBsZWQgTU1JTwo+ Cj4gICBjb29taXQgYTNmNzljYTYzYjliY2Y1YTUyN2I4ODY5NTMwOTJiZmQ2NWU3ODk0MAo+ICAg QXV0aG9yOiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5v bGl2ZWlyYUBpbnRlbC5jb20+Cj4gICBEYXRlOiBUaHUsIDI0IE5vdiAyMDE2IDE1OjIzOjI3ICsw MjAwCj4KPiAgICAgICBkcm0vaTkxNTogRG9uJ3Qgc2FuaXRpemUgaGFzX2RlY291cGxlZF9tbWlv IGlmIHBsYXRmb3JtIGlzIG5vdCBicm94dG9uCgpSZXZlcnQgbG9va3MgaW5jb21wbGV0ZSBzaW5j ZSBpdCBpcyBsZWF2aW5nIGJlaGluZCB0aGUgZmllbGQgaW4gdGhlIApkZXZpY2UgaW5mbyBhbmQg SEFTX0RFQ09VUExFRF9NTUlPIG1hY3JvLgoKQnV0IHJldmVydCBpbiBwcmluY2lwbGUgaXMgZmlu ZSBieSBtZS4KClJlZ2FyZHMsCgpUdnJ0a28KCj4gU2lnbmVkLW9mZi1ieTogS2FpIENoZW4gPGth aS5jaGVuQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2ku YyAgICAgfCAgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICB8ICAg NyAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyB8IDEyNiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMzQgZGVs ZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2ku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiBpbmRleCBmODBkYjJjLi5jZjQz ZGMxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4gQEAgLTM4NSw3ICszODUsNiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3NreWxha2VfZ3QzX2lu Zm8gPSB7Cj4gIAkuaGFzX2dtYnVzX2lycSA9IDEsIFwKPiAgCS5oYXNfbG9naWNhbF9yaW5nX2Nv bnRleHRzID0gMSwgXAo+ICAJLmhhc19ndWMgPSAxLCBcCj4gLQkuaGFzX2RlY291cGxlZF9tbWlv ID0gMSwgXAo+ICAJLmhhc19hbGlhc2luZ19wcGd0dCA9IDEsIFwKPiAgCS5oYXNfZnVsbF9wcGd0 dCA9IDEsIFwKPiAgCS5oYXNfZnVsbF80OGJpdF9wcGd0dCA9IDEsIFwKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiBpbmRleCBlZTE0NGVjLi43ODg3MmY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCj4gQEAgLTc3OTIsMTMgKzc3OTIsNiBAQCBlbnVtIHsKPiAgI2RlZmluZSAgU0tMX0ZV U0VfUEcxX0RJU1RfU1RBVFVTICAgICAgICAgICAgICAoMTw8MjYpCj4gICNkZWZpbmUgIFNLTF9G VVNFX1BHMl9ESVNUX1NUQVRVUyAgICAgICAgICAgICAgKDE8PDI1KQo+Cj4gLS8qIERlY291cGxl ZCBNTUlPIHJlZ2lzdGVyIHBhaXIgZm9yIGtlcm5lbCBkcml2ZXIgKi8KPiAtI2RlZmluZSBHRU45 X0RFQ09VUExFRF9SRUcwX0RXMAkJCV9NTUlPKDB4RjAwKQo+IC0jZGVmaW5lIEdFTjlfREVDT1VQ TEVEX1JFRzBfRFcxCQkJX01NSU8oMHhGMDQpCj4gLSNkZWZpbmUgR0VOOV9ERUNPVVBMRURfRFcx X0dPCQkJKDE8PDMxKQo+IC0jZGVmaW5lIEdFTjlfREVDT1VQTEVEX1BEX1NISUZUCQkJMjgKPiAt I2RlZmluZSBHRU45X0RFQ09VUExFRF9PUF9TSElGVAkJCTI0Cj4gLQo+ICAvKiBQZXItcGlwZSBE REkgRnVuY3Rpb24gQ29udHJvbCAqLwo+ICAjZGVmaW5lIF9UUkFOU19ERElfRlVOQ19DVExfQQkJ MHg2MDQwMAo+ICAjZGVmaW5lIF9UUkFOU19ERElfRlVOQ19DVExfQgkJMHg2MTQwMAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gaW5kZXggYTlhNjkzMy4uMzkwMTgwMCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gQEAgLTQwMCw4ICs0MDAsNiBAQCBjaGVj a19mb3JfdW5jbGFpbWVkX21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICBzdGF0aWMgdm9pZCBfX2ludGVsX3VuY29yZV9lYXJseV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQkJICBib29sIHJlc3RvcmVfZm9yY2V3YWtlKQo+ ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8gPSBta3dyaXRlX2RldmljZV9p bmZvKGRldl9wcml2KTsKPiAtCj4gIAkvKiBjbGVhciBvdXQgdW5jbGFpbWVkIHJlZyBkZXRlY3Rp b24gYml0ICovCj4gIAlpZiAoY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKGRldl9wcml2KSkKPiAg CQlEUk1fREVCVUcoInVuY2xhaW1lZCBtbWlvIGRldGVjdGVkIG9uIHVuY29yZSBpbml0LCBjbGVh cmluZ1xuIik7Cj4gQEAgLTQxNCw5ICs0MTIsNiBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX3VuY29y ZV9lYXJseV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJ CQkgICBHVF9GSUZPX0NUTF9SQzZfUE9MSUNZX1NUQUxMKTsKPiAgCX0KPgo+IC0JaWYgKElTX0JY VF9SRVZJRChkZXZfcHJpdiwgMCwgQlhUX1JFVklEX0JfTEFTVCkpCj4gLQkJaW5mby0+aGFzX2Rl Y291cGxlZF9tbWlvID0gZmFsc2U7Cj4gLQo+ICAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9yZXNl dChkZXZfcHJpdiwgcmVzdG9yZV9mb3JjZXdha2UpOwo+ICB9Cj4KPiBAQCAtODAxLDc4ICs3OTYs NiBAQCB1bmNsYWltZWRfcmVnX2RlYnVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiAgCV9fdW5jbGFpbWVkX3JlZ19kZWJ1ZyhkZXZfcHJpdiwgcmVnLCByZWFkLCBiZWZvcmUp Owo+ICB9Cj4KPiAtZW51bSBkZWNvdXBsZWRfcG93ZXJfZG9tYWluIHsKPiAtCUdFTjlfREVDT1VQ TEVEX1BEX0JMSVRURVIgPSAwLAo+IC0JR0VOOV9ERUNPVVBMRURfUERfUkVOREVSLAo+IC0JR0VO OV9ERUNPVVBMRURfUERfTUVESUEsCj4gLQlHRU45X0RFQ09VUExFRF9QRF9BTEwKPiAtfTsKPiAt Cj4gLWVudW0gZGVjb3VwbGVkX29wcyB7Cj4gLQlHRU45X0RFQ09VUExFRF9PUF9XUklURSA9IDAs Cj4gLQlHRU45X0RFQ09VUExFRF9PUF9SRUFECj4gLX07Cj4gLQo+IC1zdGF0aWMgY29uc3QgZW51 bSBkZWNvdXBsZWRfcG93ZXJfZG9tYWluIGZ3MmRwZF9kb21haW5bXSA9IHsKPiAtCUdFTjlfREVD T1VQTEVEX1BEX1JFTkRFUiwKPiAtCUdFTjlfREVDT1VQTEVEX1BEX0JMSVRURVIsCj4gLQlHRU45 X0RFQ09VUExFRF9QRF9BTEwsCj4gLQlHRU45X0RFQ09VUExFRF9QRF9NRURJQSwKPiAtCUdFTjlf REVDT1VQTEVEX1BEX0FMTCwKPiAtCUdFTjlfREVDT1VQTEVEX1BEX0FMTCwKPiAtCUdFTjlfREVD T1VQTEVEX1BEX0FMTAo+IC19Owo+IC0KPiAtLyoKPiAtICogRGVjb3VwbGVkIE1NSU8gYWNjZXNz IGZvciBvbmx5IDEgRFdPUkQKPiAtICovCj4gLXN0YXRpYyB2b2lkIF9fZ2VuOV9kZWNvdXBsZWRf bW1pb19hY2Nlc3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkJCSB1 MzIgcmVnLAo+IC0JCQkJCSBlbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2RvbWFpbiwKPiAtCQkJ CQkgZW51bSBkZWNvdXBsZWRfb3BzIG9wZXJhdGlvbikKPiAtewo+IC0JZW51bSBkZWNvdXBsZWRf cG93ZXJfZG9tYWluIGRwX2RvbWFpbjsKPiAtCXUzMiBjdHJsX3JlZ19kYXRhID0gMDsKPiAtCj4g LQlkcF9kb21haW4gPSBmdzJkcGRfZG9tYWluW2Z3X2RvbWFpbiAtIDFdOwo+IC0KPiAtCWN0cmxf cmVnX2RhdGEgfD0gcmVnOwo+IC0JY3RybF9yZWdfZGF0YSB8PSAob3BlcmF0aW9uIDw8IEdFTjlf REVDT1VQTEVEX09QX1NISUZUKTsKPiAtCWN0cmxfcmVnX2RhdGEgfD0gKGRwX2RvbWFpbiA8PCBH RU45X0RFQ09VUExFRF9QRF9TSElGVCk7Cj4gLQljdHJsX3JlZ19kYXRhIHw9IEdFTjlfREVDT1VQ TEVEX0RXMV9HTzsKPiAtCV9fcmF3X2k5MTVfd3JpdGUzMihkZXZfcHJpdiwgR0VOOV9ERUNPVVBM RURfUkVHMF9EVzEsIGN0cmxfcmVnX2RhdGEpOwo+IC0KPiAtCWlmICh3YWl0X2Zvcl9hdG9taWMo KF9fcmF3X2k5MTVfcmVhZDMyKGRldl9wcml2LAo+IC0JCQkgICAgR0VOOV9ERUNPVVBMRURfUkVH MF9EVzEpICYKPiAtCQkJICAgIEdFTjlfREVDT1VQTEVEX0RXMV9HTykgPT0gMCwKPiAtCQkJICAg IEZPUkNFV0FLRV9BQ0tfVElNRU9VVF9NUykpCj4gLQkJRFJNX0VSUk9SKCJEZWNvdXBsZWQgTU1J TyB3YWl0IHRpbWVkIG91dFxuIik7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbmxpbmUgdTMyCj4gLV9f Z2VuOV9kZWNvdXBsZWRfbW1pb19yZWFkMzIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+IC0JCQkgICAgIHUzMiByZWcsCj4gLQkJCSAgICAgZW51bSBmb3JjZXdha2VfZG9tYWlu cyBmd19kb21haW4pCj4gLXsKPiAtCV9fZ2VuOV9kZWNvdXBsZWRfbW1pb19hY2Nlc3MoZGV2X3By aXYsIHJlZywgZndfZG9tYWluLAo+IC0JCQkJICAgICBHRU45X0RFQ09VUExFRF9PUF9SRUFEKTsK PiAtCj4gLQlyZXR1cm4gX19yYXdfaTkxNV9yZWFkMzIoZGV2X3ByaXYsIEdFTjlfREVDT1VQTEVE X1JFRzBfRFcwKTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSB2b2lkCj4gLV9fZ2VuOV9kZWNv dXBsZWRfbW1pb193cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJ CSAgICB1MzIgcmVnLCB1MzIgZGF0YSwKPiAtCQkJICAgIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMg ZndfZG9tYWluKQo+IC17Cj4gLQo+IC0JX19yYXdfaTkxNV93cml0ZTMyKGRldl9wcml2LCBHRU45 X0RFQ09VUExFRF9SRUcwX0RXMCwgZGF0YSk7Cj4gLQo+IC0JX19nZW45X2RlY291cGxlZF9tbWlv X2FjY2VzcyhkZXZfcHJpdiwgcmVnLCBmd19kb21haW4sCj4gLQkJCQkgICAgIEdFTjlfREVDT1VQ TEVEX09QX1dSSVRFKTsKPiAtfQo+IC0KPiAtCj4gICNkZWZpbmUgR0VOMl9SRUFEX0hFQURFUih4 KSBcCj4gIAl1IyN4IHZhbCA9IDA7IFwKPiAgCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChkZXZf cHJpdik7Cj4gQEAgLTk2OSwyOCArODkyLDYgQEAgZnVuYyMjX3JlYWQjI3goc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBpOTE1X3JlZ190IHJlZywgYm9vbCB0cmFjZSkgewo+ICAj ZGVmaW5lIF9fZ2VuNl9yZWFkKHgpIF9fZ2VuX3JlYWQoZ2VuNiwgeCkKPiAgI2RlZmluZSBfX2Z3 dGFibGVfcmVhZCh4KSBfX2dlbl9yZWFkKGZ3dGFibGUsIHgpCj4KPiAtI2RlZmluZSBfX2dlbjlf ZGVjb3VwbGVkX3JlYWQoeCkgXAo+IC1zdGF0aWMgdSMjeCBcCj4gLWdlbjlfZGVjb3VwbGVkX3Jl YWQjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBcCj4gLQkJICAgICAgIGk5 MTVfcmVnX3QgcmVnLCBib29sIHRyYWNlKSB7IFwKPiAtCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMg ZndfZW5naW5lOyBcCj4gLQlHRU42X1JFQURfSEVBREVSKHgpOyBcCj4gLQlmd19lbmdpbmUgPSBf X2Z3dGFibGVfcmVnX3JlYWRfZndfZG9tYWlucyhvZmZzZXQpOyBcCj4gLQlpZiAoZndfZW5naW5l ICYgfmRldl9wcml2LT51bmNvcmUuZndfZG9tYWluc19hY3RpdmUpIHsgXAo+IC0JCXVuc2lnbmVk IGk7IFwKPiAtCQl1MzIgKnB0cl9kYXRhID0gKHUzMiAqKSAmdmFsOyBcCj4gLQkJZm9yIChpID0g MDsgaSA8IHgvMzI7IGkrKywgb2Zmc2V0ICs9IHNpemVvZih1MzIpLCBwdHJfZGF0YSsrKSBcCj4g LQkJCSpwdHJfZGF0YSA9IF9fZ2VuOV9kZWNvdXBsZWRfbW1pb19yZWFkMzIoZGV2X3ByaXYsIFwK PiAtCQkJCQkJCQkgb2Zmc2V0LCBcCj4gLQkJCQkJCQkJIGZ3X2VuZ2luZSk7IFwKPiAtCX0gZWxz ZSB7IFwKPiAtCQl2YWwgPSBfX3Jhd19pOTE1X3JlYWQjI3goZGV2X3ByaXYsIHJlZyk7IFwKPiAt CX0gXAo+IC0JR0VONl9SRUFEX0ZPT1RFUjsgXAo+IC19Cj4gLQo+IC1fX2dlbjlfZGVjb3VwbGVk X3JlYWQoMzIpCj4gLV9fZ2VuOV9kZWNvdXBsZWRfcmVhZCg2NCkKPiAgX19md3RhYmxlX3JlYWQo OCkKPiAgX19md3RhYmxlX3JlYWQoMTYpCj4gIF9fZnd0YWJsZV9yZWFkKDMyKQo+IEBAIC0xMDc3 LDI1ICs5NzgsNiBAQCBmdW5jIyNfd3JpdGUjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBpOTE1X3JlZ190IHJlZywgdSMjeCB2YWwsIGJvbwo+ICAjZGVmaW5lIF9fZ2VuOF93 cml0ZSh4KSBfX2dlbl93cml0ZShnZW44LCB4KQo+ICAjZGVmaW5lIF9fZnd0YWJsZV93cml0ZSh4 KSBfX2dlbl93cml0ZShmd3RhYmxlLCB4KQo+Cj4gLSNkZWZpbmUgX19nZW45X2RlY291cGxlZF93 cml0ZSh4KSBcCj4gLXN0YXRpYyB2b2lkIFwKPiAtZ2VuOV9kZWNvdXBsZWRfd3JpdGUjI3goc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBcCj4gLQkJCWk5MTVfcmVnX3QgcmVnLCB1 IyN4IHZhbCwgXAo+IC0JCWJvb2wgdHJhY2UpIHsgXAo+IC0JZW51bSBmb3JjZXdha2VfZG9tYWlu cyBmd19lbmdpbmU7IFwKPiAtCUdFTjZfV1JJVEVfSEVBREVSOyBcCj4gLQlmd19lbmdpbmUgPSBf X2Z3dGFibGVfcmVnX3dyaXRlX2Z3X2RvbWFpbnMob2Zmc2V0KTsgXAo+IC0JaWYgKGZ3X2VuZ2lu ZSAmIH5kZXZfcHJpdi0+dW5jb3JlLmZ3X2RvbWFpbnNfYWN0aXZlKSBcCj4gLQkJX19nZW45X2Rl Y291cGxlZF9tbWlvX3dyaXRlKGRldl9wcml2LCBcCj4gLQkJCQkJICAgIG9mZnNldCwgXAo+IC0J CQkJCSAgICB2YWwsIFwKPiAtCQkJCQkgICAgZndfZW5naW5lKTsgXAo+IC0JZWxzZSBcCj4gLQkJ X19yYXdfaTkxNV93cml0ZSMjeChkZXZfcHJpdiwgcmVnLCB2YWwpOyBcCj4gLQlHRU42X1dSSVRF X0ZPT1RFUjsgXAo+IC19Cj4gLQo+IC1fX2dlbjlfZGVjb3VwbGVkX3dyaXRlKDMyKQo+ICBfX2Z3 dGFibGVfd3JpdGUoOCkKPiAgX19md3RhYmxlX3dyaXRlKDE2KQo+ICBfX2Z3dGFibGVfd3JpdGUo MzIpCj4gQEAgLTEzMzIsMTQgKzEyMTQsNiBAQCB2b2lkIGludGVsX3VuY29yZV9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlBU1NJR05fRldfRE9NQUlOU19UQUJM RShfX2dlbjlfZndfcmFuZ2VzKTsKPiAgCQlBU1NJR05fV1JJVEVfTU1JT19WRlVOQ1MoZGV2X3By aXYsIGZ3dGFibGUpOwo+ICAJCUFTU0lHTl9SRUFEX01NSU9fVkZVTkNTKGRldl9wcml2LCBmd3Rh YmxlKTsKPiAtCQlpZiAoSEFTX0RFQ09VUExFRF9NTUlPKGRldl9wcml2KSkgewo+IC0JCQlkZXZf cHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fcmVhZGwgPQo+IC0JCQkJCQlnZW45X2RlY291cGxlZF9y ZWFkMzI7Cj4gLQkJCWRldl9wcml2LT51bmNvcmUuZnVuY3MubW1pb19yZWFkcSA9Cj4gLQkJCQkJ CWdlbjlfZGVjb3VwbGVkX3JlYWQ2NDsKPiAtCQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlv X3dyaXRlbCA9Cj4gLQkJCQkJCWdlbjlfZGVjb3VwbGVkX3dyaXRlMzI7Cj4gLQkJfQo+ICAJfQo+ Cj4gIAlpb3NmX21iaV9yZWdpc3Rlcl9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXIoCj4KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==