From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Souza, Jose" Subject: Re: [PATCH v5 2/5] drm/i915/gen11: Program DPCLKA_CFGCR0_ICL according to PHY Date: Tue, 9 Jul 2019 00:15:16 +0000 Message-ID: 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 mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1037489CE1 for ; Tue, 9 Jul 2019 00:15:19 +0000 (UTC) In-Reply-To: <20190704010658.32170-1-matthew.d.roper@intel.com> Content-Language: en-US Content-ID: <781CA31DF5674543A964B23537038E19@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Roper, Matthew D" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE5LTA3LTAzIGF0IDE4OjA2IC0wNzAwLCBNYXR0IFJvcGVyIHdyb3RlOg0KPiBB bHRob3VnaCB0aGUgcmVnaXN0ZXIgbmFtZSBpbXBsaWVzIHRoYXQgaXQgb3BlcmF0ZXMgb24gRERJ J3MsDQo+IERQQ0xLQV9DRkdDUjBfSUNMIGFjdHVhbGx5IG5lZWRzIHRvIGJlIHByb2dyYW1tZWQg YWNjb3JkaW5nIHRvIHRoZQ0KPiBQSFkNCj4gdGhhdCdzIGluIHVzZS4gIEkuZS4sIHdoZW4gdXNp bmcgRUhMJ3MgRERJLUQgb24gY29tYm8gUEhZIEEsIHRoZSBiaXRzDQo+IGRlc2NyaWJlZCBhcyAi cG9ydCBBIiBpbiB0aGUgYnNwZWMgYXJlIHdoYXQgd2UgbmVlZCB0byBzZXQuICBUaGUNCj4gYnNw ZWMNCj4gY2xhcmlmaWVzOg0KPiANCj4gICAgICAgICAiW0ZvciBFSExdIERESUQgY2xvY2sgdGll ZCB0byBERElBIGNsb2NrLCBzbyBEUENMS0FfQ0ZHQ1IwDQo+IERESUENCj4gICAgICAgICBDbG9j ayBTZWxlY3QgY2hvb3NlcyB0aGUgUExMIGZvciBib3RoIERESUEgYW5kIERESUQgYW5kDQo+IGRy aXZlcw0KPiAgICAgICAgIHBvcnQgQSBpbiBhbGwgY2FzZXMuIg0KPiANCj4gQWxzbywgc2luY2Ug dGhlIENOTCBEUENMS0FfQ0ZHQ1IwIGJpdCBkZWZpbmVzIGFyZSBzdGlsbCBwb3J0LWJhc2VkLA0K PiB3ZQ0KPiBjcmVhdGUgc2VwYXJhdGUgSUNMLXNwZWNpZmljIGRlZmluZXMgdGhhdCBhY2NlcHQg dGhlIFBIWSByYXRoZXIgdGhhbg0KPiB0cnlpbmcgdG8gc2hhcmUgdGhlIHNhbWUgYml0IGRlZmlu aXRpb25zIGJldHdlZW4gQ05MIGFuZCBJQ0wuDQo+IA0KDQpOaXQ6IFdoeSBub3QgYWxyZWFkeSBy ZW5hbWUgRFBDTEtBX0NGR0NSMF9JQ0wgdG8gSUNMX0RQQ0xLQV9DRkdDUjA/IFRoZQ0KYml0cyBo YXZlIHRoZSBuZXcgbmFtZSwgc28geW91IGFyZSBhbHJlYWR5IHRvdWNoaW5nIGluIGV2ZXJ5cGxh Y2UgdGhhdA0KdXNlcyBEUENMS0FfQ0ZHQ1IwX0lDTC4NCg0KPiB2NTogTWFrZSBpY2xfZHBjbGth X2NmZ2NyMF9jbGtfb2ZmKCkgdGFrZSBwaHkgcmF0aGVyIHRoYW4gcG9ydC4gIFdoZW4NCj4gICAg IHNwbGl0dGluZyB0aGUgb3JpZ2luYWwgcGF0Y2ggdGhlIGh1bmsgdG8gaGFuZGxlIHRoaXMgd291 bmQgdXAgdG9vDQo+ICAgICBsYXRlIGluIHRoZSBzZXJpZXMuICAoU3BhcnNlKQ0KDQpSZXZpZXdl ZC1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+DQoNCj4g DQo+IEJzcGVjOiAzMzE0OA0KPiBDYzogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6 YUBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3Bl ckBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xf ZHNpLmMgICB8IDE3ICsrKysrKy0tLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kZGkuYyB8IDQ3ICsrKysrKysrKysrKysrKy0tLS0tLS0NCj4gLS0NCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICAgfCAxMiArKysrLS0NCj4gIDMgZmlsZXMg Y2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNpLmMNCj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYw0KPiBpbmRleCBiODY3M2RlYmY5MzIuLmY1 NzRhZjYyODg4YyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p Y2xfZHNpLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNpLmMN Cj4gQEAgLTU2MCwxMSArNTYwLDEzIEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9nYXRlX2Nsb2Nr cyhzdHJ1Y3QNCj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikNCj4gIAlzdHJ1Y3QgaW50ZWxfZHNp ICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsNCj4gIAl1MzIg dG1wOw0KPiAgCWVudW0gcG9ydCBwb3J0Ow0KPiArCWVudW0gcGh5IHBoeTsNCj4gIA0KPiAgCW11 dGV4X2xvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOw0KPiAgCXRtcCA9IEk5MTVfUkVBRChEUENM S0FfQ0ZHQ1IwX0lDTCk7DQo+ICAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5w b3J0cykgew0KPiAtCQl0bXAgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0KTsNCj4g KwkJcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOw0KPiArCQl0bXAgfD0g SUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYocGh5KTsNCj4gIAl9DQo+ICANCj4gIAlJOTE1 X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB0bXApOw0KPiBAQCAtNTc3LDExICs1NzksMTMgQEAg c3RhdGljIHZvaWQgZ2VuMTFfZHNpX3VuZ2F0ZV9jbG9ja3Moc3RydWN0DQo+IGludGVsX2VuY29k ZXIgKmVuY29kZXIpDQo+ICAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2lu dGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7DQo+ICAJdTMyIHRtcDsNCj4gIAllbnVtIHBvcnQgcG9y dDsNCj4gKwllbnVtIHBoeSBwaHk7DQo+ICANCj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHBs bF9sb2NrKTsNCj4gIAl0bXAgPSBJOTE1X1JFQUQoRFBDTEtBX0NGR0NSMF9JQ0wpOw0KPiAgCWZv cl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsNCj4gLQkJdG1wICY9IH5E UENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBvcnQpOw0KPiArCQlwaHkgPSBpbnRlbF9wb3J0X3Rv X3BoeShkZXZfcHJpdiwgcG9ydCk7DQo+ICsJCXRtcCAmPSB+SUNMX0RQQ0xLQV9DRkdDUjBfRERJ X0NMS19PRkYocGh5KTsNCj4gIAl9DQo+ICANCj4gIAlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBf SUNMLCB0bXApOw0KPiBAQCAtNTk1LDE5ICs1OTksMjIgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNp X21hcF9wbGwoc3RydWN0DQo+IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ICAJc3RydWN0IGlu dGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7DQo+ ICAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBs bDsNCj4gIAllbnVtIHBvcnQgcG9ydDsNCj4gKwllbnVtIHBoeSBwaHk7DQo+ICAJdTMyIHZhbDsN Cj4gIA0KPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOw0KPiAgDQo+ICAJdmFs ID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsNCj4gIAlmb3JfZWFjaF9kc2lfcG9ydChw b3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7DQo+IC0JCXZhbCAmPSB+RFBDTEtBX0NGR0NSMF9ERElf Q0xLX1NFTF9NQVNLKHBvcnQpOw0KPiAtCQl2YWwgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NF TChwbGwtPmluZm8tPmlkLCBwb3J0KTsNCj4gKwkJcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2 X3ByaXYsIHBvcnQpOw0KPiArCQl2YWwgJj0gfklDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VM X01BU0socGh5KTsNCj4gKwkJdmFsIHw9IElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMKHBs bC0+aW5mby0+aWQsDQo+IHBoeSk7DQo+ICAJfQ0KPiAgCUk5MTVfV1JJVEUoRFBDTEtBX0NGR0NS MF9JQ0wsIHZhbCk7DQo+ICANCj4gIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2kt PnBvcnRzKSB7DQo+IC0JCXZhbCAmPSB+RFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0KTsN Cj4gKwkJcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOw0KPiArCQl2YWwg Jj0gfklDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSk7DQo+ICAJfQ0KPiAgCUk5MTVf V1JJVEUoRFBDTEtBX0NGR0NSMF9JQ0wsIHZhbCk7DQo+ICANCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jDQo+IGluZGV4IGE0MTcyNTk1YzhkOC4uMDY1ZmViOTE3 ZGI0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rk aS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMNCj4g QEAgLTI3MjksMTIgKzI3MjksMTMgQEAgdTMyIGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRl bF9kcA0KPiAqaW50ZWxfZHApDQo+ICANCj4gIHN0YXRpYyBpbmxpbmUNCj4gIHUzMiBpY2xfZHBj bGthX2NmZ2NyMF9jbGtfb2ZmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4g LQkJCSAgICAgIGVudW0gcG9ydCBwb3J0KQ0KPiArCQkJICAgICAgZW51bSBwaHkgcGh5KQ0KPiAg ew0KPiAtCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkgew0KPiAt CQlyZXR1cm4gSUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYocG9ydCk7DQo+IC0JfSBlbHNl IGlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBwb3J0KSkgew0KPiAtCQllbnVtIHRjX3Bv cnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsDQo+IHBvcnQpOw0KPiArCWlm IChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpIHsNCj4gKwkJcmV0dXJuIElDTF9E UENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSk7DQo+ICsJfSBlbHNlIGlmIChpbnRlbF9waHlf aXNfdGMoZGV2X3ByaXYsIHBoeSkpIHsNCj4gKwkJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRl bF9wb3J0X3RvX3RjKGRldl9wcml2LA0KPiArCQkJCQkJCShlbnVtDQo+IHBvcnQpcGh5KTsNCj4g IA0KPiAgCQlyZXR1cm4gSUNMX0RQQ0xLQV9DRkdDUjBfVENfQ0xLX09GRih0Y19wb3J0KTsNCj4g IAl9DQo+IEBAIC0yNzQ3LDIyICsyNzQ4LDMyIEBAIHN0YXRpYyB2b2lkIGljbF9tYXBfcGxsc190 b19wb3J0cyhzdHJ1Y3QNCj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwNCj4gIHsNCj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsNCj4gIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNoYXJl ZF9kcGxsOw0KPiAtCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsNCj4gKwllbnVtIHBo eSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7DQo+ICAJ dTMyIHZhbDsNCj4gIA0KPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOw0KPiAg DQo+ICAJdmFsID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsNCj4gLQlXQVJOX09OKCh2 YWwgJiBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwb3J0KSkgPT0NCj4gMCk7 DQo+ICsJV0FSTl9PTigodmFsICYgaWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZihkZXZfcHJpdiwg cGh5KSkgPT0gMCk7DQo+ICANCj4gLQlpZiAoaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJp diwgcG9ydCkpIHsNCj4gLQkJdmFsICY9IH5EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01BU0so cG9ydCk7DQo+IC0JCXZhbCB8PSBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMKHBsbC0+aW5mby0+ aWQsIHBvcnQpOw0KPiArCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpIHsN Cj4gKwkJLyoNCj4gKwkJICogRXZlbiB0aG91Z2ggdGhpcyByZWdpc3RlciByZWZlcmVuY2VzIERE SXMsIG5vdGUgdGhhdA0KPiB3ZQ0KPiArCQkgKiB3YW50IHRvIHBhc3MgdGhlIFBIWSByYXRoZXIg dGhhbiB0aGUgcG9ydA0KPiAoRERJKS4gIEZvcg0KPiArCQkgKiBJQ0wsIHBvcnQ9cGh5IGluIGFs bCBjYXNlcyBzbyBpdCBkb2Vzbid0IG1hdHRlciwgYnV0DQo+IGZvcg0KPiArCQkgKiBFSEwgdGhl IGJzcGVjIG5vdGVzIHRoZSBmb2xsb3dpbmc6DQo+ICsJCSAqDQo+ICsJCSAqICAgIkRESUQgY2xv Y2sgdGllZCB0byBERElBIGNsb2NrLCBzbyBEUENMS0FfQ0ZHQ1IwDQo+IERESUENCj4gKwkJICog ICBDbG9jayBTZWxlY3QgY2hvb3NlcyB0aGUgUExMIGZvciBib3RoIERESUEgYW5kDQo+IERESUQg YW5kDQo+ICsJCSAqICAgZHJpdmVzIHBvcnQgQSBpbiBhbGwgY2FzZXMuIg0KPiArCQkgKi8NCj4g KwkJdmFsICY9IH5JQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBoeSk7DQo+ICsJ CXZhbCB8PSBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLA0KPiBw aHkpOw0KPiAgCQlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB2YWwpOw0KPiAgCQlQT1NU SU5HX1JFQUQoRFBDTEtBX0NGR0NSMF9JQ0wpOw0KPiAgCX0NCj4gIA0KPiAtCXZhbCAmPSB+aWNs X2RwY2xrYV9jZmdjcjBfY2xrX29mZihkZXZfcHJpdiwgcG9ydCk7DQo+ICsJdmFsICY9IH5pY2xf ZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwaHkpOw0KPiAgCUk5MTVfV1JJVEUoRFBD TEtBX0NGR0NSMF9JQ0wsIHZhbCk7DQo+ICANCj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5k cGxsX2xvY2spOw0KPiBAQCAtMjc3MSwxMyArMjc4MiwxMyBAQCBzdGF0aWMgdm9pZCBpY2xfbWFw X3BsbHNfdG9fcG9ydHMoc3RydWN0DQo+IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ICBzdGF0 aWMgdm9pZCBpY2xfdW5tYXBfcGxsc190b19wb3J0cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikNCj4gIHsNCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsNCj4gLQllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBv cnQ7DQo+ICsJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGVuY29k ZXItPnBvcnQpOw0KPiAgCXUzMiB2YWw7DQo+ICANCj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ ZHBsbF9sb2NrKTsNCj4gIA0KPiAgCXZhbCA9IEk5MTVfUkVBRChEUENMS0FfQ0ZHQ1IwX0lDTCk7 DQo+IC0JdmFsIHw9IGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYoZGV2X3ByaXYsIHBvcnQpOw0K PiArCXZhbCB8PSBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwaHkpOw0KPiAg CUk5MTVfV1JJVEUoRFBDTEtBX0NGR0NSMF9JQ0wsIHZhbCk7DQo+ICANCj4gIAltdXRleF91bmxv Y2soJmRldl9wcml2LT5kcGxsX2xvY2spOw0KPiBAQCAtMjgzOCw5ICsyODQ5LDExIEBAIHZvaWQg aWNsX3Nhbml0aXplX2VuY29kZXJfcGxsX21hcHBpbmcoc3RydWN0DQo+IGludGVsX2VuY29kZXIg KmVuY29kZXIpDQo+ICANCj4gIAl2YWwgPSBJOTE1X1JFQUQoRFBDTEtBX0NGR0NSMF9JQ0wpOw0K PiAgCWZvcl9lYWNoX3BvcnRfbWFza2VkKHBvcnQsIHBvcnRfbWFzaykgew0KPiArCQllbnVtIHBo eSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7DQo+ICsNCj4gIAkJYm9v bCBkZGlfY2xrX3VuZ2F0ZWQgPSAhKHZhbCAmDQo+ICAJCQkJCSBpY2xfZHBjbGthX2NmZ2NyMF9j bGtfb2ZmKGRldl8NCj4gcHJpdiwNCj4gLQkJCQkJCQkJICAgcG9ydA0KPiApKTsNCj4gKwkJCQkJ CQkJICAgcGh5KQ0KPiApOw0KPiAgDQo+ICAJCWlmIChkZGlfY2xrX25lZWRlZCA9PSBkZGlfY2xr X3VuZ2F0ZWQpDQo+ICAJCQljb250aW51ZTsNCj4gQEAgLTI4NTIsOSArMjg2NSw5IEBAIHZvaWQg aWNsX3Nhbml0aXplX2VuY29kZXJfcGxsX21hcHBpbmcoc3RydWN0DQo+IGludGVsX2VuY29kZXIg KmVuY29kZXIpDQo+ICAJCWlmIChXQVJOX09OKGRkaV9jbGtfbmVlZGVkKSkNCj4gIAkJCWNvbnRp bnVlOw0KPiAgDQo+IC0JCURSTV9OT1RFKCJQb3J0ICVjIGlzIGRpc2FibGVkL2luIERTSSBtb2Rl IHdpdGggYW4NCj4gdW5nYXRlZCBEREkgY2xvY2ssIGdhdGUgaXRcbiIsDQo+IC0JCQkgcG9ydF9u YW1lKHBvcnQpKTsNCj4gLQkJdmFsIHw9IGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYoZGV2X3By aXYsIHBvcnQpOw0KPiArCQlEUk1fTk9URSgiUEhZICVjIGlzIGRpc2FibGVkL2luIERTSSBtb2Rl IHdpdGggYW4NCj4gdW5nYXRlZCBEREkgY2xvY2ssIGdhdGUgaXRcbiIsDQo+ICsJCQkgcGh5X25h bWUocG9ydCkpOw0KPiArCQl2YWwgfD0gaWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZihkZXZfcHJp diwgcGh5KTsNCj4gIAkJSTkxNV9XUklURShEUENMS0FfQ0ZHQ1IwX0lDTCwgdmFsKTsNCj4gIAl9 DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiBpbmRleCBjODE0Y2MxYjNhZTUu LmM5ZTJlMDliNmYwMSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+IEBAIC05Njgw LDE3ICs5NjgwLDIxIEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgew0KPiAgICogQ05MIENsb2Nrcw0K PiAgICovDQo+ICAjZGVmaW5lIERQQ0xLQV9DRkdDUjAJCQkJX01NSU8oMHg2QzIwMCkNCj4gLSNk ZWZpbmUgRFBDTEtBX0NGR0NSMF9JQ0wJCQlfTU1JTygweDE2NDI4MCkNCj4gICNkZWZpbmUgIERQ Q0xLQV9DRkdDUjBfRERJX0NMS19PRkYocG9ydCkJKDEgPDwgKChwb3J0KQ0KPiA9PSAgUE9SVF9G ID8gMjMgOiBcDQo+ICAJCQkJCQkgICAgICAocG9ydCkgKyAxMCkpDQo+IC0jZGVmaW5lICBJQ0xf RFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0KSAgICgxIDw8ICgocG9ydCkgKyAxMCkpDQo+ IC0jZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9UQ19DTEtfT0ZGKHRjX3BvcnQpICgxIDw8ICgo dGNfcG9ydCkgPT0NCj4gUE9SVF9UQzQgPyBcDQo+IC0JCQkJCQkgICAgICAyMSA6ICh0Y19wb3J0 KSArDQo+IDEyKSkNCj4gICNkZWZpbmUgIERQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfU0hJRlQo cG9ydCkJKChwb3J0KSA9PQ0KPiBQT1JUX0YgPyAyMSA6IFwNCj4gIAkJCQkJCShwb3J0KSAqIDIp DQo+ICAjZGVmaW5lICBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01BU0socG9ydCkJKDMgPDwN Cj4gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChwb3J0KSkNCj4gICNkZWZpbmUgIERQ Q0xLQV9DRkdDUjBfRERJX0NMS19TRUwocGxsLCBwb3J0KQkoKHBsbCkgPDwNCj4gRFBDTEtBX0NG R0NSMF9ERElfQ0xLX1NFTF9TSElGVChwb3J0KSkNCj4gIA0KPiArI2RlZmluZSBEUENMS0FfQ0ZH Q1IwX0lDTAkJCV9NTUlPKDB4MTY0MjgwKQ0KPiArI2RlZmluZSAgSUNMX0RQQ0xLQV9DRkdDUjBf RERJX0NMS19PRkYocGh5KQkoMSA8PCBfUElDSyhwaHksIDEwLA0KPiAxMSwgMjQpKQ0KPiArI2Rl ZmluZSAgSUNMX0RQQ0xLQV9DRkdDUjBfVENfQ0xLX09GRih0Y19wb3J0KSAoMSA8PCAoKHRjX3Bv cnQpID09DQo+IFBPUlRfVEM0ID8gXA0KPiArCQkJCQkJICAgICAgMjEgOiAodGNfcG9ydCkgKw0K PiAxMikpDQo+ICsjZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChw aHkpCSgocGh5KSAqIDIpDQo+ICsjZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NF TF9NQVNLKHBoeSkJKDMgPDwNCj4gSUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfU0hJRlQo cGh5KSkNCj4gKyNkZWZpbmUgIElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMKHBsbCwgcGh5 KQkoKHBsbCkgPDwNCj4gSUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfU0hJRlQocGh5KSkN Cj4gKw0KPiAgLyogQ05MIFBMTCAqLw0KPiAgI2RlZmluZSBEUExMMF9FTkFCTEUJCTB4NDYwMTAN Cj4gICNkZWZpbmUgRFBMTDFfRU5BQkxFCQkweDQ2MDE0DQpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=