From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tuikov, Luben" Subject: Re: [PATCH] drm/amdgpu/psp: add psp memory training implementation(v3) Date: Wed, 16 Oct 2019 14:50:24 +0000 Message-ID: References: <20191016035644.15854-1-tianci.yin@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191016035644.15854-1-tianci.yin-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US Content-ID: <6350258F648E454DAF1446D422A47F21-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@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: "Yin, Tianci (Rico)" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Deucher, Alexander" , "Koenig, Christian" UmV2aWV3ZWQtYnk6IEx1YmVuIFR1aWtvdiA8bHViZW4udHVpa292QGFtZC5jb20+DQoNCk9uIDIw MTktMTAtMTUgMjM6NTYsIFRpYW5jaSBZaW4gd3JvdGU6DQo+IEZyb206ICJUaWFuY2kuWWluIiA8 dGlhbmNpLnlpbkBhbWQuY29tPg0KPiANCj4gYWRkIG1lbW9yeSB0cmFpbmluZyBpbXBsZW1lbnRh dGlvbiBjb2RlIHRvIHNhdmUgcmVzdW1lIHRpbWUuDQo+IA0KPiBDaGFuZ2UtSWQ6IEk2MjU3OTRh NzgwYjExZDgyNGFiNTdlZjM5Y2MzM2I4NzJjNmRjNmM5DQo+IFJldmlld2VkLWJ5OiBBbGV4IERl dWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFRpYW5j aS5ZaW4gPHRpYW5jaS55aW5AYW1kLmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHUuaCAgICAgfCAgIDEgKw0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2Rydi5jIHwgICA5ICsrDQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9w c3BfdjExXzAuYyAgfCAxNjEgKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICAzIGZpbGVzIGNo YW5nZWQsIDE3MSBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHUuaA0KPiBpbmRleCA4NzA0ZjkzY2FiZjIuLmMyYjc3NmZkODJiNSAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgNCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgNCj4gQEAgLTE1MSw2ICsxNTEsNyBAQCBleHRlcm4gdWlu dCBhbWRncHVfc2RtYV9waGFzZV9xdWFudHVtOw0KPiAgZXh0ZXJuIGNoYXIgKmFtZGdwdV9kaXNh YmxlX2N1Ow0KPiAgZXh0ZXJuIGNoYXIgKmFtZGdwdV92aXJ0dWFsX2Rpc3BsYXk7DQo+ICBleHRl cm4gdWludCBhbWRncHVfcHBfZmVhdHVyZV9tYXNrOw0KPiArZXh0ZXJuIHVpbnQgYW1kZ3B1X2Zv cmNlX2xvbmdfdHJhaW5pbmc7DQo+ICBleHRlcm4gaW50IGFtZGdwdV9qb2JfaGFuZ19saW1pdDsN Cj4gIGV4dGVybiBpbnQgYW1kZ3B1X2xicHc7DQo+ICBleHRlcm4gaW50IGFtZGdwdV9jb21wdXRl X211bHRpcGlwZTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYw0KPiBp bmRleCBkYTdjYmVlMjVjNjEuLmM3ZDA4NjU2OWFjYiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kcnYuYw0KPiBAQCAtMTI3LDYgKzEyNyw3IEBAIGNoYXIgKmFtZGdw dV9kaXNhYmxlX2N1ID0gTlVMTDsNCj4gIGNoYXIgKmFtZGdwdV92aXJ0dWFsX2Rpc3BsYXkgPSBO VUxMOw0KPiAgLyogT3ZlckRyaXZlKGJpdCAxNCkgZGlzYWJsZWQgYnkgZGVmYXVsdCovDQo+ICB1 aW50IGFtZGdwdV9wcF9mZWF0dXJlX21hc2sgPSAweGZmZmZiZmZmOw0KPiArdWludCBhbWRncHVf Zm9yY2VfbG9uZ190cmFpbmluZyA9IDA7DQo+ICBpbnQgYW1kZ3B1X2pvYl9oYW5nX2xpbWl0ID0g MDsNCj4gIGludCBhbWRncHVfbGJwdyA9IC0xOw0KPiAgaW50IGFtZGdwdV9jb21wdXRlX211bHRp cGlwZSA9IC0xOw0KPiBAQCAtMzkwLDYgKzM5MSwxNCBAQCBtb2R1bGVfcGFyYW1fbmFtZWQoc2No ZWRfaHdfc3VibWlzc2lvbiwgYW1kZ3B1X3NjaGVkX2h3X3N1Ym1pc3Npb24sIGludCwgMDQ0NCk7 DQo+ICBNT0RVTEVfUEFSTV9ERVNDKHBwZmVhdHVyZW1hc2ssICJhbGwgcG93ZXIgZmVhdHVyZXMg ZW5hYmxlZCAoZGVmYXVsdCkpIik7DQo+ICBtb2R1bGVfcGFyYW1fbmFtZWQocHBmZWF0dXJlbWFz aywgYW1kZ3B1X3BwX2ZlYXR1cmVfbWFzaywgdWludCwgMDQ0NCk7DQo+ICANCj4gKy8qKg0KPiAr ICogRE9DOiBmb3JjZWxvbmd0cmFpbmluZyAodWludCkNCj4gKyAqIEZvcmNlIGxvbmcgbWVtb3J5 IHRyYWluaW5nIGluIHJlc3VtZS4NCj4gKyAqIFRoZSBkZWZhdWx0IGlzIHplcm8sIGluZGljYXRl cyBzaG9ydCB0cmFpbmluZyBpbiByZXN1bWUuDQo+ICsgKi8NCj4gK01PRFVMRV9QQVJNX0RFU0Mo Zm9yY2Vsb25ndHJhaW5pbmcsICJmb3JjZSBtZW1vcnkgbG9uZyB0cmFpbmluZyIpOw0KPiArbW9k dWxlX3BhcmFtX25hbWVkKGZvcmNlbG9uZ3RyYWluaW5nLCBhbWRncHVfZm9yY2VfbG9uZ190cmFp bmluZywgdWludCwgMDQ0NCk7DQo+ICsNCj4gIC8qKg0KPiAgICogRE9DOiBwY2llX2dlbl9jYXAg KHVpbnQpDQo+ICAgKiBPdmVycmlkZSBQQ0lFIGdlbiBzcGVlZCBjYXBhYmlsaXRpZXMuIFNlZSB0 aGUgQ0FJTCBmbGFncyBpbiBkcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYW1kX3BjaWUuaC4N Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3BzcF92MTFfMC5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMV8wLmMNCj4gaW5kZXggMmJhMGY2OGNl ZDEwLi4xOTMzOWRlMGNmMTIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L3BzcF92MTFfMC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3BzcF92 MTFfMC5jDQo+IEBAIC01OCw2ICs1OCw4IEBAIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L2FyY3R1 cnVzX3RhLmJpbiIpOw0KPiAgI2RlZmluZSBtbVJMQ19HUE1fVUNPREVfREFUQV9OVjEwCTB4NWI2 Mg0KPiAgI2RlZmluZSBtbVNETUEwX1VDT0RFX0FERFJfTlYxMAkJMHg1ODgwDQo+ICAjZGVmaW5l IG1tU0RNQTBfVUNPREVfREFUQV9OVjEwCQkweDU4ODENCj4gKy8qIG1lbW9yeSB0cmFpbmluZyB0 aW1lb3V0IGRlZmluZSAqLw0KPiArI2RlZmluZSBNRU1fVFJBSU5fU0VORF9NU0dfVElNRU9VVF9V UwkzMDAwMDAwDQo+ICANCj4gIHN0YXRpYyBpbnQgcHNwX3YxMV8wX2luaXRfbWljcm9jb2RlKHN0 cnVjdCBwc3BfY29udGV4dCAqcHNwKQ0KPiAgew0KPiBAQCAtOTAyLDYgKzkwNCwxNjIgQEAgc3Rh dGljIGludCBwc3BfdjExXzBfcmxjX2F1dG9sb2FkX3N0YXJ0KHN0cnVjdCBwc3BfY29udGV4dCAq cHNwKQ0KPiAgCXJldHVybiBwc3BfcmxjX2F1dG9sb2FkX3N0YXJ0KHBzcCk7DQo+ICB9DQo+ICAN Cj4gK3N0YXRpYyBpbnQgcHNwX3YxMV8wX21lbW9yeV90cmFpbmluZ19zZW5kX21zZyhzdHJ1Y3Qg cHNwX2NvbnRleHQgKnBzcCwgaW50IG1zZykNCj4gK3sNCj4gKwlpbnQgcmV0Ow0KPiArCWludCBp Ow0KPiArCXVpbnQzMl90IGRhdGFfMzI7DQo+ICsJaW50IG1heF93YWl0Ow0KPiArCXN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2ID0gcHNwLT5hZGV2Ow0KPiArDQo+ICsJZGF0YV8zMiA9IChwc3At Pm1lbV90cmFpbl9jdHguYzJwX3RyYWluX2RhdGFfb2Zmc2V0ID4+IDIwKTsNCj4gKwlXUkVHMzJf U09DMTUoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzM2LCBkYXRhXzMyKTsNCj4gKwlXUkVHMzJf U09DMTUoTVAwLCAwLCBtbU1QMF9TTU5fQzJQTVNHXzM1LCBtc2cpOw0KPiArDQo+ICsJbWF4X3dh aXQgPSBNRU1fVFJBSU5fU0VORF9NU0dfVElNRU9VVF9VUyAvIGFkZXYtPnVzZWNfdGltZW91dDsN Cj4gKwlmb3IgKGkgPSAwOyBpIDwgbWF4X3dhaXQ7IGkrKykgew0KPiArCQlyZXQgPSBwc3Bfd2Fp dF9mb3IocHNwLCBTT0MxNV9SRUdfT0ZGU0VUKE1QMCwgMCwgbW1NUDBfU01OX0MyUE1TR18zNSks DQo+ICsJCQkJICAgMHg4MDAwMDAwMCwgMHg4MDAwMDAwMCwgZmFsc2UpOw0KPiArCQlpZiAocmV0 ID09IDApDQo+ICsJCQlicmVhazsNCj4gKwl9DQo+ICsJaWYgKGkgPCBtYXhfd2FpdCkNCj4gKwkJ cmV0ID0gMDsNCj4gKwllbHNlDQo+ICsJCXJldCA9IC1FVElNRTsNCj4gKw0KPiArCURSTV9ERUJV RygiJXMgdHJhaW5pbmcgJXMsIGNvc3QgJWQgKiAlZG1zLlxuIiwNCj4gKwkJICAobXNnID09IFBT UF9CTF9fRFJBTV9TSE9SVF9UUkFJTikgPyAic2hvcnQiIDogImxvbmciLA0KPiArCQkgIChyZXQg PT0gMCkgPyAic3VjY2VlZCIgOiAiZmFpbGVkIiwNCj4gKwkJICBpLCBhZGV2LT51c2VjX3RpbWVv dXQvMTAwMCk7DQo+ICsJcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcHNw X3YxMV8wX21lbW9yeV90cmFpbmluZ19maW5pKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQ0KPiAr ew0KPiArCXN0cnVjdCBwc3BfbWVtb3J5X3RyYWluaW5nX2NvbnRleHQgKmN0eCA9ICZwc3AtPm1l bV90cmFpbl9jdHg7DQo+ICsNCj4gKwljdHgtPmluaXQgPSBQU1BfTUVNX1RSQUlOX05PVF9TVVBQ T1JUOw0KPiArCWtmcmVlKGN0eC0+c3lzX2NhY2hlKTsNCj4gKwljdHgtPnN5c19jYWNoZSA9IE5V TEw7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgcHNwX3YxMV8wX21lbW9yeV90cmFpbmluZ19p bml0KHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQ0KPiArew0KPiArCWludCByZXQ7DQo+ICsJc3Ry dWN0IHBzcF9tZW1vcnlfdHJhaW5pbmdfY29udGV4dCAqY3R4ID0gJnBzcC0+bWVtX3RyYWluX2N0 eDsNCj4gKw0KPiArCWlmIChjdHgtPmluaXQgIT0gUFNQX01FTV9UUkFJTl9SRVNFUlZFX1NVQ0NF U1MpIHsNCj4gKwkJRFJNX0RFQlVHKCJtZW1vcnkgdHJhaW5pbmcgaXMgbm90IHN1cHBvcnRlZCFc biIpOw0KPiArCQlyZXR1cm4gMDsNCj4gKwl9DQo+ICsNCj4gKwljdHgtPnN5c19jYWNoZSA9IGt6 YWxsb2MoY3R4LT50cmFpbl9kYXRhX3NpemUsIEdGUF9LRVJORUwpOw0KPiArCWlmIChjdHgtPnN5 c19jYWNoZSA9PSBOVUxMKSB7DQo+ICsJCURSTV9FUlJPUigiYWxsb2MgbWVtX3RyYWluX2N0eC5z eXNfY2FjaGUgZmFpbGVkIVxuIik7DQo+ICsJCXJldCA9IC1FTk9NRU07DQo+ICsJCWdvdG8gRXJy X291dDsNCj4gKwl9DQo+ICsNCj4gKwlEUk1fREVCVUcoInRyYWluX2RhdGFfc2l6ZTolbGx4LHAy Y190cmFpbl9kYXRhX29mZnNldDolbGx4LGMycF90cmFpbl9kYXRhX29mZnNldDolbGx4LlxuIiwN Cj4gKwkJICBjdHgtPnRyYWluX2RhdGFfc2l6ZSwNCj4gKwkJICBjdHgtPnAyY190cmFpbl9kYXRh X29mZnNldCwNCj4gKwkJICBjdHgtPmMycF90cmFpbl9kYXRhX29mZnNldCk7DQo+ICsJY3R4LT5p bml0ID0gUFNQX01FTV9UUkFJTl9JTklUX1NVQ0NFU1M7DQo+ICsJcmV0dXJuIDA7DQo+ICsNCj4g K0Vycl9vdXQ6DQo+ICsJcHNwX3YxMV8wX21lbW9yeV90cmFpbmluZ19maW5pKHBzcCk7DQo+ICsJ cmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyAqIHNhdmUgYW5kIHJlc3RvcmUgcHJv Y2VzDQo+ICsgKi8NCj4gK3N0YXRpYyBpbnQgcHNwX3YxMV8wX21lbW9yeV90cmFpbmluZyhzdHJ1 Y3QgcHNwX2NvbnRleHQgKnBzcCwgdWludDMyX3Qgb3BzKQ0KPiArew0KPiArCWludCByZXQ7DQo+ ICsJdWludDMyX3QgcDJjX2hlYWRlcls0XTsNCj4gKwlzdHJ1Y3QgcHNwX21lbW9yeV90cmFpbmlu Z19jb250ZXh0ICpjdHggPSAmcHNwLT5tZW1fdHJhaW5fY3R4Ow0KPiArCXVpbnQzMl90ICpwY2Fj aGUgPSAodWludDMyX3QqKWN0eC0+c3lzX2NhY2hlOw0KPiArDQo+ICsJaWYgKGN0eC0+aW5pdCA9 PSBQU1BfTUVNX1RSQUlOX05PVF9TVVBQT1JUKSB7DQo+ICsJCURSTV9ERUJVRygiTWVtb3J5IHRy YWluaW5nIGlzIG5vdCBzdXBwb3J0ZWQuXG4iKTsNCj4gKwkJcmV0dXJuIDA7DQo+ICsJfSBlbHNl IGlmIChjdHgtPmluaXQgIT0gUFNQX01FTV9UUkFJTl9JTklUX1NVQ0NFU1MpIHsNCj4gKwkJRFJN X0VSUk9SKCJNZW1vcnkgdHJhaW5pbmcgaW5pdGlhbGl6YXRpb24gZmFpbHVyZS5cbiIpOw0KPiAr CQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9DQo+ICsNCj4gKwlpZiAocHNwX3YxMV8wX2lzX3Nvc19h bGl2ZShwc3ApKSB7DQo+ICsJCURSTV9ERUJVRygiU09TIGlzIGFsaXZlLCBza2lwIG1lbW9yeSB0 cmFpbmluZy5cbiIpOw0KPiArCQlyZXR1cm4gMDsNCj4gKwl9DQo+ICsNCj4gKwlhbWRncHVfZGV2 aWNlX3ZyYW1fYWNjZXNzKHBzcC0+YWRldiwgY3R4LT5wMmNfdHJhaW5fZGF0YV9vZmZzZXQsIHAy Y19oZWFkZXIsIHNpemVvZihwMmNfaGVhZGVyKSwgZmFsc2UpOw0KPiArCURSTV9ERUJVRygic3lz X2NhY2hlWyUwOHgsJTA4eCwlMDh4LCUwOHhdIHAyY19oZWFkZXJbJTA4eCwlMDh4LCUwOHgsJTA4 eF1cbiIsDQo+ICsJCSAgcGNhY2hlWzBdLCBwY2FjaGVbMV0sIHBjYWNoZVsyXSwgcGNhY2hlWzNd LA0KPiArCQkgIHAyY19oZWFkZXJbMF0sIHAyY19oZWFkZXJbMV0sIHAyY19oZWFkZXJbMl0sIHAy Y19oZWFkZXJbM10pOw0KPiArDQo+ICsJaWYgKG9wcyAmIFBTUF9NRU1fVFJBSU5fU0VORF9TSE9S VF9NU0cpIHsNCj4gKwkJRFJNX0RFQlVHKCJTaG9ydCB0cmFpbmluZyBkZXBlbmRzIG9uIHJlc3Rv cmUuXG4iKTsNCj4gKwkJb3BzIHw9IFBTUF9NRU1fVFJBSU5fUkVTVE9SRTsNCj4gKwl9DQo+ICsN Cj4gKwlpZiAoKG9wcyAmIFBTUF9NRU1fVFJBSU5fUkVTVE9SRSkgJiYNCj4gKwkgICAgcGNhY2hl WzBdICE9IE1FTV9UUkFJTl9TWVNURU1fU0lHTkFUVVJFKSB7DQo+ICsJCURSTV9ERUJVRygic3lz X2NhY2hlWzBdIGlzIGludmFsaWQsIHJlc3RvcmUgZGVwZW5kcyBvbiBzYXZlLlxuIik7DQo+ICsJ CW9wcyB8PSBQU1BfTUVNX1RSQUlOX1NBVkU7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKHAyY19oZWFk ZXJbMF0gPT0gTUVNX1RSQUlOX1NZU1RFTV9TSUdOQVRVUkUgJiYNCj4gKwkgICAgIShwY2FjaGVb MF0gPT0gTUVNX1RSQUlOX1NZU1RFTV9TSUdOQVRVUkUgJiYNCj4gKwkgICAgICBwY2FjaGVbM10g PT0gcDJjX2hlYWRlclszXSkpIHsNCj4gKwkJRFJNX0RFQlVHKCJzeXNfY2FjaGUgaXMgaW52YWxp ZCBvciBvdXQtb2YtZGF0ZSwgbmVlZCBzYXZlIHRyYWluaW5nIGRhdGEgdG8gc3lzX2NhY2hlLlxu Iik7DQo+ICsJCW9wcyB8PSBQU1BfTUVNX1RSQUlOX1NBVkU7DQo+ICsJfQ0KPiArDQo+ICsJaWYg KChvcHMgJiBQU1BfTUVNX1RSQUlOX1NBVkUpICYmDQo+ICsJICAgIHAyY19oZWFkZXJbMF0gIT0g TUVNX1RSQUlOX1NZU1RFTV9TSUdOQVRVUkUpIHsNCj4gKwkJRFJNX0RFQlVHKCJwMmNfaGVhZGVy WzBdIGlzIGludmFsaWQsIHNhdmUgZGVwZW5kcyBvbiBsb25nIHRyYWluaW5nLlxuIik7DQo+ICsJ CW9wcyB8PSBQU1BfTUVNX1RSQUlOX1NFTkRfTE9OR19NU0c7DQo+ICsJfQ0KPiArDQo+ICsJaWYg KG9wcyAmIFBTUF9NRU1fVFJBSU5fU0VORF9MT05HX01TRykgew0KPiArCQlvcHMgJj0gflBTUF9N RU1fVFJBSU5fU0VORF9TSE9SVF9NU0c7DQo+ICsJCW9wcyB8PSBQU1BfTUVNX1RSQUlOX1NBVkU7 DQo+ICsJfQ0KPiArDQo+ICsJRFJNX0RFQlVHKCJNZW1vcnkgdHJhaW5pbmcgb3BzOiV4LlxuIiwg b3BzKTsNCj4gKw0KPiArCWlmIChvcHMgJiBQU1BfTUVNX1RSQUlOX1NFTkRfTE9OR19NU0cpIHsN Cj4gKwkJcmV0ID0gcHNwX3YxMV8wX21lbW9yeV90cmFpbmluZ19zZW5kX21zZyhwc3AsIFBTUF9C TF9fRFJBTV9MT05HX1RSQUlOKTsNCj4gKwkJaWYgKHJldCkgew0KPiArCQkJRFJNX0VSUk9SKCJT ZW5kIGxvbmcgdHJhaW5pbmcgbXNnIGZhaWxlZC5cbiIpOw0KPiArCQkJcmV0dXJuIHJldDsNCj4g KwkJfQ0KPiArCX0NCj4gKw0KPiArCWlmIChvcHMgJiBQU1BfTUVNX1RSQUlOX1NBVkUpIHsNCj4g KwkJYW1kZ3B1X2RldmljZV92cmFtX2FjY2Vzcyhwc3AtPmFkZXYsIGN0eC0+cDJjX3RyYWluX2Rh dGFfb2Zmc2V0LCBjdHgtPnN5c19jYWNoZSwgY3R4LT50cmFpbl9kYXRhX3NpemUsIGZhbHNlKTsN Cj4gKwl9DQo+ICsNCj4gKwlpZiAob3BzICYgUFNQX01FTV9UUkFJTl9SRVNUT1JFKSB7DQo+ICsJ CWFtZGdwdV9kZXZpY2VfdnJhbV9hY2Nlc3MocHNwLT5hZGV2LCBjdHgtPmMycF90cmFpbl9kYXRh X29mZnNldCwgY3R4LT5zeXNfY2FjaGUsIGN0eC0+dHJhaW5fZGF0YV9zaXplLCB0cnVlKTsNCj4g Kwl9DQo+ICsNCj4gKwlpZiAob3BzICYgUFNQX01FTV9UUkFJTl9TRU5EX1NIT1JUX01TRykgew0K PiArCQlyZXQgPSBwc3BfdjExXzBfbWVtb3J5X3RyYWluaW5nX3NlbmRfbXNnKHBzcCwgKGFtZGdw dV9mb3JjZV9sb25nX3RyYWluaW5nID4gMCkgPw0KPiArCQkJCQkJCSBQU1BfQkxfX0RSQU1fTE9O R19UUkFJTiA6IFBTUF9CTF9fRFJBTV9TSE9SVF9UUkFJTik7DQo+ICsJCWlmIChyZXQpIHsNCj4g KwkJCURSTV9FUlJPUigic2VuZCB0cmFpbmluZyBtc2cgZmFpbGVkLlxuIik7DQo+ICsJCQlyZXR1 cm4gcmV0Ow0KPiArCQl9DQo+ICsJfQ0KPiArCWN0eC0+dHJhaW5pbmdfY250Kys7DQo+ICsJcmV0 dXJuIDA7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHNwX2Z1bmNzIHBzcF92 MTFfMF9mdW5jcyA9IHsNCj4gIAkuaW5pdF9taWNyb2NvZGUgPSBwc3BfdjExXzBfaW5pdF9taWNy b2NvZGUsDQo+ICAJLmJvb3Rsb2FkZXJfbG9hZF9rZGIgPSBwc3BfdjExXzBfYm9vdGxvYWRlcl9s b2FkX2tkYiwNCj4gQEAgLTkyMiw2ICsxMDgwLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwc3Bf ZnVuY3MgcHNwX3YxMV8wX2Z1bmNzID0gew0KPiAgCS5yYXNfdHJpZ2dlcl9lcnJvciA9IHBzcF92 MTFfMF9yYXNfdHJpZ2dlcl9lcnJvciwNCj4gIAkucmFzX2N1cmVfcG9zaW9uID0gcHNwX3YxMV8w X3Jhc19jdXJlX3Bvc2lvbiwNCj4gIAkucmxjX2F1dG9sb2FkX3N0YXJ0ID0gcHNwX3YxMV8wX3Js Y19hdXRvbG9hZF9zdGFydCwNCj4gKwkubWVtX3RyYWluaW5nX2luaXQgPSBwc3BfdjExXzBfbWVt b3J5X3RyYWluaW5nX2luaXQsDQo+ICsJLm1lbV90cmFpbmluZ19maW5pID0gcHNwX3YxMV8wX21l bW9yeV90cmFpbmluZ19maW5pLA0KPiArCS5tZW1fdHJhaW5pbmcgPSBwc3BfdjExXzBfbWVtb3J5 X3RyYWluaW5nLA0KPiAgfTsNCj4gIA0KPiAgdm9pZCBwc3BfdjExXzBfc2V0X3BzcF9mdW5jcyhz dHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkNCj4gDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vYW1kLWdmeA==