From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v5 2/5] drm/i915/gen11: Program DPCLKA_CFGCR0_ICL according to PHY Date: Thu, 4 Jul 2019 12:31:12 +0300 Message-ID: <20190704093112.GG5942@intel.com> References: <20190703233736.5816-3-matthew.d.roper@intel.com> <20190704010658.32170-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5AFB66E2A2 for ; Thu, 4 Jul 2019 09:31:15 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190704010658.32170-1-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdWwgMDMsIDIwMTkgYXQgMDY6MDY6NThQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBBbHRob3VnaCB0aGUgcmVnaXN0ZXIgbmFtZSBpbXBsaWVzIHRoYXQgaXQgb3BlcmF0ZXMg b24gRERJJ3MsCj4gRFBDTEtBX0NGR0NSMF9JQ0wgYWN0dWFsbHkgbmVlZHMgdG8gYmUgcHJvZ3Jh bW1lZCBhY2NvcmRpbmcgdG8gdGhlIFBIWQo+IHRoYXQncyBpbiB1c2UuICBJLmUuLCB3aGVuIHVz aW5nIEVITCdzIERESS1EIG9uIGNvbWJvIFBIWSBBLCB0aGUgYml0cwo+IGRlc2NyaWJlZCBhcyAi cG9ydCBBIiBpbiB0aGUgYnNwZWMgYXJlIHdoYXQgd2UgbmVlZCB0byBzZXQuICBUaGUgYnNwZWMK PiBjbGFyaWZpZXM6Cj4gCj4gICAgICAgICAiW0ZvciBFSExdIERESUQgY2xvY2sgdGllZCB0byBE RElBIGNsb2NrLCBzbyBEUENMS0FfQ0ZHQ1IwIERESUEKPiAgICAgICAgIENsb2NrIFNlbGVjdCBj aG9vc2VzIHRoZSBQTEwgZm9yIGJvdGggRERJQSBhbmQgRERJRCBhbmQgZHJpdmVzCj4gICAgICAg ICBwb3J0IEEgaW4gYWxsIGNhc2VzLiIKPiAKPiBBbHNvLCBzaW5jZSB0aGUgQ05MIERQQ0xLQV9D RkdDUjAgYml0IGRlZmluZXMgYXJlIHN0aWxsIHBvcnQtYmFzZWQsIHdlCj4gY3JlYXRlIHNlcGFy YXRlIElDTC1zcGVjaWZpYyBkZWZpbmVzIHRoYXQgYWNjZXB0IHRoZSBQSFkgcmF0aGVyIHRoYW4K PiB0cnlpbmcgdG8gc2hhcmUgdGhlIHNhbWUgYml0IGRlZmluaXRpb25zIGJldHdlZW4gQ05MIGFu ZCBJQ0wuCj4gCj4gdjU6IE1ha2UgaWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZigpIHRha2UgcGh5 IHJhdGhlciB0aGFuIHBvcnQuICBXaGVuCj4gICAgIHNwbGl0dGluZyB0aGUgb3JpZ2luYWwgcGF0 Y2ggdGhlIGh1bmsgdG8gaGFuZGxlIHRoaXMgd291bmQgdXAgdG9vCj4gICAgIGxhdGUgaW4gdGhl IHNlcmllcy4gIChTcGFyc2UpCj4gCj4gQnNwZWM6IDMzMTQ4Cj4gQ2M6IEpvc8OpIFJvYmVydG8g ZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9w ZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+CgpMb29rcyBjb3JyZWN0IHRvIG1lLgpSZXZp ZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jICAgfCAxNyAr KysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyB8IDQ3 ICsrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oICAgICAgICAgIHwgMTIgKysrKy0tCj4gIDMgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9u cygrKSwgMjYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaWNsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xf ZHNpLmMKPiBpbmRleCBiODY3M2RlYmY5MzIuLmY1NzRhZjYyODg4YyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCj4gQEAgLTU2MCwxMSArNTYwLDEzIEBAIHN0YXRp YyB2b2lkIGdlbjExX2RzaV9nYXRlX2Nsb2NrcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVu Y29kZXItPmJhc2UpOwo+ICAJdTMyIHRtcDsKPiAgCWVudW0gcG9ydCBwb3J0Owo+ICsJZW51bSBw aHkgcGh5Owo+ICAKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOwo+ICAJdG1w ID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKPiAgCWZvcl9lYWNoX2RzaV9wb3J0KHBv cnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiAtCQl0bXAgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xL X09GRihwb3J0KTsKPiArCQlwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7 Cj4gKwkJdG1wIHw9IElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSk7Cj4gIAl9Cj4g IAo+ICAJSTkxNV9XUklURShEUENMS0FfQ0ZHQ1IwX0lDTCwgdG1wKTsKPiBAQCAtNTc3LDExICs1 NzksMTMgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX3VuZ2F0ZV9jbG9ja3Moc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4gIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNf dG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiAgCXUzMiB0bXA7Cj4gIAllbnVtIHBvcnQg cG9ydDsKPiArCWVudW0gcGh5IHBoeTsKPiAgCj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHBs bF9sb2NrKTsKPiAgCXRtcCA9IEk5MTVfUkVBRChEUENMS0FfQ0ZHQ1IwX0lDTCk7Cj4gIAlmb3Jf ZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gLQkJdG1wICY9IH5EUENM S0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBvcnQpOwo+ICsJCXBoeSA9IGludGVsX3BvcnRfdG9fcGh5 KGRldl9wcml2LCBwb3J0KTsKPiArCQl0bXAgJj0gfklDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtf T0ZGKHBoeSk7Cj4gIAl9Cj4gIAo+ICAJSTkxNV9XUklURShEUENMS0FfQ0ZHQ1IwX0lDTCwgdG1w KTsKPiBAQCAtNTk1LDE5ICs1OTksMjIgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX21hcF9wbGwo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7Cj4gIAllbnVtIHBv cnQgcG9ydDsKPiArCWVudW0gcGh5IHBoeTsKPiAgCXUzMiB2YWw7Cj4gIAo+ICAJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmRwbGxfbG9jayk7Cj4gIAo+ICAJdmFsID0gSTkxNV9SRUFEKERQQ0xLQV9D RkdDUjBfSUNMKTsKPiAgCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMp IHsKPiAtCQl2YWwgJj0gfkRQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfTUFTSyhwb3J0KTsKPiAt CQl2YWwgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLCBwb3J0KTsK PiArCQlwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7Cj4gKwkJdmFsICY9 IH5JQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBoeSk7Cj4gKwkJdmFsIHw9IElD TF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMKHBsbC0+aW5mby0+aWQsIHBoeSk7Cj4gIAl9Cj4g IAlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB2YWwpOwo+ICAKPiAgCWZvcl9lYWNoX2Rz aV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiAtCQl2YWwgJj0gfkRQQ0xLQV9DRkdD UjBfRERJX0NMS19PRkYocG9ydCk7Cj4gKwkJcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3By aXYsIHBvcnQpOwo+ICsJCXZhbCAmPSB+SUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYocGh5 KTsKPiAgCX0KPiAgCUk5MTVfV1JJVEUoRFBDTEtBX0NGR0NSMF9JQ0wsIHZhbCk7Cj4gIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+IGluZGV4IGE0MTcyNTk1Yzhk OC4uMDY1ZmViOTE3ZGI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RkaS5jCj4gQEAgLTI3MjksMTIgKzI3MjksMTMgQEAgdTMyIGRkaV9zaWduYWxfbGV2ZWxzKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICBzdGF0aWMgaW5saW5lCj4gIHUzMiBpY2xf ZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAtCQkJICAgICAgZW51bSBwb3J0IHBvcnQpCj4gKwkJCSAgICAgIGVudW0gcGh5IHBoeSkKPiAg ewo+IC0JaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKSB7Cj4gLQkJ cmV0dXJuIElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBvcnQpOwo+IC0JfSBlbHNlIGlm IChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBwb3J0KSkgewo+IC0JCWVudW0gdGNfcG9ydCB0 Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgcG9ydCk7Cj4gKwlpZiAoaW50ZWxf cGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKSB7Cj4gKwkJcmV0dXJuIElDTF9EUENMS0FfQ0ZH Q1IwX0RESV9DTEtfT0ZGKHBoeSk7Cj4gKwl9IGVsc2UgaWYgKGludGVsX3BoeV9pc190YyhkZXZf cHJpdiwgcGh5KSkgewo+ICsJCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190 YyhkZXZfcHJpdiwKPiArCQkJCQkJCShlbnVtIHBvcnQpcGh5KTsKPiAgCj4gIAkJcmV0dXJuIElD TF9EUENMS0FfQ0ZHQ1IwX1RDX0NMS19PRkYodGNfcG9ydCk7Cj4gIAl9Cj4gQEAgLTI3NDcsMjIg KzI3NDgsMzIgQEAgc3RhdGljIHZvaWQgaWNsX21hcF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7Cj4gLQllbnVtIHBvcnQgcG9y dCA9IGVuY29kZXItPnBvcnQ7Cj4gKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShk ZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7Cj4gIAl1MzIgdmFsOwo+ICAKPiAgCW11dGV4X2xvY2so JmRldl9wcml2LT5kcGxsX2xvY2spOwo+ICAKPiAgCXZhbCA9IEk5MTVfUkVBRChEUENMS0FfQ0ZH Q1IwX0lDTCk7Cj4gLQlXQVJOX09OKCh2YWwgJiBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRl dl9wcml2LCBwb3J0KSkgPT0gMCk7Cj4gKwlXQVJOX09OKCh2YWwgJiBpY2xfZHBjbGthX2NmZ2Ny MF9jbGtfb2ZmKGRldl9wcml2LCBwaHkpKSA9PSAwKTsKPiAgCj4gLQlpZiAoaW50ZWxfcG9ydF9p c19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkpIHsKPiAtCQl2YWwgJj0gfkRQQ0xLQV9DRkdDUjBf RERJX0NMS19TRUxfTUFTSyhwb3J0KTsKPiAtCQl2YWwgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xL X1NFTChwbGwtPmluZm8tPmlkLCBwb3J0KTsKPiArCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2 X3ByaXYsIHBoeSkpIHsKPiArCQkvKgo+ICsJCSAqIEV2ZW4gdGhvdWdoIHRoaXMgcmVnaXN0ZXIg cmVmZXJlbmNlcyBERElzLCBub3RlIHRoYXQgd2UKPiArCQkgKiB3YW50IHRvIHBhc3MgdGhlIFBI WSByYXRoZXIgdGhhbiB0aGUgcG9ydCAoRERJKS4gIEZvcgo+ICsJCSAqIElDTCwgcG9ydD1waHkg aW4gYWxsIGNhc2VzIHNvIGl0IGRvZXNuJ3QgbWF0dGVyLCBidXQgZm9yCj4gKwkJICogRUhMIHRo ZSBic3BlYyBub3RlcyB0aGUgZm9sbG93aW5nOgo+ICsJCSAqCj4gKwkJICogICAiRERJRCBjbG9j ayB0aWVkIHRvIERESUEgY2xvY2ssIHNvIERQQ0xLQV9DRkdDUjAgRERJQQo+ICsJCSAqICAgQ2xv Y2sgU2VsZWN0IGNob29zZXMgdGhlIFBMTCBmb3IgYm90aCBERElBIGFuZCBERElEIGFuZAo+ICsJ CSAqICAgZHJpdmVzIHBvcnQgQSBpbiBhbGwgY2FzZXMuIgo+ICsJCSAqLwo+ICsJCXZhbCAmPSB+ SUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfTUFTSyhwaHkpOwo+ICsJCXZhbCB8PSBJQ0xf RFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLCBwaHkpOwo+ICAJCUk5MTVf V1JJVEUoRFBDTEtBX0NGR0NSMF9JQ0wsIHZhbCk7Cj4gIAkJUE9TVElOR19SRUFEKERQQ0xLQV9D RkdDUjBfSUNMKTsKPiAgCX0KPiAgCj4gLQl2YWwgJj0gfmljbF9kcGNsa2FfY2ZnY3IwX2Nsa19v ZmYoZGV2X3ByaXYsIHBvcnQpOwo+ICsJdmFsICY9IH5pY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2Zm KGRldl9wcml2LCBwaHkpOwo+ICAJSTkxNV9XUklURShEUENMS0FfQ0ZHQ1IwX0lDTCwgdmFsKTsK PiAgCj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOwo+IEBAIC0yNzcxLDEz ICsyNzgyLDEzIEBAIHN0YXRpYyB2b2lkIGljbF9tYXBfcGxsc190b19wb3J0cyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgc3RhdGljIHZvaWQgaWNsX3VubWFwX3BsbHNfdG9fcG9y dHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0JZW51 bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ICsJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9y dF90b19waHkoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwo+ICAJdTMyIHZhbDsKPiAgCj4gIAlt dXRleF9sb2NrKCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKPiAgCj4gIAl2YWwgPSBJOTE1X1JFQUQo RFBDTEtBX0NGR0NSMF9JQ0wpOwo+IC0JdmFsIHw9IGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYo ZGV2X3ByaXYsIHBvcnQpOwo+ICsJdmFsIHw9IGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYoZGV2 X3ByaXYsIHBoeSk7Cj4gIAlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB2YWwpOwo+ICAK PiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7Cj4gQEAgLTI4MzgsOSArMjg0 OSwxMSBAQCB2b2lkIGljbF9zYW5pdGl6ZV9lbmNvZGVyX3BsbF9tYXBwaW5nKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQo+ICAKPiAgCXZhbCA9IEk5MTVfUkVBRChEUENMS0FfQ0ZHQ1Iw X0lDTCk7Cj4gIAlmb3JfZWFjaF9wb3J0X21hc2tlZChwb3J0LCBwb3J0X21hc2spIHsKPiArCQll bnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7Cj4gKwo+ICAJ CWJvb2wgZGRpX2Nsa191bmdhdGVkID0gISh2YWwgJgo+ICAJCQkJCSBpY2xfZHBjbGthX2NmZ2Ny MF9jbGtfb2ZmKGRldl9wcml2LAo+IC0JCQkJCQkJCSAgIHBvcnQpKTsKPiArCQkJCQkJCQkgICBw aHkpKTsKPiAgCj4gIAkJaWYgKGRkaV9jbGtfbmVlZGVkID09IGRkaV9jbGtfdW5nYXRlZCkKPiAg CQkJY29udGludWU7Cj4gQEAgLTI4NTIsOSArMjg2NSw5IEBAIHZvaWQgaWNsX3Nhbml0aXplX2Vu Y29kZXJfcGxsX21hcHBpbmcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAkJaWYg KFdBUk5fT04oZGRpX2Nsa19uZWVkZWQpKQo+ICAJCQljb250aW51ZTsKPiAgCj4gLQkJRFJNX05P VEUoIlBvcnQgJWMgaXMgZGlzYWJsZWQvaW4gRFNJIG1vZGUgd2l0aCBhbiB1bmdhdGVkIERESSBj bG9jaywgZ2F0ZSBpdFxuIiwKPiAtCQkJIHBvcnRfbmFtZShwb3J0KSk7Cj4gLQkJdmFsIHw9IGlj bF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYoZGV2X3ByaXYsIHBvcnQpOwo+ICsJCURSTV9OT1RFKCJQ SFkgJWMgaXMgZGlzYWJsZWQvaW4gRFNJIG1vZGUgd2l0aCBhbiB1bmdhdGVkIERESSBjbG9jaywg Z2F0ZSBpdFxuIiwKPiArCQkJIHBoeV9uYW1lKHBvcnQpKTsKPiArCQl2YWwgfD0gaWNsX2RwY2xr YV9jZmdjcjBfY2xrX29mZihkZXZfcHJpdiwgcGh5KTsKPiAgCQlJOTE1X1dSSVRFKERQQ0xLQV9D RkdDUjBfSUNMLCB2YWwpOwo+ICAJfQo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5k ZXggYzgxNGNjMWIzYWU1Li5jOWUyZTA5YjZmMDEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKPiBAQCAtOTY4MCwxNyArOTY4MCwyMSBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPiAgICog Q05MIENsb2Nrcwo+ICAgKi8KPiAgI2RlZmluZSBEUENMS0FfQ0ZHQ1IwCQkJCV9NTUlPKDB4NkMy MDApCj4gLSNkZWZpbmUgRFBDTEtBX0NGR0NSMF9JQ0wJCQlfTU1JTygweDE2NDI4MCkKPiAgI2Rl ZmluZSAgRFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0KQkoMSA8PCAoKHBvcnQpID09ICBQ T1JUX0YgPyAyMyA6IFwKPiAgCQkJCQkJICAgICAgKHBgOndxb3J0KSArIDEwKSkKPiAtI2RlZmlu ZSAgSUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYocG9ydCkgICAoMSA8PCAoKHBvcnQpICsg MTApKQo+IC0jZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9UQ19DTEtfT0ZGKHRjX3BvcnQpICgx IDw8ICgodGNfcG9ydCkgPT0gUE9SVF9UQzQgPyBcCj4gLQkJCQkJCSAgICAgIDIxIDogKHRjX3Bv cnQpICsgMTIpKQo+ICAjZGVmaW5lICBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX1NISUZUKHBv cnQpCSgocG9ydCkgPT0gUE9SVF9GID8gMjEgOiBcCj4gIAkJCQkJCShwb3J0KSAqIDIpCj4gICNk ZWZpbmUgIERQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfTUFTSyhwb3J0KQkoMyA8PCBEUENMS0Ff Q0ZHQ1IwX0RESV9DTEtfU0VMX1NISUZUKHBvcnQpKQo+ICAjZGVmaW5lICBEUENMS0FfQ0ZHQ1Iw X0RESV9DTEtfU0VMKHBsbCwgcG9ydCkJKChwbGwpIDw8IERQQ0xLQV9DRkdDUjBfRERJX0NMS19T RUxfU0hJRlQocG9ydCkpCj4gIAo+ICsjZGVmaW5lIERQQ0xLQV9DRkdDUjBfSUNMCQkJX01NSU8o MHgxNjQyODApCj4gKyNkZWZpbmUgIElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSkJ KDEgPDwgX1BJQ0socGh5LCAxMCwgMTEsIDI0KSkKPiArI2RlZmluZSAgSUNMX0RQQ0xLQV9DRkdD UjBfVENfQ0xLX09GRih0Y19wb3J0KSAoMSA8PCAoKHRjX3BvcnQpID09IFBPUlRfVEM0ID8gXAo+ ICsJCQkJCQkgICAgICAyMSA6ICh0Y19wb3J0KSArIDEyKSkKPiArI2RlZmluZSAgSUNMX0RQQ0xL QV9DRkdDUjBfRERJX0NMS19TRUxfU0hJRlQocGh5KQkoKHBoeSkgKiAyKQo+ICsjZGVmaW5lICBJ Q0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBoeSkJKDMgPDwgSUNMX0RQQ0xLQV9D RkdDUjBfRERJX0NMS19TRUxfU0hJRlQocGh5KSkKPiArI2RlZmluZSAgSUNMX0RQQ0xLQV9DRkdD UjBfRERJX0NMS19TRUwocGxsLCBwaHkpCSgocGxsKSA8PCBJQ0xfRFBDTEtBX0NGR0NSMF9ERElf Q0xLX1NFTF9TSElGVChwaHkpKQo+ICsKPiAgLyogQ05MIFBMTCAqLwo+ICAjZGVmaW5lIERQTEww X0VOQUJMRQkJMHg0NjAxMAo+ICAjZGVmaW5lIERQTEwxX0VOQUJMRQkJMHg0NjAxNAo+IC0tIAo+ IDIuMTcuMgo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=