From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 01/11] drm: Add devm_drm_dev_init/register Date: Tue, 22 Jan 2019 10:32:13 +0100 Message-ID: <20190122093213.GU3271@phenom.ffwll.local> 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 mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id D71C96EC22 for ; Tue, 22 Jan 2019 09:32:17 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id x30so18760057edx.2 for ; Tue, 22 Jan 2019 01:32:17 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Noralf =?iso-8859-1?Q?Tr=F8nnes?= Cc: dri-devel@lists.freedesktop.org, david@lechnology.com List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKYW4gMjEsIDIwMTkgYXQgMDE6MjE6NDZQTSArMDEwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IAo+IAo+IERlbiAyMS4wMS4yMDE5IDEwLjU1LCBza3JldiBEYW5pZWwgVmV0dGVy Ogo+ID4gT24gTW9uLCBKYW4gMjEsIDIwMTkgYXQgMTA6MTA6MTRBTSArMDEwMCwgRGFuaWVsIFZl dHRlciB3cm90ZToKPiA+PiBPbiBTdW4sIEphbiAyMCwgMjAxOSBhdCAxMjo0MzowOFBNICswMTAw LCBOb3JhbGYgVHLDuG5uZXMgd3JvdGU6Cj4gPj4+IFRoaXMgYWRkcyByZXNvdXJjZSBtYW5hZ2Vk IChkZXZyZXMpIHZlcnNpb25zIG9mIGRybV9kZXZfaW5pdCgpIGFuZAo+ID4+PiBkcm1fZGV2X3Jl Z2lzdGVyKCkuCj4gPj4+Cj4gPj4+IEFsc28gYWRkZWQgaXMgZGV2bV9kcm1fZGV2X3JlZ2lzdGVy X3dpdGhfZmJkZXYoKSB3aGljaCBzZXRzIHVwIGdlbmVyaWMKPiA+Pj4gZmJkZXYgZW11bGF0aW9u IGFzIHdlbGwuCj4gPj4+Cj4gPj4+IGRldm1fZHJtX2Rldl9yZWdpc3RlcigpIGlzbid0IGV4cG9y dGVkIHNpbmNlIHRoZXJlIGFyZSBubyB1c2Vycy4KPiA+Pj4KPiA+Pj4gU2lnbmVkLW9mZi1ieTog Tm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Cj4gPj4KPiAKPiA8c25pcD4KPiAK PiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2Rydi5jCj4gPj4+IGluZGV4IDM4MTU4MWIwMWQ0OC4uMTIxMjk3NzJiZTQ1IDEw MDY0NAo+ID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCj4gPj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKPiA+Pj4gQEAgLTM2LDYgKzM2LDcgQEAKPiA+Pj4gIAo+ ID4+PiAgI2luY2x1ZGUgPGRybS9kcm1fY2xpZW50Lmg+Cj4gPj4+ICAjaW5jbHVkZSA8ZHJtL2Ry bV9kcnYuaD4KPiA+Pj4gKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgo+ID4+PiAgI2lu Y2x1ZGUgPGRybS9kcm1QLmg+Cj4gPj4+ICAKPiA+Pj4gICNpbmNsdWRlICJkcm1fY3J0Y19pbnRl cm5hbC5oIgo+ID4+PiBAQCAtODcxLDYgKzg3MiwxMTEgQEAgdm9pZCBkcm1fZGV2X3VucmVnaXN0 ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+Pj4gIH0KPiA+Pj4gIEVYUE9SVF9TWU1CT0wo ZHJtX2Rldl91bnJlZ2lzdGVyKTsKPiA+Pj4gIAo+ID4+PiArc3RhdGljIHZvaWQgZGV2bV9kcm1f ZGV2X2luaXRfcmVsZWFzZSh2b2lkICpkYXRhKQo+ID4+PiArewo+ID4+PiArCWRybV9kZXZfcHV0 KGRhdGEpOwo+ID4gCj4gPiBXZSBuZWVkIGRybV9kZXZfdW5wbHVnKCkgaGVyZSwgb3IgdGhpcyBp c24ndCBzYWZlLgo+IAo+IFRoaXMgZnVuY3Rpb24gaXMgb25seSB1c2VkIHRvIGNvdmVyIHRoZSBl cnJvciBwYXRoIGlmIHByb2JlIGZhaWxzIGJlZm9yZQo+IGRldm1fZHJtX2Rldl9yZWdpc3Rlcigp IGlzIGNhbGxlZC4gZGV2bV9kcm1fZGV2X3JlZ2lzdGVyX3JlbGVhc2UoKSBpcwo+IHRoZSBvbmUg dGhhdCBjYWxscyB1bnBsdWcuIFRoZXJlIGFyZSBjb21tZW50cyBhYm91dCB0aGlzIGluIHRoZSBm dW5jdGlvbnMuCgpJIHRoaW5rIEkgZ2V0IGEgcHJpemUgZm9yIGJlaW5nIGlnbm9yYW50IGFuZCBi bGluZCA6LS8KCj4gCj4gPiAKPiA+Pj4gK30KPiA+Pj4gKwo+ID4+PiArLyoqCj4gPj4+ICsgKiBk ZXZtX2RybV9kZXZfaW5pdCAtIFJlc291cmNlIG1hbmFnZWQgZHJtX2Rldl9pbml0KCkKPiA+Pj4g KyAqIEBwYXJlbnQ6IFBhcmVudCBkZXZpY2Ugb2JqZWN0Cj4gPj4+ICsgKiBAZGV2OiBEUk0gZGV2 aWNlCj4gPj4+ICsgKiBAZHJpdmVyOiBEUk0gZHJpdmVyCj4gPj4+ICsgKgo+ID4+PiArICogTWFu YWdlZCBkcm1fZGV2X2luaXQoKS4gVGhlIERSTSBkZXZpY2UgaW5pdGlhbGl6ZWQgd2l0aCB0aGlz IGZ1bmN0aW9uIGlzCj4gPj4+ICsgKiBhdXRvbWF0aWNhbGx5IHJlbGVhc2VkIG9uIGRyaXZlciBk ZXRhY2guIFlvdSBtdXN0IHN1cHBseSBhCj4gPiAKPiA+IEkgdGhpbmsgYSBiaXQgbW9yZSBjbGFy aXR5IGhlcmUgd291bGQgYmUgZ29vZDoKPiA+IAo+ID4gIi4uLiBhdXRvbWF0aWNhbGx5IHJlbGVh c2VkIG9uIGRyaXZlciB1bmJpbmQgYnkgY2FsbGluZCBkcm1fZGV2X3VucGx1ZygpLiIKPiA+IAo+ ID4+PiArICogJmRybV9kcml2ZXIucmVsZWFzZSBjYWxsYmFjayB0byBjb250cm9sIHRoZSBmaW5h bGl6YXRpb24gZXhwbGljaXRseS4KPiA+IAo+ID4gSSB0aGluayBhIGxvdWQgd2FybmluZyBmb3Ig dGhlc2UgaXMgaW4gb3JkZXI6Cj4gPiAKPiA+ICJXQVJOSU5HOgo+ID4gCj4gPiAiSW4gZ2VuZXJh bGx5IGl0IGlzIHVuc2FmZSB0byB1c2UgZGV2bSBmdW5jdGlvbnMgZm9yIGRybSBzdHJ1Y3R1cmVz Cj4gPiBiZWNhdXNlIHRoZSBsaWZldGltZXMgb2YgJmRybV9kZXZpY2UgYW5kIHRoZSB1bmRlcmx5 aW5nICZkZXZpY2UgZG8gbm90Cj4gPiBtYXRjaC4gVGhpcyBoZXJlIHdvcmtzIGJlY2F1c2UgaXQg ZG9lc24ndCBpbW1lZGlhdGVseSBmcmVlIGFueXRoaW5nLCBidXQKPiA+IG9ubHkgY2FsbHMgZHJt X2Rldl91bnBsdWcoKSwgd2hpY2ggaW50ZXJuYWxseSBkZWNyZW1lbnRzIHRoZSAmZHJtX2Rldmlj ZQo+ID4gcmVmY291bnQgdGhyb3VnaCBkcm1fZGV2X3B1dCgpLgo+ID4gCj4gPiAiQWxsIG90aGVy IGRybSBzdHJ1Y3R1cmVzIG11c3Qgc3RpbGwgYmUgZXhwbGljaXRseSByZWxlYXNlZCBpbiB0aGUK PiA+ICZkcm1fZHJpdmVyLnJlbGVhc2UgY2FsbGJhY2suIgo+ID4gCj4gPiBXaGlsZSB0aGlua2lu ZyBhYm91dCB0aGlzIEkganVzdCByZWFsaXplZCB0aGF0IHdpdGggdGhpcyBkZXNpZ24gd2UgaGF2 ZSBubwo+ID4gZ29vZCBwbGFjZSB0byBjYWxsIGRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKCku IFdoaWNoIHdlIG5lZWQgdG8sIG9yIGFsbAo+ID4ga2luZHMgb2YgdGhpbmdzIHdpbGwgbGVhayBi YWRseSAoY29ubmVjdG9ycywgZmIsIC4uLiksIGJ1dCB0aGVyZSdzIG5vCj4gPiBwbGFjZSB0byBj YWxsIGl0Ogo+ID4gLSB1bmJpbmQgaXMgdG9vIGVhcmx5LCBzaW5jZSB3ZSBoYXZlbid0IHlldCBj YWxsZWQgZHJtX2Rldl91bnBsdWcsIGFuZCB0aGUKPiA+ICAgZHJtX2Rldl91bnJlZ2lzdGVyIGlu IHRoZXJlIG11c3QgYmUgY2FsbGVkIF9iZWZvcmVfIHdlIHN0YXJ0IHRvIHNodXQKPiA+ICAgZG93 biBhbnl0aGluZy4KPiA+IC0gZHJtX2RyaXZlci5yZWxlYXNlIGlzIHdheSB0b28gbGF0ZS4KPiA+ IAo+ID4gT2ZjIGZvciBhIHJlYWwgaG90dW5wbHVnIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gc2h1dHRp bmcgZG93biB0aGUgaHcgKGl0J3MKPiA+IGFscmVhZHkgZ29uZSksIGJ1dCBmb3IgYSBkcml2ZXIg dW5sb2FkL3VuYmluZCBpdCB3b3VsZCBiZSBuaWNlIGlmIHRoaXMKPiA+IGhhcHBlbnMgYXV0b21h dGljYWxseSBhbmQgaW4gdGhlIHJpZ2h0IG9yZGVyLgo+ID4gCj4gPiBTbyBub3Qgc3VyZSB3aGF0 IHRvIGRvIGhlcmUgcmVhbGx5Lgo+IAo+IEhvdyBhYm91dCB0aGlzIGNoYW5nZTogKGl0IGJyZWFr cyB0aGUgcnVsZSBvZiBwdWxsaW5nIGhlbHBlcnMgaW50byB0aGUKPiBjb3JlLCBzbyBtYXliZSB3 ZSBzaG91bGQgcHV0IHRoZSBkZXZtXyBmdW5jdGlvbnMgaW50byB0aGUgc2ltcGxlIEtNUwo+IGhl bHBlciBpbnN0ZWFkPykKClllYWggc21lbGxzIGEgYml0IG11Y2ggbGlrZSBtaWRsYXllciAuLi4g V2hhdCB3b3VsZCB3b3JrIGlzIGhhdmluZyBhIHBpbGUKbW9yZSBkZXZtXyBoZWxwZXIgZnVuY3Rp b25zLCBzbyB0aGF0IHdlIG9uaW9uLXVud3JhcCBldmVyeXRoaW5nIGNvcnJlY3RseSwKYW5kIGlu IHRoZSByaWdodCBvcmRlci4gU286CgotIGRldm1fZHJtX2Rldl9pbml0IChhbHdheXMgZG9lcyBh IGRybV9kZXZfcHV0KCkpCgotIGRldm1fZHJtX3BvbGxfZW5hYmxlIChzaHV0cyBkb3duIHRoZSBw b2xsIGhlbHBlciB3aXRoIGEgZGV2bSBhY3Rpb24pCgotIGRldm1fZHJtX21vZGVfY29uZmlnX3Jl c2V0IChkb2VzIGFuIGF0b21pY19oZWxwZXJfc2h1dGRvd24oKSBhcyBpdCdzIGNsZWFudXAgYWN0 aW9uKQoKLSBkZXZtX2RybV9kZXZfcmVnaXN0ZXIgKGdyYWJzIGFuIGFkZGl0aW9uYWwgZHJtX2Rl dl9nZXQoKSByZWZlcmVuY2Ugc28gaXQKICBjYW4gY2FsbCBkcm1fZGV2X3VucGx1ZygpIHVuY29u ZGl0aW9uYWxseSkuCgpXZSdkIG5lZWQgdG8gbWFrZSBzdXJlIHNvbWUgb2YgdGhlIGNsZWFudXAg YWN0aW9ucyBkdHJ0IHdoZW4gdGhlIGRldmljZSBpcwpnb25lLCBidXQgSSB0aGluayB3ZSBjYW4g YWNoaWV2ZSB0aGF0IGJ5IGxpYmVyYWxseSBzcHJpbmtsaW5nCmRybV9kZXZfZW50ZXIvZXhpdCBv dmVyIHRoZW0sIGUuZy4gdGhlIHRoZSBjbGVhbnVwIGFjdGlvbiBmb3IKZHJtX21vZGVfY29uZmln X3Jlc2V0IHdvdWxkIGJlOgoKewoJaWYgKGRybV9kZXZfZW50ZXIoKSkKCQlyZXR1cm47CgoJZHJt X2F0b21pY19oZWxwZXJfc2h1dGRvd24oKTsKCglkcm1fZGV2X2V4aXQoKTsKfQoKVGhpcyB3b3Vs ZCBiZSBhbmFsb2cgdG8geW91ciBzaHV0ZG93biBwYXJhbWV0ZXIgYmVsb3cuCgpFc3NlbnRpYWxs eSBJIHRoaW5rIHdlIGNhbiBvbmx5IGRvIHRoZSBkcm1fZGV2X3VucGx1ZyBhdXRvY2xlYW51cCBp biBhCmdpdmVuIGRyaXZlciBmcm9tIGRldm1fZHJtX2Rldl9yZWdpc3RlciBpZmYgYWxsIHRoZSBj bGVhbnVwIGFjdGlvbnMgaGF2ZQpiZWVuIGRldm0taWZpZWQsIGFuZCB0aGVyZSdzIG5vdGhpbmcg bGVmdCBpbiBpdCdzIHVuYmluZCBjYWxsYmFjay4gQmVjYXVzZQppZiBhbnl0aGluZyBpcyBsZWZ0 IGluIGl0cyB1bmJpbmQgY2FsbGJhY2sgdGhhdCdzIGEgYnVnLCBzaW5jZQpkcm1fZGV2X3VucmVn aXN0ZXIoKSAoY2FsbGVkIHRocm91Z2ggZHJtX2Rldl91bnBsdWcpIGlzIHRoZSB2ZXJ5IGZpcnN0 IChvcgphdCBsZWFzdCBvbmUgb2YgdGhlIHZlcnkgZmlyc3QsIGJlZm9yZSB3ZSBzdGFydCBjbGVh bnVwIHVwKSBmdW5jdGlvbnMgdGhhdApuZWVkIHRvIGJlIGNhbGxlZC4KLURhbmllbAoKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZHJ2LmMKPiBpbmRleCAxMjEyOTc3MmJlNDUuLjdlZDk1NTBiYWZmNiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9k cnYuYwo+IEBAIC0zNCw3ICszNCw5IEBACj4gICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gICNp bmNsdWRlIDxsaW51eC9zcmN1Lmg+Cj4gCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxw ZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fY2xpZW50Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJt X2NydGNfaGVscGVyLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgo+ICAjaW5jbHVkZSA8 ZHJtL2RybV9mYl9oZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gQEAgLTM1NSwx NyArMzU3LDcgQEAgdm9pZCBkcm1fZGV2X2V4aXQoaW50IGlkeCkKPiAgfQo+ICBFWFBPUlRfU1lN Qk9MKGRybV9kZXZfZXhpdCk7Cj4gCj4gLS8qKgo+IC0gKiBkcm1fZGV2X3VucGx1ZyAtIHVucGx1 ZyBhIERSTSBkZXZpY2UKPiAtICogQGRldjogRFJNIGRldmljZQo+IC0gKgo+IC0gKiBUaGlzIHVu cGx1Z3MgYSBob3RwbHVnZ2FibGUgRFJNIGRldmljZSwgd2hpY2ggbWFrZXMgaXQgaW5hY2Nlc3Np YmxlIHRvCj4gLSAqIHVzZXJzcGFjZSBvcGVyYXRpb25zLiBFbnRyeS1wb2ludHMgY2FuIHVzZSBk cm1fZGV2X2VudGVyKCkgYW5kCj4gLSAqIGRybV9kZXZfZXhpdCgpIHRvIHByb3RlY3QgZGV2aWNl IHJlc291cmNlcyBpbiBhIHJhY2UgZnJlZSBtYW5uZXIuIFRoaXMKPiAtICogZXNzZW50aWFsbHkg dW5yZWdpc3RlcnMgdGhlIGRldmljZSBsaWtlIGRybV9kZXZfdW5yZWdpc3RlcigpLCBidXQgY2Fu IGJlCj4gLSAqIGNhbGxlZCB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgb3BlbiB1c2VycyBvZiBAZGV2 Lgo+IC0gKi8KPiAtdm9pZCBkcm1fZGV2X3VucGx1ZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICtzdGF0aWMgdm9pZCBfX2RybV9kZXZfdW5wbHVnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJv b2wgc2h1dGRvd24pCj4gIHsKPiAgICAgICAgIC8qCj4gICAgICAgICAgKiBBZnRlciBzeW5jaHJv bml6aW5nIGFueSBjcml0aWNhbCByZWFkIHNlY3Rpb24gaXMgZ3VhcmFudGVlZAo+IHRvIHNlZQo+ IEBAIC0zNzgsMTEgKzM3MCwzMiBAQCB2b2lkIGRybV9kZXZfdW5wbHVnKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gCj4gICAgICAgICBkcm1fZGV2X3VucmVnaXN0ZXIoZGV2KTsKPiAKPiArICAg ICAgIGlmIChzaHV0ZG93bikKPiArICAgICAgICAgICAgICAgZHJtX2ttc19oZWxwZXJfcG9sbF9m aW5pKGRldik7Cj4gKwo+ICAgICAgICAgbXV0ZXhfbG9jaygmZHJtX2dsb2JhbF9tdXRleCk7Cj4g LSAgICAgICBpZiAoZGV2LT5vcGVuX2NvdW50ID09IDApCj4gKyAgICAgICBpZiAoZGV2LT5vcGVu X2NvdW50ID09IDApIHsKPiArICAgICAgICAgICAgICAgaWYgKHNodXRkb3duKQo+ICsgICAgICAg ICAgICAgICAgICAgICAgIGRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRldik7Cj4gICAgICAg ICAgICAgICAgIGRybV9kZXZfcHV0KGRldik7Cj4gKyAgICAgICB9Cj4gICAgICAgICBtdXRleF91 bmxvY2soJmRybV9nbG9iYWxfbXV0ZXgpOwo+ICB9Cj4gKwo+ICsvKioKPiArICogZHJtX2Rldl91 bnBsdWcgLSB1bnBsdWcgYSBEUk0gZGV2aWNlCj4gKyAqIEBkZXY6IERSTSBkZXZpY2UKPiArICoK PiArICogVGhpcyB1bnBsdWdzIGEgaG90cGx1Z2dhYmxlIERSTSBkZXZpY2UsIHdoaWNoIG1ha2Vz IGl0IGluYWNjZXNzaWJsZSB0bwo+ICsgKiB1c2Vyc3BhY2Ugb3BlcmF0aW9ucy4gRW50cnktcG9p bnRzIGNhbiB1c2UgZHJtX2Rldl9lbnRlcigpIGFuZAo+ICsgKiBkcm1fZGV2X2V4aXQoKSB0byBw cm90ZWN0IGRldmljZSByZXNvdXJjZXMgaW4gYSByYWNlIGZyZWUgbWFubmVyLiBUaGlzCj4gKyAq IGVzc2VudGlhbGx5IHVucmVnaXN0ZXJzIHRoZSBkZXZpY2UgbGlrZSBkcm1fZGV2X3VucmVnaXN0 ZXIoKSwgYnV0IGNhbiBiZQo+ICsgKiBjYWxsZWQgd2hpbGUgdGhlcmUgYXJlIHN0aWxsIG9wZW4g dXNlcnMgb2YgQGRldi4KPiArICovCj4gK3ZvaWQgZHJtX2Rldl91bnBsdWcoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiArewo+ICsgICAgICAgX19kcm1fZGV2X3VucGx1ZyhkZXYsIGZhbHNlKTsK PiArfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9kZXZfdW5wbHVnKTsKPiAKPiAgLyoKPiBAQCAtOTIw LDcgKzkzMyw3IEBAIEVYUE9SVF9TWU1CT0woZGV2bV9kcm1fZGV2X2luaXQpOwo+IAo+ICBzdGF0 aWMgdm9pZCBkZXZtX2RybV9kZXZfcmVnaXN0ZXJfcmVsZWFzZSh2b2lkICpkYXRhKQo+ICB7Cj4g LSAgICAgICBkcm1fZGV2X3VucGx1ZyhkYXRhKTsKPiArICAgICAgIF9fZHJtX2Rldl91bnBsdWco ZGF0YSwgdHJ1ZSk7Cj4gIH0KPiAKPiAgc3RhdGljIGludCBkZXZtX2RybV9kZXZfcmVnaXN0ZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAKPiAKPiBJIHJlYWxpc2VkIHRoYXQgd2Ugc2hvdWxk IHRha2UgYSByZWYgb24gdGhlIHBhcmVudCBkZXZpY2Ugc28gaXQgY2FuIGJlCj4gYWNjZXNzZWQg YnkgdGhlIERSTV9ERVZfIGZ1bmN0aW9ucyBhZnRlciB1bnBsdWcuCj4gCj4gCj4gTm9yYWxmLgo+ IAo+IAo+ID4gCj4gPj4+ICsgKgo+ID4+PiArICogTm90ZTogVGhpcyBmdW5jdGlvbiBtdXN0IGJl IHVzZWQgdG9nZXRoZXIgd2l0aAo+ID4+PiArICogZGV2bV9kcm1fZGV2X3JlZ2lzdGVyX3dpdGhf ZmJkZXYoKS4KPiA+Pj4gKyAqCj4gPj4+ICsgKiBSRVRVUk5TOgo+ID4+PiArICogMCBvbiBzdWNj ZXNzLCBvciBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gPj4+ICsgKi8KPiA+Pj4gK2ludCBkZXZt X2RybV9kZXZfaW5pdChzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCj4gPj4+ICsJCSAgICAgIHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gPj4+ICsJCSAgICAgIHN0cnVjdCBkcm1fZHJpdmVyICpkcml2 ZXIpCj4gPj4+ICt7Cj4gPj4+ICsJaW50IHJldDsKPiA+Pj4gKwo+ID4+PiArCWlmIChXQVJOX09O KCFwYXJlbnQgfHwgIWRyaXZlci0+cmVsZWFzZSkpCj4gPj4+ICsJCXJldHVybiAtRUlOVkFMOwo+ ID4+PiArCj4gPj4+ICsJcmV0ID0gZHJtX2Rldl9pbml0KGRldiwgZHJpdmVyLCBwYXJlbnQpOwo+ ID4+PiArCWlmIChyZXQpCj4gPj4+ICsJCXJldHVybiByZXQ7Cj4gPj4+ICsKPiA+Pj4gKwkvKgo+ ID4+PiArCSAqIFRoaXMgaXMgYSB0ZW1wb3JhcnkgcmVsZWFzZSBhY3Rpb24gdGhhdCBpcyB1c2Vk IGlmIHByb2JpbmcgZmFpbHMKPiA+Pj4gKwkgKiBiZWZvcmUgZGV2bV9kcm1fZGV2X3JlZ2lzdGVy KCkgaXMgY2FsbGVkLgo+ID4+PiArCSAqLwo+ID4+PiArCXJldCA9IGRldm1fYWRkX2FjdGlvbihw YXJlbnQsIGRldm1fZHJtX2Rldl9pbml0X3JlbGVhc2UsIGRldik7Cj4gPj4+ICsJaWYgKHJldCkK PiA+Pj4gKwkJZGV2bV9kcm1fZGV2X2luaXRfcmVsZWFzZShkZXYpOwo+ID4+PiArCj4gPj4+ICsJ cmV0dXJuIHJldDsKPiA+Pj4gK30KPiA+Pj4gK0VYUE9SVF9TWU1CT0woZGV2bV9kcm1fZGV2X2lu aXQpOwo+ID4+PiArCj4gPj4+ICtzdGF0aWMgdm9pZCBkZXZtX2RybV9kZXZfcmVnaXN0ZXJfcmVs ZWFzZSh2b2lkICpkYXRhKQo+ID4+PiArewo+ID4+PiArCWRybV9kZXZfdW5wbHVnKGRhdGEpOwo+ ID4+PiArfQo+ID4+PiArCj4gPj4+ICtzdGF0aWMgaW50IGRldm1fZHJtX2Rldl9yZWdpc3Rlcihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4+PiArewo+ID4+PiArCWludCByZXQ7Cj4gPj4+ICsK PiA+Pj4gKwlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRldiwgMCk7Cj4gPj4+ICsJaWYgKHJldCkK PiA+Pj4gKwkJcmV0dXJuIHJldDsKPiA+Pj4gKwo+ID4+PiArCS8qCj4gPj4+ICsJICogVGhpcyBo YXMgbm93IHNlcnZlZCBpdCdzIHB1cnBvc2UsIHJlbW92ZSBpdCB0byBub3QgbWVzcyB1cCByZWYK PiA+Pj4gKwkgKiBjb3VudGluZy4KPiA+Pj4gKwkgKi8KPiA+Pj4gKwlkZXZtX3JlbW92ZV9hY3Rp b24oZGV2LT5kZXYsIGRldm1fZHJtX2Rldl9pbml0X3JlbGVhc2UsIGRldik7Cj4gPj4+ICsKPiA+ Pj4gKwlyZXQgPSBkZXZtX2FkZF9hY3Rpb24oZGV2LT5kZXYsIGRldm1fZHJtX2Rldl9yZWdpc3Rl cl9yZWxlYXNlLCBkZXYpOwo+ID4+PiArCWlmIChyZXQpCj4gPj4+ICsJCWRldm1fZHJtX2Rldl9y ZWdpc3Rlcl9yZWxlYXNlKGRldik7Cj4gPj4+ICsKPiA+Pj4gKwlyZXR1cm4gcmV0Owo+ID4+PiAr fQo+ID4+PiArCj4gPj4+ICsvKioKPiA+Pj4gKyAqIGRldm1fZHJtX2Rldl9yZWdpc3Rlcl93aXRo X2ZiZGV2IC0gUmVzb3VyY2UgbWFuYWdlZCBkcm1fZGV2X3JlZ2lzdGVyKCkKPiA+Pj4gKyAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGdlbmVyaWMgZmJkZXYg ZW11bGF0aW9uCj4gPj4+ICsgKiBAZGV2OiBEUk0gZGV2aWNlIHRvIHJlZ2lzdGVyCj4gPj4+ICsg KiBAZmJkZXZfYnBwOiBQcmVmZXJyZWQgYml0cyBwZXIgcGl4ZWwgZm9yIGZiZGV2IChvcHRpb25h bCkKPiA+Pj4gKyAqCj4gPj4+ICsgKiBNYW5hZ2VkIGRybV9kZXZfcmVnaXN0ZXIoKSB0aGF0IGFs c28gY2FsbHMgZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoKS4KPiA+Pj4gKyAqIFRoZSBEUk0gZGV2 aWNlIHJlZ2lzdGVyZWQgd2l0aCB0aGlzIGZ1bmN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgdW5yZWdp c3RlcmVkIG9uCj4gPj4+ICsgKiBkcml2ZXIgZGV0YWNoIHVzaW5nIGRybV9kZXZfdW5wbHVnKCku Cj4gPj4+ICsgKgo+ID4+PiArICogTm90ZTogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIHVzZWQgdG9n ZXRoZXIgd2l0aCBkZXZtX2RybV9kZXZfaW5pdCgpLgo+ID4+PiArICoKPiA+Pj4gKyAqIEZvciB0 ZXN0aW5nIGRyaXZlciBkZXRhY2ggY2FuIGJlIHRyaWdnZXJlZCBtYW51YWxseSBieSB3cml0aW5n IHRvIHRoZSBkcml2ZXIKPiA+Pj4gKyAqICd1bmJpbmQnIGZpbGUuCj4gPj4+ICsgKgo+ID4+PiAr ICogUkVUVVJOUzoKPiA+Pj4gKyAqIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBv biBmYWlsdXJlLgo+ID4+PiArICovCj4gPj4+ICtpbnQgZGV2bV9kcm1fZGV2X3JlZ2lzdGVyX3dp dGhfZmJkZXYoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+Pj4gKwkJCQkgICAgIHVuc2lnbmVk IGludCBmYmRldl9icHApCj4gPj4+ICt7Cj4gPj4+ICsJaW50IHJldDsKPiA+Pj4gKwo+ID4+PiAr CXJldCA9IGRldm1fZHJtX2Rldl9yZWdpc3RlcihkZXYpOwo+ID4+PiArCWlmIChyZXQpCj4gPj4+ ICsJCXJldHVybiByZXQ7Cj4gPj4+ICsKPiA+Pj4gKwlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChk ZXYsIGZiZGV2X2JwcCk7Cj4gPj4+ICsKPiA+Pj4gKwlyZXR1cm4gMDsKPiA+Pj4gK30KPiA+Pj4g K0VYUE9SVF9TWU1CT0woZGV2bV9kcm1fZGV2X3JlZ2lzdGVyX3dpdGhfZmJkZXYpOwo+ID4+PiAr Cj4gPj4+ICAvKioKPiA+Pj4gICAqIGRybV9kZXZfc2V0X3VuaXF1ZSAtIFNldCB0aGUgdW5pcXVl IG5hbWUgb2YgYSBEUk0gZGV2aWNlCj4gPj4+ICAgKiBAZGV2OiBkZXZpY2Ugb2Ygd2hpY2ggdG8g c2V0IHRoZSB1bmlxdWUgbmFtZQo+ID4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Ry di5oIGIvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCj4gPj4+IGluZGV4IDM1YWYyM2Y1ZmEwZC4uYzNm MDQ3N2YyZTdmIDEwMDY0NAo+ID4+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKPiA+Pj4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCj4gPj4+IEBAIC02MjgsNiArNjI4LDEyIEBAIHN0 cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2X2FsbG9jKHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIs Cj4gPj4+ICBpbnQgZHJtX2Rldl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNp Z25lZCBsb25nIGZsYWdzKTsKPiA+Pj4gIHZvaWQgZHJtX2Rldl91bnJlZ2lzdGVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwo+ID4+PiAgCj4gPj4+ICtpbnQgZGV2bV9kcm1fZGV2X2luaXQoc3Ry dWN0IGRldmljZSAqcGFyZW50LAo+ID4+PiArCQkgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ID4+PiArCQkgICAgICBzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyKTsKPiA+Pj4gK2ludCBk ZXZtX2RybV9kZXZfcmVnaXN0ZXJfd2l0aF9mYmRldihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ID4+PiArCQkJCSAgICAgdW5zaWduZWQgaW50IGZiZGV2X2JwcCk7Cj4gPj4+ICsKPiA+Pj4gIHZv aWQgZHJtX2Rldl9nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPj4+ICB2b2lkIGRybV9k ZXZfcHV0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4+PiAgdm9pZCBkcm1fcHV0X2Rldihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+Pj4gLS0gCj4gPj4+IDIuMjAuMQo+ID4+Pgo+ID4+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+PiBk cmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiA+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwKPiA+Pgo+ID4+IC0tIAo+ID4+IERhbmllbCBWZXR0ZXIKPiA+PiBTb2Z0d2FyZSBF bmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+PiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4g CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24K aHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==