From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [PATCH 01/11] drm: Add devm_drm_dev_init/register Date: Mon, 21 Jan 2019 13:21:46 +0100 Message-ID: References: <20190120114318.49199-1-noralf@tronnes.org> <20190120114318.49199-2-noralf@tronnes.org> <20190121091014.GK3271@phenom.ffwll.local> <20190121095549.GR3271@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 951466E89B for ; Mon, 21 Jan 2019 12:21:52 +0000 (UTC) In-Reply-To: <20190121095549.GR3271@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: david@lechnology.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org CgpEZW4gMjEuMDEuMjAxOSAxMC41NSwgc2tyZXYgRGFuaWVsIFZldHRlcjoKPiBPbiBNb24sIEph biAyMSwgMjAxOSBhdCAxMDoxMDoxNEFNICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+PiBP biBTdW4sIEphbiAyMCwgMjAxOSBhdCAxMjo0MzowOFBNICswMTAwLCBOb3JhbGYgVHLDuG5uZXMg d3JvdGU6Cj4+PiBUaGlzIGFkZHMgcmVzb3VyY2UgbWFuYWdlZCAoZGV2cmVzKSB2ZXJzaW9ucyBv ZiBkcm1fZGV2X2luaXQoKSBhbmQKPj4+IGRybV9kZXZfcmVnaXN0ZXIoKS4KPj4+Cj4+PiBBbHNv IGFkZGVkIGlzIGRldm1fZHJtX2Rldl9yZWdpc3Rlcl93aXRoX2ZiZGV2KCkgd2hpY2ggc2V0cyB1 cCBnZW5lcmljCj4+PiBmYmRldiBlbXVsYXRpb24gYXMgd2VsbC4KPj4+Cj4+PiBkZXZtX2RybV9k ZXZfcmVnaXN0ZXIoKSBpc24ndCBleHBvcnRlZCBzaW5jZSB0aGVyZSBhcmUgbm8gdXNlcnMuCj4+ Pgo+Pj4gU2lnbmVkLW9mZi1ieTogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+ Cj4+Cgo8c25pcD4KCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKPj4+IGluZGV4IDM4MTU4MWIwMWQ0OC4uMTIxMjk3 NzJiZTQ1IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwo+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwo+Pj4gQEAgLTM2LDYgKzM2LDcgQEAKPj4+ICAK Pj4+ICAjaW5jbHVkZSA8ZHJtL2RybV9jbGllbnQuaD4KPj4+ICAjaW5jbHVkZSA8ZHJtL2RybV9k cnYuaD4KPj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KPj4+ICAjaW5jbHVkZSA8 ZHJtL2RybVAuaD4KPj4+ICAKPj4+ICAjaW5jbHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKPj4+ IEBAIC04NzEsNiArODcyLDExMSBAQCB2b2lkIGRybV9kZXZfdW5yZWdpc3RlcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+Pj4gIH0KPj4+ICBFWFBPUlRfU1lNQk9MKGRybV9kZXZfdW5yZWdpc3Rl cik7Cj4+PiAgCj4+PiArc3RhdGljIHZvaWQgZGV2bV9kcm1fZGV2X2luaXRfcmVsZWFzZSh2b2lk ICpkYXRhKQo+Pj4gK3sKPj4+ICsJZHJtX2Rldl9wdXQoZGF0YSk7Cj4gCj4gV2UgbmVlZCBkcm1f ZGV2X3VucGx1ZygpIGhlcmUsIG9yIHRoaXMgaXNuJ3Qgc2FmZS4KClRoaXMgZnVuY3Rpb24gaXMg b25seSB1c2VkIHRvIGNvdmVyIHRoZSBlcnJvciBwYXRoIGlmIHByb2JlIGZhaWxzIGJlZm9yZQpk ZXZtX2RybV9kZXZfcmVnaXN0ZXIoKSBpcyBjYWxsZWQuIGRldm1fZHJtX2Rldl9yZWdpc3Rlcl9y ZWxlYXNlKCkgaXMKdGhlIG9uZSB0aGF0IGNhbGxzIHVucGx1Zy4gVGhlcmUgYXJlIGNvbW1lbnRz IGFib3V0IHRoaXMgaW4gdGhlIGZ1bmN0aW9ucy4KCj4gCj4+PiArfQo+Pj4gKwo+Pj4gKy8qKgo+ Pj4gKyAqIGRldm1fZHJtX2Rldl9pbml0IC0gUmVzb3VyY2UgbWFuYWdlZCBkcm1fZGV2X2luaXQo KQo+Pj4gKyAqIEBwYXJlbnQ6IFBhcmVudCBkZXZpY2Ugb2JqZWN0Cj4+PiArICogQGRldjogRFJN IGRldmljZQo+Pj4gKyAqIEBkcml2ZXI6IERSTSBkcml2ZXIKPj4+ICsgKgo+Pj4gKyAqIE1hbmFn ZWQgZHJtX2Rldl9pbml0KCkuIFRoZSBEUk0gZGV2aWNlIGluaXRpYWxpemVkIHdpdGggdGhpcyBm dW5jdGlvbiBpcwo+Pj4gKyAqIGF1dG9tYXRpY2FsbHkgcmVsZWFzZWQgb24gZHJpdmVyIGRldGFj aC4gWW91IG11c3Qgc3VwcGx5IGEKPiAKPiBJIHRoaW5rIGEgYml0IG1vcmUgY2xhcml0eSBoZXJl IHdvdWxkIGJlIGdvb2Q6Cj4gCj4gIi4uLiBhdXRvbWF0aWNhbGx5IHJlbGVhc2VkIG9uIGRyaXZl ciB1bmJpbmQgYnkgY2FsbGluZCBkcm1fZGV2X3VucGx1ZygpLiIKPiAKPj4+ICsgKiAmZHJtX2Ry aXZlci5yZWxlYXNlIGNhbGxiYWNrIHRvIGNvbnRyb2wgdGhlIGZpbmFsaXphdGlvbiBleHBsaWNp dGx5Lgo+IAo+IEkgdGhpbmsgYSBsb3VkIHdhcm5pbmcgZm9yIHRoZXNlIGlzIGluIG9yZGVyOgo+ IAo+ICJXQVJOSU5HOgo+IAo+ICJJbiBnZW5lcmFsbHkgaXQgaXMgdW5zYWZlIHRvIHVzZSBkZXZt IGZ1bmN0aW9ucyBmb3IgZHJtIHN0cnVjdHVyZXMKPiBiZWNhdXNlIHRoZSBsaWZldGltZXMgb2Yg JmRybV9kZXZpY2UgYW5kIHRoZSB1bmRlcmx5aW5nICZkZXZpY2UgZG8gbm90Cj4gbWF0Y2guIFRo aXMgaGVyZSB3b3JrcyBiZWNhdXNlIGl0IGRvZXNuJ3QgaW1tZWRpYXRlbHkgZnJlZSBhbnl0aGlu ZywgYnV0Cj4gb25seSBjYWxscyBkcm1fZGV2X3VucGx1ZygpLCB3aGljaCBpbnRlcm5hbGx5IGRl Y3JlbWVudHMgdGhlICZkcm1fZGV2aWNlCj4gcmVmY291bnQgdGhyb3VnaCBkcm1fZGV2X3B1dCgp Lgo+IAo+ICJBbGwgb3RoZXIgZHJtIHN0cnVjdHVyZXMgbXVzdCBzdGlsbCBiZSBleHBsaWNpdGx5 IHJlbGVhc2VkIGluIHRoZQo+ICZkcm1fZHJpdmVyLnJlbGVhc2UgY2FsbGJhY2suIgo+IAo+IFdo aWxlIHRoaW5raW5nIGFib3V0IHRoaXMgSSBqdXN0IHJlYWxpemVkIHRoYXQgd2l0aCB0aGlzIGRl c2lnbiB3ZSBoYXZlIG5vCj4gZ29vZCBwbGFjZSB0byBjYWxsIGRybV9hdG9taWNfaGVscGVyX3No dXRkb3duKCkuIFdoaWNoIHdlIG5lZWQgdG8sIG9yIGFsbAo+IGtpbmRzIG9mIHRoaW5ncyB3aWxs IGxlYWsgYmFkbHkgKGNvbm5lY3RvcnMsIGZiLCAuLi4pLCBidXQgdGhlcmUncyBubwo+IHBsYWNl IHRvIGNhbGwgaXQ6Cj4gLSB1bmJpbmQgaXMgdG9vIGVhcmx5LCBzaW5jZSB3ZSBoYXZlbid0IHll dCBjYWxsZWQgZHJtX2Rldl91bnBsdWcsIGFuZCB0aGUKPiAgIGRybV9kZXZfdW5yZWdpc3RlciBp biB0aGVyZSBtdXN0IGJlIGNhbGxlZCBfYmVmb3JlXyB3ZSBzdGFydCB0byBzaHV0Cj4gICBkb3du IGFueXRoaW5nLgo+IC0gZHJtX2RyaXZlci5yZWxlYXNlIGlzIHdheSB0b28gbGF0ZS4KPiAKPiBP ZmMgZm9yIGEgcmVhbCBob3R1bnBsdWcgdGhlcmUncyBubyBwb2ludCBpbiBzaHV0dGluZyBkb3du IHRoZSBodyAoaXQncwo+IGFscmVhZHkgZ29uZSksIGJ1dCBmb3IgYSBkcml2ZXIgdW5sb2FkL3Vu YmluZCBpdCB3b3VsZCBiZSBuaWNlIGlmIHRoaXMKPiBoYXBwZW5zIGF1dG9tYXRpY2FsbHkgYW5k IGluIHRoZSByaWdodCBvcmRlci4KPiAKPiBTbyBub3Qgc3VyZSB3aGF0IHRvIGRvIGhlcmUgcmVh bGx5LgoKSG93IGFib3V0IHRoaXMgY2hhbmdlOiAoaXQgYnJlYWtzIHRoZSBydWxlIG9mIHB1bGxp bmcgaGVscGVycyBpbnRvIHRoZQpjb3JlLCBzbyBtYXliZSB3ZSBzaG91bGQgcHV0IHRoZSBkZXZt XyBmdW5jdGlvbnMgaW50byB0aGUgc2ltcGxlIEtNUwpoZWxwZXIgaW5zdGVhZD8pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2 LmMKaW5kZXggMTIxMjk3NzJiZTQ1Li43ZWQ5NTUwYmFmZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwpAQCAtMzQs NyArMzQsOSBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zcmN1 Lmg+CgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9k cm1fY2xpZW50Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogI2luY2x1ZGUg PGRybS9kcm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRl IDxkcm0vZHJtUC5oPgpAQCAtMzU1LDE3ICszNTcsNyBAQCB2b2lkIGRybV9kZXZfZXhpdChpbnQg aWR4KQogfQogRVhQT1JUX1NZTUJPTChkcm1fZGV2X2V4aXQpOwoKLS8qKgotICogZHJtX2Rldl91 bnBsdWcgLSB1bnBsdWcgYSBEUk0gZGV2aWNlCi0gKiBAZGV2OiBEUk0gZGV2aWNlCi0gKgotICog VGhpcyB1bnBsdWdzIGEgaG90cGx1Z2dhYmxlIERSTSBkZXZpY2UsIHdoaWNoIG1ha2VzIGl0IGlu YWNjZXNzaWJsZSB0bwotICogdXNlcnNwYWNlIG9wZXJhdGlvbnMuIEVudHJ5LXBvaW50cyBjYW4g dXNlIGRybV9kZXZfZW50ZXIoKSBhbmQKLSAqIGRybV9kZXZfZXhpdCgpIHRvIHByb3RlY3QgZGV2 aWNlIHJlc291cmNlcyBpbiBhIHJhY2UgZnJlZSBtYW5uZXIuIFRoaXMKLSAqIGVzc2VudGlhbGx5 IHVucmVnaXN0ZXJzIHRoZSBkZXZpY2UgbGlrZSBkcm1fZGV2X3VucmVnaXN0ZXIoKSwgYnV0IGNh biBiZQotICogY2FsbGVkIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCBvcGVuIHVzZXJzIG9mIEBkZXYu Ci0gKi8KLXZvaWQgZHJtX2Rldl91bnBsdWcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRp YyB2b2lkIF9fZHJtX2Rldl91bnBsdWcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBzaHV0 ZG93bikKIHsKICAgICAgICAvKgogICAgICAgICAqIEFmdGVyIHN5bmNocm9uaXppbmcgYW55IGNy aXRpY2FsIHJlYWQgc2VjdGlvbiBpcyBndWFyYW50ZWVkCnRvIHNlZQpAQCAtMzc4LDExICszNzAs MzIgQEAgdm9pZCBkcm1fZGV2X3VucGx1ZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoKICAgICAg ICBkcm1fZGV2X3VucmVnaXN0ZXIoZGV2KTsKCisgICAgICAgaWYgKHNodXRkb3duKQorICAgICAg ICAgICAgICAgZHJtX2ttc19oZWxwZXJfcG9sbF9maW5pKGRldik7CisKICAgICAgICBtdXRleF9s b2NrKCZkcm1fZ2xvYmFsX211dGV4KTsKLSAgICAgICBpZiAoZGV2LT5vcGVuX2NvdW50ID09IDAp CisgICAgICAgaWYgKGRldi0+b3Blbl9jb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICBpZiAo c2h1dGRvd24pCisgICAgICAgICAgICAgICAgICAgICAgIGRybV9hdG9taWNfaGVscGVyX3NodXRk b3duKGRldik7CiAgICAgICAgICAgICAgICBkcm1fZGV2X3B1dChkZXYpOworICAgICAgIH0KICAg ICAgICBtdXRleF91bmxvY2soJmRybV9nbG9iYWxfbXV0ZXgpOwogfQorCisvKioKKyAqIGRybV9k ZXZfdW5wbHVnIC0gdW5wbHVnIGEgRFJNIGRldmljZQorICogQGRldjogRFJNIGRldmljZQorICoK KyAqIFRoaXMgdW5wbHVncyBhIGhvdHBsdWdnYWJsZSBEUk0gZGV2aWNlLCB3aGljaCBtYWtlcyBp dCBpbmFjY2Vzc2libGUgdG8KKyAqIHVzZXJzcGFjZSBvcGVyYXRpb25zLiBFbnRyeS1wb2ludHMg Y2FuIHVzZSBkcm1fZGV2X2VudGVyKCkgYW5kCisgKiBkcm1fZGV2X2V4aXQoKSB0byBwcm90ZWN0 IGRldmljZSByZXNvdXJjZXMgaW4gYSByYWNlIGZyZWUgbWFubmVyLiBUaGlzCisgKiBlc3NlbnRp YWxseSB1bnJlZ2lzdGVycyB0aGUgZGV2aWNlIGxpa2UgZHJtX2Rldl91bnJlZ2lzdGVyKCksIGJ1 dCBjYW4gYmUKKyAqIGNhbGxlZCB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgb3BlbiB1c2VycyBvZiBA ZGV2LgorICovCit2b2lkIGRybV9kZXZfdW5wbHVnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7 CisgICAgICAgX19kcm1fZGV2X3VucGx1ZyhkZXYsIGZhbHNlKTsKK30KIEVYUE9SVF9TWU1CT0wo ZHJtX2Rldl91bnBsdWcpOwoKIC8qCkBAIC05MjAsNyArOTMzLDcgQEAgRVhQT1JUX1NZTUJPTChk ZXZtX2RybV9kZXZfaW5pdCk7Cgogc3RhdGljIHZvaWQgZGV2bV9kcm1fZGV2X3JlZ2lzdGVyX3Jl bGVhc2Uodm9pZCAqZGF0YSkKIHsKLSAgICAgICBkcm1fZGV2X3VucGx1ZyhkYXRhKTsKKyAgICAg ICBfX2RybV9kZXZfdW5wbHVnKGRhdGEsIHRydWUpOwogfQoKIHN0YXRpYyBpbnQgZGV2bV9kcm1f ZGV2X3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCgoKSSByZWFsaXNlZCB0aGF0IHdl IHNob3VsZCB0YWtlIGEgcmVmIG9uIHRoZSBwYXJlbnQgZGV2aWNlIHNvIGl0IGNhbiBiZQphY2Nl c3NlZCBieSB0aGUgRFJNX0RFVl8gZnVuY3Rpb25zIGFmdGVyIHVucGx1Zy4KCgpOb3JhbGYuCgoK PiAKPj4+ICsgKgo+Pj4gKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1c2VkIHRvZ2V0 aGVyIHdpdGgKPj4+ICsgKiBkZXZtX2RybV9kZXZfcmVnaXN0ZXJfd2l0aF9mYmRldigpLgo+Pj4g KyAqCj4+PiArICogUkVUVVJOUzoKPj4+ICsgKiAwIG9uIHN1Y2Nlc3MsIG9yIGVycm9yIGNvZGUg b24gZmFpbHVyZS4KPj4+ICsgKi8KPj4+ICtpbnQgZGV2bV9kcm1fZGV2X2luaXQoc3RydWN0IGRl dmljZSAqcGFyZW50LAo+Pj4gKwkJICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+ICsJ CSAgICAgIHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpCj4+PiArewo+Pj4gKwlpbnQgcmV0Owo+ Pj4gKwo+Pj4gKwlpZiAoV0FSTl9PTighcGFyZW50IHx8ICFkcml2ZXItPnJlbGVhc2UpKQo+Pj4g KwkJcmV0dXJuIC1FSU5WQUw7Cj4+PiArCj4+PiArCXJldCA9IGRybV9kZXZfaW5pdChkZXYsIGRy aXZlciwgcGFyZW50KTsKPj4+ICsJaWYgKHJldCkKPj4+ICsJCXJldHVybiByZXQ7Cj4+PiArCj4+ PiArCS8qCj4+PiArCSAqIFRoaXMgaXMgYSB0ZW1wb3JhcnkgcmVsZWFzZSBhY3Rpb24gdGhhdCBp cyB1c2VkIGlmIHByb2JpbmcgZmFpbHMKPj4+ICsJICogYmVmb3JlIGRldm1fZHJtX2Rldl9yZWdp c3RlcigpIGlzIGNhbGxlZC4KPj4+ICsJICovCj4+PiArCXJldCA9IGRldm1fYWRkX2FjdGlvbihw YXJlbnQsIGRldm1fZHJtX2Rldl9pbml0X3JlbGVhc2UsIGRldik7Cj4+PiArCWlmIChyZXQpCj4+ PiArCQlkZXZtX2RybV9kZXZfaW5pdF9yZWxlYXNlKGRldik7Cj4+PiArCj4+PiArCXJldHVybiBy ZXQ7Cj4+PiArfQo+Pj4gK0VYUE9SVF9TWU1CT0woZGV2bV9kcm1fZGV2X2luaXQpOwo+Pj4gKwo+ Pj4gK3N0YXRpYyB2b2lkIGRldm1fZHJtX2Rldl9yZWdpc3Rlcl9yZWxlYXNlKHZvaWQgKmRhdGEp Cj4+PiArewo+Pj4gKwlkcm1fZGV2X3VucGx1ZyhkYXRhKTsKPj4+ICt9Cj4+PiArCj4+PiArc3Rh dGljIGludCBkZXZtX2RybV9kZXZfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4+ ICt7Cj4+PiArCWludCByZXQ7Cj4+PiArCj4+PiArCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZGV2 LCAwKTsKPj4+ICsJaWYgKHJldCkKPj4+ICsJCXJldHVybiByZXQ7Cj4+PiArCj4+PiArCS8qCj4+ PiArCSAqIFRoaXMgaGFzIG5vdyBzZXJ2ZWQgaXQncyBwdXJwb3NlLCByZW1vdmUgaXQgdG8gbm90 IG1lc3MgdXAgcmVmCj4+PiArCSAqIGNvdW50aW5nLgo+Pj4gKwkgKi8KPj4+ICsJZGV2bV9yZW1v dmVfYWN0aW9uKGRldi0+ZGV2LCBkZXZtX2RybV9kZXZfaW5pdF9yZWxlYXNlLCBkZXYpOwo+Pj4g Kwo+Pj4gKwlyZXQgPSBkZXZtX2FkZF9hY3Rpb24oZGV2LT5kZXYsIGRldm1fZHJtX2Rldl9yZWdp c3Rlcl9yZWxlYXNlLCBkZXYpOwo+Pj4gKwlpZiAocmV0KQo+Pj4gKwkJZGV2bV9kcm1fZGV2X3Jl Z2lzdGVyX3JlbGVhc2UoZGV2KTsKPj4+ICsKPj4+ICsJcmV0dXJuIHJldDsKPj4+ICt9Cj4+PiAr Cj4+PiArLyoqCj4+PiArICogZGV2bV9kcm1fZGV2X3JlZ2lzdGVyX3dpdGhfZmJkZXYgLSBSZXNv dXJjZSBtYW5hZ2VkIGRybV9kZXZfcmVnaXN0ZXIoKQo+Pj4gKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGdlbmVyaWMgZmJkZXYgZW11bGF0aW9uCj4+PiAr ICogQGRldjogRFJNIGRldmljZSB0byByZWdpc3Rlcgo+Pj4gKyAqIEBmYmRldl9icHA6IFByZWZl cnJlZCBiaXRzIHBlciBwaXhlbCBmb3IgZmJkZXYgKG9wdGlvbmFsKQo+Pj4gKyAqCj4+PiArICog TWFuYWdlZCBkcm1fZGV2X3JlZ2lzdGVyKCkgdGhhdCBhbHNvIGNhbGxzIGRybV9mYmRldl9nZW5l cmljX3NldHVwKCkuCj4+PiArICogVGhlIERSTSBkZXZpY2UgcmVnaXN0ZXJlZCB3aXRoIHRoaXMg ZnVuY3Rpb24gaXMgYXV0b21hdGljYWxseSB1bnJlZ2lzdGVyZWQgb24KPj4+ICsgKiBkcml2ZXIg ZGV0YWNoIHVzaW5nIGRybV9kZXZfdW5wbHVnKCkuCj4+PiArICoKPj4+ICsgKiBOb3RlOiBUaGlz IGZ1bmN0aW9uIG11c3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIGRldm1fZHJtX2Rldl9pbml0KCku Cj4+PiArICoKPj4+ICsgKiBGb3IgdGVzdGluZyBkcml2ZXIgZGV0YWNoIGNhbiBiZSB0cmlnZ2Vy ZWQgbWFudWFsbHkgYnkgd3JpdGluZyB0byB0aGUgZHJpdmVyCj4+PiArICogJ3VuYmluZCcgZmls ZS4KPj4+ICsgKgo+Pj4gKyAqIFJFVFVSTlM6Cj4+PiArICogMCBvbiBzdWNjZXNzLCBuZWdhdGl2 ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+PiArICovCj4+PiAraW50IGRldm1fZHJtX2Rldl9y ZWdpc3Rlcl93aXRoX2ZiZGV2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+PiArCQkJCSAgICAg dW5zaWduZWQgaW50IGZiZGV2X2JwcCkKPj4+ICt7Cj4+PiArCWludCByZXQ7Cj4+PiArCj4+PiAr CXJldCA9IGRldm1fZHJtX2Rldl9yZWdpc3RlcihkZXYpOwo+Pj4gKwlpZiAocmV0KQo+Pj4gKwkJ cmV0dXJuIHJldDsKPj4+ICsKPj4+ICsJZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoZGV2LCBmYmRl dl9icHApOwo+Pj4gKwo+Pj4gKwlyZXR1cm4gMDsKPj4+ICt9Cj4+PiArRVhQT1JUX1NZTUJPTChk ZXZtX2RybV9kZXZfcmVnaXN0ZXJfd2l0aF9mYmRldik7Cj4+PiArCj4+PiAgLyoqCj4+PiAgICog ZHJtX2Rldl9zZXRfdW5pcXVlIC0gU2V0IHRoZSB1bmlxdWUgbmFtZSBvZiBhIERSTSBkZXZpY2UK Pj4+ICAgKiBAZGV2OiBkZXZpY2Ugb2Ygd2hpY2ggdG8gc2V0IHRoZSB1bmlxdWUgbmFtZQo+Pj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcnYuaCBiL2luY2x1ZGUvZHJtL2RybV9kcnYu aAo+Pj4gaW5kZXggMzVhZjIzZjVmYTBkLi5jM2YwNDc3ZjJlN2YgMTAwNjQ0Cj4+PiAtLS0gYS9p bmNsdWRlL2RybS9kcm1fZHJ2LmgKPj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaAo+Pj4g QEAgLTYyOCw2ICs2MjgsMTIgQEAgc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXZfYWxsb2Moc3Ry dWN0IGRybV9kcml2ZXIgKmRyaXZlciwKPj4+ICBpbnQgZHJtX2Rldl9yZWdpc3RlcihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKPj4+ICB2b2lkIGRybV9kZXZf dW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4+ICAKPj4+ICtpbnQgZGV2bV9k cm1fZGV2X2luaXQoc3RydWN0IGRldmljZSAqcGFyZW50LAo+Pj4gKwkJICAgICAgc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPj4+ICsJCSAgICAgIHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpOwo+ Pj4gK2ludCBkZXZtX2RybV9kZXZfcmVnaXN0ZXJfd2l0aF9mYmRldihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+Pj4gKwkJCQkgICAgIHVuc2lnbmVkIGludCBmYmRldl9icHApOwo+Pj4gKwo+Pj4g IHZvaWQgZHJtX2Rldl9nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+PiAgdm9pZCBkcm1f ZGV2X3B1dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4+ICB2b2lkIGRybV9wdXRfZGV2KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+Pj4gLS0gCj4+PiAyLjIwLjEKPj4+Cj4+PiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4gZHJpLWRldmVsIG1h aWxpbmcgbGlzdAo+Pj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPj4KPj4g LS0gCj4+IERhbmllbCBWZXR0ZXIKPj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCj4+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=