From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhoucm1 Subject: Re: [PATCH 1/3] drm/amdgpu: cleanup adjust_mc_addr handling v2 Date: Tue, 16 May 2017 10:37:48 +0800 Message-ID: <591A65FC.5030102@amd.com> References: <1494849459-3221-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1494849459-3221-1-git-send-email-deathsimple-ANTagKRnAhcb1SvskN2V4Q@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: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org CgpPbiAyMDE35bm0MDXmnIgxNeaXpSAxOTo1NywgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBG cm9tOiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4KPiBSZW5h bWUgYWRqdXN0X21jX2FkZHIgdG8gZ2V0X3ZtX3BkZSBhbmQgY2hlY2sgdGhlIGFkZHJlc3MgYml0 cyBpbiBvbmUgcGxhY2UuCj4KPiB2MjogaGFuZGxlIHZjbiBhcyB3ZWxsLCBrZWVwIHNldHRpbmcg dGhlIHZhbGlkIGJpdCBtYW51YWxseSwKPiAgICAgIGFkZCBhIEJVR19PTigpIGZvciBHTUMgdjYs IHY3IGFuZCB2OCBhcyB3ZWxsLgpJZiB0aGF0IHdheSwgSSBkaWRuJ3Qgc2VlIGhvdyBtZWFuaW5n ZnVsIGNvbXBhcmVkIHByZXZpb3VzLCBlc3BlY2lhbGx5IApmb3Igb2xkIGFzaWNzLCB0aGV5IGRv bid0IG5lZWQgdG8gYWRkIGNhbGxiYWNrcy4KUmVuYW1pbmcgaXMgb2sgdG8gbWUsIGFuZCBwcmV2 aW91cyBuYW1lIGlzIGZpbmUgYXMgd2VsbC4KClJlZ2FyZHMsCkRhdmlkIFpob3UKPgo+IFNpZ25l ZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiAt LS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgIHwgIDUgKysrLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIHwgMjYgKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8w LmMgIHwgIDYgKystLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5j ICB8ICA3ICsrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMg IHwgIDkgKysrKysrKystCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5j ICB8ICA5ICsrKysrKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAu YyAgfCAxMCArKysrKystLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0 XzAuYyB8ICA2ICsrLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y3XzAu YyAgfCAxMiArKysrLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92 NF8wLmMgIHwgIDYgKystLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFf MC5jICB8ICA1ICsrLS0tCj4gICAxMSBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA0 OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gaW5kZXgg ZmFkZWI1NS4uYmMwODllYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4g QEAgLTMwOSw4ICszMDksOCBAQCBzdHJ1Y3QgYW1kZ3B1X2dhcnRfZnVuY3Mgewo+ICAgCS8qIHNl dCBwdGUgZmxhZ3MgYmFzZWQgcGVyIGFzaWMgKi8KPiAgIAl1aW50NjRfdCAoKmdldF92bV9wdGVf ZmxhZ3MpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAgCQkJCSAgICAgdWludDMyX3Qg ZmxhZ3MpOwo+IC0JLyogYWRqdXN0IG1jIGFkZHIgaW4gZmIgZm9yIEFQVSBjYXNlICovCj4gLQl1 NjQgKCphZGp1c3RfbWNfYWRkcikoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHU2NCBhZGRy KTsKPiArCS8qIGdldCB0aGUgcGRlIGZvciBhIGdpdmVuIG1jIGFkZHIgKi8KPiArCXU2NCAoKmdl dF92bV9wZGUpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1NjQgYWRkcik7Cj4gICAJdWlu dDMyX3QgKCpnZXRfaW52YWxpZGF0ZV9yZXEpKHVuc2lnbmVkIGludCB2bV9pZCk7Cj4gICB9Owo+ ICAgCj4gQEAgLTE4MTYsNiArMTgxNiw3IEBAIGFtZGdwdV9nZXRfc2RtYV9pbnN0YW5jZShzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAjZGVmaW5lIGFtZGdwdV9hc2ljX2dldF9jb25maWdf bWVtc2l6ZShhZGV2KSAoYWRldiktPmFzaWNfZnVuY3MtPmdldF9jb25maWdfbWVtc2l6ZSgoYWRl dikpCj4gICAjZGVmaW5lIGFtZGdwdV9nYXJ0X2ZsdXNoX2dwdV90bGIoYWRldiwgdm1pZCkgKGFk ZXYpLT5nYXJ0LmdhcnRfZnVuY3MtPmZsdXNoX2dwdV90bGIoKGFkZXYpLCAodm1pZCkpCj4gICAj ZGVmaW5lIGFtZGdwdV9nYXJ0X3NldF9wdGVfcGRlKGFkZXYsIHB0LCBpZHgsIGFkZHIsIGZsYWdz KSAoYWRldiktPmdhcnQuZ2FydF9mdW5jcy0+c2V0X3B0ZV9wZGUoKGFkZXYpLCAocHQpLCAoaWR4 KSwgKGFkZHIpLCAoZmxhZ3MpKQo+ICsjZGVmaW5lIGFtZGdwdV9nYXJ0X2dldF92bV9wZGUoYWRl diwgYWRkcikgKGFkZXYpLT5nYXJ0LmdhcnRfZnVuY3MtPmdldF92bV9wZGUoKGFkZXYpLCAoYWRk cikpCj4gICAjZGVmaW5lIGFtZGdwdV92bV9jb3B5X3B0ZShhZGV2LCBpYiwgcGUsIHNyYywgY291 bnQpICgoYWRldiktPnZtX21hbmFnZXIudm1fcHRlX2Z1bmNzLT5jb3B5X3B0ZSgoaWIpLCAocGUp LCAoc3JjKSwgKGNvdW50KSkpCj4gICAjZGVmaW5lIGFtZGdwdV92bV93cml0ZV9wdGUoYWRldiwg aWIsIHBlLCB2YWx1ZSwgY291bnQsIGluY3IpICgoYWRldiktPnZtX21hbmFnZXIudm1fcHRlX2Z1 bmNzLT53cml0ZV9wdGUoKGliKSwgKHBlKSwgKHZhbHVlKSwgKGNvdW50KSwgKGluY3IpKSkKPiAg ICNkZWZpbmUgYW1kZ3B1X3ZtX3NldF9wdGVfcGRlKGFkZXYsIGliLCBwZSwgYWRkciwgY291bnQs IGluY3IsIGZsYWdzKSAoKGFkZXYpLT52bV9tYW5hZ2VyLnZtX3B0ZV9mdW5jcy0+c2V0X3B0ZV9w ZGUoKGliKSwgKHBlKSwgKGFkZHIpLCAoY291bnQpLCAoaW5jciksIChmbGFncykpKQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4gaW5kZXggODg0MjBkYy4uMzQ0Zjk0MyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4gQEAgLTY4MiwxNiAr NjgyLDYgQEAgc3RhdGljIGJvb2wgYW1kZ3B1X3ZtX3JpbmdfaGFzX2NvbXB1dGVfdm1fYnVnKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZykKPiAgIAlyZXR1cm4gZmFsc2U7Cj4gICB9Cj4gICAKPiAt c3RhdGljIHU2NCBhbWRncHVfdm1fYWRqdXN0X21jX2FkZHIoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHU2NCBtY19hZGRyKQo+IC17Cj4gLQl1NjQgYWRkciA9IG1jX2FkZHI7Cj4gLQo+IC0J aWYgKGFkZXYtPmdhcnQuZ2FydF9mdW5jcy0+YWRqdXN0X21jX2FkZHIpCj4gLQkJYWRkciA9IGFk ZXYtPmdhcnQuZ2FydF9mdW5jcy0+YWRqdXN0X21jX2FkZHIoYWRldiwgYWRkcik7Cj4gLQo+IC0J cmV0dXJuIGFkZHI7Cj4gLX0KPiAtCj4gICBib29sIGFtZGdwdV92bV9uZWVkX3BpcGVsaW5lX3N5 bmMoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAo+ICAgCQkJCSAgc3RydWN0IGFtZGdwdV9qb2Ig KmpvYikKPiAgIHsKPiBAQCAtMTAzNCwxOCArMTAyNCwxOCBAQCBzdGF0aWMgaW50IGFtZGdwdV92 bV91cGRhdGVfbGV2ZWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAJCSAgICAoY291 bnQgPT0gQU1ER1BVX1ZNX01BWF9VUERBVEVfU0laRSkpIHsKPiAgIAo+ICAgCQkJaWYgKGNvdW50 KSB7Cj4gLQkJCQl1aW50NjRfdCBwdF9hZGRyID0KPiAtCQkJCQlhbWRncHVfdm1fYWRqdXN0X21j X2FkZHIoYWRldiwgbGFzdF9wdCk7Cj4gKwkJCQl1aW50NjRfdCBlbnRyeTsKPiAgIAo+ICsJCQkJ ZW50cnkgPSBhbWRncHVfZ2FydF9nZXRfdm1fcGRlKGFkZXYsIGxhc3RfcHQpOwo+ICAgCQkJCWlm IChzaGFkb3cpCj4gICAJCQkJCWFtZGdwdV92bV9kb19zZXRfcHRlcygmcGFyYW1zLAo+ICAgCQkJ CQkJCSAgICAgIGxhc3Rfc2hhZG93LAo+IC0JCQkJCQkJICAgICAgcHRfYWRkciwgY291bnQsCj4g KwkJCQkJCQkgICAgICBlbnRyeSwgY291bnQsCj4gICAJCQkJCQkJICAgICAgaW5jciwKPiAgIAkJ CQkJCQkgICAgICBBTURHUFVfUFRFX1ZBTElEKTsKPiAgIAo+ICAgCQkJCWFtZGdwdV92bV9kb19z ZXRfcHRlcygmcGFyYW1zLCBsYXN0X3BkZSwKPiAtCQkJCQkJICAgICAgcHRfYWRkciwgY291bnQs IGluY3IsCj4gKwkJCQkJCSAgICAgIGVudHJ5LCBjb3VudCwgaW5jciwKPiAgIAkJCQkJCSAgICAg IEFNREdQVV9QVEVfVkFMSUQpOwo+ICAgCQkJfQo+ICAgCj4gQEAgLTEwNTksMTMgKzEwNDksMTUg QEAgc3RhdGljIGludCBhbWRncHVfdm1fdXBkYXRlX2xldmVsKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LAo+ICAgCX0KPiAgIAo+ICAgCWlmIChjb3VudCkgewo+IC0JCXVpbnQ2NF90IHB0X2Fk ZHIgPSBhbWRncHVfdm1fYWRqdXN0X21jX2FkZHIoYWRldiwgbGFzdF9wdCk7Cj4gKwkJdWludDY0 X3QgZW50cnk7Cj4gKwo+ICsJCWVudHJ5ID0gYW1kZ3B1X2dhcnRfZ2V0X3ZtX3BkZShhZGV2LCBs YXN0X3B0KTsKPiAgIAo+ICAgCQlpZiAodm0tPnJvb3QuYm8tPnNoYWRvdykKPiAtCQkJYW1kZ3B1 X3ZtX2RvX3NldF9wdGVzKCZwYXJhbXMsIGxhc3Rfc2hhZG93LCBwdF9hZGRyLAo+ICsJCQlhbWRn cHVfdm1fZG9fc2V0X3B0ZXMoJnBhcmFtcywgbGFzdF9zaGFkb3csIGVudHJ5LAo+ICAgCQkJCQkg ICAgICBjb3VudCwgaW5jciwgQU1ER1BVX1BURV9WQUxJRCk7Cj4gICAKPiAtCQlhbWRncHVfdm1f ZG9fc2V0X3B0ZXMoJnBhcmFtcywgbGFzdF9wZGUsIHB0X2FkZHIsCj4gKwkJYW1kZ3B1X3ZtX2Rv X3NldF9wdGVzKCZwYXJhbXMsIGxhc3RfcGRlLCBlbnRyeSwKPiAgIAkJCQkgICAgICBjb3VudCwg aW5jciwgQU1ER1BVX1BURV9WQUxJRCk7Cj4gICAJfQo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nZnhfdjlfMC5jCj4gaW5kZXggNmRjNzVkMi4uZTA4YTIzMiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYwo+IEBAIC0zNzU5LDEwICszNzU5LDggQEAgc3RhdGlj IHZvaWQgZ2Z4X3Y5XzBfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZywKPiAgIAl1aW50MzJfdCByZXEgPSByaW5nLT5hZGV2LT5nYXJ0LmdhcnRfZnVuY3MtPmdldF9p bnZhbGlkYXRlX3JlcSh2bV9pZCk7Cj4gICAJdW5zaWduZWQgZW5nID0gcmluZy0+dm1faW52X2Vu ZzsKPiAgIAo+IC0JcGRfYWRkciA9IHJpbmctPmFkZXYtPmdhcnQuZ2FydF9mdW5jcy0+YWRqdXN0 X21jX2FkZHIocmluZy0+YWRldiwgcGRfYWRkcik7Cj4gLQlwZF9hZGRyID0gcGRfYWRkciB8IDB4 MTsgLyogdmFsaWQgYml0ICovCj4gLQkvKiBub3cgb25seSB1c2UgcGh5c2ljYWwgYmFzZSBhZGRy ZXNzIG9mIFBERSBhbmQgdmFsaWQgKi8KPiAtCUJVR19PTihwZF9hZGRyICYgMHhGRkZGMDAwMDAw MDAwMDNFVUxMKTsKPiArCXBkX2FkZHIgPSBhbWRncHVfZ2FydF9nZXRfdm1fcGRlKHJpbmctPmFk ZXYsIHBkX2FkZHIpOwo+ICsJcGRfYWRkciB8PSBBTURHUFVfUFRFX1ZBTElEOwo+ICAgCj4gICAJ Z2Z4X3Y5XzBfd3JpdGVfZGF0YV90b19yZWcocmluZywgdXNlcGZwLCB0cnVlLAo+ICAgCQkJCSAg IGh1Yi0+Y3R4MF9wdGJfYWRkcl9sbzMyICsgKDIgKiB2bV9pZCksCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nbWNfdjZfMC5jCj4gaW5kZXggMWU2MjYzYS4uZDVmM2Q4NzMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKPiBAQCAtMzk1LDYgKzM5NSwxMiBAQCBzdGF0 aWMgdWludDY0X3QgZ21jX3Y2XzBfZ2V0X3ZtX3B0ZV9mbGFncyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwKPiAgIAlyZXR1cm4gcHRlX2ZsYWc7Cj4gICB9Cj4gICAKPiArc3RhdGljIHVpbnQ2 NF90IGdtY192Nl8wX2dldF92bV9wZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQ2 NF90IGFkZHIpCj4gK3sKPiArCUJVR19PTihhZGRyICYgMHhGRkZGRjAwMDAwMDBGRkZVTEwpOwo+ ICsJcmV0dXJuIGFkZHI7Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCBnbWNfdjZfMF9zZXRfZmF1 bHRfZW5hYmxlX2RlZmF1bHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAJCQkJCSAg ICAgIGJvb2wgdmFsdWUpCj4gICB7Cj4gQEAgLTExMjcsNiArMTEzMyw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgYW1kZ3B1X2dhcnRfZnVuY3MgZ21jX3Y2XzBfZ2FydF9mdW5jcyA9IHsKPiAgIAku Zmx1c2hfZ3B1X3RsYiA9IGdtY192Nl8wX2dhcnRfZmx1c2hfZ3B1X3RsYiwKPiAgIAkuc2V0X3B0 ZV9wZGUgPSBnbWNfdjZfMF9nYXJ0X3NldF9wdGVfcGRlLAo+ICAgCS5zZXRfcHJ0ID0gZ21jX3Y2 XzBfc2V0X3BydCwKPiArCS5nZXRfdm1fcGRlID0gZ21jX3Y2XzBfZ2V0X3ZtX3BkZSwKPiAgIAku Z2V0X3ZtX3B0ZV9mbGFncyA9IGdtY192Nl8wX2dldF92bV9wdGVfZmxhZ3MKPiAgIH07Cj4gICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKPiBpbmRleCA5Njc1MDViLi40ZjE0 MGU4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4gQEAgLTQ3Miw2 ICs0NzIsMTIgQEAgc3RhdGljIHVpbnQ2NF90IGdtY192N18wX2dldF92bV9wdGVfZmxhZ3Moc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAJcmV0dXJuIHB0ZV9mbGFnOwo+ICAgfQo+ICAg Cj4gK3N0YXRpYyB1aW50NjRfdCBnbWNfdjdfMF9nZXRfdm1fcGRlKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LCB1aW50NjRfdCBhZGRyKQo+ICt7Cj4gKwlCVUdfT04oYWRkciAmIDB4RkZGRkYw MDAwMDAwRkZGVUxMKTsKPiArCXJldHVybiBhZGRyOwo+ICt9Cj4gKwo+ICAgLyoqCj4gICAgKiBn bWNfdjhfMF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQgLSB1cGRhdGUgVk0gZmF1bHQgaGFuZGxp bmcKPiAgICAqCj4gQEAgLTEyOTMsNyArMTI5OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1k Z3B1X2dhcnRfZnVuY3MgZ21jX3Y3XzBfZ2FydF9mdW5jcyA9IHsKPiAgIAkuZmx1c2hfZ3B1X3Rs YiA9IGdtY192N18wX2dhcnRfZmx1c2hfZ3B1X3RsYiwKPiAgIAkuc2V0X3B0ZV9wZGUgPSBnbWNf djdfMF9nYXJ0X3NldF9wdGVfcGRlLAo+ICAgCS5zZXRfcHJ0ID0gZ21jX3Y3XzBfc2V0X3BydCwK PiAtCS5nZXRfdm1fcHRlX2ZsYWdzID0gZ21jX3Y3XzBfZ2V0X3ZtX3B0ZV9mbGFncwo+ICsJLmdl dF92bV9wdGVfZmxhZ3MgPSBnbWNfdjdfMF9nZXRfdm1fcHRlX2ZsYWdzLAo+ICsJLmdldF92bV9w ZGUgPSBnbWNfdjdfMF9nZXRfdm1fcGRlCj4gICB9Owo+ICAgCj4gICBzdGF0aWMgY29uc3Qgc3Ry dWN0IGFtZGdwdV9pcnFfc3JjX2Z1bmNzIGdtY192N18wX2lycV9mdW5jcyA9IHsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMKPiBpbmRleCAzYjVlYTBmLi5mMDVjMDM0IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4gQEAgLTY1Niw2ICs2NTYsMTIg QEAgc3RhdGljIHVpbnQ2NF90IGdtY192OF8wX2dldF92bV9wdGVfZmxhZ3Moc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCj4gICAJcmV0dXJuIHB0ZV9mbGFnOwo+ICAgfQo+ICAgCj4gK3N0YXRp YyB1aW50NjRfdCBnbWNfdjhfMF9nZXRfdm1fcGRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LCB1aW50NjRfdCBhZGRyKQo+ICt7Cj4gKwlCVUdfT04oYWRkciAmIDB4RkZGMDAwMDAwMDAwMEZG RlVMTCk7Cj4gKwlyZXR1cm4gYWRkcjsKPiArfQo+ICsKPiAgIC8qKgo+ICAgICogZ21jX3Y4XzBf c2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0IC0gdXBkYXRlIFZNIGZhdWx0IGhhbmRsaW5nCj4gICAg Kgo+IEBAIC0xNjEyLDcgKzE2MTgsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9nYXJ0 X2Z1bmNzIGdtY192OF8wX2dhcnRfZnVuY3MgPSB7Cj4gICAJLmZsdXNoX2dwdV90bGIgPSBnbWNf djhfMF9nYXJ0X2ZsdXNoX2dwdV90bGIsCj4gICAJLnNldF9wdGVfcGRlID0gZ21jX3Y4XzBfZ2Fy dF9zZXRfcHRlX3BkZSwKPiAgIAkuc2V0X3BydCA9IGdtY192OF8wX3NldF9wcnQsCj4gLQkuZ2V0 X3ZtX3B0ZV9mbGFncyA9IGdtY192OF8wX2dldF92bV9wdGVfZmxhZ3MKPiArCS5nZXRfdm1fcHRl X2ZsYWdzID0gZ21jX3Y4XzBfZ2V0X3ZtX3B0ZV9mbGFncywKPiArCS5nZXRfdm1fcGRlID0gZ21j X3Y4XzBfZ2V0X3ZtX3BkZQo+ICAgfTsKPiAgIAo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRn cHVfaXJxX3NyY19mdW5jcyBnbWNfdjhfMF9pcnFfZnVuY3MgPSB7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nbWNfdjlfMC5jCj4gaW5kZXggMTllMTAyNy4uMDQ3YjFhNyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+IEBAIC0zNTgsMTcgKzM1OCwxOSBAQCBzdGF0 aWMgdWludDY0X3QgZ21jX3Y5XzBfZ2V0X3ZtX3B0ZV9mbGFncyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwKPiAgIAlyZXR1cm4gcHRlX2ZsYWc7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHU2NCBn bWNfdjlfMF9hZGp1c3RfbWNfYWRkcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTY0IG1j X2FkZHIpCj4gK3N0YXRpYyB1NjQgZ21jX3Y5XzBfZ2V0X3ZtX3BkZShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwgdTY0IGFkZHIpCj4gICB7Cj4gLQlyZXR1cm4gYWRldi0+dm1fbWFuYWdlci52 cmFtX2Jhc2Vfb2Zmc2V0ICsgbWNfYWRkciAtIGFkZXYtPm1jLnZyYW1fc3RhcnQ7Cj4gKwlhZGRy ID0gYWRldi0+dm1fbWFuYWdlci52cmFtX2Jhc2Vfb2Zmc2V0ICsgYWRkciAtIGFkZXYtPm1jLnZy YW1fc3RhcnQ7Cj4gKwlCVUdfT04oYWRkciAmIDB4RkZGRjAwMDAwMDAwMDAzRlVMTCk7Cj4gKwly ZXR1cm4gYWRkcjsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfZ2Fy dF9mdW5jcyBnbWNfdjlfMF9nYXJ0X2Z1bmNzID0gewo+ICAgCS5mbHVzaF9ncHVfdGxiID0gZ21j X3Y5XzBfZ2FydF9mbHVzaF9ncHVfdGxiLAo+ICAgCS5zZXRfcHRlX3BkZSA9IGdtY192OV8wX2dh cnRfc2V0X3B0ZV9wZGUsCj4gLQkuZ2V0X3ZtX3B0ZV9mbGFncyA9IGdtY192OV8wX2dldF92bV9w dGVfZmxhZ3MsCj4gLQkuYWRqdXN0X21jX2FkZHIgPSBnbWNfdjlfMF9hZGp1c3RfbWNfYWRkciwK PiAgIAkuZ2V0X2ludmFsaWRhdGVfcmVxID0gZ21jX3Y5XzBfZ2V0X2ludmFsaWRhdGVfcmVxLAo+ ICsJLmdldF92bV9wdGVfZmxhZ3MgPSBnbWNfdjlfMF9nZXRfdm1fcHRlX2ZsYWdzLAo+ICsJLmdl dF92bV9wZGUgPSBnbWNfdjlfMF9nZXRfdm1fcGRlCj4gICB9Owo+ICAgCj4gICBzdGF0aWMgdm9p ZCBnbWNfdjlfMF9zZXRfZ2FydF9mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYwo+IGluZGV4IDkxY2Y3ZTYuLmZiNmY0 YjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYwo+IEBAIC0xMTQz LDEwICsxMTQzLDggQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX3JpbmdfZW1pdF92bV9mbHVzaChz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4gICAJdWludDMyX3QgcmVxID0gcmluZy0+YWRldi0+ Z2FydC5nYXJ0X2Z1bmNzLT5nZXRfaW52YWxpZGF0ZV9yZXEodm1faWQpOwo+ICAgCXVuc2lnbmVk IGVuZyA9IHJpbmctPnZtX2ludl9lbmc7Cj4gICAKPiAtCXBkX2FkZHIgPSByaW5nLT5hZGV2LT5n YXJ0LmdhcnRfZnVuY3MtPmFkanVzdF9tY19hZGRyKHJpbmctPmFkZXYsIHBkX2FkZHIpOwo+IC0J cGRfYWRkciA9IHBkX2FkZHIgfCAweDE7IC8qIHZhbGlkIGJpdCAqLwo+IC0JLyogbm93IG9ubHkg dXNlIHBoeXNpY2FsIGJhc2UgYWRkcmVzcyBvZiBQREUgYW5kIHZhbGlkICovCj4gLQlCVUdfT04o cGRfYWRkciAmIDB4RkZGRjAwMDAwMDAwMDAzRVVMTCk7Cj4gKwlwZF9hZGRyID0gYW1kZ3B1X2dh cnRfZ2V0X3ZtX3BkZShyaW5nLT5hZGV2LCBwZF9hZGRyKTsKPiArCXBkX2FkZHIgfD0gQU1ER1BV X1BURV9WQUxJRDsKPiAgIAo+ICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFNETUFfUEtUX0hF QURFUl9PUChTRE1BX09QX1NSQk1fV1JJVEUpIHwKPiAgIAkJCSAgU0RNQV9QS1RfU1JCTV9XUklU RV9IRUFERVJfQllURV9FTigweGYpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvdXZkX3Y3XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18w LmMKPiBpbmRleCAyMmY0MmYzLi4xOTk3ZWM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS91dmRfdjdfMC5jCj4gQEAgLTEzMTYsMTAgKzEzMTYsOCBAQCBzdGF0aWMgdm9pZCB1dmRfdjdf MF9yaW5nX2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAo+ICAgCXVpbnQz Ml90IGRhdGEwLCBkYXRhMSwgbWFzazsKPiAgIAl1bnNpZ25lZCBlbmcgPSByaW5nLT52bV9pbnZf ZW5nOwo+ICAgCj4gLQlwZF9hZGRyID0gcmluZy0+YWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5hZGp1 c3RfbWNfYWRkcihyaW5nLT5hZGV2LCBwZF9hZGRyKTsKPiAtCXBkX2FkZHIgPSBwZF9hZGRyIHwg MHgxOyAvKiB2YWxpZCBiaXQgKi8KPiAtCS8qIG5vdyBvbmx5IHVzZSBwaHlzaWNhbCBiYXNlIGFk ZHJlc3Mgb2YgUERFIGFuZCB2YWxpZCAqLwo+IC0JQlVHX09OKHBkX2FkZHIgJiAweEZGRkYwMDAw MDAwMDAwM0VVTEwpOwo+ICsJcGRfYWRkciA9IGFtZGdwdV9nYXJ0X2dldF92bV9wZGUocmluZy0+ YWRldiwgcGRfYWRkcik7Cj4gKwlwZF9hZGRyIHw9IEFNREdQVV9QVEVfVkFMSUQ7Cj4gICAKPiAg IAlkYXRhMCA9IChodWItPmN0eDBfcHRiX2FkZHJfaGkzMiArIHZtX2lkICogMikgPDwgMjsKPiAg IAlkYXRhMSA9IHVwcGVyXzMyX2JpdHMocGRfYWRkcik7Cj4gQEAgLTEzNTgsMTAgKzEzNTYsOCBA QCBzdGF0aWMgdm9pZCB1dmRfdjdfMF9lbmNfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywKPiAgIAl1aW50MzJfdCByZXEgPSByaW5nLT5hZGV2LT5nYXJ0LmdhcnRf ZnVuY3MtPmdldF9pbnZhbGlkYXRlX3JlcSh2bV9pZCk7Cj4gICAJdW5zaWduZWQgZW5nID0gcmlu Zy0+dm1faW52X2VuZzsKPiAgIAo+IC0JcGRfYWRkciA9IHJpbmctPmFkZXYtPmdhcnQuZ2FydF9m dW5jcy0+YWRqdXN0X21jX2FkZHIocmluZy0+YWRldiwgcGRfYWRkcik7Cj4gLQlwZF9hZGRyID0g cGRfYWRkciB8IDB4MTsgLyogdmFsaWQgYml0ICovCj4gLQkvKiBub3cgb25seSB1c2UgcGh5c2lj YWwgYmFzZSBhZGRyZXNzIG9mIFBERSBhbmQgdmFsaWQgKi8KPiAtCUJVR19PTihwZF9hZGRyICYg MHhGRkZGMDAwMDAwMDAwMDNFVUxMKTsKPiArCXBkX2FkZHIgPSBhbWRncHVfZ2FydF9nZXRfdm1f cGRlKHJpbmctPmFkZXYsIHBkX2FkZHIpOwo+ICsJcGRfYWRkciB8PSBBTURHUFVfUFRFX1ZBTElE Owo+ICAgCj4gICAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgSEVWQ19FTkNfQ01EX1JFR19XUklU RSk7Cj4gICAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywJKGh1Yi0+Y3R4MF9wdGJfYWRkcl9oaTMy ICsgdm1faWQgKiAyKSA8PCAyKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvdmNlX3Y0XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92NF8wLmMK PiBpbmRleCAwN2IyYWM3Li44ZGJkMGI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3ZjZV92NF8wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92 Y2VfdjRfMC5jCj4gQEAgLTkyNiwxMCArOTI2LDggQEAgc3RhdGljIHZvaWQgdmNlX3Y0XzBfZW1p dF92bV9mbHVzaChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4gICAJdWludDMyX3QgcmVxID0g cmluZy0+YWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5nZXRfaW52YWxpZGF0ZV9yZXEodm1faWQpOwo+ ICAgCXVuc2lnbmVkIGVuZyA9IHJpbmctPnZtX2ludl9lbmc7Cj4gICAKPiAtCXBkX2FkZHIgPSBy aW5nLT5hZGV2LT5nYXJ0LmdhcnRfZnVuY3MtPmFkanVzdF9tY19hZGRyKHJpbmctPmFkZXYsIHBk X2FkZHIpOwo+IC0JcGRfYWRkciA9IHBkX2FkZHIgfCAweDE7IC8qIHZhbGlkIGJpdCAqLwo+IC0J Lyogbm93IG9ubHkgdXNlIHBoeXNpY2FsIGJhc2UgYWRkcmVzcyBvZiBQREUgYW5kIHZhbGlkICov Cj4gLQlCVUdfT04ocGRfYWRkciAmIDB4RkZGRjAwMDAwMDAwMDAzRVVMTCk7Cj4gKwlwZF9hZGRy ID0gYW1kZ3B1X2dhcnRfZ2V0X3ZtX3BkZShyaW5nLT5hZGV2LCBwZF9hZGRyKTsKPiArCXBkX2Fk ZHIgfD0gQU1ER1BVX1BURV9WQUxJRDsKPiAgIAo+ICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcs IFZDRV9DTURfUkVHX1dSSVRFKTsKPiAgIAlhbWRncHVfcmluZ193cml0ZShyaW5nLAkoaHViLT5j dHgwX3B0Yl9hZGRyX2hpMzIgKyB2bV9pZCAqIDIpIDw8IDIpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvdmNuX3YxXzAuYwo+IGluZGV4IDk0MTA0YTkuLmJiYmU2MmYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMKPiBAQCAtODgyLDkgKzg4Miw4IEBAIHN0YXRpYyB2 b2lkIHZjbl92MV8wX2RlY19yaW5nX2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpy aW5nLAo+ICAgCXVpbnQzMl90IGRhdGEwLCBkYXRhMSwgbWFzazsKPiAgIAl1bnNpZ25lZCBlbmcg PSByaW5nLT52bV9pbnZfZW5nOwo+ICAgCj4gLQlwZF9hZGRyID0gcGRfYWRkciB8IDB4MTsgLyog dmFsaWQgYml0ICovCj4gLQkvKiBub3cgb25seSB1c2UgcGh5c2ljYWwgYmFzZSBhZGRyZXNzIG9m IFBERSBhbmQgdmFsaWQgKi8KPiAtCUJVR19PTihwZF9hZGRyICYgMHhGRkZGMDAwMDAwMDAwMDNF VUxMKTsKPiArCXBkX2FkZHIgPSBhbWRncHVfZ2FydF9nZXRfdm1fcGRlKHJpbmctPmFkZXYsIHBk X2FkZHIpOwo+ICsJcGRfYWRkciB8PSBBTURHUFVfUFRFX1ZBTElEOwo+ICAgCj4gICAJZGF0YTAg PSAoaHViLT5jdHgwX3B0Yl9hZGRyX2hpMzIgKyB2bV9pZCAqIDIpIDw8IDI7Cj4gICAJZGF0YTEg PSB1cHBlcl8zMl9iaXRzKHBkX2FkZHIpOwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9hbWQtZ2Z4Cg==