From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yu, Xiangliang" Subject: RE: [V2 04/11] drm/amdgpu/virt: use kiq to access registers Date: Tue, 10 Jan 2017 14:01:34 +0000 Message-ID: References: <1484042450-22987-1-git-send-email-Xiangliang.Yu@amd.com> <1484042450-22987-5-git-send-email-Xiangliang.Yu@amd.com> <35600919-5cd3-4920-f2dd-db0e0620e3fa@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <35600919-5cd3-4920-f2dd-db0e0620e3fa-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org> Content-Language: en-US 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: =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaHJpc3RpYW4gS8O2bmlnIFtt YWlsdG86ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGVdDQo+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkg MTAsIDIwMTcgOTowOSBQTQ0KPiBUbzogWXUsIFhpYW5nbGlhbmcgPFhpYW5nbGlhbmcuWXVAYW1k LmNvbT47IGFtZC0NCj4gZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBTdWJqZWN0OiBSZTog W1YyIDA0LzExXSBkcm0vYW1kZ3B1L3ZpcnQ6IHVzZSBraXEgdG8gYWNjZXNzIHJlZ2lzdGVycw0K PiANCj4gQW0gMTAuMDEuMjAxNyB1bSAxMTowMCBzY2hyaWViIFhpYW5nbGlhbmcgWXU6DQo+ID4g Rm9yIHZpcnR1YWxpemF0aW9uLCBpdCBpcyBtdXN0IGZvciBkcml2ZXIgdG8gdXNlIEtJUSB0byBh Y2Nlc3MNCj4gPiByZWdpc3RlcnMgd2hlbiBpdCBpcyBvdXQgb2YgR1BVIGZ1bGwgYWNjZXNzIG1v ZGUuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBYaWFuZ2xpYW5nIFl1IDxYaWFuZ2xpYW5nLll1 QGFtZC5jb20+DQo+ID4gLS0tDQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtl ZmlsZSAgICAgICAgfCAgMiArLQ0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2RldmljZS5jIHwgIDYgKysrDQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdmlydC5jICAgfCA4Ng0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4g PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmggICB8ICA1ICsrDQo+ ID4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92aS5jICAgICAgICAgICAgfCAgMyArKw0K PiA+ICAgNSBmaWxlcyBjaGFuZ2VkLCAxMDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0K PiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92aXJ0LmMNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9NYWtlZmlsZQ0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUNCj4g PiBpbmRleCA0MTg1YjAzLi4wYjhlNDcwIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L01ha2VmaWxlDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvTWFrZWZpbGUNCj4gPiBAQCAtMzAsNyArMzAsNyBAQCBhbWRncHUteSArPSBhbWRncHVfZGV2 aWNlLm8gYW1kZ3B1X2ttcy5vIFwNCj4gPiAgIAlhdG9tYmlvc19lbmNvZGVycy5vIGFtZGdwdV9z YS5vIGF0b21iaW9zX2kyYy5vIFwNCj4gPiAgIAlhbWRncHVfcHJpbWUubyBhbWRncHVfdm0ubyBh bWRncHVfaWIubyBhbWRncHVfcGxsLm8gXA0KPiA+ICAgCWFtZGdwdV91Y29kZS5vIGFtZGdwdV9i b19saXN0Lm8gYW1kZ3B1X2N0eC5vIGFtZGdwdV9zeW5jLm8gXA0KPiA+IC0JYW1kZ3B1X2d0dF9t Z3IubyBhbWRncHVfdnJhbV9tZ3Iubw0KPiA+ICsJYW1kZ3B1X2d0dF9tZ3IubyBhbWRncHVfdnJh bV9tZ3IubyBhbWRncHVfdmlydC5vDQo+ID4NCj4gPiAgICMgYWRkIGFzaWMgc3BlY2lmaWMgYmxv Y2sNCj4gPiAgIGFtZGdwdS0kKENPTkZJR19EUk1fQU1ER1BVX0NJSykrPSBjaWsubyBjaWtfaWgu byBrdl9zbWMubw0KPiBrdl9kcG0ubyBcDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYw0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2RldmljZS5jDQo+ID4gaW5kZXggZjgyOTE5ZC4uOWEyZmQzZSAxMDA2NDQN Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4gPiBA QCAtOTUsNiArOTUsOSBAQCB1aW50MzJfdCBhbWRncHVfbW1fcnJlZyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZQ0KPiAqYWRldiwgdWludDMyX3QgcmVnLA0KPiA+ICAgew0KPiA+ICAgCXVpbnQzMl90IHJl dDsNCj4gPg0KPiA+ICsJaWYgKGFtZGdwdV9zcmlvdl9ydW50aW1lKGFkZXYpICYmICFpbl9pbnRl cnJ1cHQoKSkNCj4gPiArCQlyZXR1cm4gYW1kZ3B1X3ZpcnRfa2lxX3JyZWcoYWRldiwgcmVnKTsN Cj4gPiArDQo+ID4gICAJaWYgKChyZWcgKiA0KSA8IGFkZXYtPnJtbWlvX3NpemUgJiYgIWFsd2F5 c19pbmRpcmVjdCkNCj4gPiAgIAkJcmV0ID0gcmVhZGwoKCh2b2lkIF9faW9tZW0gKilhZGV2LT5y bW1pbykgKyAocmVnICogNCkpOw0KPiA+ICAgCWVsc2Ugew0KPiA+IEBAIC0xMTQsNiArMTE3LDkg QEAgdm9pZCBhbWRncHVfbW1fd3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZQ0KPiAqYWRldiwgdWlu dDMyX3QgcmVnLCB1aW50MzJfdCB2LA0KPiA+ICAgew0KPiA+ICAgCXRyYWNlX2FtZGdwdV9tbV93 cmVnKGFkZXYtPnBkZXYtPmRldmljZSwgcmVnLCB2KTsNCj4gPg0KPiA+ICsJaWYgKGFtZGdwdV9z cmlvdl9ydW50aW1lKGFkZXYpKQ0KPiA+ICsJCXJldHVybiBhbWRncHVfdmlydF9raXFfd3JlZyhh ZGV2LCByZWcsIHYpOw0KPiA+ICsNCj4gPiAgIAlpZiAoKHJlZyAqIDQpIDwgYWRldi0+cm1taW9f c2l6ZSAmJiAhYWx3YXlzX2luZGlyZWN0KQ0KPiA+ICAgCQl3cml0ZWwodiwgKCh2b2lkIF9faW9t ZW0gKilhZGV2LT5ybW1pbykgKyAocmVnICogNCkpOw0KPiA+ICAgCWVsc2Ugew0KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jDQo+ID4gYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jDQo+ID4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi42NTIwYTRlDQo+ID4gLS0tIC9kZXYvbnVsbA0K PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMNCj4gPiBA QCAtMCwwICsxLDg2IEBADQo+ID4gKy8qDQo+ID4gKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2Vk IE1pY3JvIERldmljZXMsIEluYy4NCj4gPiArICoNCj4gPiArICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24NCj4gPiArb2J0YWluaW5n IGENCj4gPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZQ0KPiA+ICsiU29mdHdhcmUiKSwNCj4gPiArICogdG8gZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQNCj4gPiAr bGltaXRhdGlvbg0KPiA+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwNCj4gPiArc3VibGljZW5zZSwNCj4gPiArICogYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20NCj4gPiArdGhlDQo+ID4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6DQo+ID4gKyAqDQo+ID4gKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl DQo+ID4gK2luY2x1ZGVkIGluDQo+ID4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y dGlvbnMgb2YgdGhlIFNvZnR3YXJlLg0KPiA+ICsgKg0KPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkNCj4gS0lORCwNCj4gPiAr RVhQUkVTUyBPUg0KPiA+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTIE9GDQo+ID4gK01FUkNIQU5UQUJJTElUWSwNCj4gPiArICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElODQo+IE5P IEVWRU5UDQo+ID4gK1NIQUxMDQo+ID4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFV VEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwNCj4gPiArREFNQUdFUyBPUg0KPiA+ICsg KiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SDQo+ID4gK09USEVSV0lTRSwNCj4gPiArICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUg0KPiBUSEUgVVNFDQo+ID4gK09SDQo+ID4g KyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4NCj4gPiArICovDQo+ID4gKw0KPiA+ ICsjaW5jbHVkZSAiYW1kZ3B1LmgiDQo+ID4gKyNpbmNsdWRlICJhbWRncHVfdmlydC5oIg0KPiA+ ICsNCj4gPiArdm9pZCBhbWRncHVfdmlydF9pbml0X3NldHRpbmcoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpIHsNCj4gPiArCW11dGV4X2luaXQoJmFkZXYtPnZpcnQubG9jayk7DQo+ID4gK30N Cj4gPiArDQo+ID4gK3VpbnQzMl90IGFtZGdwdV92aXJ0X2tpcV9ycmVnKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LCB1aW50MzJfdA0KPiA+ICtyZWcpIHsNCj4gPiArCXNpZ25lZCBsb25nIHI7 DQo+ID4gKwl1aW50MzJfdCB2YWw7DQo+ID4gKwlzdHJ1Y3QgZmVuY2UgKmY7DQo+ID4gKwlzdHJ1 Y3QgYW1kZ3B1X2tpcSAqa2lxID0gJmFkZXYtPmdmeC5raXE7DQo+ID4gKwlzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcgPSAma2lxLT5yaW5nOw0KPiA+ICsNCj4gPiArCUJVR19PTighcmluZy0+ZnVu Y3MtPmVtaXRfcnJlZyk7DQo+ID4gKw0KPiA+ICsJbXV0ZXhfbG9jaygmYWRldi0+dmlydC5sb2Nr KTsNCj4gPiArCWFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDMyKTsNCj4gPiArCWFtZGdwdV9yaW5n X2VtaXRfaGRwX2ZsdXNoKHJpbmcpOw0KPiA+ICsJYW1kZ3B1X3JpbmdfZW1pdF9ycmVnKHJpbmcs IHJlZyk7DQo+ID4gKwlhbWRncHVfcmluZ19lbWl0X2hkcF9pbnZhbGlkYXRlKHJpbmcpOw0KPiA+ ICsJYW1kZ3B1X2ZlbmNlX2VtaXQocmluZywgJmYpOw0KPiA+ICsJZmVuY2VfZ2V0KGYpOw0KPiA+ ICsJYW1kZ3B1X3JpbmdfY29tbWl0KHJpbmcpOw0KPiA+ICsJbXV0ZXhfdW5sb2NrKCZhZGV2LT52 aXJ0LmxvY2spOw0KPiA+ICsNCj4gPiArCXIgPSBmZW5jZV93YWl0KGYsIGZhbHNlKTsNCj4gPiAr CWZlbmNlX3B1dChmKTsNCj4gDQo+IFdoeSBkbyB5b3UgZ3JhYiBhbmQgcmVsZWFzZSBhbiBleHRy YSBmZW5jZSByZWZlcmVuY2UgaGVyZT8NCg0KS0lRIHJpbmcgaGFzIG5vIHNjaGVkdWxlciwgSSB0 aGluayB3ZSBuZWVkIHRvIHRha2UgY2FyZSBmZW5jZS4NCg0KPiANCj4gPiArCWlmIChyKQ0KPiA+ ICsJCURSTV9FUlJPUigid2FpdCBmb3Iga2lxIGZlbmNlIGVycm9yOiAlbGQuXG4iLCByKTsNCj4g PiArCWZlbmNlX3B1dChmKTsNCj4gPiArDQo+ID4gKwl2YWwgPSBhZGV2LT53Yi53YlthZGV2LT52 aXJ0LnZhbF9vZmZzXTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gdmFsOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICt2b2lkIGFtZGdwdV92aXJ0X2tpcV93cmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LCB1aW50MzJfdCByZWcsDQo+ID4gK3VpbnQzMl90IHYpIHsNCj4gPiArCXNpZ25lZCBsb25nIHI7 DQo+ID4gKwlzdHJ1Y3QgZmVuY2UgKmY7DQo+ID4gKwlzdHJ1Y3QgYW1kZ3B1X2tpcSAqa2lxID0g JmFkZXYtPmdmeC5raXE7DQo+ID4gKwlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAma2lxLT5y aW5nOw0KPiA+ICsNCj4gPiArCUJVR19PTighcmluZy0+ZnVuY3MtPmVtaXRfd3JlZyk7DQo+ID4g Kw0KPiA+ICsJbXV0ZXhfbG9jaygmYWRldi0+dmlydC5sb2NrKTsNCj4gPiArCWFtZGdwdV9yaW5n X2FsbG9jKHJpbmcsIDMyKTsNCj4gPiArCWFtZGdwdV9yaW5nX2VtaXRfaGRwX2ZsdXNoKHJpbmcp Ow0KPiA+ICsJYW1kZ3B1X3JpbmdfZW1pdF93cmVnKHJpbmcsIHJlZywgdik7DQo+ID4gKwlhbWRn cHVfcmluZ19lbWl0X2hkcF9pbnZhbGlkYXRlKHJpbmcpOw0KPiA+ICsJYW1kZ3B1X2ZlbmNlX2Vt aXQocmluZywgJmYpOw0KPiA+ICsJZmVuY2VfZ2V0KGYpOw0KPiA+ICsJYW1kZ3B1X3JpbmdfY29t bWl0KHJpbmcpOw0KPiA+ICsJbXV0ZXhfdW5sb2NrKCZhZGV2LT52aXJ0LmxvY2spOw0KPiA+ICsN Cj4gPiArCXIgPSBmZW5jZV93YWl0KGYsIGZhbHNlKTsNCj4gPiArCWZlbmNlX3B1dChmKTsNCj4g PiArCWlmIChyKQ0KPiA+ICsJCURSTV9FUlJPUigid2FpdCBmb3Iga2lxIGZlbmNlIGVycm9yOiAl bGQuXG4iLCByKTsNCj4gPiArCWZlbmNlX3B1dChmKTsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oDQo+ID4gYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oDQo+ID4gaW5kZXggNzk2MTliNi4uMjRm MDU5MCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dmlydC5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQu aA0KPiA+IEBAIC0zMyw2ICszMyw3IEBADQo+ID4gICBzdHJ1Y3QgYW1kZ3B1X3ZpcnQgew0KPiA+ ICAgCXVpbnQzMl90CQljYXBzOw0KPiA+ICAgCXVpbnQzMl90CQl2YWxfb2ZmczsNCj4gPiArCXN0 cnVjdCBtdXRleAkJbG9jazsNCj4gPiAgIH07DQo+ID4NCj4gPiAgICNkZWZpbmUgYW1kZ3B1X3Ny aW92X2VuYWJsZWQoYWRldikgXCBAQCAtNTksNCArNjAsOCBAQCBzdGF0aWMgaW5saW5lDQo+ID4g Ym9vbCBpc192aXJ0dWFsX21hY2hpbmUodm9pZCkNCj4gPiAgICNlbmRpZg0KPiA+ICAgfQ0KPiA+ DQo+ID4gK3ZvaWQgYW1kZ3B1X3ZpcnRfaW5pdF9zZXR0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KTsgdWludDMyX3QNCj4gPiArYW1kZ3B1X3ZpcnRfa2lxX3JyZWcoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IHJlZyk7IHZvaWQNCj4gPiArYW1kZ3B1X3ZpcnRfa2lx X3dyZWcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IHJlZywNCj4gPiArdWlu dDMyX3Qgdik7DQo+ID4gKw0KPiA+ICAgI2VuZGlmDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L3ZpLmMNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3ZpLmMgaW5kZXggNzM1MGE4Zi4uZGMwZDRmYSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS92aS5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvdmkuYw0KPiA+IEBAIC04OTIsNiArODkyLDkgQEAgc3RhdGljIGludCB2aV9jb21tb25fZWFy bHlfaW5pdCh2b2lkICpoYW5kbGUpDQo+ID4gICAJCShhbWRncHVfaXBfYmxvY2tfbWFzayAmICgx IDw8DQo+IEFNRF9JUF9CTE9DS19UWVBFX1NNQykpKQ0KPiA+ICAgCQlzbWNfZW5hYmxlZCA9IHRy dWU7DQo+ID4NCj4gPiArCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpDQo+ID4gKwkJYW1kZ3B1 X3ZpcnRfaW5pdF9zZXR0aW5nKGFkZXYpOw0KPiA+ICsNCj4gPiAgIAlhZGV2LT5yZXZfaWQgPSB2 aV9nZXRfcmV2X2lkKGFkZXYpOw0KPiA+ICAgCWFkZXYtPmV4dGVybmFsX3Jldl9pZCA9IDB4RkY7 DQo+ID4gICAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsNCj4gDQoNCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=