From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhoucm1 Subject: Re: [PATCH] drm/amdgpu:implement CONTEXT_CONTROL (v5) Date: Thu, 8 Sep 2016 14:00:55 +0800 Message-ID: <57D0FE97.5020403@amd.com> References: <1473312556-26795-1-git-send-email-Monk.Liu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1473312556-26795-1-git-send-email-Monk.Liu-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Monk Liu , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org CgpPbiAyMDE25bm0MDnmnIgwOOaXpSAxMzoyOSwgTW9uayBMaXUgd3JvdGU6Cj4gdjE6Cj4gZm9y IGdmeDgsIHVzZSBDT05URVhUX0NPTlRST0wgcGFja2FnZSB0byBkeW5hbWljYWxseQo+IHNraXAg cHJlYW1ibGUgQ0VJQiBhbmQgb3RoZXIgbG9hZF94eHggY29tbWFuZCBpbiBzZXF1ZW5jZS4KPgo+ IHYyOgo+IHN1cHBvcnQgR0ZYNyBhcyB3ZWxsLCBhbmQgYnVtcCB1cCB2ZXJzaW9uLgo+IHJlbW92 ZSBjbnR4Y250bCBpbiBjb21wdXRlIHJpbmcgZnVuY3MgYmVjYXVzZSBDUEMgZG9lc24ndAo+IHN1 cHBvcnQgdGhpcyBwYWNrZXQuCj4KPiB2MzogZml4IHJlZHVudGFudCBqdWRnZW1lbnQgaW4gY250 eGNudGwuCj4gdjQ6IHNvbWUgY2xlYW51cHMsIGRvbid0IGNoYW5nZSBjc19zdWJtaXQoKQo+IHY1 OiBrZWVwIG9sZCBNRVNBIHN1cHBvcnRlZCAmIGJ1bXAgdXAgS01TIHZlcnNpb24uCj4KPiBDaGFu Z2UtSWQ6IEk3YjJhZGMxNWVhODNmZDZjNGQyNTIxZDc1NjYyYmYzOTU4Nzg5OGQ1Cj4gU2lnbmVk LW9mZi1ieTogTW9uayBMaXUgPE1vbmsuTGl1QGFtZC5jb20+Cj4gQWNrLWJ5OiBDaHVubWluZyBa aG91IDxEYXZpZDEuWmhvdUBhbWQuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1LmggICAgIHwgIDggKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9jcy5jICB8ICA4ICsrKysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZHJ2LmMgfCAgMSArCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfaWIuYyAgfCAxMiArKysrKysrKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92N18wLmMgICB8IDIwICsrKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jICAgfCAzMCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiAgIDYgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPiBpbmRleCA5ZDM5ZmE4 Li44YzZkOGM2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPiBAQCAtMzIx LDYgKzMyMSw3IEBAIHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB7Cj4gICAJdm9pZCAoKmJlZ2lu X3VzZSkoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKPiAgIAl2b2lkICgqZW5kX3VzZSkoc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKPiAgIAl2b2lkICgqZW1pdF9zd2l0Y2hfYnVmZmVyKSAo c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKPiArCXZvaWQgKCplbWl0X2NudHhjbnRsKSAoc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBmbGFncyk7Cj4gICB9Owo+ICAgCj4gICAv Kgo+IEBAIC05NjYsNiArOTY3LDcgQEAgc3RydWN0IGFtZGdwdV9jdHggewo+ICAgCXNwaW5sb2Nr X3QJCXJpbmdfbG9jazsKPiAgIAlzdHJ1Y3QgZmVuY2UgICAgICAgICAgICAqKmZlbmNlczsKPiAg IAlzdHJ1Y3QgYW1kZ3B1X2N0eF9yaW5nCXJpbmdzW0FNREdQVV9NQVhfUklOR1NdOwo+ICsJYm9v bCBwcmVhbWJsZV9wcmVzZW50ZWQ7Cj4gICB9Owo+ICAgCj4gICBzdHJ1Y3QgYW1kZ3B1X2N0eF9t Z3Igewo+IEBAIC0xMjMxLDYgKzEyMzMsMTAgQEAgc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgewo+ ICAgCXN0cnVjdCBhbWRncHVfYm9fbGlzdF9lbnRyeQl1Zl9lbnRyeTsKPiAgIH07Cj4gICAKPiAr I2RlZmluZSBQUkVBTUJMRV9JQl9QUkVTRU5UIAkJKDEgPDwgMCkgLyogYml0IHNldCBtZWFucyBj b21tYW5kIHN1Ym1pdCBpbnZvbHZlcyBhIHByZWFtYmxlIElCICovCj4gKyNkZWZpbmUgUFJFQU1C TEVfSUJfUFJFU0VOVF9GSVJTVAkoMSA8PCAxKSAvKiBiaXQgc2V0IG1lYW5zIHByZWFtYmxlIElC IGlzIGZpcnN0IHByZXNlbnRlZCBpbiBiZWxvbmdpbmcgY29udGV4dCAqLwo+ICsjZGVmaW5lIEhB VkVfQ1RYX1NXSVRDSAkJKDEgPDwgMikgLyogYml0IHNldCBtZWFucyBjb250ZXh0IHN3aXRjaCBv Y2N1cmVkICovCj4gKwo+ICAgc3RydWN0IGFtZGdwdV9qb2Igewo+ICAgCXN0cnVjdCBhbWRfc2No ZWRfam9iICAgIGJhc2U7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UJKmFkZXY7Cj4gQEAgLTEy MzksNiArMTI0NSw3IEBAIHN0cnVjdCBhbWRncHVfam9iIHsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X3N5 bmMJc3luYzsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2liCSppYnM7Cj4gICAJc3RydWN0IGZlbmNlCQkq ZmVuY2U7IC8qIHRoZSBodyBmZW5jZSAqLwo+ICsJdWludDMyX3QJCXByZWFtYmxlX3N0YXR1czsK PiAgIAl1aW50MzJfdAkJbnVtX2liczsKPiAgIAl2b2lkCQkJKm93bmVyOwo+ICAgCXVpbnQ2NF90 CQlmZW5jZV9jdHg7IC8qIHRoZSBmZW5jZV9jb250ZXh0IHRoaXMgam9iIHVzZXMgKi8KPiBAQCAt MjI4NCw2ICsyMjkxLDcgQEAgYW1kZ3B1X2dldF9zZG1hX2luc3RhbmNlKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZykKPiAgICNkZWZpbmUgYW1kZ3B1X3JpbmdfZW1pdF9oZHBfZmx1c2gocikgKHIp LT5mdW5jcy0+ZW1pdF9oZHBfZmx1c2goKHIpKQo+ICAgI2RlZmluZSBhbWRncHVfcmluZ19lbWl0 X2hkcF9pbnZhbGlkYXRlKHIpIChyKS0+ZnVuY3MtPmVtaXRfaGRwX2ludmFsaWRhdGUoKHIpKQo+ ICAgI2RlZmluZSBhbWRncHVfcmluZ19lbWl0X3N3aXRjaF9idWZmZXIocikgKHIpLT5mdW5jcy0+ ZW1pdF9zd2l0Y2hfYnVmZmVyKChyKSkKPiArI2RlZmluZSBhbWRncHVfcmluZ19lbWl0X2NudHhj bnRsKHIsIGQpIChyKS0+ZnVuY3MtPmVtaXRfY250eGNudGwoKHIpLCAoZCkpCj4gICAjZGVmaW5l IGFtZGdwdV9yaW5nX3BhZF9pYihyLCBpYikgKChyKS0+ZnVuY3MtPnBhZF9pYigociksIChpYikp KQo+ICAgI2RlZmluZSBhbWRncHVfcmluZ19pbml0X2NvbmRfZXhlYyhyKSAociktPmZ1bmNzLT5p bml0X2NvbmRfZXhlYygocikpCj4gICAjZGVmaW5lIGFtZGdwdV9yaW5nX3BhdGNoX2NvbmRfZXhl YyhyLG8pIChyKS0+ZnVuY3MtPnBhdGNoX2NvbmRfZXhlYygociksKG8pKQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4gaW5kZXggMjBhMTk2Mi4uMjM4NmM3YiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4gQEAgLTg1MSw2ICs4NTEsMTQg QEAgc3RhdGljIGludCBhbWRncHVfY3NfaWJfZmlsbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKPiAgIAkJaWYgKHIpCj4gICAJCQlyZXR1cm4gcjsKPiAgIAo+ICsJCWlmIChpYi0+ZmxhZ3Mg JiBBTURHUFVfSUJfRkxBR19QUkVBTUJMRSkgewo+ICsJCQlwYXJzZXItPmpvYi0+cHJlYW1ibGVf c3RhdHVzIHw9IFBSRUFNQkxFX0lCX1BSRVNFTlQ7Cj4gKwkJCWlmICghcGFyc2VyLT5jdHgtPnBy ZWFtYmxlX3ByZXNlbnRlZCkgewo+ICsJCQkJcGFyc2VyLT5qb2ItPnByZWFtYmxlX3N0YXR1cyB8 PSBQUkVBTUJMRV9JQl9QUkVTRU5UX0ZJUlNUOwo+ICsJCQkJcGFyc2VyLT5jdHgtPnByZWFtYmxl X3ByZXNlbnRlZCA9IHRydWU7Cj4gKwkJCX0KPiArCQl9Cj4gKwo+ICAgCQlpZiAocGFyc2VyLT5q b2ItPnJpbmcgJiYgcGFyc2VyLT5qb2ItPnJpbmcgIT0gcmluZykKPiAgIAkJCXJldHVybiAtRUlO VkFMOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+IGluZGV4 IDIxYjhjZDYuLmU1NDA0OWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2Rydi5jCj4gQEAgLTU1LDYgKzU1LDcgQEAKPiAgICAqIC0gMy4zLjAgLSBBZGQgVk0gc3VwcG9y dCBmb3IgVVZEIG9uIHN1cHBvcnRlZCBoYXJkd2FyZS4KPiAgICAqIC0gMy40LjAgLSBBZGQgQU1E R1BVX0lORk9fTlVNX0VWSUNUSU9OUy4KPiAgICAqIC0gMy41LjAgLSBBZGQgc3VwcG9ydCBmb3Ig bmV3IFVWRF9OT19PUCByZWdpc3Rlci4KPiArICogLSAzLjYuMCAtIGttZCBpbnZvbHZlcyB1c2Ug Q09OVEVYVF9DT05UUk9MIGluIHJpbmcgYnVmZmVyLgo+ICAgICovCj4gICAjZGVmaW5lIEtNU19E UklWRVJfTUFKT1IJMwo+ICAgI2RlZmluZSBLTVNfRFJJVkVSX01JTk9SCTUKRm9yZ290IHRvIGNo YW5nZSBpdCB0byA2PwoKUmVnYXJkcywKRGF2aWQgWmhvdQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9pYi5jCj4gaW5kZXggMmZlMjY4Ni4uMWFmNTJiZSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jCj4gQEAgLTEyNSw2ICsxMjUsNyBAQCBpbnQgYW1k Z3B1X2liX3NjaGVkdWxlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdW5zaWduZWQgbnVtX2li cywKPiAgIAl1bnNpZ25lZCBwYXRjaF9vZmZzZXQgPSB+MDsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X3Zt ICp2bTsKPiAgIAl1aW50NjRfdCBmZW5jZV9jdHg7Cj4gKwl1aW50MzJfdCBzdGF0dXMgPSAwOwo+ ICAgCj4gICAJdW5zaWduZWQgaTsKPiAgIAlpbnQgciA9IDA7Cj4gQEAgLTE3NiwxMSArMTc3LDIw IEBAIGludCBhbWRncHVfaWJfc2NoZWR1bGUoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1bnNp Z25lZCBudW1faWJzLAo+ICAgCj4gICAJc2tpcF9wcmVhbWJsZSA9IHJpbmctPmN1cnJlbnRfY3R4 ID09IGZlbmNlX2N0eDsKPiAgIAluZWVkX2N0eF9zd2l0Y2ggPSByaW5nLT5jdXJyZW50X2N0eCAh PSBmZW5jZV9jdHg7Cj4gKwlpZiAoam9iICYmIHJpbmctPmZ1bmNzLT5lbWl0X2NudHhjbnRsKSB7 Cj4gKwkJaWYgKG5lZWRfY3R4X3N3aXRjaCkKPiArCQkJc3RhdHVzIHw9IEhBVkVfQ1RYX1NXSVRD SDsKPiArCQlzdGF0dXMgfD0gam9iLT5wcmVhbWJsZV9zdGF0dXM7Cj4gKwkJYW1kZ3B1X3Jpbmdf ZW1pdF9jbnR4Y250bChyaW5nLCBzdGF0dXMpOwo+ICsJfQo+ICsKPiAgIAlmb3IgKGkgPSAwOyBp IDwgbnVtX2liczsgKytpKSB7Cj4gICAJCWliID0gJmlic1tpXTsKPiAgIAo+ICAgCQkvKiBkcm9w IHByZWFtYmxlIElCcyBpZiB3ZSBkb24ndCBoYXZlIGEgY29udGV4dCBzd2l0Y2ggKi8KPiAtCQlp ZiAoKGliLT5mbGFncyAmIEFNREdQVV9JQl9GTEFHX1BSRUFNQkxFKSAmJiBza2lwX3ByZWFtYmxl KQo+ICsJCWlmICgoaWItPmZsYWdzICYgQU1ER1BVX0lCX0ZMQUdfUFJFQU1CTEUpICYmCj4gKwkJ CXNraXBfcHJlYW1ibGUgJiYKPiArCQkJIShzdGF0dXMgJiBQUkVBTUJMRV9JQl9QUkVTRU5UX0ZJ UlNUKSkKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCj4gICAJCWFtZGdwdV9yaW5nX2VtaXRfaWIocmlu ZywgaWIsIGpvYiA/IGpvYi0+dm1faWQgOiAwLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4 X3Y3XzAuYwo+IGluZGV4IDg0YWQxM2UuLjQxYjg2NTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92N18wLmMKPiBAQCAtMjA5Niw2ICsyMDk2LDI1IEBAIHN0YXRpYyB2b2lkIGdm eF92N18wX3JpbmdfZW1pdF9pYl9jb21wdXRlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKPiAg IAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBjb250cm9sKTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMg dm9pZCBnZnhfdjdfcmluZ19lbWl0X2NudHhjbnRsKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywg dWludDMyX3QgZmxhZ3MpCj4gK3sKPiArCXVpbnQzMl90IGR3MiA9IDA7Cj4gKwo+ICsJZHcyIHw9 IDB4ODAwMDAwMDA7IC8qIHNldCBsb2FkX2VuYWJsZSBvdGhlcndpc2UgdGhpcyBwYWNrYWdlIGlz IGp1c3QgTk9QcyAqLwo+ICsJaWYgKGZsYWdzICYgSEFWRV9DVFhfU1dJVENIKSB7Cj4gKwkJLyog c2V0IGxvYWRfZ2xvYmFsX2NvbmZpZyAmIGxvYWRfZ2xvYmFsX3Vjb25maWcgKi8KPiArCQlkdzIg fD0gMHg4MDAxOwo+ICsJCS8qIHNldCBsb2FkX2NzX3NoX3JlZ3MgKi8KPiArCQlkdzIgfD0gMHgw MTAwMDAwMDsKPiArCQkvKiBzZXQgbG9hZF9wZXJfY29udGV4dF9zdGF0ZSAmIGxvYWRfZ2Z4X3No X3JlZ3MgKi8KPiArCQlkdzIgfD0gMHgxMDAwMjsKPiArCX0KPiArCj4gKwlhbWRncHVfcmluZ193 cml0ZShyaW5nLCBQQUNLRVQzKFBBQ0tFVDNfQ09OVEVYVF9DT05UUk9MLCAxKSk7Cj4gKwlhbWRn cHVfcmluZ193cml0ZShyaW5nLCBkdzIpOwo+ICsJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgMCk7 Cj4gK30KPiArCj4gICAvKioKPiAgICAqIGdmeF92N18wX3JpbmdfdGVzdF9pYiAtIGJhc2ljIHJp bmcgSUIgdGVzdAo+ICAgICoKPiBAQCAtNDkzMCw2ICs0OTQ5LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBhbWRncHVfcmluZ19mdW5jcyBnZnhfdjdfMF9yaW5nX2Z1bmNzX2dmeCA9IHsKPiAgIAku dGVzdF9pYiA9IGdmeF92N18wX3JpbmdfdGVzdF9pYiwKPiAgIAkuaW5zZXJ0X25vcCA9IGFtZGdw dV9yaW5nX2luc2VydF9ub3AsCj4gICAJLnBhZF9pYiA9IGFtZGdwdV9yaW5nX2dlbmVyaWNfcGFk X2liLAo+ICsJLmVtaXRfY250eGNudGwgPSBnZnhfdjdfcmluZ19lbWl0X2NudHhjbnRsLAo+ICAg fTsKPiAgIAo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyBnZnhfdjdf MF9yaW5nX2Z1bmNzX2NvbXB1dGUgPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dmeF92OF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhf MC5jCj4gaW5kZXggMWFjOWVmNy4uMWJmOGM5ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ2Z4X3Y4XzAuYwo+IEBAIC02MDgwLDYgKzYwODAsMzUgQEAgc3RhdGljIHZvaWQgZ2Z4X3Y4 X3JpbmdfZW1pdF9zYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAJYW1kZ3B1X3Jpbmdf d3JpdGUocmluZywgMCk7Cj4gICB9Cj4gICAKPiArc3RhdGljIHZvaWQgZ2Z4X3Y4X3JpbmdfZW1p dF9jbnR4Y250bChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGZsYWdzKQo+ICt7 Cj4gKwl1aW50MzJfdCBkdzIgPSAwOwo+ICsKPiArCWR3MiB8PSAweDgwMDAwMDAwOyAvKiBzZXQg bG9hZF9lbmFibGUgb3RoZXJ3aXNlIHRoaXMgcGFja2FnZSBpcyBqdXN0IE5PUHMgKi8KPiArCWlm IChmbGFncyAmIEhBVkVfQ1RYX1NXSVRDSCkgewo+ICsJCS8qIHNldCBsb2FkX2dsb2JhbF9jb25m aWcgJiBsb2FkX2dsb2JhbF91Y29uZmlnICovCj4gKwkJZHcyIHw9IDB4ODAwMTsKPiArCQkvKiBz ZXQgbG9hZF9jc19zaF9yZWdzICovCj4gKwkJZHcyIHw9IDB4MDEwMDAwMDA7Cj4gKwkJLyogc2V0 IGxvYWRfcGVyX2NvbnRleHRfc3RhdGUgJiBsb2FkX2dmeF9zaF9yZWdzIGZvciBHRlggKi8KPiAr CQlkdzIgfD0gMHgxMDAwMjsKPiArCj4gKwkJLyogc2V0IGxvYWRfY2VfcmFtIGlmIHByZWFtYmxl IHByZXNlbnRlZCAqLwo+ICsJCWlmIChQUkVBTUJMRV9JQl9QUkVTRU5UICYgZmxhZ3MpCj4gKwkJ CWR3MiB8PSAweDEwMDAwMDAwOwo+ICsJfSBlbHNlIHsKPiArCQkvKiBzdGlsbCBsb2FkX2NlX3Jh bSBpZiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHByZWFtYmxlIHByZXNlbnRlZAo+ICsJCSAqIGFs dGhvdWdoIHRoZXJlIGlzIG5vIGNvbnRleHQgc3dpdGNoIGhhcHBlbnMuCj4gKwkJICovCj4gKwkJ aWYgKFBSRUFNQkxFX0lCX1BSRVNFTlRfRklSU1QgJiBmbGFncykKPiArCQkJZHcyIHw9IDB4MTAw MDAwMDA7Cj4gKwl9Cj4gKwo+ICsJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMyhQQUNL RVQzX0NPTlRFWFRfQ09OVFJPTCwgMSkpOwo+ICsJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgZHcy KTsKPiArCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIDApOwo+ICt9Cj4gKwo+ICAgc3RhdGljIHZv aWQgZ2Z4X3Y4XzBfc2V0X2dmeF9lb3BfaW50ZXJydXB0X3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAo+ICAgCQkJCQkJIGVudW0gYW1kZ3B1X2ludGVycnVwdF9zdGF0ZSBzdGF0ZSkK PiAgIHsKPiBAQCAtNjI2Miw2ICs2MjkxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVf cmluZ19mdW5jcyBnZnhfdjhfMF9yaW5nX2Z1bmNzX2dmeCA9IHsKPiAgIAkuaW5zZXJ0X25vcCA9 IGFtZGdwdV9yaW5nX2luc2VydF9ub3AsCj4gICAJLnBhZF9pYiA9IGFtZGdwdV9yaW5nX2dlbmVy aWNfcGFkX2liLAo+ICAgCS5lbWl0X3N3aXRjaF9idWZmZXIgPSBnZnhfdjhfcmluZ19lbWl0X3Ni LAo+ICsJLmVtaXRfY250eGNudGwgPSBnZnhfdjhfcmluZ19lbWl0X2NudHhjbnRsLAo+ICAgfTsK PiAgIAo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyBnZnhfdjhfMF9y aW5nX2Z1bmNzX2NvbXB1dGUgPSB7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ft ZC1nZngK