From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tuikov, Luben" Subject: Re: [PATCH 5/8] drm/amdgpu/atomfirmware: add memory training related helper functions Date: Fri, 11 Oct 2019 23:09:45 +0000 Message-ID: <9d3959ec-9d4f-e9a2-86fe-0dd28aa728d9@amd.com> References: <20191011035033.24935-1-tianci.yin@amd.com> <20191011035033.24935-5-tianci.yin@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191011035033.24935-5-tianci.yin-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US Content-ID: <36E20314D5C253498D52F54A272E86A1-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" T24gMjAxOS0xMC0xMCAxMTo1MCBwLm0uLCBUaWFuY2kgWWluIHdyb3RlOg0KPiBGcm9tOiAiVGlh bmNpLllpbiIgPHRpYW5jaS55aW5AYW1kLmNvbT4NCj4gDQo+IHBhcnNlIGZpcm13YXJlIHRvIGdl dCBtZW1vcnkgdHJhaW5pbmcgY2FwYWJpbGl0eSBhbmQgZmIgbG9jYXRpb24uDQo+IA0KPiBDaGFu Z2UtSWQ6IEkxNDdjMWQ0OGUyNTVlMDE5MWJlNGJlYjFhZDZiNjM3ZGE2MDdiZjc1DQo+IFJldmll d2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+DQo+IFNpZ25l ZC1vZmYtYnk6IFRpYW5jaS5ZaW4gPHRpYW5jaS55aW5AYW1kLmNvbT4NCj4gLS0tDQo+ICBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgICAgfCAgIDcgKw0KPiAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2F0b21iaW9zLmMgIHwgICA1ICsNCj4gIC4u Li9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2F0b21maXJtd2FyZS5jICB8IDEzMyArKysrKysr KysrKysrKysrKysNCj4gIC4uLi9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2F0b21maXJtd2Fy ZS5oICB8ICAgMSArDQo+ICA0IGZpbGVzIGNoYW5nZWQsIDE0NiBpbnNlcnRpb25zKCspDQo+IA0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaA0KPiBpbmRleCAxMTAyZTZiYWU1ZDUuLmUz ZDcxNWMzMWFjOSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgNCj4gQEAg LTI5MSw2ICsyOTEsOSBAQCBzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb24gew0KPiAgCWNv bnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgKmZ1bmNzOw0KPiAgfTsNCj4gIA0KPiArI2RlZmluZSBo d19yZXZpc2lvbihtYWpvciwgbWlub3IsIHJldmlzaW9uKSBcDQo+ICsJKCgoKHVpbnQzMl90KSBt YWpvcikgPDwgMTYpIHwgKCh1aW50MzJfdCkgbWlub3IgPDwgOCkgfCAoKHVpbnQzMl90KSByZXZp c2lvbikpDQo+ICsNCg0KTGFzdCBjZW50dXJ5LCBjb21waWxlcnMgYW5kIHByZXByb2Nlc3NvcnMg d2VyZW4ndCB0aGF0IHNtYXJ0IGFuZA0Kc2hvdWxkIGEgdmFyaWFibGUgZXhpc3Qgb2YgdGhlIHNh bWUgbmFtZSBhcyB0aGUgcmVwbGFjZW1lbnQgdG9rZW4gaW4NCmEgc3Vic3RpdHVpb24gbWFjcm8s IGFuZCB0aGUgbWFjcm8gd2FzIHVzZWQgaW4gdGhhdCBmdW5jdGlvbiwgdGhlbg0KdGhleSBnb3Qg Y29uZnVzZWQuDQoNCkFuZCBhbHNvLCB5b3Ugc2hvdWxkIHN1cnJvdW5kIHRoZSBzdWJzdGl0aW9u IHRva2VucyBpbiBwYXJlbnRoZXNpcw0KaW4gdGhlIFJIUyBvZiB0aGUgbWFjcm8gZXhwcmVzc2lv biENCg0KRm9yIHRoaXMgcmVhc29uIHdlIHVzZWQgdG9rZW5zIHdoaWNoIG9uZSB3b3VsZCBuZXZl ciBmaW5kIGluIG5vcm1hbA0KQyBjb2RlOg0KDQojZGVmaW5lIEhXX1JFVihfTWFqb3IsIF9NaW5v ciwgX1JldikgXA0KCSgoKCh1aW50MzJfdCkgKF9NYWpvcikpIDw8IDE2KSB8ICgodWludDMyX3Qp IChfTWlub3IpIDw8IDgpIHwgKCh1aW50MzJfdCkgKF9SZXYpKSkNCg0KSXQgYmVjYW1lIGEgaGFi aXQgYW5kIGFzIGl0IGhhcHBlbnMgdG8gYWxsIGhhYml0cy4uLiBhIHN0eWxlLg0KDQo+ICBzdHJ1 Y3QgYW1kZ3B1X2lwX2Jsb2NrIHsNCj4gIAlzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3N0YXR1cyBz dGF0dXM7DQo+ICAJY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uICp2ZXJzaW9u Ow0KPiBAQCAtNjMzLDYgKzYzNiwxMCBAQCBzdHJ1Y3QgYW1kZ3B1X2Z3X3ZyYW1fdXNhZ2Ugew0K PiAgCXU2NCBzaXplOw0KPiAgCXN0cnVjdCBhbWRncHVfYm8gKnJlc2VydmVkX2JvOw0KPiAgCXZv aWQgKnZhOw0KPiArDQo+ICsJLypvZmZzZXQgb24gdGhlIHRvcCBvZiB2cmFtLCB1c2VkIGFzIGMy cCB3cml0ZSBidWZmZXIqLw0KPiArCXU2NCBtZW1fdHJhaW5fZmJfbG9jOw0KPiArCWJvb2wgbWVt X3RyYWluX3N1cHBvcnQ7DQo+ICB9Ow0KDQpXZSB0cnkgdG8gbWFrZSBjb21tZW50cyBwbGVhc2Fu dGx5IHJlYWRhYmxlOg0KDQoJLyogT2Zmc2V0IG9uIHRoZSB0b3Agb2YgVlJBTSwgdXNlZCBhcyBj MnAgd3JpdGUgYnVmZmVyLg0KCSAqLw0KCXU2NCAgbWVtX3RyYWluX2ZiX2xvYzsNCglib29sIG1l bV90cmFpbl9zdXBwb3J0Ow0KfQ0KDQpSZWdhcmRzLA0KTHViZW4NCg0KPiAgDQo+ICAvKg0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2F0b21iaW9zLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYXRvbWJpb3MuYw0KPiBpbmRleCAx YzlkNDBmOTdhOWIuLjcyMjMyZmNjZjYxYSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2F0b21iaW9zLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2F0b21iaW9zLmMNCj4gQEAgLTIwMzgsNiArMjAzOCwxMSBAQCBpbnQg YW1kZ3B1X2F0b21iaW9zX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+ICAJaWYg KGFkZXYtPmlzX2F0b21fZncpIHsNCj4gIAkJYW1kZ3B1X2F0b21maXJtd2FyZV9zY3JhdGNoX3Jl Z3NfaW5pdChhZGV2KTsNCj4gIAkJYW1kZ3B1X2F0b21maXJtd2FyZV9hbGxvY2F0ZV9mYl9zY3Jh dGNoKGFkZXYpOw0KPiArCQlyZXQgPSBhbWRncHVfYXRvbWZpcm13YXJlX2dldF9tZW1fdHJhaW5f ZmJfbG9jKGFkZXYpOw0KPiArCQlpZiAocmV0KSB7DQo+ICsJCQlEUk1fRVJST1IoIkZhaWxlZCB0 byBnZXQgbWVtIHRyYWluIGZiIGxvY2F0aW9uLlxuIik7DQo+ICsJCQlyZXR1cm4gcmV0Ow0KPiAr CQl9DQo+ICAJfSBlbHNlIHsNCj4gIAkJYW1kZ3B1X2F0b21iaW9zX3NjcmF0Y2hfcmVnc19pbml0 KGFkZXYpOw0KPiAgCQlhbWRncHVfYXRvbWJpb3NfYWxsb2NhdGVfZmJfc2NyYXRjaChhZGV2KTsN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hdG9tZmly bXdhcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hdG9tZmlybXdhcmUu Yw0KPiBpbmRleCAzOWZkOGFlNWE4MjIuLjFlYmY1ZTlhOWI3YiAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2F0b21maXJtd2FyZS5jDQo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hdG9tZmlybXdhcmUuYw0KPiBAQCAtMjcs NiArMjcsNyBAQA0KPiAgI2luY2x1ZGUgImFtZGdwdV9hdG9tZmlybXdhcmUuaCINCj4gICNpbmNs dWRlICJhdG9tLmgiDQo+ICAjaW5jbHVkZSAiYXRvbWJpb3MuaCINCj4gKyNpbmNsdWRlICJzb2Mx NV9od19pcC5oIg0KPiAgDQo+ICBib29sIGFtZGdwdV9hdG9tZmlybXdhcmVfZ3B1X3N1cHBvcnRz X3ZpcnR1YWxpemF0aW9uKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiAgew0KPiBAQCAt NDYyLDMgKzQ2MywxMzUgQEAgaW50IGFtZGdwdV9hdG9tZmlybXdhcmVfZ2V0X2dmeF9pbmZvKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiAgCX0NCj4gIAlyZXR1cm4gLUVJTlZBTDsNCj4g IH0NCj4gKw0KPiArLyoNCj4gKyAqIENoZWNrIGlmIFZCSU9TIHN1cHBvcnRzIEdERFI2IHRyYWlu aW5nIGRhdGEgc2F2ZS9yZXN0b3JlDQo+ICsgKi8NCj4gK3N0YXRpYyBib29sIGdkZHI2X21lbV90 cmFpbl92Ymlvc19zdXBwb3J0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiArew0KPiAr CXVpbnQxNl90IGRhdGFfb2Zmc2V0Ow0KPiArCWludCBpbmRleDsNCj4gKw0KPiArCWluZGV4ID0g Z2V0X2luZGV4X2ludG9fbWFzdGVyX3RhYmxlKGF0b21fbWFzdGVyX2xpc3Rfb2ZfZGF0YV90YWJs ZXNfdjJfMSwNCj4gKwkJCQkJICAgIGZpcm13YXJlaW5mbyk7DQo+ICsJaWYgKGFtZGdwdV9hdG9t X3BhcnNlX2RhdGFfaGVhZGVyKGFkZXYtPm1vZGVfaW5mby5hdG9tX2NvbnRleHQsIGluZGV4LCBO VUxMLA0KPiArCQkJCQkgIE5VTEwsIE5VTEwsICZkYXRhX29mZnNldCkpIHsNCj4gKwkJc3RydWN0 IGF0b21fZmlybXdhcmVfaW5mb192M18xICpmaXJtd2FyZV9pbmZvID0NCj4gKwkJCShzdHJ1Y3Qg YXRvbV9maXJtd2FyZV9pbmZvX3YzXzEgKikoYWRldi0+bW9kZV9pbmZvLmF0b21fY29udGV4dC0+ YmlvcyArDQo+ICsJCQkJCQkJICAgZGF0YV9vZmZzZXQpOw0KPiArDQo+ICsJCURSTV9ERUJVRygi YXRvbSBmaXJtd2FyZSBjYXBhYmlsaXR5OjB4JTA4eC5cbiIsDQo+ICsJCQkgIGxlMzJfdG9fY3B1 KGZpcm13YXJlX2luZm8tPmZpcm13YXJlX2NhcGFiaWxpdHkpKTsNCj4gKw0KPiArCQlpZiAobGUz Ml90b19jcHUoZmlybXdhcmVfaW5mby0+ZmlybXdhcmVfY2FwYWJpbGl0eSkgJg0KPiArCQkgICAg QVRPTV9GSVJNV0FSRV9DQVBfRU5BQkxFXzJTVEFHRV9CSVNUX1RSQUlOSU5HKQ0KPiArCQkJcmV0 dXJuIHRydWU7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIGZhbHNlOw0KPiArfQ0KPiArDQo+ICtz dGF0aWMgaW50IGdkZHI2X21lbV90cmFpbl9zdXBwb3J0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQ0KPiArew0KPiArCWludCByZXQ7DQo+ICsJYm9vbCB2Ymlvc19zdXBwb3J0Ow0KPiArCXVp bnQzMl90IG1ham9yLCBtaW5vciwgcmV2aXNpb24sIGh3X3Y7DQo+ICsNCj4gKwlpZiAoIWFtZGdw dV9zcmlvdl92ZihhZGV2KSAmJg0KPiArCSAgICBnZGRyNl9tZW1fdHJhaW5fdmJpb3Nfc3VwcG9y dChhZGV2KSkgew0KPiArCQl2Ymlvc19zdXBwb3J0ID0gdHJ1ZTsNCj4gKwl9IGVsc2Ugew0KPiAr CQl2Ymlvc19zdXBwb3J0ID0gZmFsc2U7DQo+ICsJfQ0KPiArCWFtZGdwdV9kaXNjb3ZlcnlfZ2V0 X2lwX3ZlcnNpb24oYWRldiwgTVAwX0hXSUQsICZtYWpvciwgJm1pbm9yLCAmcmV2aXNpb24pOw0K PiArCWh3X3YgPSBod19yZXZpc2lvbihtYWpvciwgbWlub3IsIHJldmlzaW9uKTsNCj4gKwkvKg0K PiArCSAqIHRyZWF0IDAgcmV2aXNpb24gYXMgYSBzcGVjaWFsIGNhc2Ugc2luY2UgcmVnaXN0ZXIg Zm9yIE1QMCBhbmQgTU1IVUIgaXMgbWlzc2luZw0KPiArCSAqIGZvciBzb21lIE5hdmkxMCBBMCwg cHJldmVudGluZyBkcml2ZXIgZnJvbSBkaXNjb3ZlcmluZyB0aGUgaHdpcCBpbmZvcm1hdGlvbiBz aW5jZQ0KPiArCSAqIG5vbmUgb2YgdGhlIGZ1bmN0aW9ucyB3aWxsIGJlIGluaXRpYWxpemVkLCBp dCBzaG91bGQgbm90IGNhdXNlIGFueSBwcm9ibGVtcw0KPiArCSAqLw0KPiArCXN3aXRjaCAoaHdf dikgew0KPiArCWNhc2UgaHdfcmV2aXNpb24oMTEsIDAsIDApOg0KPiArCWNhc2UgaHdfcmV2aXNp b24oMTEsIDAsIDUpOg0KPiArCQlyZXQgPSB2Ymlvc19zdXBwb3J0Ow0KPiArCQlicmVhazsNCj4g KwlkZWZhdWx0Og0KPiArCQlpZiAodmJpb3Nfc3VwcG9ydCkgew0KPiArCQkJRFJNX0VSUk9SKCJt ZW1vcnkgdHJhaW5pbmcgdmJpb3Mgc3VwcG9ydHMgYnV0IHBzcCBodyglMDh4KSINCj4gKwkJCQkg ICIgZG9lc24ndCBzdXBwb3J0IVxuIiwgaHdfdik7DQo+ICsJCQlyZXQgPSAtMTsNCj4gKwkJfSBl bHNlIHsNCj4gKwkJCXJldCA9IDA7DQo+ICsJCX0NCj4gKwkJYnJlYWs7DQo+ICsJfQ0KPiArDQo+ ICsJRFJNX0RFQlVHKCJtcDAgaHdfdiAlMDh4LCByZXQ6JWQuXG4iLCBod192LCByZXQpOw0KPiAr CXJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK2ludCBhbWRncHVfYXRvbWZpcm13YXJlX2dldF9t ZW1fdHJhaW5fZmJfbG9jKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiArew0KPiArCXN0 cnVjdCBhdG9tX2NvbnRleHQgKmN0eCA9IGFkZXYtPm1vZGVfaW5mby5hdG9tX2NvbnRleHQ7DQo+ ICsJdW5zaWduZWQgY2hhciAqYmlvcyA9IGN0eC0+YmlvczsNCj4gKwlzdHJ1Y3QgdnJhbV9yZXNl cnZlX2Jsb2NrICpyZXNlcnZlZF9ibG9jazsNCj4gKwlpbnQgaW5kZXgsIGJsb2NrX251bWJlcjsN Cj4gKwl1aW50OF90IGZyZXYsIGNyZXY7DQo+ICsJdWludDE2X3QgZGF0YV9vZmZzZXQsIHNpemU7 DQo+ICsJdWludDMyX3Qgc3RhcnRfYWRkcmVzc19pbl9rYjsNCj4gKwl1aW50NjRfdCBvZmZzZXQ7 DQo+ICsJaW50IHJldDsNCj4gKw0KPiArCWFkZXYtPmZ3X3ZyYW1fdXNhZ2UubWVtX3RyYWluX3N1 cHBvcnQgPSBmYWxzZTsNCj4gKwlyZXQgPSBnZGRyNl9tZW1fdHJhaW5fc3VwcG9ydChhZGV2KTsN Cj4gKwlpZiAocmV0ID09IC0xKQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwllbHNlIGlmIChy ZXQgPT0gMCkNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gKwlpbmRleCA9IGdldF9pbmRleF9pbnRv X21hc3Rlcl90YWJsZShhdG9tX21hc3Rlcl9saXN0X29mX2RhdGFfdGFibGVzX3YyXzEsDQo+ICsJ CQkJCSAgICB2cmFtX3VzYWdlYnlmaXJtd2FyZSk7DQo+ICsJcmV0ID0gYW1kZ3B1X2F0b21fcGFy c2VfZGF0YV9oZWFkZXIoY3R4LCBpbmRleCwgJnNpemUsICZmcmV2LCAmY3JldiwNCj4gKwkJCQkJ ICAgICZkYXRhX29mZnNldCk7DQo+ICsJaWYgKHJldCA9PSAwKSB7DQo+ICsJCURSTV9FUlJPUigi cGFyc2UgZGF0YSBoZWFkZXIgZmFpbGVkLlxuIik7DQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiAr CX0NCj4gKw0KPiArCURSTV9ERUJVRygiYXRvbSBmaXJtd2FyZSBjb21tb24gdGFibGUgaGVhZGVy IHNpemU6MHglMDR4LCBmcmV2OjB4JTAyeCwiDQo+ICsJCSAgIiBjcmV2OjB4JTAyeCwgZGF0YV9v ZmZzZXQ6MHglMDR4LlxuIiwgc2l6ZSwgZnJldiwgY3JldiwgZGF0YV9vZmZzZXQpOw0KPiArCS8q IG9ubHkgc3VwcG9ydCAyLjErICovDQo+ICsJaWYgKCgodWludDE2X3QpZnJldiA8PCA4IHwgY3Jl dikgPCAweDAyMDEpIHsNCj4gKwkJRFJNX0VSUk9SKCJmcmV2OjB4JTAyeCwgY3JldjoweCUwMngg PCAyLjEgIVxuIiwgZnJldiwgY3Jldik7DQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArCX0NCj4g Kw0KPiArCXJlc2VydmVkX2Jsb2NrID0gKHN0cnVjdCB2cmFtX3Jlc2VydmVfYmxvY2sgKikNCj4g KwkJKGJpb3MgKyBkYXRhX29mZnNldCArIHNpemVvZihzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVf aGVhZGVyKSk7DQo+ICsJYmxvY2tfbnVtYmVyID0gKCh1bnNpZ25lZCBpbnQpc2l6ZSAtIHNpemVv ZihzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyKSkNCj4gKwkJLyBzaXplb2Yoc3RydWN0 IHZyYW1fcmVzZXJ2ZV9ibG9jayk7DQo+ICsJcmVzZXJ2ZWRfYmxvY2sgKz0gKGJsb2NrX251bWJl ciA+IDApID8gYmxvY2tfbnVtYmVyLTEgOiAwOw0KPiArCURSTV9ERUJVRygiYmxvY2tfbnVtYmVy OjB4JTA0eCwgbGFzdCBibG9jazogMHglMDh4a2Igc3osICVka2IgZncsICVka2IgZHJ2LlxuIiwN Cj4gKwkJICBibG9ja19udW1iZXIsDQo+ICsJCSAgbGUzMl90b19jcHUocmVzZXJ2ZWRfYmxvY2st PnN0YXJ0X2FkZHJlc3NfaW5fa2IpLA0KPiArCQkgIGxlMTZfdG9fY3B1KHJlc2VydmVkX2Jsb2Nr LT51c2VkX2J5X2Zpcm13YXJlX2luX2tiKSwNCj4gKwkJICBsZTE2X3RvX2NwdShyZXNlcnZlZF9i bG9jay0+dXNlZF9ieV9kcml2ZXJfaW5fa2IpKTsNCj4gKwlpZiAocmVzZXJ2ZWRfYmxvY2stPnVz ZWRfYnlfZmlybXdhcmVfaW5fa2IgPiAwKSB7DQo+ICsJCXN0YXJ0X2FkZHJlc3NfaW5fa2IgPSBs ZTMyX3RvX2NwdShyZXNlcnZlZF9ibG9jay0+c3RhcnRfYWRkcmVzc19pbl9rYik7DQo+ICsJCW9m ZnNldCA9ICh1aW50NjRfdClzdGFydF9hZGRyZXNzX2luX2tiICogT05FX0s7DQo+ICsJCWlmICgo b2Zmc2V0ICYgKE9ORV9NRUcgLSAxKSkgPCAoNCAqIE9ORV9LICsgMSkgKSB7DQo+ICsJCQlvZmZz ZXQgLT0gT05FX01FRzsNCj4gKwkJfQ0KPiArDQo+ICsJCW9mZnNldCAmPSB+KE9ORV9NRUcgLSAx KTsNCj4gKwkJYWRldi0+ZndfdnJhbV91c2FnZS5tZW1fdHJhaW5fZmJfbG9jID0gb2Zmc2V0Ow0K PiArCQlhZGV2LT5md192cmFtX3VzYWdlLm1lbV90cmFpbl9zdXBwb3J0ID0gdHJ1ZTsNCj4gKwkJ RFJNX0RFQlVHKCJtZW1fdHJhaW5fZmJfbG9jOjB4JTA5bGx4LlxuIiwgb2Zmc2V0KTsNCj4gKwkJ cmV0ID0gMDsNCj4gKwl9IGVsc2Ugew0KPiArCQlEUk1fRVJST1IoInVzZWRfYnlfZmlybXdhcmVf aW5fa2IgaXMgMCFcbiIpOw0KPiArCQlyZXQgPSAtRUlOVkFMOw0KPiArCX0NCj4gKw0KPiArCXJl dHVybiByZXQ7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfYXRvbWZpcm13YXJlLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYXRvbWZpcm13YXJlLmgNCj4gaW5kZXggNTM0NDlmYzdiYWY0Li5mODcxYWY1ZWE2ZjMgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hdG9tZmlybXdh cmUuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYXRvbWZpcm13 YXJlLmgNCj4gQEAgLTMxLDYgKzMxLDcgQEAgdm9pZCBhbWRncHVfYXRvbWZpcm13YXJlX3NjcmF0 Y2hfcmVnc19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsNCj4gIGludCBhbWRncHVf YXRvbWZpcm13YXJlX2FsbG9jYXRlX2ZiX3NjcmF0Y2goc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpOw0KPiAgaW50IGFtZGdwdV9hdG9tZmlybXdhcmVfZ2V0X3ZyYW1faW5mbyhzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwNCj4gIAlpbnQgKnZyYW1fd2lkdGgsIGludCAqdnJhbV90eXBlLCBp bnQgKnZyYW1fdmVuZG9yKTsNCj4gK2ludCBhbWRncHVfYXRvbWZpcm13YXJlX2dldF9tZW1fdHJh aW5fZmJfbG9jKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsNCj4gIGludCBhbWRncHVfYXRv bWZpcm13YXJlX2dldF9jbG9ja19pbmZvKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsNCj4g IGludCBhbWRncHVfYXRvbWZpcm13YXJlX2dldF9nZnhfaW5mbyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldik7DQo+ICBib29sIGFtZGdwdV9hdG9tZmlybXdhcmVfbWVtX2VjY19zdXBwb3J0ZWQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOw0KPiANCg0KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9hbWQtZ2Z4