From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kuehling, Felix" Subject: RE: [PATCH 1/3] drm/amdgpu: enable IH ring 1 and ring 2 v3 Date: Sun, 13 Jan 2019 17:13:56 +0000 Message-ID: References: <20190109131246.1274-1-christian.koenig@amd.com> <59e5acca-73f8-dd94-ad4a-f6798c7551c6@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <59e5acca-73f8-dd94-ad4a-f6798c7551c6-Re5JQEeQqe8AvxtiuMwx3w@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" , "Deucher, Alexander" VGhlIHNlcmllcyBpcyBSZXZpZXdlZC1ieTogRmVsaXggS3VlaGxpbmcgPEZlbGl4Lkt1ZWhsaW5n QGFtZC5jb20+DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBDaHJpc3RpYW4g S8O2bmlnIDxja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4gDQpTZW50OiBGcmlkYXks IEphbnVhcnkgMTEsIDIwMTkgNzowMiBBTQ0KVG86IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnOyBEZXVjaGVyLCBBbGV4YW5kZXIgPEFsZXhhbmRlci5EZXVjaGVyQGFtZC5jb20+OyBLdWVo bGluZywgRmVsaXggPEZlbGl4Lkt1ZWhsaW5nQGFtZC5jb20+DQpTdWJqZWN0OiBSZTogW1BBVENI IDEvM10gZHJtL2FtZGdwdTogZW5hYmxlIElIIHJpbmcgMSBhbmQgcmluZyAyIHYzDQoNCkFtIDA5 LjAxLjE5IHVtIDE0OjEyIHNjaHJpZWIgQ2hyaXN0aWFuIEvDtm5pZzoNCj4gVGhlIGVudHJpZXMg YXJlIGlnbm9yZWQgZm9yIG5vdywgYnV0IGl0IGF0IGxlYXN0IHN0b3BzIGNyYXNoaW5nIHRoZSAN Cj4gaGFyZHdhcmUgd2hlbiBzb21lYm9keSB0cmllcyB0byBwdXNoIHNvbWV0aGluZyB0byB0aGUg b3RoZXIgSUggcmluZ3MuDQo+DQo+IHYyOiBsaW1pdCByaW5nIHNpemUsIGFkZCBUT0RPIGNvbW1l bnQNCj4gdjM6IG9ubHkgcHJvZ3JhbSByaW5ncyBpZiB0aGV5IGFyZSBhY3R1YWxseSBhbGxvY2F0 ZWQNCj4NCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5p Z0BhbWQuY29tPg0KDQpQaW5nIEFsZXggJiBGZWxpeCBhbnkgbW9yZSBjb21tZW50cyBvbiB0aGlz IHNlcmllcz8NCg0KQ2hyaXN0aWFuLg0KDQo+IC0tLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9pcnEuaCB8ICAgNCArLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L3ZlZ2ExMF9paC5jICB8IDE0MyArKysrKysrKysrKysrKysrKysrKy0tLS0NCj4gICAyIGZp bGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkNCj4NCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuaCANCj4gYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmgNCj4gaW5kZXggZjZjZTE3MWNi OGFhLi43ZTA2ZmE2NDMyMWEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9pcnEuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfaXJxLmgNCj4gQEAgLTg3LDggKzg3LDggQEAgc3RydWN0IGFtZGdwdV9pcnEgew0KPiAgIAkv KiBzdGF0dXMsIGV0Yy4gKi8NCj4gICAJYm9vbAkJCQltc2lfZW5hYmxlZDsgLyogbXNpIGVuYWJs ZWQgKi8NCj4gICANCj4gLQkvKiBpbnRlcnJ1cHQgcmluZyAqLw0KPiAtCXN0cnVjdCBhbWRncHVf aWhfcmluZwkJaWg7DQo+ICsJLyogaW50ZXJydXB0IHJpbmdzICovDQo+ICsJc3RydWN0IGFtZGdw dV9paF9yaW5nCQlpaCwgaWgxLCBpaDI7DQo+ICAgCWNvbnN0IHN0cnVjdCBhbWRncHVfaWhfZnVu Y3MJKmloX2Z1bmNzOw0KPiAgIA0KPiAgIAkvKiBnZW4gaXJxIHN0dWZmICovDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92ZWdhMTBfaWguYyANCj4gYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS92ZWdhMTBfaWguYw0KPiBpbmRleCA1NjI3MDE5MzlkM2UuLmVl YTU1MzBkMjk2MSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmVn YTEwX2loLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTEwX2loLmMN Cj4gQEAgLTUwLDYgKzUwLDIyIEBAIHN0YXRpYyB2b2lkIHZlZ2ExMF9paF9lbmFibGVfaW50ZXJy dXB0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCj4gICAJaWhfcmJfY250bCA9IFJFR19T RVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgRU5BQkxFX0lOVFIsIDEpOw0KPiAgIAlX UkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVEwsIGloX3JiX2NudGwpOw0KPiAgIAlh ZGV2LT5pcnEuaWguZW5hYmxlZCA9IHRydWU7DQo+ICsNCj4gKwlpZiAoYWRldi0+aXJxLmloMS5y aW5nX3NpemUpIHsNCj4gKwkJaWhfcmJfY250bCA9IFJSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1t SUhfUkJfQ05UTF9SSU5HMSk7DQo+ICsJCWloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3Ji X2NudGwsIElIX1JCX0NOVExfUklORzEsDQo+ICsJCQkJCSAgIFJCX0VOQUJMRSwgMSk7DQo+ICsJ CVdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQ05UTF9SSU5HMSwgaWhfcmJfY250bCk7 DQo+ICsJCWFkZXYtPmlycS5paDEuZW5hYmxlZCA9IHRydWU7DQo+ICsJfQ0KPiArDQo+ICsJaWYg KGFkZXYtPmlycS5paDIucmluZ19zaXplKSB7DQo+ICsJCWloX3JiX2NudGwgPSBSUkVHMzJfU09D MTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVExfUklORzIpOw0KPiArCQlpaF9yYl9jbnRsID0gUkVH X1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRMX1JJTkcyLA0KPiArCQkJCQkgICBSQl9F TkFCTEUsIDEpOw0KPiArCQlXUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVExfUklO RzIsIGloX3JiX2NudGwpOw0KPiArCQlhZGV2LT5pcnEuaWgyLmVuYWJsZWQgPSB0cnVlOw0KPiAr CX0NCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+IEBAIC03MSw2ICs4Nyw1MyBAQCBzdGF0aWMgdm9p ZCB2ZWdhMTBfaWhfZGlzYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQ0KPiAgIAlXUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX1dQVFIsIDApOw0KPiAgIAlh ZGV2LT5pcnEuaWguZW5hYmxlZCA9IGZhbHNlOw0KPiAgIAlhZGV2LT5pcnEuaWgucnB0ciA9IDA7 DQo+ICsNCj4gKwlpZiAoYWRldi0+aXJxLmloMS5yaW5nX3NpemUpIHsNCj4gKwkJaWhfcmJfY250 bCA9IFJSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQ05UTF9SSU5HMSk7DQo+ICsJCWlo X3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NOVExfUklORzEsDQo+ ICsJCQkJCSAgIFJCX0VOQUJMRSwgMCk7DQo+ICsJCVdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1t SUhfUkJfQ05UTF9SSU5HMSwgaWhfcmJfY250bCk7DQo+ICsJCS8qIHNldCBycHRyLCB3cHRyIHRv IDAgKi8NCj4gKwkJV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9SUFRSX1JJTkcxLCAw KTsNCj4gKwkJV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9XUFRSX1JJTkcxLCAwKTsN Cj4gKwkJYWRldi0+aXJxLmloMS5lbmFibGVkID0gZmFsc2U7DQo+ICsJCWFkZXYtPmlycS5paDEu cnB0ciA9IDA7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKGFkZXYtPmlycS5paDIucmluZ19zaXplKSB7 DQo+ICsJCWloX3JiX2NudGwgPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVExf UklORzIpOw0KPiArCQlpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9S Ql9DTlRMX1JJTkcyLA0KPiArCQkJCQkgICBSQl9FTkFCTEUsIDApOw0KPiArCQlXUkVHMzJfU09D MTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVExfUklORzIsIGloX3JiX2NudGwpOw0KPiArCQkvKiBz ZXQgcnB0ciwgd3B0ciB0byAwICovDQo+ICsJCVdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhf UkJfUlBUUl9SSU5HMiwgMCk7DQo+ICsJCVdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJf V1BUUl9SSU5HMiwgMCk7DQo+ICsJCWFkZXYtPmlycS5paDIuZW5hYmxlZCA9IGZhbHNlOw0KPiAr CQlhZGV2LT5pcnEuaWgyLnJwdHIgPSAwOw0KPiArCX0NCj4gK30NCj4gKw0KPiArc3RhdGljIHVp bnQzMl90IHZlZ2ExMF9paF9yYl9jbnRsKHN0cnVjdCBhbWRncHVfaWhfcmluZyAqaWgsIHVpbnQz Ml90IA0KPiAraWhfcmJfY250bCkgew0KPiArCWludCByYl9idWZzeiA9IG9yZGVyX2Jhc2VfMihp aC0+cmluZ19zaXplIC8gNCk7DQo+ICsNCj4gKwlpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChp aF9yYl9jbnRsLCBJSF9SQl9DTlRMLA0KPiArCQkJCSAgIE1DX1NQQUNFLCBpaC0+dXNlX2J1c19h ZGRyID8gMSA6IDQpOw0KPiArCWloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGws IElIX1JCX0NOVEwsDQo+ICsJCQkJICAgV1BUUl9PVkVSRkxPV19DTEVBUiwgMSk7DQo+ICsJaWhf cmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwNCj4gKwkJCQkg ICBXUFRSX09WRVJGTE9XX0VOQUJMRSwgMSk7DQo+ICsJaWhfcmJfY250bCA9IFJFR19TRVRfRklF TEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgUkJfU0laRSwgcmJfYnVmc3opOw0KPiArCS8qIFJp bmcgQnVmZmVyIHdyaXRlIHBvaW50ZXIgd3JpdGViYWNrLiBJZiBlbmFibGVkLCBJSF9SQl9XUFRS IHJlZ2lzdGVyDQo+ICsJICogdmFsdWUgaXMgd3JpdHRlbiB0byBtZW1vcnkNCj4gKwkgKi8NCj4g KwlpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRMLA0KPiAr CQkJCSAgIFdQVFJfV1JJVEVCQUNLX0VOQUJMRSwgMSk7DQo+ICsJaWhfcmJfY250bCA9IFJFR19T RVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgTUNfU05PT1AsIDEpOw0KPiArCWloX3Ji X2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NOVEwsIE1DX1JPLCAwKTsN Cj4gKwlpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRMLCBN Q19WTUlELCAwKTsNCj4gKw0KPiArCXJldHVybiBpaF9yYl9jbnRsOw0KPiAgIH0NCj4gICANCj4g ICAvKioNCj4gQEAgLTg2LDkgKzE0OSw4IEBAIHN0YXRpYyB2b2lkIHZlZ2ExMF9paF9kaXNhYmxl X2ludGVycnVwdHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+ICAgICovDQo+ICAgc3Rh dGljIGludCB2ZWdhMTBfaWhfaXJxX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+ ICAgew0KPiAtCXN0cnVjdCBhbWRncHVfaWhfcmluZyAqaWggPSAmYWRldi0+aXJxLmloOw0KPiAr CXN0cnVjdCBhbWRncHVfaWhfcmluZyAqaWg7DQo+ICAgCWludCByZXQgPSAwOw0KPiAtCWludCBy Yl9idWZzejsNCj4gICAJdTMyIGloX3JiX2NudGwsIGloX2Rvb3JiZWxsX3J0cHI7DQo+ICAgCXUz MiB0bXA7DQo+ICAgDQo+IEBAIC05NywyNiArMTU5LDE1IEBAIHN0YXRpYyBpbnQgdmVnYTEwX2lo X2lycV9pbml0KHN0cnVjdCANCj4gYW1kZ3B1X2RldmljZSAqYWRldikNCj4gICANCj4gICAJYWRl di0+bmJpb19mdW5jcy0+aWhfY29udHJvbChhZGV2KTsNCj4gICANCj4gLQlpaF9yYl9jbnRsID0g UlJFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMKTsNCj4gKwlpaCA9ICZhZGV2LT5p cnEuaWg7DQo+ICAgCS8qIFJpbmcgQnVmZmVyIGJhc2UuIFszOTo4XSBvZiA0MC1iaXQgYWRkcmVz cyBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSByaW5nIGJ1ZmZlciovDQo+IC0JV1JFRzMyX1NPQzE1 KE9TU1NZUywgMCwgbW1JSF9SQl9CQVNFLCBhZGV2LT5pcnEuaWguZ3B1X2FkZHIgPj4gOCk7DQo+ IC0JV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9CQVNFX0hJLA0KPiAtCQkgICAgIChh ZGV2LT5pcnEuaWguZ3B1X2FkZHIgPj4gNDApICYgMHhmZik7DQo+IC0JaWhfcmJfY250bCA9IFJF R19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgTUNfU1BBQ0UsDQo+IC0JCQkJICAg aWgtPnVzZV9idXNfYWRkciA/IDEgOiA0KTsNCj4gLQlyYl9idWZzeiA9IG9yZGVyX2Jhc2VfMihh ZGV2LT5pcnEuaWgucmluZ19zaXplIC8gNCk7DQo+IC0JaWhfcmJfY250bCA9IFJFR19TRVRfRklF TEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgV1BUUl9PVkVSRkxPV19DTEVBUiwgMSk7DQo+IC0J aWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgV1BUUl9P VkVSRkxPV19FTkFCTEUsIDEpOw0KPiAtCWloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3Ji X2NudGwsIElIX1JCX0NOVEwsIFJCX1NJWkUsIHJiX2J1ZnN6KTsNCj4gLQkvKiBSaW5nIEJ1ZmZl ciB3cml0ZSBwb2ludGVyIHdyaXRlYmFjay4gSWYgZW5hYmxlZCwgSUhfUkJfV1BUUiByZWdpc3Rl ciB2YWx1ZSBpcyB3cml0dGVuIHRvIG1lbW9yeSAqLw0KPiAtCWloX3JiX2NudGwgPSBSRUdfU0VU X0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NOVEwsIFdQVFJfV1JJVEVCQUNLX0VOQUJMRSwgMSk7 DQo+IC0JaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwg TUNfU05PT1AsIDEpOw0KPiAtCWloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGws IElIX1JCX0NOVEwsIE1DX1JPLCAwKTsNCj4gLQlpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChp aF9yYl9jbnRsLCBJSF9SQl9DTlRMLCBNQ19WTUlELCAwKTsNCj4gLQ0KPiAtCWlmIChhZGV2LT5p cnEubXNpX2VuYWJsZWQpDQo+IC0JCWloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2Nu dGwsIElIX1JCX0NOVEwsIFJQVFJfUkVBUk0sIDEpOw0KPiArCVdSRUczMl9TT0MxNShPU1NTWVMs IDAsIG1tSUhfUkJfQkFTRSwgaWgtPmdwdV9hZGRyID4+IDgpOw0KPiArCVdSRUczMl9TT0MxNShP U1NTWVMsIDAsIG1tSUhfUkJfQkFTRV9ISSwgKGloLT5ncHVfYWRkciA+PiA0MCkgJiANCj4gKzB4 ZmYpOw0KPiAgIA0KPiArCWloX3JiX2NudGwgPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlI X1JCX0NOVEwpOw0KPiArCWloX3JiX2NudGwgPSB2ZWdhMTBfaWhfcmJfY250bChpaCwgaWhfcmJf Y250bCk7DQo+ICsJaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJf Q05UTCwgUlBUUl9SRUFSTSwNCj4gKwkJCQkgICAhIWFkZXYtPmlycS5tc2lfZW5hYmxlZCk7DQo+ ICAgCVdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQ05UTCwgaWhfcmJfY250bCk7DQo+ ICAgDQo+ICAgCS8qIHNldCB0aGUgd3JpdGViYWNrIGFkZHJlc3Mgd2hldGhlciBpdCdzIGVuYWJs ZWQgb3Igbm90ICovIEBAIA0KPiAtMTMxLDE4ICsxODIsNTEgQEAgc3RhdGljIGludCB2ZWdhMTBf aWhfaXJxX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgDQo+ICphZGV2KQ0KPiAgIA0KPiAgIAlp aF9kb29yYmVsbF9ydHByID0gUlJFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9ET09SQkVMTF9S UFRSKTsNCj4gICAJaWYgKGFkZXYtPmlycS5paC51c2VfZG9vcmJlbGwpIHsNCj4gLQkJaWhfZG9v cmJlbGxfcnRwciA9IFJFR19TRVRfRklFTEQoaWhfZG9vcmJlbGxfcnRwciwgSUhfRE9PUkJFTExf UlBUUiwNCj4gLQkJCQkJCSBPRkZTRVQsIGFkZXYtPmlycS5paC5kb29yYmVsbF9pbmRleCk7DQo+ IC0JCWloX2Rvb3JiZWxsX3J0cHIgPSBSRUdfU0VUX0ZJRUxEKGloX2Rvb3JiZWxsX3J0cHIsIElI X0RPT1JCRUxMX1JQVFIsDQo+ICsJCWloX2Rvb3JiZWxsX3J0cHIgPSBSRUdfU0VUX0ZJRUxEKGlo X2Rvb3JiZWxsX3J0cHIsDQo+ICsJCQkJCQkgSUhfRE9PUkJFTExfUlBUUiwgT0ZGU0VULA0KPiAr CQkJCQkJIGFkZXYtPmlycS5paC5kb29yYmVsbF9pbmRleCk7DQo+ICsJCWloX2Rvb3JiZWxsX3J0 cHIgPSBSRUdfU0VUX0ZJRUxEKGloX2Rvb3JiZWxsX3J0cHIsDQo+ICsJCQkJCQkgSUhfRE9PUkJF TExfUlBUUiwNCj4gICAJCQkJCQkgRU5BQkxFLCAxKTsNCj4gICAJfSBlbHNlIHsNCj4gLQkJaWhf ZG9vcmJlbGxfcnRwciA9IFJFR19TRVRfRklFTEQoaWhfZG9vcmJlbGxfcnRwciwgSUhfRE9PUkJF TExfUlBUUiwNCj4gKwkJaWhfZG9vcmJlbGxfcnRwciA9IFJFR19TRVRfRklFTEQoaWhfZG9vcmJl bGxfcnRwciwNCj4gKwkJCQkJCSBJSF9ET09SQkVMTF9SUFRSLA0KPiAgIAkJCQkJCSBFTkFCTEUs IDApOw0KPiAgIAl9DQo+ICAgCVdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfRE9PUkJFTExf UlBUUiwgaWhfZG9vcmJlbGxfcnRwcik7DQo+ICAgCWFkZXYtPm5iaW9fZnVuY3MtPmloX2Rvb3Ji ZWxsX3JhbmdlKGFkZXYsIGFkZXYtPmlycS5paC51c2VfZG9vcmJlbGwsDQo+ICAgCQkJCQkgICAg YWRldi0+aXJxLmloLmRvb3JiZWxsX2luZGV4KTsNCj4gICANCj4gKwlpaCA9ICZhZGV2LT5pcnEu aWgxOw0KPiArCWlmIChpaC0+cmluZ19zaXplKSB7DQo+ICsJCVdSRUczMl9TT0MxNShPU1NTWVMs IDAsIG1tSUhfUkJfQkFTRV9SSU5HMSwgaWgtPmdwdV9hZGRyID4+IDgpOw0KPiArCQlXUkVHMzJf U09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0JBU0VfSElfUklORzEsDQo+ICsJCQkgICAgIChpaC0+ Z3B1X2FkZHIgPj4gNDApICYgMHhmZik7DQo+ICsNCj4gKwkJaWhfcmJfY250bCA9IFJSRUczMl9T T0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQ05UTF9SSU5HMSk7DQo+ICsJCWloX3JiX2NudGwgPSB2 ZWdhMTBfaWhfcmJfY250bChpaCwgaWhfcmJfY250bCk7DQo+ICsJCVdSRUczMl9TT0MxNShPU1NT WVMsIDAsIG1tSUhfUkJfQ05UTF9SSU5HMSwgaWhfcmJfY250bCk7DQo+ICsNCj4gKwkJLyogc2V0 IHJwdHIsIHdwdHIgdG8gMCAqLw0KPiArCQlXUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JC X1JQVFJfUklORzEsIDApOw0KPiArCQlXUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX1dQ VFJfUklORzEsIDApOw0KPiArCX0NCj4gKw0KPiArCWloID0gJmFkZXYtPmlycS5paDI7DQo+ICsJ aWYgKGloLT5yaW5nX3NpemUpIHsNCj4gKwkJV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9S Ql9CQVNFX1JJTkcyLCBpaC0+Z3B1X2FkZHIgPj4gOCk7DQo+ICsJCVdSRUczMl9TT0MxNShPU1NT WVMsIDAsIG1tSUhfUkJfQkFTRV9ISV9SSU5HMiwNCj4gKwkJCSAgICAgKGloLT5ncHVfYWRkciA+ PiA0MCkgJiAweGZmKTsNCj4gKw0KPiArCQlpaF9yYl9jbnRsID0gUlJFRzMyX1NPQzE1KE9TU1NZ UywgMCwgbW1JSF9SQl9DTlRMX1JJTkcxKTsNCj4gKwkJaWhfcmJfY250bCA9IHZlZ2ExMF9paF9y Yl9jbnRsKGloLCBpaF9yYl9jbnRsKTsNCj4gKwkJV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1J SF9SQl9DTlRMX1JJTkcyLCBpaF9yYl9jbnRsKTsNCj4gKw0KPiArCQkvKiBzZXQgcnB0ciwgd3B0 ciB0byAwICovDQo+ICsJCVdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfUlBUUl9SSU5H MiwgMCk7DQo+ICsJCVdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfV1BUUl9SSU5HMiwg MCk7DQo+ICsJfQ0KPiArDQo+ICAgCXRtcCA9IFJSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhf U1RPUk1fQ0xJRU5UX0xJU1RfQ05UTCk7DQo+ICAgCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBJ SF9TVE9STV9DTElFTlRfTElTVF9DTlRMLA0KPiAgIAkJCSAgICBDTElFTlQxOF9JU19TVE9STV9D TElFTlQsIDEpOyBAQCAtMjk5LDYgKzM4MywxNSBAQCBzdGF0aWMgaW50IA0KPiB2ZWdhMTBfaWhf c3dfaW5pdCh2b2lkICpoYW5kbGUpDQo+ICAgCWlmIChyKQ0KPiAgIAkJcmV0dXJuIHI7DQo+ICAg DQo+ICsJciA9IGFtZGdwdV9paF9yaW5nX2luaXQoYWRldiwgJmFkZXYtPmlycS5paDEsIFBBR0Vf U0laRSwgdHJ1ZSk7DQo+ICsJaWYgKHIpDQo+ICsJCXJldHVybiByOw0KPiArDQo+ICsJciA9IGFt ZGdwdV9paF9yaW5nX2luaXQoYWRldiwgJmFkZXYtPmlycS5paDIsIFBBR0VfU0laRSwgdHJ1ZSk7 DQo+ICsJaWYgKHIpDQo+ICsJCXJldHVybiByOw0KPiArDQo+ICsJLyogVE9ETyBhZGQgZG9vcmJl bGwgZm9yIElIMSAmIElIMiBhcyB3ZWxsICovDQo+ICAgCWFkZXYtPmlycS5paC51c2VfZG9vcmJl bGwgPSB0cnVlOw0KPiAgIAlhZGV2LT5pcnEuaWguZG9vcmJlbGxfaW5kZXggPSBhZGV2LT5kb29y YmVsbF9pbmRleC5paCA8PCAxOw0KPiAgIA0KPiBAQCAtMzEyLDYgKzQwNSw4IEBAIHN0YXRpYyBp bnQgdmVnYTEwX2loX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQ0KPiAgIAlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsNCj4gICANCj4gICAJ YW1kZ3B1X2lycV9maW5pKGFkZXYpOw0KPiArCWFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFk ZXYtPmlycS5paDIpOw0KPiArCWFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5p aDEpOw0KPiAgIAlhbWRncHVfaWhfcmluZ19maW5pKGFkZXYsICZhZGV2LT5pcnEuaWgpOw0KPiAg IA0KPiAgIAlyZXR1cm4gMDsNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQt Z2Z4Cg==