From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v4 5/9] drm/client: Add client callbacks Date: Tue, 3 Jul 2018 15:18:13 +0200 Message-ID: <20180703131813.GF3891@phenom.ffwll.local> References: <20180702135433.7960-1-noralf@tronnes.org> <20180702135433.7960-6-noralf@tronnes.org> <20180703074605.GF7880@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD1EA89F82 for ; Tue, 3 Jul 2018 13:18:17 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id l23-v6so1610157edq.0 for ; Tue, 03 Jul 2018 06:18:17 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Noralf =?iso-8859-1?Q?Tr=F8nnes?= Cc: david@lechnology.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdWwgMDMsIDIwMTggYXQgMDM6MDc6NTBQTSArMDIwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IAo+IERlbiAwMy4wNy4yMDE4IDA5LjQ2LCBza3JldiBEYW5pZWwgVmV0dGVyOgo+ ID4gT24gTW9uLCBKdWwgMDIsIDIwMTggYXQgMDM6NTQ6MjlQTSArMDIwMCwgTm9yYWxmIFRyw7hu bmVzIHdyb3RlOgo+ID4gPiBBZGQgY2xpZW50IGNhbGxiYWNrcyBhbmQgaG9vayB0aGVtIHVwLgo+ ID4gPiBBZGQgYSBsaXN0IG9mIGNsaWVudHMgcGVyIGRybV9kZXZpY2UuCj4gPiA+IAo+ID4gPiBT aWduZWQtb2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KPiA+IGJ0 dyBmb3IgcmV2aWV3aW5nIGl0J2QgYmUgc2ltcGxlciBpZiB5b3UgbWVyZ2UgdGhlIDIgcGF0Y2hl cyB0aGF0IGFkZCB0aGUKPiA+IGNsaWVudCBsaWJyYXJ5LCBhdm9pZHMgbWUgaGF2aW5nIHRvIGp1 bXAgYmFjayZmb3J0aCAuLgo+ID4gCj4gPiBCdW5jaCBvZiBjb21tZW50cyBiZWxvdyBzdGlsbC4K PiA+IC1EYW5pZWwKPiA+IAo+ID4gPiAtLS0KPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Ns aWVudC5jICAgICAgICB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K PiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jICAgICAgICAgICB8ICA3ICsrKwo+ID4g PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jIHwgIDIgKy0KPiA+ID4gICBk cml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jICAgICB8IDExICsrKystCj4gPiA+ICAgZHJp dmVycy9ncHUvZHJtL2RybV9maWxlLmMgICAgICAgICAgfCAgMyArKwo+ID4gPiAgIGRyaXZlcnMv Z3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMgIHwgIDMgKysKPiA+ID4gICBpbmNsdWRlL2RybS9k cm1fY2xpZW50LmggICAgICAgICAgICB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQo+ID4gPiAgIGluY2x1ZGUvZHJtL2RybV9kZXZpY2UuaCAgICAgICAgICAgIHwgMTQgKysrKysr Cj4gPiA+ICAgOCBmaWxlcyBjaGFuZ2VkLCAyMDEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMo LSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYwo+ID4gPiBpbmRleCA5YzliOGFjN2FlYTMu LmYwNWVlOThiZDEwYyAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGll bnQuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jCj4gPiA+IEBAIC00 LDYgKzQsNyBAQAo+ID4gPiAgICAqLwo+ID4gPiAgICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Cj4g PiA+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gPiA+ICAgI2luY2x1ZGUgPGxpbnV4L211 dGV4Lmg+Cj4gPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+Cj4gPiA+ICAgI2luY2x1 ZGUgPGxpbnV4L3NsYWIuaD4KPiA+ID4gQEAgLTY2LDYgKzY3LDcgQEAgRVhQT1JUX1NZTUJPTChk cm1fY2xpZW50X2Nsb3NlKTsKPiA+ID4gICAgKiBAZGV2OiBEUk0gZGV2aWNlCj4gPiA+ICAgICog QGNsaWVudDogRFJNIGNsaWVudAo+ID4gPiAgICAqIEBuYW1lOiBDbGllbnQgbmFtZQo+ID4gPiAr ICogQGZ1bmNzOiBEUk0gY2xpZW50IGZ1bmN0aW9ucyAob3B0aW9uYWwpCj4gPiA+ICAgICoKPiA+ ID4gICAgKiBVc2UgZHJtX2NsaWVudF9wdXQoKSB0byBmcmVlIHRoZSBjbGllbnQuCj4gPiA+ICAg ICoKPiA+ID4gQEAgLTczLDI0ICs3NSw0NyBAQCBFWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfY2xv c2UpOwo+ID4gPiAgICAqIFplcm8gb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9u IGZhaWx1cmUuCj4gPiA+ICAgICovCj4gPiA+ICAgaW50IGRybV9jbGllbnRfbmV3KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LAo+ID4gPiAtCQkg ICBjb25zdCBjaGFyICpuYW1lKQo+ID4gPiArCQkgICBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBz dHJ1Y3QgZHJtX2NsaWVudF9mdW5jcyAqZnVuY3MpCj4gPiA+ICAgewo+ID4gPiArCWJvb2wgcmVn aXN0ZXJlZDsKPiA+ID4gICAJaW50IHJldDsKPiA+ID4gICAJaWYgKCFkcm1fY29yZV9jaGVja19m ZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQpIHx8Cj4gPiA+ICAgCSAgICAhZGV2LT5kcml2ZXIt PmR1bWJfY3JlYXRlIHx8ICFkZXYtPmRyaXZlci0+Z2VtX3ByaW1lX3ZtYXApCj4gPiA+ICAgCQly ZXR1cm4gLUVOT1RTVVBQOwo+ID4gPiArCWlmIChmdW5jcyAmJiAhdHJ5X21vZHVsZV9nZXQoZnVu Y3MtPm93bmVyKSkKPiA+ID4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gPiA+ICsKPiA+ID4gICAJY2xp ZW50LT5kZXYgPSBkZXY7Cj4gPiA+ICAgCWNsaWVudC0+bmFtZSA9IG5hbWU7Cj4gPiA+ICsJY2xp ZW50LT5mdW5jcyA9IGZ1bmNzOwo+ID4gPiAgIAlyZXQgPSBkcm1fY2xpZW50X29wZW4oY2xpZW50 KTsKPiA+ID4gICAJaWYgKHJldCkKPiA+ID4gLQkJcmV0dXJuIHJldDsKPiA+ID4gKwkJZ290byBl cnJfcHV0X21vZHVsZTsKPiA+ID4gKwo+ID4gPiArCW11dGV4X2xvY2soJmRldi0+Y2xpZW50bGlz dF9tdXRleCk7Cj4gPiA+ICsJcmVnaXN0ZXJlZCA9IGRldi0+cmVnaXN0ZXJlZDsKPiA+ID4gKwlp ZiAocmVnaXN0ZXJlZCkKPiA+ID4gKwkJbGlzdF9hZGQoJmNsaWVudC0+bGlzdCwgJmRldi0+Y2xp ZW50bGlzdCk7Cj4gPiA+ICsJbXV0ZXhfdW5sb2NrKCZkZXYtPmNsaWVudGxpc3RfbXV0ZXgpOwo+ ID4gPiArCWlmICghcmVnaXN0ZXJlZCkgewo+ID4gPiArCQlyZXQgPSAtRU5PREVWOwo+ID4gPiAr CQlnb3RvIGVycl9jbG9zZTsKPiA+ID4gKwl9Cj4gPiA+ICAgCWRybV9kZXZfZ2V0KGRldik7Cj4g PiBUaGlzIG9ubHkgd29ya3MgaWYgdGhlIGNhbGxlciBob2xkcyBhIHJlZmVyZW5jZSBmb3IgdXMg b24gZGV2IGFscmVhZHksIG9yCj4gPiBoYXMgc29tZSBvdGhlciBndWFyYW50ZWUgdGhhdCBpdCB3 b24ndCBkaXNhcHBlYXIuIFdvdWxkIGJlIGdvb2QgdG8gbWVudGlvbgo+ID4gdGhpcyBpbiB0aGUg a2VybmVsZG9jLgo+ID4gCj4gPiA+ICAgCXJldHVybiAwOwo+ID4gPiArCj4gPiA+ICtlcnJfY2xv c2U6Cj4gPiA+ICsJZHJtX2NsaWVudF9jbG9zZShjbGllbnQpOwo+ID4gPiArZXJyX3B1dF9tb2R1 bGU6Cj4gPiA+ICsJaWYgKGZ1bmNzKQo+ID4gPiArCQltb2R1bGVfcHV0KGZ1bmNzLT5vd25lcik7 Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4gcmV0Owo+ID4gPiAgIH0KPiA+ID4gICBFWFBPUlRfU1lN Qk9MKGRybV9jbGllbnRfbmV3KTsKPiA+ID4gQEAgLTExNiw5ICsxNDEsNzIgQEAgdm9pZCBkcm1f Y2xpZW50X3JlbGVhc2Uoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpCj4gPiA+ICAgCWRy bV9jbGllbnRfY2xvc2UoY2xpZW50KTsKPiA+ID4gICAJZHJtX2Rldl9wdXQoZGV2KTsKPiA+ID4g KwlpZiAoY2xpZW50LT5mdW5jcykKPiA+ID4gKwkJbW9kdWxlX3B1dChjbGllbnQtPmZ1bmNzLT5v d25lcik7Cj4gPiA+ICAgfQo+ID4gPiAgIEVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9yZWxlYXNl KTsKPiA+ID4gK3ZvaWQgZHJtX2NsaWVudF9kZXZfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCAq dG1wOwo+ID4gPiArCj4gPiA+ICsJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJ VkVSX01PREVTRVQpKQo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICsKPiA+ID4gKwltdXRleF9sb2Nr KCZkZXYtPmNsaWVudGxpc3RfbXV0ZXgpOwo+ID4gPiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZShjbGllbnQsIHRtcCwgJmRldi0+Y2xpZW50bGlzdCwgbGlzdCkgewo+ID4gPiArCQlsaXN0X2Rl bCgmY2xpZW50LT5saXN0KTsKPiA+ID4gKwkJaWYgKGNsaWVudC0+ZnVuY3MgJiYgY2xpZW50LT5m dW5jcy0+dW5yZWdpc3Rlcikgewo+ID4gPiArCQkJY2xpZW50LT5mdW5jcy0+dW5yZWdpc3Rlcihj bGllbnQpOwo+ID4gSG0sIG5vdCAtPnVucmVnaXN0ZXIgaXMgY2FsbGVkIHdoaWxlIGhvbGRpbmcg dGhlIGxvY2suIEkgdGhvdWdodCB0aGF0Cj4gPiBibG93cyB1cCBmb3IgeW91Pwo+IAo+IEl0IGlz IGZpbmUgbm93IHRoYXQgd2UgZGVjaWRlZCB0aGF0IHRoZSBjbGllbnQgY2FuJ3QgcmVtb3ZlIGl0 c2VsZi4KPiBPbmx5IHRoZSBkcml2ZXIgY2FuIGRvIGl0IG9uIGRybV9kZXZfdW5yZWdpc3Rlcigp LgoKSSB3YXMgbW9yZSB3b25kZXJpbmcgYWJvdXQgY3JlYXRpbmcgYW4gdW5lY2Vzc2FyeSBsb2Nr aW5nIGhpZXJhcmNoeQpjb21wbGljYXRpb24uIEJ1dCB0aHJvdWdoIHRoZSAtPmhvdHBsdWcgYW5k IC0+cmVzdG9yZSBjYWxsYmFja3Mgd2UgYWxyZWFkeQpyZXF1aXJlIHRoYXQgYWxsIGNsaWVudCBs b2NrcyAod2hpY2ggd2lsbCBhbHNvIGluY2x1ZGUgYW55dGhpbmcgcmVsYXRlZCB0bwpmYmRldiBh bmQgZmJjb24sIGhlbmNlIGFsc28gY29uc29sZV9sb2NrKSBtdXN0IG5lc3Qgd2l0aGluCmRldi0+ Y2xpZW50bGlzdF9tdXRleC4gVGhhdCdzIHRoZSBwYXJ0IEkgd2FzIHdvcnJpZWQgYWJvdXQsIGJ1 dCB0aGF0J3Mgbm90CmEgZ29vZCBjb25jZXJuIHJlYWxseS4KClNvIGFsbCBmaW5lIGZvciBtZSBv biAybmQgdGhvdWdodC4KPiAKPiA+ID4gKwkJfSBlbHNlIHsKPiA+ID4gKwkJCWRybV9jbGllbnRf cmVsZWFzZShjbGllbnQpOwo+ID4gPiArCQkJa2ZyZWUoY2xpZW50KTsKPiA+ID4gKwkJfQo+ID4g PiArCX0KPiA+ID4gKwltdXRleF91bmxvY2soJmRldi0+Y2xpZW50bGlzdF9tdXRleCk7Cj4gPiA+ ICt9Cj4gPiA+ICsKPiA+IE5lZWRzIGEgYml0IG9mIGtlcm5lbGRvYyBoZXJlIHNpbmNlIGV4cG9y dGVkIGZ1bmN0aW9uLiBEcml2ZXJzIG1pZ2h0IGFsc28KPiA+IHdhbnQgdG8gY2FsbCB0aGlzIGZy b20gdGhlaXIgb3duIGhvdHBsdWcgaGFuZGxpbmcuCj4gCj4gZHJtX2NsaWVudF9kZXZfaG90cGx1 ZygpIGlzIG9ubHkgY2FsbGVkIGJ5IGRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoKS4KPiBU aGUgcmVhc29uIGl0J3MgZXhwb3J0ZWQgaXMgYmVjYXVzZSB0aGUgaGVscGVyIGNhbiBiZSBidWls dCBhcyBhIG1vZHVsZS4KCkFueXRoaW5nIGhlbHBlcnMgZG8gZHJpdmVycyBzaG91bGQgYmUgYWJs ZSB0byBvdmVycmlkZS4gQW55dGhpbmcgZHJpdmVycwpzaG91bGQgYmUgYWJsZSB0byB1c2Ugc2hv dWxkIGhhdmUgZG9jcy4KCkFuZCBlLmcuIGRybV9zeXNmc19ob3RwbHVnX2V2ZW50IGlzIGFjdHVh bGx5IGNhbGxlZCBieSBhIGRyaXZlciBuYW1lbHkKdm13Z2Z4LCBhbmQgSSB0aGluayB0aGVzZSB0 d28gZnVuY3Rpb25zIGFyZSBwcmV0dHkgbXVjaCBlcXVpdmFsZW50IC0gb25lCmluZm9ybXMgdXNl cnNwYWNlIGNsaWVudHMgYWJvdXQgYSBob3RwbHVnLCB0aGUgb3RoZXIga2VybmVsIGNsaWVudHMg YWJvdXQKYSBob3RwbHVnLgoKQW55d2F5LCBzaW5jZSBteSBvbmx5IG1ham9yIGNvbmNlcm4gKHRo ZSBsb2NraW5nIHF1ZXN0aW9uKSBpcyBjbGVhcmVkIHVwCmFmdGVyIGEgYml0IG1vcmUgdGhpbmsg SSB0aGluayB0aGlzIGlzIGdvb2QgZm9yIGFuIHItYiwgb25jZSB0aGUga2VybmVsZG9jCmlzIGFs bCBmaXhlZCB1cCBhbmQgdGhlIC0+cmVsZWFzZSBjYWxsYmFjayBnb25lOgoKUmV2aWV3ZWQtYnk6 IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpDaGVlcnMsIERhbmllbAoK PiAKPiBOb3JhbGYuCj4gCj4gPiA+ICt2b2lkIGRybV9jbGllbnRfZGV2X2hvdHBsdWcoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHJtX2NsaWVudF9kZXYg KmNsaWVudDsKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsJaWYgKCFkcm1fY29yZV9j aGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQpKQo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ ICsKPiA+ID4gKwltdXRleF9sb2NrKCZkZXYtPmNsaWVudGxpc3RfbXV0ZXgpOwo+ID4gPiArCWxp c3RfZm9yX2VhY2hfZW50cnkoY2xpZW50LCAmZGV2LT5jbGllbnRsaXN0LCBsaXN0KSB7Cj4gPiA+ ICsJCWlmICghY2xpZW50LT5mdW5jcyB8fCAhY2xpZW50LT5mdW5jcy0+aG90cGx1ZykKPiA+ID4g KwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCXJldCA9IGNsaWVudC0+ZnVuY3MtPmhvdHBs dWcoY2xpZW50KTsKPiA+ID4gKwkJRFJNX0RFVl9ERUJVR19LTVMoZGV2LT5kZXYsICIlczogcmV0 PSVkXG4iLCBjbGllbnQtPm5hbWUsIHJldCk7Cj4gPiA+ICsJfQo+ID4gPiArCW11dGV4X3VubG9j aygmZGV2LT5jbGllbnRsaXN0X211dGV4KTsKPiA+ID4gK30KPiA+ID4gK0VYUE9SVF9TWU1CT0wo ZHJtX2NsaWVudF9kZXZfaG90cGx1Zyk7Cj4gPiA+ICsKPiA+ID4gK3ZvaWQgZHJtX2NsaWVudF9k ZXZfcmVzdG9yZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiArewo+ID4gPiArCXN0cnVj dCBkcm1fY2xpZW50X2RldiAqY2xpZW50Owo+ID4gPiArCWludCByZXQ7Cj4gPiA+ICsKPiA+ID4g KwlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpCj4gPiA+ ICsJCXJldHVybjsKPiA+ID4gKwo+ID4gPiArCW11dGV4X2xvY2soJmRldi0+Y2xpZW50bGlzdF9t dXRleCk7Cj4gPiA+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShjbGllbnQsICZkZXYtPmNsaWVudGxp c3QsIGxpc3QpIHsKPiA+ID4gKwkJaWYgKCFjbGllbnQtPmZ1bmNzIHx8ICFjbGllbnQtPmZ1bmNz LT5yZXN0b3JlKQo+ID4gPiArCQkJY29udGludWU7Cj4gPiA+ICsKPiA+ID4gKwkJcmV0ID0gY2xp ZW50LT5mdW5jcy0+cmVzdG9yZShjbGllbnQpOwo+ID4gPiArCQlEUk1fREVWX0RFQlVHX0tNUyhk ZXYtPmRldiwgIiVzOiByZXQ9JWRcbiIsIGNsaWVudC0+bmFtZSwgcmV0KTsKPiA+ID4gKwkJaWYg KCFyZXQpIC8qIFRoZSBmaXJzdCBvbmUgdG8gcmV0dXJuIHplcm8gZ2V0cyB0aGUgcHJpdmlsZWdl IHRvIHJlc3RvcmUgKi8KPiA+ID4gKwkJCWJyZWFrOwo+ID4gPiArCX0KPiA+ID4gKwltdXRleF91 bmxvY2soJmRldi0+Y2xpZW50bGlzdF9tdXRleCk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gICBz dGF0aWMgdm9pZCBkcm1fY2xpZW50X2J1ZmZlcl9kZWxldGUoc3RydWN0IGRybV9jbGllbnRfYnVm ZmVyICpidWZmZXIpCj4gPiA+ICAgewo+ID4gPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g YnVmZmVyLT5jbGllbnQtPmRldjsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCj4gPiA+IGluZGV4IGU3ZmYwYjAz MzI4Yi4uNmViOTM1YmIyZjkyIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2Rydi5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKPiA+ID4gQEAgLTM0 LDYgKzM0LDcgQEAKPiA+ID4gICAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ID4gPiAgICNpbmNs dWRlIDxsaW51eC9zcmN1Lmg+Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9jbGllbnQuaD4KPiA+ ID4gICAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KPiA+ID4gICAjaW5jbHVkZSA8ZHJtL2RybVAu aD4KPiA+ID4gQEAgLTUwNiw2ICs1MDcsNyBAQCBpbnQgZHJtX2Rldl9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gPiA+ICAgCUlOSVRfTElTVF9IRUFEKCZkZXYtPmZpbGVsaXN0KTsKPiA+ ID4gICAJSU5JVF9MSVNUX0hFQUQoJmRldi0+ZmlsZWxpc3RfaW50ZXJuYWwpOwo+ID4gPiArCUlO SVRfTElTVF9IRUFEKCZkZXYtPmNsaWVudGxpc3QpOwo+ID4gPiAgIAlJTklUX0xJU1RfSEVBRCgm ZGV2LT5jdHhsaXN0KTsKPiA+ID4gICAJSU5JVF9MSVNUX0hFQUQoJmRldi0+dm1hbGlzdCk7Cj4g PiA+ICAgCUlOSVRfTElTVF9IRUFEKCZkZXYtPm1hcGxpc3QpOwo+ID4gPiBAQCAtNTE1LDYgKzUx Nyw3IEBAIGludCBkcm1fZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gICAJ c3Bpbl9sb2NrX2luaXQoJmRldi0+ZXZlbnRfbG9jayk7Cj4gPiA+ICAgCW11dGV4X2luaXQoJmRl di0+c3RydWN0X211dGV4KTsKPiA+ID4gICAJbXV0ZXhfaW5pdCgmZGV2LT5maWxlbGlzdF9tdXRl eCk7Cj4gPiA+ICsJbXV0ZXhfaW5pdCgmZGV2LT5jbGllbnRsaXN0X211dGV4KTsKPiA+ID4gICAJ bXV0ZXhfaW5pdCgmZGV2LT5jdHhsaXN0X211dGV4KTsKPiA+ID4gICAJbXV0ZXhfaW5pdCgmZGV2 LT5tYXN0ZXJfbXV0ZXgpOwo+ID4gPiBAQCAtNTcwLDYgKzU3Myw3IEBAIGludCBkcm1fZGV2X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gICBlcnJfZnJlZToKPiA+ID4gICAJbXV0 ZXhfZGVzdHJveSgmZGV2LT5tYXN0ZXJfbXV0ZXgpOwo+ID4gPiAgIAltdXRleF9kZXN0cm95KCZk ZXYtPmN0eGxpc3RfbXV0ZXgpOwo+ID4gPiArCW11dGV4X2Rlc3Ryb3koJmRldi0+Y2xpZW50bGlz dF9tdXRleCk7Cj4gPiA+ICAgCW11dGV4X2Rlc3Ryb3koJmRldi0+ZmlsZWxpc3RfbXV0ZXgpOwo+ ID4gPiAgIAltdXRleF9kZXN0cm95KCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gPiA+ICAgCXJldHVy biByZXQ7Cj4gPiA+IEBAIC02MDQsNiArNjA4LDcgQEAgdm9pZCBkcm1fZGV2X2Zpbmkoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiA+ID4gICAJbXV0ZXhfZGVzdHJveSgmZGV2LT5tYXN0ZXJfbXV0 ZXgpOwo+ID4gPiAgIAltdXRleF9kZXN0cm95KCZkZXYtPmN0eGxpc3RfbXV0ZXgpOwo+ID4gPiAr CW11dGV4X2Rlc3Ryb3koJmRldi0+Y2xpZW50bGlzdF9tdXRleCk7Cj4gPiA+ICAgCW11dGV4X2Rl c3Ryb3koJmRldi0+ZmlsZWxpc3RfbXV0ZXgpOwo+ID4gPiAgIAltdXRleF9kZXN0cm95KCZkZXYt PnN0cnVjdF9tdXRleCk7Cj4gPiA+ICAgCWtmcmVlKGRldi0+dW5pcXVlKTsKPiA+ID4gQEAgLTg1 OSw2ICs4NjQsOCBAQCB2b2lkIGRybV9kZXZfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ID4gPiAgIAlkZXYtPnJlZ2lzdGVyZWQgPSBmYWxzZTsKPiA+ID4gKwlkcm1fY2xpZW50 X2Rldl91bnJlZ2lzdGVyKGRldik7Cj4gPiA+ICsKPiA+ID4gICAJaWYgKGRybV9jb3JlX2NoZWNr X2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpCj4gPiA+ICAgCQlkcm1fbW9kZXNldF91bnJl Z2lzdGVyX2FsbChkZXYpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9m Yl9jbWFfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+ID4g PiBpbmRleCA1NzYyYTdjNDQxZTkuLjcxOGM3Zjk2MWQ4YSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9mYl9jbWFfaGVscGVyLmMKPiA+ID4gQEAgLTE4MSw3ICsxODEsNyBAQCBzdHJ1Y3Qg ZHJtX2ZiZGV2X2NtYSAqZHJtX2ZiZGV2X2NtYV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gPiA+ICAgCWZiX2hlbHBlciA9ICZmYmRldl9jbWEtPmZiX2hlbHBlcjsKPiA+ID4gLQlyZXQg PSBkcm1fY2xpZW50X25ldyhkZXYsICZmYl9oZWxwZXItPmNsaWVudCwgImZiZGV2Iik7Cj4gPiA+ ICsJcmV0ID0gZHJtX2NsaWVudF9uZXcoZGV2LCAmZmJfaGVscGVyLT5jbGllbnQsICJmYmRldiIs IE5VTEwpOwo+ID4gPiAgIAlpZiAocmV0KQo+ID4gPiAgIAkJZ290byBlcnJfZnJlZTsKPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gPiA+IGluZGV4IDBhMGE1NzdlYmMzYy4uYmVhM2EwY2Iz MjRhIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiA+ID4gQEAgLTI5ODks OCArMjk4OSwxNSBAQCBzdGF0aWMgdm9pZCBkcm1fZmJkZXZfZmJfZGVzdHJveShzdHJ1Y3QgZmJf aW5mbyAqaW5mbykKPiA+ID4gICAJfQo+ID4gPiAgIAlkcm1fY2xpZW50X2ZyYW1lYnVmZmVyX2Rl bGV0ZShmYl9oZWxwZXItPmJ1ZmZlcik7Cj4gPiA+IC0JZHJtX2NsaWVudF9yZWxlYXNlKCZmYl9o ZWxwZXItPmNsaWVudCk7Cj4gPiA+IC0Ja2ZyZWUoZmJfaGVscGVyKTsKPiA+ID4gKwkvKgo+ID4g PiArCSAqIEZJWE1FOgo+ID4gPiArCSAqIFJlbW92ZSBjb25kaXRpb25hbCB3aGVuIGFsbCBDTUEg ZHJpdmVycyBoYXZlIGJlZW4gbW92ZWQgb3ZlciB0byB1c2luZwo+ID4gPiArCSAqIGRybV9mYmRl dl9nZW5lcmljX3NldHVwKCkuCj4gPiA+ICsJICovCj4gPiA+ICsJaWYgKGZiX2hlbHBlci0+Y2xp ZW50LmZ1bmNzKSB7Cj4gPiA+ICsJCWRybV9jbGllbnRfcmVsZWFzZSgmZmJfaGVscGVyLT5jbGll bnQpOwo+ID4gPiArCQlrZnJlZShmYl9oZWxwZXIpOwo+ID4gPiArCX0KPiA+ID4gICB9Cj4gPiA+ ICAgc3RhdGljIGludCBkcm1fZmJkZXZfZmJfbW1hcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZpbGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmlsZS5jCj4gPiA+IGluZGV4IDY2 YmI0MDNkYzhhYi4uZmZhOGRjMzU1MTVmIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZpbGUuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZpbGUuYwo+ID4g PiBAQCAtMzUsNiArMzUsNyBAQAo+ID4gPiAgICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gPiA+ ICAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fY2xp ZW50Lmg+Cj4gPiA+ICAgI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgo+ID4gPiAgICNpbmNsdWRl IDxkcm0vZHJtUC5oPgo+ID4gPiBAQCAtNDQ0LDYgKzQ0NSw4IEBAIHZvaWQgZHJtX2xhc3RjbG9z ZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKPiA+ID4gICAJaWYgKGRybV9jb3JlX2NoZWNrX2Zl YXR1cmUoZGV2LCBEUklWRVJfTEVHQUNZKSkKPiA+ID4gICAJCWRybV9sZWdhY3lfZGV2X3JlaW5p dChkZXYpOwo+ID4gPiArCj4gPiA+ICsJZHJtX2NsaWVudF9kZXZfcmVzdG9yZShkZXYpOwo+ID4g PiAgIH0KPiA+ID4gICAvKioKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f cHJvYmVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jCj4gPiA+ IGluZGV4IDUyNzc0MzM5NDE1MC4uMjZiZTU3ZTI4YTlkIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fcHJvYmVfaGVscGVyLmMKPiA+ID4gQEAgLTMzLDYgKzMzLDcgQEAKPiA+ID4gICAjaW5j bHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KPiA+ID4gICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4K PiA+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2NsaWVudC5oPgo+ID4gPiAgICNpbmNsdWRlIDxkcm0v ZHJtX2NydGMuaD4KPiA+ID4gICAjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KPiA+ID4gICAj aW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+ID4gPiBAQCAtNTYzLDYgKzU2NCw4IEBA IHZvaWQgZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ID4gPiAgIAlkcm1fc3lzZnNfaG90cGx1Z19ldmVudChkZXYpOwo+ID4gPiAgIAlpZiAoZGV2 LT5tb2RlX2NvbmZpZy5mdW5jcy0+b3V0cHV0X3BvbGxfY2hhbmdlZCkKPiA+ID4gICAJCWRldi0+ bW9kZV9jb25maWcuZnVuY3MtPm91dHB1dF9wb2xsX2NoYW5nZWQoZGV2KTsKPiA+ID4gKwo+ID4g PiArCWRybV9jbGllbnRfZGV2X2hvdHBsdWcoZGV2KTsKPiA+ID4gICB9Cj4gPiA+ICAgRVhQT1JU X1NZTUJPTChkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KTsKPiA+ID4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9jbGllbnQuaCBiL2luY2x1ZGUvZHJtL2RybV9jbGllbnQuaAo+ID4g PiBpbmRleCBlMzY2Zjk1ZDQ0MTQuLjAyY2JiMDI3MTRkOCAxMDA2NDQKPiA+ID4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtX2NsaWVudC5oCj4gPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jbGllbnQu aAo+ID4gPiBAQCAtNSwxMCArNSw2NiBAQAo+ID4gPiAgICNpbmNsdWRlIDxsaW51eC90eXBlcy5o Pgo+ID4gPiArc3RydWN0IGRybV9jbGllbnRfZGV2Owo+ID4gPiAgIHN0cnVjdCBkcm1fZGV2aWNl Owo+ID4gPiAgIHN0cnVjdCBkcm1fZmlsZTsKPiA+ID4gICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy Owo+ID4gPiAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdDsKPiA+ID4gK3N0cnVjdCBtb2R1bGU7Cj4g PiA+ICsKPiA+ID4gKy8qKgo+ID4gPiArICogc3RydWN0IGRybV9jbGllbnRfZnVuY3MgLSBEUk0g Y2xpZW50IGNhbGxiYWNrcwo+ID4gPiArICovCj4gPiA+ICtzdHJ1Y3QgZHJtX2NsaWVudF9mdW5j cyB7Cj4gPiA+ICsJLyoqCj4gPiA+ICsJICogQG93bmVyOiBUaGUgbW9kdWxlIG93bmVyCj4gPiA+ ICsJICovCj4gPiA+ICsJc3RydWN0IG1vZHVsZSAqb3duZXI7Cj4gPiA+ICsKPiA+ID4gKwkvKioK PiA+ID4gKwkgKiBAcmVsZWFzZToKPiA+ID4gKwkgKgo+ID4gPiArCSAqIENhbGxlZCB3aGVuIHRo ZSByZWZlcmVuY2UgY291bnQgaXMgZHJvcHBlZCB0byB6ZXJvLiBVc2VycyBvZiB0aGlzCj4gPiA+ ICsJICogY2FsbGJhY2sgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgZHJtX2NsaWVudF9jbG9z ZSgpIGFuZCBmcmVlaW5nCj4gPiA+ICsJICogdGhlIGNsaWVudCBzdHJ1Y3R1cmUuCj4gPiA+ICsJ ICoKPiA+ID4gKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgo+ID4gPiArCSAqLwo+ID4g PiArCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7Cj4gPiBI bSwgaXMgdGhpcyBubyBsb25nZXIgaW4gdXNlPwo+ID4gCj4gPiA+ICsKPiA+ID4gKwkvKioKPiA+ ID4gKwkgKiBAdW5yZWdpc3RlcjoKPiA+ID4gKwkgKgo+ID4gPiArCSAqIENhbGxlZCB3aGVuICZk cm1fZGV2aWNlIGlzIHVucmVnaXN0ZXJlZC4gVGhlIGNsaWVudCBzaG91bGQgcmVzcG9uZCBieQo+ ID4gPiArCSAqIHJlbGVhc2luZyBpdCdzIHJlc291cmNlcyB1c2luZyBkcm1fY2xpZW50X3B1dCgp LiBJZiBpdCBjYW4ndCBkbyBzbwo+ID4gPiArCSAqIGR1ZSB0byByZXNvcnVjZXMgYmVpbmcgdGll ZCB1cCwgbGlrZSBmYmRldiB3aXRoIG9wZW4gZmlsZSBoYW5kbGVzLAo+ID4gPiArCSAqIGl0IHNo b3VsZCByZWxlYXNlIGl0J3MgcmVzb3VyY2VzIGFzIHNvb24gYXMgcG9zc2libGUuCj4gPiBUaGlz IHN0aWxsIHRhbGtzIGFib3V0IHJlZmNvdW50aW5nIGFuZCBfcHV0IC4uLiBuZWVkcyBhIHJlZnJl c2hlci4KPiA+IAo+ID4gPiArCSAqCj4gPiA+ICsJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25h bC4KPiA+ID4gKwkgKi8KPiA+ID4gKwl2b2lkICgqdW5yZWdpc3Rlcikoc3RydWN0IGRybV9jbGll bnRfZGV2ICpjbGllbnQpOwo+ID4gPiArCj4gPiA+ICsJLyoqCj4gPiA+ICsJICogQHJlc3RvcmU6 Cj4gPiA+ICsJICoKPiA+ID4gKwkgKiBDYWxsZWQgb24gZHJtX2xhc3RjbG9zZSgpLiBUaGUgZmly c3QgY2xpZW50IGluc3RhbmNlIGluIHRoZSBsaXN0IHRoYXQKPiA+ID4gKwkgKiByZXR1cm5zIHpl cm8gZ2V0cyB0aGUgcHJpdmlsZWdlIHRvIHJlc3RvcmUgYW5kIG5vIG1vcmUgY2xpZW50cyBhcmUK PiA+ID4gKwkgKiBjYWxsZWQuIFRoaXMgY2FsbGJhY2sgaXMgbm90IGNhbGxlZCBhZnRlciBAdW5y ZWdpc3RlciBoYXMgYmVlbiBjYWxsZWQuCj4gPiA+ICsJICoKPiA+ID4gKwkgKiBUaGlzIGNhbGxi YWNrIGlzIG9wdGlvbmFsLgo+ID4gPiArCSAqLwo+ID4gPiArCWludCAoKnJlc3RvcmUpKHN0cnVj dCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTsKPiA+ID4gKwo+ID4gPiArCS8qKgo+ID4gPiArCSAq IEBob3RwbHVnOgo+ID4gPiArCSAqCj4gPiA+ICsJICogQ2FsbGVkIG9uIGRybV9rbXNfaGVscGVy X2hvdHBsdWdfZXZlbnQoKS4KPiA+ID4gKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG5vdCBjYWxsZWQg YWZ0ZXIgQHVucmVnaXN0ZXIgaGFzIGJlZW4gY2FsbGVkLgo+ID4gPiArCSAqCj4gPiA+ICsJICog VGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4KPiA+ID4gKwkgKi8KPiA+ID4gKwlpbnQgKCpob3Rw bHVnKShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7Cj4gPiA+ICt9Owo+ID4gPiAgIC8q Kgo+ID4gPiAgICAqIHN0cnVjdCBkcm1fY2xpZW50X2RldiAtIERSTSBjbGllbnQgaW5zdGFuY2UK PiA+ID4gQEAgLTI0LDYgKzgwLDE5IEBAIHN0cnVjdCBkcm1fY2xpZW50X2RldiB7Cj4gPiA+ICAg CSAqLwo+ID4gPiAgIAljb25zdCBjaGFyICpuYW1lOwo+ID4gPiArCS8qKgo+ID4gPiArCSAqIEBs aXN0Ogo+ID4gPiArCSAqCj4gPiA+ICsJICogTGlzdCBvZiBhbGwgY2xpZW50cyBvZiBhIERSTSBk ZXZpY2UsIGxpbmtlZCBpbnRvCj4gPiA+ICsJICogJmRybV9kZXZpY2UuY2xpZW50bGlzdC4gUHJv dGVjdGVkIGJ5ICZkcm1fZGV2aWNlLmNsaWVudGxpc3RfbXV0ZXguCj4gPiA+ICsJICovCj4gPiA+ ICsJc3RydWN0IGxpc3RfaGVhZCBsaXN0Owo+ID4gPiArCj4gPiA+ICsJLyoqCj4gPiA+ICsJICog QGZ1bmNzOiBEUk0gY2xpZW50IGZ1bmN0aW9ucyAob3B0aW9uYWwpCj4gPiA+ICsJICovCj4gPiA+ ICsJY29uc3Qgc3RydWN0IGRybV9jbGllbnRfZnVuY3MgKmZ1bmNzOwo+ID4gPiArCj4gPiA+ICAg CS8qKgo+ID4gPiAgIAkgKiBAZmlsZTogRFJNIGZpbGUKPiA+ID4gICAJICovCj4gPiA+IEBAIC0z MSw5ICsxMDAsMTMgQEAgc3RydWN0IGRybV9jbGllbnRfZGV2IHsKPiA+ID4gICB9Owo+ID4gPiAg IGludCBkcm1fY2xpZW50X25ldyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2Ns aWVudF9kZXYgKmNsaWVudCwKPiA+ID4gLQkJICAgY29uc3QgY2hhciAqbmFtZSk7Cj4gPiA+ICsJ CSAgIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBkcm1fY2xpZW50X2Z1bmNzICpmdW5j cyk7Cj4gPiA+ICAgdm9pZCBkcm1fY2xpZW50X3JlbGVhc2Uoc3RydWN0IGRybV9jbGllbnRfZGV2 ICpjbGllbnQpOwo+ID4gPiArdm9pZCBkcm1fY2xpZW50X2Rldl91bnJlZ2lzdGVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwo+ID4gPiArdm9pZCBkcm1fY2xpZW50X2Rldl9ob3RwbHVnKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gPiArdm9pZCBkcm1fY2xpZW50X2Rldl9yZXN0b3JlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gPiArCj4gPiA+ICAgLyoqCj4gPiA+ICAgICogc3Ry dWN0IGRybV9jbGllbnRfYnVmZmVyIC0gRFJNIGNsaWVudCBidWZmZXIKPiA+ID4gICAgKi8KPiA+ ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kZXZpY2UuaCBiL2luY2x1ZGUvZHJtL2Ry bV9kZXZpY2UuaAo+ID4gPiBpbmRleCA5ZTI5OTc2ZDRlOTguLmY5YzZlMGUzYWVjNyAxMDA2NDQK PiA+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RldmljZS5oCj4gPiA+ICsrKyBiL2luY2x1ZGUv ZHJtL2RybV9kZXZpY2UuaAo+ID4gPiBAQCAtODEsNiArODEsMjAgQEAgc3RydWN0IGRybV9kZXZp Y2Ugewo+ID4gPiAgIAkgKi8KPiA+ID4gICAJc3RydWN0IGxpc3RfaGVhZCBmaWxlbGlzdF9pbnRl cm5hbDsKPiA+ID4gKwkvKioKPiA+ID4gKwkgKiBAY2xpZW50bGlzdF9tdXRleDoKPiA+ID4gKwkg Kgo+ID4gPiArCSAqIFByb3RlY3RzIEBjbGllbnRsaXN0IGFjY2Vzcy4KPiA+ID4gKwkgKi8KPiA+ ID4gKwlzdHJ1Y3QgbXV0ZXggY2xpZW50bGlzdF9tdXRleDsKPiA+ID4gKwo+ID4gPiArCS8qKgo+ ID4gPiArCSAqIEBjbGllbnRsaXN0Ogo+ID4gPiArCSAqCj4gPiA+ICsJICogTGlzdCBvZiBpbi1r ZXJuZWwgY2xpZW50cy4gUHJvdGVjdGVkIGJ5IEBjbGllbnRsaXN0X211dGV4Lgo+ID4gPiArCSAq Lwo+ID4gPiArCXN0cnVjdCBsaXN0X2hlYWQgY2xpZW50bGlzdDsKPiA+ID4gKwo+ID4gPiAgIAkv KiogXG5hbWUgTWVtb3J5IG1hbmFnZW1lbnQgKi8KPiA+ID4gICAJLypAeyAqLwo+ID4gPiAgIAlz dHJ1Y3QgbGlzdF9oZWFkIG1hcGxpc3Q7CS8qKjwgTGlua2VkIGxpc3Qgb2YgcmVnaW9ucyAqLwo+ ID4gPiAtLSAKPiA+ID4gMi4xNS4xCj4gPiA+IAo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4g PiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiAKCi0tIApEYW5pZWwg VmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5m ZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK