From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v2 23/40] drm/i915/tgl: Register state context definition for Gen12 Date: Thu, 22 Aug 2019 16:31:53 +0300 Message-ID: <87tva92unq.fsf@gaia.fi.intel.com> References: <20190817093902.2171-1-lucas.demarchi@intel.com> <20190817093902.2171-24-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6BAF86EB64 for ; Thu, 22 Aug 2019 14:31:41 +0000 (UTC) In-Reply-To: <20190817093902.2171-24-lucas.demarchi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi , intel-gfx@lists.freedesktop.org Cc: Michel Thierry List-Id: intel-gfx@lists.freedesktop.org THVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+IHdyaXRlczoKCj4gRnJv bTogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4KPgo+IEdlbjEyIGhh cyBzdWJ0bGUgY2hhbmdlcyBpbiB0aGUgcmVnIHN0YXRlIGNvbnRleHQgb2Zmc2V0cyAoc29tZSBm aWVsZHMKPiBhcmUgZ29uZSwgc29tZSBhcmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24pLCBjb21w YXJlZCB0byBwcmV2aW91cyBHZW5zLgo+Cj4gVGhlIHNpbXBsZXN0IGFwcHJvYWNoIHNlZW1zIHRv IGJlIGtlZXBpbmcgR2VuMTIgKGFuZCBmdXR1cmUgcGxhdGZvcm0pCj4gY2hhbmdlcyBhcGFydCBm cm9tIHRoZSBwcmV2aW91cyBnZW5zLCB3aGlsZSBrZWVwaW5nIHRoZSByZWdpc3RlcnMgdGhhdAo+ IGFyZSBjb250aWd1b3VzIGluIGZ1bmN0aW9ucyB3ZSBjYW4gcmV1c2UuCj4KPiBCc3BlYzogMjAy MDIKPiBDYzogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+Cj4g Q2M6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5j b20+Cj4gU2lnbmVkLW9mZi1ieTogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVs LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGlu dGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgICAg IHwgMTU2ICsrKysrKysrKysrKysrKysrLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9scmMuaCAgICAgfCAgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9scmNfcmVnLmggfCAgMzAgKysrKy0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9u cygrKSwgNDUgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwo+ IGluZGV4IGUzMGQyYTg5MmYyOS4uMWZlODM3MzZmMDY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfbHJjLmMKPiBAQCAtMzA2OCwyOCArMzA2OCwxMiBAQCBzdGF0aWMgdTMyIGludGVs X2xyX2luZGlyZWN0X2N0eF9vZmZzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ ICAJcmV0dXJuIGluZGlyZWN0X2N0eF9vZmZzZXQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGV4 ZWNsaXN0c19pbml0X3JlZ19zdGF0ZSh1MzIgKnJlZ3MsCj4gLQkJCQkgICAgIHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSwKPiAtCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LAo+IC0JCQkJICAgICBzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZykKPiArc3RhdGljIHZvaWQgaW5p dF9jb21tb25fcmVnX3N0YXRlKHUzMiAqcmVncywKPiArCQkJCSAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAo+ICsJCQkJICBzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZykKPiAgewo+IC0J c3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0ID0gaTkxNV92bV90b19wcGd0dChjZS0+dm0pOwo+IC0J Ym9vbCByY3MgPSBlbmdpbmUtPmNsYXNzID09IFJFTkRFUl9DTEFTUzsKPiAgCXUzMiBiYXNlID0g ZW5naW5lLT5tbWlvX2Jhc2U7Cj4gIAo+IC0JLyoKPiAtCSAqIEEgY29udGV4dCBpcyBhY3R1YWxs eSBhIGJpZyBiYXRjaCBidWZmZXIgd2l0aCBzZXZlcmFsCj4gLQkgKiBNSV9MT0FEX1JFR0lTVEVS X0lNTSBjb21tYW5kcyBmb2xsb3dlZCBieSAocmVnLCB2YWx1ZSkgcGFpcnMuIFRoZQo+IC0JICog dmFsdWVzIHdlIGFyZSBzZXR0aW5nIGhlcmUgYXJlIG9ubHkgZm9yIHRoZSBmaXJzdCBjb250ZXh0 IHJlc3RvcmU6Cj4gLQkgKiBvbiBhIHN1YnNlcXVlbnQgc2F2ZSwgdGhlIEdQVSB3aWxsIHJlY3Jl YXRlIHRoaXMgYmF0Y2hidWZmZXIgd2l0aCBuZXcKPiAtCSAqIHZhbHVlcyAoaW5jbHVkaW5nIGFs bCB0aGUgbWlzc2luZyBNSV9MT0FEX1JFR0lTVEVSX0lNTSBjb21tYW5kcyB0aGF0Cj4gLQkgKiB3 ZSBhcmUgbm90IGluaXRpYWxpemluZyBoZXJlKS4KPiAtCSAqCj4gLQkgKiBNdXN0IGtlZXAgY29u c2lzdGVudCB3aXRoIHZpcnR1YWxfdXBkYXRlX3JlZ2lzdGVyX29mZnNldHMoKS4KPiAtCSAqLwo+ IC0JcmVnc1tDVFhfTFJJX0hFQURFUl8wXSA9IE1JX0xPQURfUkVHSVNURVJfSU1NKHJjcyA/IDE0 IDogMTEpIHwKPiAtCQkJCSBNSV9MUklfRk9SQ0VfUE9TVEVEOwo+IC0KPiAgCUNUWF9SRUcocmVn cywgQ1RYX0NPTlRFWFRfQ09OVFJPTCwgUklOR19DT05URVhUX0NPTlRST0woYmFzZSksCj4gIAkJ X01BU0tFRF9CSVRfRElTQUJMRShDVFhfQ1RSTF9FTkdJTkVfQ1RYX1JFU1RPUkVfSU5ISUJJVCkg fAo+ICAJCV9NQVNLRURfQklUX0VOQUJMRShDVFhfQ1RSTF9JTkhJQklUX1NZTl9DVFhfU1dJVENI KSk7Cj4gQEAgLTMxMDYsMzggKzMwOTAsNDQgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2luaXRf cmVnX3N0YXRlKHUzMiAqcmVncywKPiAgCUNUWF9SRUcocmVncywgQ1RYX0JCX0hFQURfVSwgUklO R19CQkFERFJfVURXKGJhc2UpLCAwKTsKPiAgCUNUWF9SRUcocmVncywgQ1RYX0JCX0hFQURfTCwg UklOR19CQkFERFIoYmFzZSksIDApOwo+ICAJQ1RYX1JFRyhyZWdzLCBDVFhfQkJfU1RBVEUsIFJJ TkdfQkJTVEFURShiYXNlKSwgUklOR19CQl9QUEdUVCk7Cj4gLQlDVFhfUkVHKHJlZ3MsIENUWF9T RUNPTkRfQkJfSEVBRF9VLCBSSU5HX1NCQkFERFJfVURXKGJhc2UpLCAwKTsKPiAtCUNUWF9SRUco cmVncywgQ1RYX1NFQ09ORF9CQl9IRUFEX0wsIFJJTkdfU0JCQUREUihiYXNlKSwgMCk7Cj4gLQlD VFhfUkVHKHJlZ3MsIENUWF9TRUNPTkRfQkJfU1RBVEUsIFJJTkdfU0JCU1RBVEUoYmFzZSksIDAp Owo+IC0JaWYgKHJjcykgewo+IC0JCXN0cnVjdCBpOTE1X2N0eF93b3JrYXJvdW5kcyAqd2FfY3R4 ID0gJmVuZ2luZS0+d2FfY3R4Owo+IC0KPiAtCQlDVFhfUkVHKHJlZ3MsIENUWF9SQ1NfSU5ESVJF Q1RfQ1RYLCBSSU5HX0lORElSRUNUX0NUWChiYXNlKSwgMCk7Cj4gLQkJQ1RYX1JFRyhyZWdzLCBD VFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVQsCj4gLQkJCVJJTkdfSU5ESVJFQ1RfQ1RYX09GRlNF VChiYXNlKSwgMCk7Cj4gLQkJaWYgKHdhX2N0eC0+aW5kaXJlY3RfY3R4LnNpemUpIHsKPiAtCQkJ dTMyIGdndHRfb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldCh3YV9jdHgtPnZtYSk7Cj4gK30KPiAg Cj4gLQkJCXJlZ3NbQ1RYX1JDU19JTkRJUkVDVF9DVFggKyAxXSA9Cj4gLQkJCQkoZ2d0dF9vZmZz ZXQgKyB3YV9jdHgtPmluZGlyZWN0X2N0eC5vZmZzZXQpIHwKPiAtCQkJCSh3YV9jdHgtPmluZGly ZWN0X2N0eC5zaXplIC8gQ0FDSEVMSU5FX0JZVEVTKTsKPiArc3RhdGljIHZvaWQgaW5pdF93YV9i Yl9yZWdfc3RhdGUodTMyICpyZWdzLAo+ICsJCQkJIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwKPiArCQkJCSB1MzIgcG9zX2JiX3Blcl9jdHgpCj4gK3sKPiArCXN0cnVjdCBpOTE1X2N0 eF93b3JrYXJvdW5kcyAqd2FfY3R4ID0gJmVuZ2luZS0+d2FfY3R4Owo+ICsJdTMyIGJhc2UgPSBl bmdpbmUtPm1taW9fYmFzZTsKPiArCXUzMiBwb3NfaW5kaXJlY3RfY3R4ID0gcG9zX2JiX3Blcl9j dHggKyAyOwo+ICsJdTMyIHBvc19pbmRpcmVjdF9jdHhfb2Zmc2V0ID0gcG9zX2luZGlyZWN0X2N0 eCArIDI7Cj4gIAo+IC0JCQlyZWdzW0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYX09GRlNFVCArIDFdID0K PiAtCQkJCWludGVsX2xyX2luZGlyZWN0X2N0eF9vZmZzZXQoZW5naW5lKSA8PCA2Owo+IC0JCX0K PiArCUdFTV9CVUdfT04oZW5naW5lLT5pZCAhPSBSQ1MwKTsKPiArCUNUWF9SRUcocmVncywgcG9z X2luZGlyZWN0X2N0eCwgUklOR19JTkRJUkVDVF9DVFgoYmFzZSksIDApOwo+ICsJQ1RYX1JFRyhy ZWdzLCBwb3NfaW5kaXJlY3RfY3R4X29mZnNldCwKPiArCQlSSU5HX0lORElSRUNUX0NUWF9PRkZT RVQoYmFzZSksIDApOwo+ICsJaWYgKHdhX2N0eC0+aW5kaXJlY3RfY3R4LnNpemUpIHsKPiArCQl1 MzIgZ2d0dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHdhX2N0eC0+dm1hKTsKPiAgCj4gLQkJ Q1RYX1JFRyhyZWdzLCBDVFhfQkJfUEVSX0NUWF9QVFIsIFJJTkdfQkJfUEVSX0NUWF9QVFIoYmFz ZSksIDApOwo+IC0JCWlmICh3YV9jdHgtPnBlcl9jdHguc2l6ZSkgewo+IC0JCQl1MzIgZ2d0dF9v ZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHdhX2N0eC0+dm1hKTsKPiArCQlyZWdzW3Bvc19pbmRp cmVjdF9jdHggKyAxXSA9Cj4gKwkJCShnZ3R0X29mZnNldCArIHdhX2N0eC0+aW5kaXJlY3RfY3R4 Lm9mZnNldCkgfAo+ICsJCQkod2FfY3R4LT5pbmRpcmVjdF9jdHguc2l6ZSAvIENBQ0hFTElORV9C WVRFUyk7Cj4gIAo+IC0JCQlyZWdzW0NUWF9CQl9QRVJfQ1RYX1BUUiArIDFdID0KPiAtCQkJCShn Z3R0X29mZnNldCArIHdhX2N0eC0+cGVyX2N0eC5vZmZzZXQpIHwgMHgwMTsKPiAtCQl9Cj4gKwkJ cmVnc1twb3NfaW5kaXJlY3RfY3R4X29mZnNldCArIDFdID0KPiArCQkJaW50ZWxfbHJfaW5kaXJl Y3RfY3R4X29mZnNldChlbmdpbmUpIDw8IDY7Cj4gIAl9Cj4gIAo+IC0JcmVnc1tDVFhfTFJJX0hF QURFUl8xXSA9IE1JX0xPQURfUkVHSVNURVJfSU1NKDkpIHwgTUlfTFJJX0ZPUkNFX1BPU1RFRDsK PiArCUNUWF9SRUcocmVncywgcG9zX2JiX3Blcl9jdHgsIFJJTkdfQkJfUEVSX0NUWF9QVFIoYmFz ZSksIDApOwo+ICsJaWYgKHdhX2N0eC0+cGVyX2N0eC5zaXplKSB7Cj4gKwkJdTMyIGdndHRfb2Zm c2V0ID0gaTkxNV9nZ3R0X29mZnNldCh3YV9jdHgtPnZtYSk7Cj4gIAo+IC0JQ1RYX1JFRyhyZWdz LCBDVFhfQ1RYX1RJTUVTVEFNUCwgUklOR19DVFhfVElNRVNUQU1QKGJhc2UpLCAwKTsKPiArCQly ZWdzW3Bvc19iYl9wZXJfY3R4ICsgMV0gPQo+ICsJCQkoZ2d0dF9vZmZzZXQgKyB3YV9jdHgtPnBl cl9jdHgub2Zmc2V0KSB8IDB4MDE7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGluaXRf cHBndHRfcmVnX3N0YXRlKHUzMiAqcmVncywgdTMyIGJhc2UsCj4gKwkJCQkgc3RydWN0IGk5MTVf cHBndHQgKnBwZ3R0KQo+ICt7Cj4gIAkvKiBQRFAgdmFsdWVzIHdlbGwgYmUgYXNzaWduZWQgbGF0 ZXIgaWYgbmVlZGVkICovCj4gIAlDVFhfUkVHKHJlZ3MsIENUWF9QRFAzX1VEVywgR0VOOF9SSU5H X1BEUF9VRFcoYmFzZSwgMyksIDApOwo+ICAJQ1RYX1JFRyhyZWdzLCBDVFhfUERQM19MRFcsIEdF TjhfUklOR19QRFBfTERXKGJhc2UsIDMpLCAwKTsKPiBAQCAtMzE2MCw2ICszMTUwLDMyIEBAIHN0 YXRpYyB2b2lkIGV4ZWNsaXN0c19pbml0X3JlZ19zdGF0ZSh1MzIgKnJlZ3MsCj4gIAkJQVNTSUdO X0NUWF9QRFAocHBndHQsIHJlZ3MsIDEpOwo+ICAJCUFTU0lHTl9DVFhfUERQKHBwZ3R0LCByZWdz LCAwKTsKPiAgCX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ2VuOF9pbml0X3JlZ19zdGF0ZSh1 MzIgKnJlZ3MsCj4gKwkJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4gKwkJCQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gKwkJCQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZykK PiArewo+ICsJc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0ID0gaTkxNV92bV90b19wcGd0dChjZS0+ dm0pOwo+ICsJYm9vbCByY3MgPSBlbmdpbmUtPmNsYXNzID09IFJFTkRFUl9DTEFTUzsKPiArCXUz MiBiYXNlID0gZW5naW5lLT5tbWlvX2Jhc2U7Cj4gKwo+ICsJcmVnc1tDVFhfTFJJX0hFQURFUl8w XSA9IE1JX0xPQURfUkVHSVNURVJfSU1NKHJjcyA/IDE0IDogMTEpIHwKPiArCQkJCSBNSV9MUklf Rk9SQ0VfUE9TVEVEOwoKSXQgY291bGQgYmUgYmV0dGVyIHRoYXQgdGhlIGltbSBiYXRjaCBzaXpl IHdvdWxkIGJlIGNvbnRhaW5lZAppbiB0aGUgYWN0dWFsIGhlbHBlciB3aGljaCBkb2VzIGl0LiBC dXQgYXMgdGhpcyB3b3VsZCBjaGFuZ2UKdGhlIGltbSBzaXplcywgbGV0J3Mgbm90IGdvIHRoZXJl LCBhdGxlYXN0IG5vdCB5ZXQgdW50aWwKZXZlcnl0aGluZyBpcyBncmVlbiBvbiBDSS4KCkJ1dCB0 aGUgY29uZnVzaW9uIEkgaGF2ZSBpcyB3aXRoIHRoZSB2aXJ0dWFsIGVuZ2luZXMuCkFjY29yZGlu ZyB0byBjb21tZW50cyB0aGUgdmlydHVhbCBlbmdpbmUgcmVnIHN0YXRlIHNldHVwCmhhcyB0byBt aW1pYyB0aGUgZXhlY2xpc3Qgb25lIGV4YWN0bHkuIFdpdGggdGhpcwpnZW4xMi9nZW44IHNwbGl0 LCB3ZSBicmVhayB0aGUgc3ltbWV0cnkuIERvIHdlCm5lZWQgc2FtZSBzcGxpdCBpbiB0aGVyZT8K Ci1NaWthCgoKPiArCj4gKwlpbml0X2NvbW1vbl9yZWdfc3RhdGUocmVncywgZW5naW5lLCByaW5n KTsKPiArCUNUWF9SRUcocmVncywgQ1RYX1NFQ09ORF9CQl9IRUFEX1UsIFJJTkdfU0JCQUREUl9V RFcoYmFzZSksIDApOwo+ICsJQ1RYX1JFRyhyZWdzLCBDVFhfU0VDT05EX0JCX0hFQURfTCwgUklO R19TQkJBRERSKGJhc2UpLCAwKTsKPiArCUNUWF9SRUcocmVncywgQ1RYX1NFQ09ORF9CQl9TVEFU RSwgUklOR19TQkJTVEFURShiYXNlKSwgMCk7Cj4gKwlpZiAocmNzKQo+ICsJCWluaXRfd2FfYmJf cmVnX3N0YXRlKHJlZ3MsIGVuZ2luZSwgQ1RYX0JCX1BFUl9DVFhfUFRSKTsKPiArCj4gKwlyZWdz W0NUWF9MUklfSEVBREVSXzFdID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0oOSkgfCBNSV9MUklfRk9S Q0VfUE9TVEVEOwo+ICsKPiArCUNUWF9SRUcocmVncywgQ1RYX0NUWF9USU1FU1RBTVAsIFJJTkdf Q1RYX1RJTUVTVEFNUChiYXNlKSwgMCk7Cj4gKwo+ICsJaW5pdF9wcGd0dF9yZWdfc3RhdGUocmVn cywgYmFzZSwgcHBndHQpOwo+ICAKPiAgCWlmIChyY3MpIHsKPiAgCQlyZWdzW0NUWF9MUklfSEVB REVSXzJdID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSk7Cj4gQEAgLTMxNzEsNiArMzE4Nyw1OCBA QCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfaW5pdF9yZWdfc3RhdGUodTMyICpyZWdzLAo+ICAJCXJl Z3NbQ1RYX0VORF0gfD0gQklUKDApOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBnZW4xMl9pbml0 X3JlZ19zdGF0ZSh1MzIgKnJlZ3MsCj4gKwkJCQkgc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAo+ ICsJCQkJIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiArCQkJCSBzdHJ1Y3QgaW50 ZWxfcmluZyAqcmluZykKPiArewo+ICsJc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0ID0gaTkxNV92 bV90b19wcGd0dChjZS0+dm0pOwo+ICsJYm9vbCByY3MgPSBlbmdpbmUtPmNsYXNzID09IFJFTkRF Ul9DTEFTUzsKPiArCXUzMiBiYXNlID0gZW5naW5lLT5tbWlvX2Jhc2U7Cj4gKwo+ICsJR0VNX0RF QlVHX0VYRUMoRFJNX0lORk9fT05DRSgiVXNpbmcgR0VOMTIgUmVnaXN0ZXIgU3RhdGUgQ29udGV4 dFxuIikpOwo+ICsKPiArCXJlZ3NbR0VOMTJfQ1RYX0xSSV9IRUFERVJfMF0gPSBNSV9MT0FEX1JF R0lTVEVSX0lNTSgxMykgfAo+ICsJCQkJICAgICAgIE1JX0xSSV9GT1JDRV9QT1NURUQ7Cj4gKwo+ ICsJaW5pdF9jb21tb25fcmVnX3N0YXRlKHJlZ3MsIGVuZ2luZSwgcmluZyk7Cj4gKwlpZiAocmNz KQo+ICsJCWluaXRfd2FfYmJfcmVnX3N0YXRlKHJlZ3MsIGVuZ2luZSwgR0VOMTJfQ1RYX0JCX1BF Ul9DVFhfUFRSKTsKPiArCj4gKwlyZWdzW0dFTjEyX0NUWF9MUklfSEVBREVSXzFdID0gTUlfTE9B RF9SRUdJU1RFUl9JTU0oOSkgfAo+ICsJCQkJICAgICAgIE1JX0xSSV9GT1JDRV9QT1NURUQ7Cj4g Kwo+ICsJQ1RYX1JFRyhyZWdzLCBHRU4xMl9DVFhfQ1RYX1RJTUVTVEFNUCwgUklOR19DVFhfVElN RVNUQU1QKGJhc2UpLCAwKTsKPiArCj4gKwlpbml0X3BwZ3R0X3JlZ19zdGF0ZShyZWdzLCBiYXNl LCBwcGd0dCk7Cj4gKwo+ICsJaWYgKHJjcykgewo+ICsJCXJlZ3NbR0VOMTJfQ1RYX0xSSV9IRUFE RVJfM10gPSBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKTsKPiArCQlDVFhfUkVHKHJlZ3MsIEdFTjEy X0NUWF9SX1BXUl9DTEtfU1RBVEUsIEdFTjhfUl9QV1JfQ0xLX1NUQVRFLAo+ICsJCQkwKTsKPiAr Cj4gKwkJLyogVE9ETzogb2FfaW5pdF9yZWdfc3RhdGUgPyAqLwo+ICsJfQo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBleGVjbGlzdHNfaW5pdF9yZWdfc3RhdGUodTMyICpyZWdzLAo+ICsJCQkJICAg ICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4gKwkJCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwKPiArCQkJCSAgICAgc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCj4gK3sK PiArCS8qIEEgY29udGV4dCBpcyBhY3R1YWxseSBhIGJpZyBiYXRjaCBidWZmZXIgd2l0aCBzZXZl cmFsCj4gKwkgKiBNSV9MT0FEX1JFR0lTVEVSX0lNTSBjb21tYW5kcyBmb2xsb3dlZCBieSAocmVn LCB2YWx1ZSkgcGFpcnMuIFRoZQo+ICsJICogdmFsdWVzIHdlIGFyZSBzZXR0aW5nIGhlcmUgYXJl IG9ubHkgZm9yIHRoZSBmaXJzdCBjb250ZXh0IHJlc3RvcmU6Cj4gKwkgKiBvbiBhIHN1YnNlcXVl bnQgc2F2ZSwgdGhlIEdQVSB3aWxsIHJlY3JlYXRlIHRoaXMgYmF0Y2hidWZmZXIgd2l0aCBuZXcK PiArCSAqIHZhbHVlcyAoaW5jbHVkaW5nIGFsbCB0aGUgbWlzc2luZyBNSV9MT0FEX1JFR0lTVEVS X0lNTSBjb21tYW5kcyB0aGF0Cj4gKwkgKiB3ZSBhcmUgbm90IGluaXRpYWxpemluZyBoZXJlKS4K PiArCSAqLwo+ICsJaWYgKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpID49IDEyKQo+ICsJCWdlbjEy X2luaXRfcmVnX3N0YXRlKHJlZ3MsIGNlLCBlbmdpbmUsIHJpbmcpOwo+ICsJZWxzZQo+ICsJCWdl bjhfaW5pdF9yZWdfc3RhdGUocmVncywgY2UsIGVuZ2luZSwgcmluZyk7Cj4gK30KPiArCj4gIHN0 YXRpYyBpbnQKPiAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Us Cj4gIAkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqLAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2xyYy5oCj4gaW5kZXggYzJiYmE4MmJjYzE2Li42OTI4NWQzNTRkOWIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuaAo+IEBAIC00OSw2ICs0OSw4IEBA IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3M7Cj4gIAo+ICAjZGVmaW5lCSAgRUxfQ1RSTF9MT0FECQkJ CSgxIDw8IDApCj4gIAo+ICsjZGVmaW5lIEdFTjEyX0VOR0lORV9TRU1BUEhPUkVfVE9LRU4oZW5n aW5lKQlfTU1JTygoZW5naW5lKS0+bW1pb19iYXNlICsgMHgyYjQpCj4gKwo+ICAvKiBUaGUgZG9j cyBzcGVjaWZ5IHRoYXQgdGhlIHdyaXRlIHBvaW50ZXIgd3JhcHMgYXJvdW5kIGFmdGVyIDVoLCAi QWZ0ZXIgc3RhdHVzCj4gICAqIGlzIHdyaXR0ZW4gb3V0IHRvIHRoZSBsYXN0IGF2YWlsYWJsZSBz dGF0dXMgUVcgYXQgb2Zmc2V0IDVoLCB0aGlzIHBvaW50ZXIKPiAgICogd3JhcHMgdG8gMC4iCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyY19yZWcuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyY19yZWcuaAo+IGluZGV4IDZiZjM0NzM4YjRl NS4uOTE1ODI0ZWJhZjE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2xyY19yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyY19y ZWcuaAo+IEBAIC05LDcgKzksNyBAQAo+ICAKPiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4g IAo+IC0vKiBHRU44KyBSZWcgU3RhdGUgQ29udGV4dCAqLwo+ICsvKiBHRU44IHRvIEdFTjExIFJl ZyBTdGF0ZSBDb250ZXh0ICovCj4gICNkZWZpbmUgQ1RYX0xSSV9IRUFERVJfMAkJMHgwMQo+ICAj ZGVmaW5lIENUWF9DT05URVhUX0NPTlRST0wJCTB4MDIKPiAgI2RlZmluZSBDVFhfUklOR19IRUFE CQkJMHgwNAo+IEBAIC0zOSw2ICszOSwzNCBAQAo+ICAjZGVmaW5lIENUWF9SX1BXUl9DTEtfU1RB VEUJCTB4NDIKPiAgI2RlZmluZSBDVFhfRU5ECQkJCTB4NDQKPiAgCj4gKy8qIEdFTjEyKyBSZWcg U3RhdGUgQ29udGV4dCAqLwo+ICsjZGVmaW5lIEdFTjEyX0NUWF9MUklfSEVBREVSXzAJCQlDVFhf TFJJX0hFQURFUl8wCj4gKyNkZWZpbmUgR0VOMTJfQ1RYX0NPTlRFWFRfQ09OVFJPTAkJQ1RYX0NP TlRFWFRfQ09OVFJPTAo+ICsjZGVmaW5lIEdFTjEyX0NUWF9SSU5HX0hFQUQJCQlDVFhfUklOR19I RUFECj4gKyNkZWZpbmUgR0VOMTJfQ1RYX1JJTkdfVEFJTAkJCUNUWF9SSU5HX1RBSUwKPiArI2Rl ZmluZSBHRU4xMl9DVFhfUklOR19CVUZGRVJfU1RBUlQJCUNUWF9SSU5HX0JVRkZFUl9TVEFSVAo+ ICsjZGVmaW5lIEdFTjEyX0NUWF9SSU5HX0JVRkZFUl9DT05UUk9MCQlDVFhfUklOR19CVUZGRVJf Q09OVFJPTAo+ICsjZGVmaW5lIEdFTjEyX0NUWF9CQl9IRUFEX1UJCQlDVFhfQkJfSEVBRF9VCj4g KyNkZWZpbmUgR0VOMTJfQ1RYX0JCX0hFQURfTAkJCUNUWF9CQl9IRUFEX0wKPiArI2RlZmluZSBH RU4xMl9DVFhfQkJfU1RBVEUJCQlDVFhfQkJfU1RBVEUKPiArI2RlZmluZSBHRU4xMl9DVFhfQkJf UEVSX0NUWF9QVFIJCTB4MTIKPiArI2RlZmluZSBHRU4xMl9DVFhfUkNTX0lORElSRUNUX0NUWAkJ MHgxNAo+ICsjZGVmaW5lIEdFTjEyX0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYX09GRlNFVAkweDE2Cj4g KyNkZWZpbmUgR0VOMTJfQ1RYX0xSSV9IRUFERVJfMQkJCUNUWF9MUklfSEVBREVSXzEKPiArI2Rl ZmluZSBHRU4xMl9DVFhfQ1RYX1RJTUVTVEFNUAkJCUNUWF9DVFhfVElNRVNUQU1QCj4gKyNkZWZp bmUgR0VOMTJfQ1RYX1BEUDNfVURXCQkJQ1RYX1BEUDNfVURXCj4gKyNkZWZpbmUgR0VOMTJfQ1RY X1BEUDNfTERXCQkJQ1RYX1BEUDNfTERXCj4gKyNkZWZpbmUgR0VOMTJfQ1RYX1BEUDJfVURXCQkJ Q1RYX1BEUDJfVURXCj4gKyNkZWZpbmUgR0VOMTJfQ1RYX1BEUDJfTERXCQkJQ1RYX1BEUDJfTERX Cj4gKyNkZWZpbmUgR0VOMTJfQ1RYX1BEUDFfVURXCQkJQ1RYX1BEUDFfVURXCj4gKyNkZWZpbmUg R0VOMTJfQ1RYX1BEUDFfTERXCQkJQ1RYX1BEUDFfTERXCj4gKyNkZWZpbmUgR0VOMTJfQ1RYX1BE UDBfVURXCQkJQ1RYX1BEUDBfVURXCj4gKyNkZWZpbmUgR0VOMTJfQ1RYX1BEUDBfTERXCQkJQ1RY X1BEUDBfTERXCj4gKyNkZWZpbmUgR0VOMTJfQ1RYX0xSSV9IRUFERVJfMgkJCTB4MzQKPiArI2Rl ZmluZSBHRU4xMl9DVFhfTFJJX0hFQURFUl8zCQkJMHg0MQo+ICsjZGVmaW5lIEdFTjEyX0NUWF9S X1BXUl9DTEtfU1RBVEUJCTB4NDIKPiArI2RlZmluZSBHRU4xMl9DVFhfR1BHUFVfQ1NSX0JBU0Vf QUREUkVTUwkweDQ0Cj4gKwo+ICAjZGVmaW5lIENUWF9SRUcocmVnX3N0YXRlLCBwb3MsIHJlZywg dmFsKSBkbyB7IFwKPiAgCXUzMiAqcmVnX3N0YXRlX18gPSAocmVnX3N0YXRlKTsgXAo+ICAJY29u c3QgdTMyIHBvc19fID0gKHBvcyk7IFwKPiAtLSAKPiAyLjIxLjAKPgo+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=