From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ilia Mirkin Subject: Re: [PATCH] drm/nouveau: add a LED driver for the NVIDIA logo Date: Tue, 3 May 2016 19:57:46 -0400 Message-ID: References: <1462319465-29090-1-git-send-email-martin.peres@free.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1462319465-29090-1-git-send-email-martin.peres-GANU6spQydw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Martin Peres Cc: "nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" List-Id: nouveau.vger.kernel.org T24gVHVlLCBNYXkgMywgMjAxNiBhdCA3OjUxIFBNLCBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJl c0BmcmVlLmZyPiB3cm90ZToKPiBXZSByZWNlaXZlZCBhIGRvbmF0aW9uIG9mIGEgVGl0YW4gd2hp Y2ggaGFzIHRoaXMgdXNlbGVzcyBmZWF0dXJlCj4gYWxsb3dpbmcgdXNlcnMgdG8gY29udHJvbCB0 aGUgYnJpZ2h0bmVzcyBvZiB0aGUgTEVEIGJlaGluZCB0aGUKPiBsb2dvIG9mIE5WSURJQS4gSW4g dGhlIHRydWUgc3Bpcml0IG9mIG9wZW4gc291cmNlLCBsZXQncyBleHBvc2UKPiB0aGF0IHRvIHRo ZSB1c2VycyBvZiB2ZXJ5IGV4cGVuc2l2ZSBjYXJkcyEKPgo+IFRoaXMgcGF0Y2ggaG9va3MgdXAg dGhpcyBMRUQvUFdNIHRvIHRoZSBMRUQgc3Vic3lzdGVtIHdoaWNoIGFsbG93cwo+IGJsaW5raW5n IGl0IGluIHN5bmMgd2l0aCBjcHUvZGlzay9uZXR3b3JrL3doYXRldmVyIGFjdGl2aXR5IChoZWFy dGJlYXQKPiBpcyBxdWl0ZSBuaWNlISkuIFVzZXJzIG1heSBhbHNvIGltcGxlbWVudCBzb21lIGJy ZWF0aGluZyBlZmZlY3Qgb3IKPiBtb3JzZSBjb2RlIHN1cHBvcnQgaW4gdGhlIHVzZXJzcGFjZSBp ZiB0aGV5IGZlZWwgbGlrZSBpdC4KPgo+IFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBQZXJlcyA8bWFy dGluLnBlcmVzQGZyZWUuZnI+Cj4gLS0tCj4gIGRybS9ub3V2ZWF1L0tidWlsZCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwo+ICBkcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2 L2Jpb3MvZ3Bpby5oIHwgICAxICsKPiAgZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYyAgICAgICAg ICAgICAgICAgICB8ICAgNyArKwo+ICBkcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5oICAgICAgICAg ICAgICAgICAgIHwgICAzICsKPiAgZHJtL25vdXZlYXUvbm91dmVhdV9sZWQuYyAgICAgICAgICAg ICAgICAgICB8IDEzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRybS9ub3V2ZWF1 L25vdXZlYXVfbGVkLmggICAgICAgICAgICAgICAgICAgfCAgNDggKysrKysrKysrKwo+ICA2IGZp bGVzIGNoYW5nZWQsIDE5MSBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcm0v bm91dmVhdS9ub3V2ZWF1X2xlZC5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcm0vbm91dmVhdS9u b3V2ZWF1X2xlZC5oCj4KPiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvS2J1aWxkIGIvZHJtL25v dXZlYXUvS2J1aWxkCj4gaW5kZXggMjUyN2JmNC4uMzEyYmNhOSAxMDA2NDQKPiAtLS0gYS9kcm0v bm91dmVhdS9LYnVpbGQKPiArKysgYi9kcm0vbm91dmVhdS9LYnVpbGQKPiBAQCAtMjIsNiArMjIs NyBAQCBub3V2ZWF1LSQoQ09ORklHX0RFQlVHX0ZTKSArPSBub3V2ZWF1X2RlYnVnZnMubwo+ICBu b3V2ZWF1LXkgKz0gbm91dmVhdV9kcm0ubwo+ICBub3V2ZWF1LXkgKz0gbm91dmVhdV9od21vbi5v Cj4gIG5vdXZlYXUtJChDT05GSUdfQ09NUEFUKSArPSBub3V2ZWF1X2lvYzMyLm8KPiArbm91dmVh dS15ICs9IG5vdXZlYXVfbGVkLm8KPiAgbm91dmVhdS15ICs9IG5vdXZlYXVfbnZpZi5vCj4gIG5v dXZlYXUtJChDT05GSUdfTk9VVkVBVV9QTEFURk9STV9EUklWRVIpICs9IG5vdXZlYXVfcGxhdGZv cm0ubwo+ICBub3V2ZWF1LXkgKz0gbm91dmVhdV91c2lmLm8gIyB1c2Vyc3BhY2UgPC0+IG52aWYK PiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1YmRldi9iaW9zL2dwaW8u aCBiL2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZrbS9zdWJkZXYvYmlvcy9ncGlvLmgKPiBpbmRleCBh NDdkNDZkLi5iN2E1NGU2IDEwMDY0NAo+IC0tLSBhL2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZrbS9z dWJkZXYvYmlvcy9ncGlvLmgKPiArKysgYi9kcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2 L2Jpb3MvZ3Bpby5oCj4gQEAgLTYsNiArNiw3IEBAIGVudW0gZGNiX2dwaW9fZnVuY19uYW1lIHsK PiAgICAgICAgIERDQl9HUElPX1RWREFDMSA9IDB4MmQsCj4gICAgICAgICBEQ0JfR1BJT19GQU4g PSAweDA5LAo+ICAgICAgICAgRENCX0dQSU9fRkFOX1NFTlNFID0gMHgzZCwKPiArICAgICAgIERD Ql9HUElPX0xPR09fTEVEX1BXTSA9IDB4ODQsCj4gICAgICAgICBEQ0JfR1BJT19VTlVTRUQgPSAw eGZmLAo+ICAgICAgICAgRENCX0dQSU9fVklEMCA9IDB4MDQsCj4gICAgICAgICBEQ0JfR1BJT19W SUQxID0gMHgwNSwKPiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYyBiL2Ry bS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMKPiBpbmRleCBkMDY4NzdkLi5kYzk3NDAxIDEwMDY0NAo+ IC0tLSBhL2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMKPiArKysgYi9kcm0vbm91dmVhdS9ub3V2 ZWF1X2RybS5jCj4gQEAgLTQ5LDYgKzQ5LDcgQEAKPiAgI2luY2x1ZGUgIm5vdXZlYXVfdHRtLmgi Cj4gICNpbmNsdWRlICJub3V2ZWF1X2dlbS5oIgo+ICAjaW5jbHVkZSAibm91dmVhdV92Z2EuaCIK PiArI2luY2x1ZGUgIm5vdXZlYXVfbGVkLmgiCj4gICNpbmNsdWRlICJub3V2ZWF1X2h3bW9uLmgi Cj4gICNpbmNsdWRlICJub3V2ZWF1X2FjcGkuaCIKPiAgI2luY2x1ZGUgIm5vdXZlYXVfYmlvcy5o Igo+IEBAIC00NjgsNiArNDY5LDcgQEAgbm91dmVhdV9kcm1fbG9hZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+ICAgICAgICAgbm91dmVhdV9od21vbl9pbml0 KGRldik7Cj4gICAgICAgICBub3V2ZWF1X2FjY2VsX2luaXQoZHJtKTsKPiAgICAgICAgIG5vdXZl YXVfZmJjb25faW5pdChkZXYpOwo+ICsgICAgICAgbm91dmVhdV9sZWRfaW5pdChkZXYpOwo+Cj4g ICAgICAgICBpZiAobm91dmVhdV9ydW50aW1lX3BtICE9IDApIHsKPiAgICAgICAgICAgICAgICAg cG1fcnVudGltZV91c2VfYXV0b3N1c3BlbmQoZGV2LT5kZXYpOwo+IEBAIC00OTksNiArNTAxLDcg QEAgbm91dmVhdV9kcm1fdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAgICAgICBz dHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKGRldik7Cj4KPiAgICAgICAgIHBt X3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOwo+ICsgICAgICAgbm91dmVhdV9sZWRfZmluaShk ZXYpOwo+ICAgICAgICAgbm91dmVhdV9mYmNvbl9maW5pKGRldik7Cj4gICAgICAgICBub3V2ZWF1 X2FjY2VsX2ZpbmkoZHJtKTsKPiAgICAgICAgIG5vdXZlYXVfaHdtb25fZmluaShkZXYpOwo+IEBA IC01NTAsNiArNTUzLDggQEAgbm91dmVhdV9kb19zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGJvb2wgcnVudGltZSkKPiAgICAgICAgIHN0cnVjdCBub3V2ZWF1X2NsaSAqY2xpOwo+ICAg ICAgICAgaW50IHJldDsKPgo+ICsgICAgICAgbm91dmVhdV9sZWRfc3VzcGVuZChkZXYpOwo+ICsK PiAgICAgICAgIGlmIChkZXYtPm1vZGVfY29uZmlnLm51bV9jcnRjKSB7Cj4gICAgICAgICAgICAg ICAgIE5WX0lORk8oZHJtLCAic3VzcGVuZGluZyBjb25zb2xlLi4uXG4iKTsKPiAgICAgICAgICAg ICAgICAgbm91dmVhdV9mYmNvbl9zZXRfc3VzcGVuZChkZXYsIDEpOwo+IEBAIC02MzgsNiArNjQz LDggQEAgbm91dmVhdV9kb19yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBydW50 aW1lKQo+ICAgICAgICAgICAgICAgICBub3V2ZWF1X2ZiY29uX3NldF9zdXNwZW5kKGRldiwgMCk7 Cj4gICAgICAgICB9Cj4KPiArICAgICAgIG5vdXZlYXVfbGVkX3Jlc3VtZShkZXYpOwo+ICsKPiAg ICAgICAgIHJldHVybiAwOwo+ICB9Cj4KPiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvbm91dmVh dV9kcm0uaCBiL2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmgKPiBpbmRleCA1YzM2M2VkLi5iMTQ4 ZGNiIDEwMDY0NAo+IC0tLSBhL2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmgKPiArKysgYi9kcm0v bm91dmVhdS9ub3V2ZWF1X2RybS5oCj4gQEAgLTE2Niw2ICsxNjYsOSBAQCBzdHJ1Y3Qgbm91dmVh dV9kcm0gewo+ICAgICAgICAgc3RydWN0IG5vdXZlYXVfaHdtb24gKmh3bW9uOwo+ICAgICAgICAg c3RydWN0IG5vdXZlYXVfZGVidWdmcyAqZGVidWdmczsKPgo+ICsgICAgICAgLyogbGVkIG1hbmFn ZW1lbnQgKi8KPiArICAgICAgIHN0cnVjdCBub3V2ZWF1X2xlZCAqbGVkOwo+ICsKPiAgICAgICAg IC8qIGRpc3BsYXkgcG93ZXIgcmVmZXJlbmNlICovCj4gICAgICAgICBib29sIGhhdmVfZGlzcF9w b3dlcl9yZWY7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvbm91dmVhdV9sZWQuYyBiL2Ry bS9ub3V2ZWF1L25vdXZlYXVfbGVkLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAuLjNmMjNmZjYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJtL25vdXZlYXUvbm91dmVh dV9sZWQuYwo+IEBAIC0wLDAgKzEsMTMxIEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCAoQykgMjAx NiBNYXJ0aW4gUGVyZXMKPiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCj4gKyAqIGEgY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQo+ICsg KiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv biwgaW5jbHVkaW5nCj4gKyAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKPiArICogZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCj4gKyAqIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0bwo+ICsgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRp bmcgdGhlCj4gKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsCj4gKyAqIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoK PiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg T0YgQU5ZIEtJTkQsCj4gKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgo+ICsgKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCj4gKyAqIElO IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIoUykgQU5EL09SIElUUyBTVVBQTElF UlMgQkUKPiArICogTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTgo+ICsgKiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF UldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04KPiArICogV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu Cj4gKyAqCj4gKyAqLwo+ICsKPiArLyoKPiArICogQXV0aG9yczoKPiArICogIE1hcnRpbiBQZXJl cyA8bWFydGluLnBlcmVzQGZyZWUuZnI+Cj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2xl ZHMuaD4KPiArCj4gKyNpbmNsdWRlICJub3V2ZWF1X2RybS5oIgo+ICsjaW5jbHVkZSAibm91dmVh dV9sZWQuaCIKPiArI2luY2x1ZGUgPG52a20vc3ViZGV2L2dwaW8uaD4KPiArCj4gK3N0YXRpYyBl bnVtIGxlZF9icmlnaHRuZXNzCj4gK25vdXZlYXVfbGVkX2dldF9icmlnaHRuZXNzKHN0cnVjdCBs ZWRfY2xhc3NkZXYgKmxlZCkKPiArewo+ICsgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRybV9k ZXYgPSBjb250YWluZXJfb2YobGVkLCBzdHJ1Y3Qgbm91dmVhdV9sZWQsIGxlZCktPmRldjsKPiAr ICAgICAgIHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9kcm0oZHJtX2Rldik7Cj4g KyAgICAgICBzdHJ1Y3QgbnZpZl9vYmplY3QgKmRldmljZSA9ICZkcm0tPmRldmljZS5vYmplY3Q7 Cj4gKyAgICAgICB1MzIgZGl2LCBkdXR5Owo+ICsKPiArICAgICAgIGRpdiA9ICBudmlmX3JkMzIo ZGV2aWNlLCAweDYxYzg4MCkgJiAweDAwZmZmZmZmOwo+ICsgICAgICAgZHV0eSA9IG52aWZfcmQz MihkZXZpY2UsIDB4NjFjODg0KSAmIDB4MDBmZmZmZmY7Cj4gKwo+ICsgICAgICAgcmV0dXJuIGR1 dHkgKiBMRURfRlVMTCAvIGRpdjsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQKPiArbm91dmVhdV9s ZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkLCBlbnVtIGxlZF9icmln aHRuZXNzIHZhbHVlKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9 IGNvbnRhaW5lcl9vZihsZWQsIHN0cnVjdCBub3V2ZWF1X2xlZCwgbGVkKS0+ZGV2Owo+ICsgICAg ICAgc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShkcm1fZGV2KTsKPiArICAg ICAgIHN0cnVjdCBudmlmX29iamVjdCAqZGV2aWNlID0gJmRybS0+ZGV2aWNlLm9iamVjdDsKPiAr Cj4gKyAgICAgICB1MzIgaW5wdXRfY2xrID0gMjdlNjsgLyogUERJU1BMQVkuU09SWzFdLlBXTSBp cyBjb25uZWN0ZWQgdG8gdGhlIGNyeXN0YWwgKi8KPiArICAgICAgIHUzMiBmcmVxID0gMTAwOyAv KiB0aGlzIGlzIHdoYXQgbnZpZGlhIHVzZXMgYW5kIGl0IHNob3VsZCBiZSBnb29kLWVub3VnaCAq Lwo+ICsgICAgICAgdTMyIGRpdiwgZHV0eTsKPiArCj4gKyAgICAgICBkaXYgPSBpbnB1dF9jbGsg LyBmcmVxOwo+ICsgICAgICAgZHV0eSA9IHZhbHVlICogZGl2IC8gTEVEX0ZVTEw7Cj4gKwo+ICsg ICAgICAgLyogZm9yIG5vdywgdGhpcyBpcyBzYWZlIHRvIGRpcmVjdGx5IHBva2UgdGhvc2UgcmVn aXN0ZXJzIGJlY2F1c2U6Cj4gKyAgICAgICAgKiAgLSBBOiBudmlkaWEgbmV2ZXIgcHV0cyB0aGUg bG9nbyBsZWQgdG8gYW55IG90aGVyIFBXTSBjb250cm9sZXIKPiArICAgICAgICAqICAgICAgIHRo YW4gUERJU1BMQVkuU09SWzFdLlBXTS4KPiArICAgICAgICAqICAtIEI6IG5vdXZlYXUgZG9lcyBu b3QgdG91Y2ggdGhlc2UgcmVnaXN0ZXJzIGFueXdoZXJlIGVsc2UKPiArICAgICAgICAqLwo+ICsg ICAgICAgbnZpZl93cjMyKGRldmljZSwgMHg2MWM4ODAsIGRpdik7CgpJc24ndCB0aGUgbG9jYXRp b24gb2YgUERJU1AuU09SWzFdIGRpZmZlcmVudCBmb3IgZGlmZmVyZW50IGdlbnM/IGUuZy4KdGhl IG52NTAgZGlzcCB2cyB0aGUgbnZkMCBkaXNwIHZzIG90aGVycyAoSSBkb24ndCByZW1lbWJlciB0 aGUgZXhhY3QKZGV0YWlscykuCgo+ICsgICAgICAgbnZpZl93cjMyKGRldmljZSwgMHg2MWM4ODQs IDB4YzAwMDAwMDAgfCBkdXR5KTsKPiArfQo+ICsKPiAraW50Cj4gK25vdXZlYXVfbGVkX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsgICAgICAgc3RydWN0IG5vdXZlYXVfZHJt ICpkcm0gPSBub3V2ZWF1X2RybShkZXYpOwo+ICsgICAgICAgc3RydWN0IG52a21fZ3BpbyAqZ3Bp byA9IG52eHhfZ3BpbygmZHJtLT5kZXZpY2UpOwo+ICsgICAgICAgc3RydWN0IGRjYl9ncGlvX2Z1 bmMgbG9nb19sZWQ7Cj4gKyAgICAgICBpbnQgcmV0Owo+ICsKPiArICAgICAgIC8qIGNoZWNrIHRo YXQgdGhlcmUgaXMgYSBHUElPIGNvbnRyb2xsaW5nIHRoZSBsb2dvIExFRCAqLwo+ICsgICAgICAg aWYgKG52a21fZ3Bpb19maW5kKGdwaW8sIDAsIERDQl9HUElPX0xPR09fTEVEX1BXTSwgMHhmZiwg JmxvZ29fbGVkKSkKPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gKwo+ICsgICAgICAgZHJt LT5sZWQgPSBremFsbG9jKHNpemVvZigqZHJtLT5sZWQpLCBHRlBfS0VSTkVMKTsKPiArICAgICAg IGlmICghZHJtLT5sZWQpCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICsgICAg ICAgZHJtLT5sZWQtPmRldiA9IGRldjsKPiArCj4gKyAgICAgICBkcm0tPmxlZC0+bGVkLm5hbWUg PSAibnZpZGlhLWxvZ28iOwo+ICsgICAgICAgZHJtLT5sZWQtPmxlZC5tYXhfYnJpZ2h0bmVzcyA9 IDI1NTsKPiArICAgICAgIGRybS0+bGVkLT5sZWQuYnJpZ2h0bmVzc19nZXQgPSBub3V2ZWF1X2xl ZF9nZXRfYnJpZ2h0bmVzczsKPiArICAgICAgIGRybS0+bGVkLT5sZWQuYnJpZ2h0bmVzc19zZXQg PSBub3V2ZWF1X2xlZF9zZXRfYnJpZ2h0bmVzczsKPiArCj4gKyAgICAgICByZXQgPSBsZWRfY2xh c3NkZXZfcmVnaXN0ZXIoZGV2LT5kZXYsICZkcm0tPmxlZC0+bGVkKTsKPiArICAgICAgIGlmIChy ZXQpIHsKPiArICAgICAgICAgICAgICAga2ZyZWUoZHJtLT5sZWQpOwo+ICsgICAgICAgICAgICAg ICByZXR1cm4gcmV0Owo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHJldHVybiAwOwo+ICt9Cj4g Kwo+ICt2b2lkCj4gK25vdXZlYXVfbGVkX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiArewo+ICsgICAgICAgc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShkZXYp Owo+ICsKPiArICAgICAgIGxlZF9jbGFzc2Rldl9zdXNwZW5kKCZkcm0tPmxlZC0+bGVkKTsKPiAr fQo+ICsKPiArdm9pZAo+ICtub3V2ZWF1X2xlZF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiArewo+ICsgICAgICAgc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShk ZXYpOwo+ICsKPiArICAgICAgIGxlZF9jbGFzc2Rldl9yZXN1bWUoJmRybS0+bGVkLT5sZWQpOwo+ ICt9Cj4gKwo+ICt2b2lkCj4gK25vdXZlYXVfbGVkX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiArewo+ICsgICAgICAgc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShk ZXYpOwo+ICsKPiArICAgICAgIGlmIChkcm0tPmxlZCkgewo+ICsgICAgICAgICAgICAgICBsZWRf Y2xhc3NkZXZfdW5yZWdpc3RlcigmZHJtLT5sZWQtPmxlZCk7Cj4gKyAgICAgICAgICAgICAgIGtm cmVlKGRybS0+bGVkKTsKPiArICAgICAgICAgICAgICAgZHJtLT5sZWQgPSBOVUxMOwo+ICsgICAg ICAgfQo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RybS9ub3V2ZWF1L25vdXZlYXVfbGVkLmggYi9kcm0v bm91dmVhdS9ub3V2ZWF1X2xlZC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAw MDAwLi42Yzk4NmJhCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RybS9ub3V2ZWF1L25vdXZlYXVf bGVkLmgKPiBAQCAtMCwwICsxLDQ4IEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCAyMDE1IE1hcnRp biBQZXJlcwo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQv b3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4K PiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu Cj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAg SU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9S KFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCj4gKyAqIE9USEVSIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF LAo+ICsgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IKPiArICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJF Lgo+ICsgKgo+ICsgKiBBdXRob3JzOiBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BmcmVlLmZy Pgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19OT1VWRUFVX0xFRF9IX18KPiArI2RlZmluZSBfX05P VVZFQVVfTEVEX0hfXwo+ICsKPiArc3RydWN0IGxlZF9jbGFzc2RldjsKPiArCj4gK3N0cnVjdCBu b3V2ZWF1X2xlZCB7Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+ICsKPiArICAg ICAgIHN0cnVjdCBsZWRfY2xhc3NkZXYgbGVkOwo+ICt9Owo+ICsKPiArc3RhdGljIGlubGluZSBz dHJ1Y3Qgbm91dmVhdV9sZWQgKgo+ICtub3V2ZWF1X2xlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICt7Cj4gKyAgICAgICByZXR1cm4gbm91dmVhdV9kcm0oZGV2KS0+bGVkOwo+ICt9Cj4gKwo+ ICsvKiBub3V2ZWF1X2xlZC5jICovCj4gK2ludCAgbm91dmVhdV9sZWRfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKPiArdm9pZCBub3V2ZWF1X2xlZF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwo+ICt2b2lkIG5vdXZlYXVfbGVkX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPiArdm9pZCBub3V2ZWF1X2xlZF9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ ICsKPiArI2VuZGlmCj4gLS0KPiAyLjguMAo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPiBOb3V2ZWF1IG1haWxpbmcgbGlzdAo+IE5vdXZlYXVAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9ub3V2ZWF1Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91dmVh dQo=