From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Peres Subject: [PATCH] drm/nouveau: add a LED driver for the NVIDIA logo Date: Wed, 4 May 2016 02:51:05 +0300 Message-ID: <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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org V2UgcmVjZWl2ZWQgYSBkb25hdGlvbiBvZiBhIFRpdGFuIHdoaWNoIGhhcyB0aGlzIHVzZWxlc3Mg ZmVhdHVyZQphbGxvd2luZyB1c2VycyB0byBjb250cm9sIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBM RUQgYmVoaW5kIHRoZQpsb2dvIG9mIE5WSURJQS4gSW4gdGhlIHRydWUgc3Bpcml0IG9mIG9wZW4g c291cmNlLCBsZXQncyBleHBvc2UKdGhhdCB0byB0aGUgdXNlcnMgb2YgdmVyeSBleHBlbnNpdmUg Y2FyZHMhCgpUaGlzIHBhdGNoIGhvb2tzIHVwIHRoaXMgTEVEL1BXTSB0byB0aGUgTEVEIHN1YnN5 c3RlbSB3aGljaCBhbGxvd3MKYmxpbmtpbmcgaXQgaW4gc3luYyB3aXRoIGNwdS9kaXNrL25ldHdv cmsvd2hhdGV2ZXIgYWN0aXZpdHkgKGhlYXJ0YmVhdAppcyBxdWl0ZSBuaWNlISkuIFVzZXJzIG1h eSBhbHNvIGltcGxlbWVudCBzb21lIGJyZWF0aGluZyBlZmZlY3Qgb3IKbW9yc2UgY29kZSBzdXBw b3J0IGluIHRoZSB1c2Vyc3BhY2UgaWYgdGhleSBmZWVsIGxpa2UgaXQuCgpTaWduZWQtb2ZmLWJ5 OiBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BmcmVlLmZyPgotLS0KIGRybS9ub3V2ZWF1L0ti dWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZHJtL25vdXZlYXUvaW5jbHVk ZS9udmttL3N1YmRldi9iaW9zL2dwaW8uaCB8ICAgMSArCiBkcm0vbm91dmVhdS9ub3V2ZWF1X2Ry bS5jICAgICAgICAgICAgICAgICAgIHwgICA3ICsrCiBkcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5o ICAgICAgICAgICAgICAgICAgIHwgICAzICsKIGRybS9ub3V2ZWF1L25vdXZlYXVfbGVkLmMgICAg ICAgICAgICAgICAgICAgfCAxMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJtL25v dXZlYXUvbm91dmVhdV9sZWQuaCAgICAgICAgICAgICAgICAgICB8ICA0OCArKysrKysrKysrCiA2 IGZpbGVzIGNoYW5nZWQsIDE5MSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJt L25vdXZlYXUvbm91dmVhdV9sZWQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRybS9ub3V2ZWF1L25v dXZlYXVfbGVkLmgKCmRpZmYgLS1naXQgYS9kcm0vbm91dmVhdS9LYnVpbGQgYi9kcm0vbm91dmVh dS9LYnVpbGQKaW5kZXggMjUyN2JmNC4uMzEyYmNhOSAxMDA2NDQKLS0tIGEvZHJtL25vdXZlYXUv S2J1aWxkCisrKyBiL2RybS9ub3V2ZWF1L0tidWlsZApAQCAtMjIsNiArMjIsNyBAQCBub3V2ZWF1 LSQoQ09ORklHX0RFQlVHX0ZTKSArPSBub3V2ZWF1X2RlYnVnZnMubwogbm91dmVhdS15ICs9IG5v dXZlYXVfZHJtLm8KIG5vdXZlYXUteSArPSBub3V2ZWF1X2h3bW9uLm8KIG5vdXZlYXUtJChDT05G SUdfQ09NUEFUKSArPSBub3V2ZWF1X2lvYzMyLm8KK25vdXZlYXUteSArPSBub3V2ZWF1X2xlZC5v CiBub3V2ZWF1LXkgKz0gbm91dmVhdV9udmlmLm8KIG5vdXZlYXUtJChDT05GSUdfTk9VVkVBVV9Q TEFURk9STV9EUklWRVIpICs9IG5vdXZlYXVfcGxhdGZvcm0ubwogbm91dmVhdS15ICs9IG5vdXZl YXVfdXNpZi5vICMgdXNlcnNwYWNlIDwtPiBudmlmCmRpZmYgLS1naXQgYS9kcm0vbm91dmVhdS9p bmNsdWRlL252a20vc3ViZGV2L2Jpb3MvZ3Bpby5oIGIvZHJtL25vdXZlYXUvaW5jbHVkZS9udmtt L3N1YmRldi9iaW9zL2dwaW8uaAppbmRleCBhNDdkNDZkLi5iN2E1NGU2IDEwMDY0NAotLS0gYS9k cm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L2Jpb3MvZ3Bpby5oCisrKyBiL2RybS9ub3V2 ZWF1L2luY2x1ZGUvbnZrbS9zdWJkZXYvYmlvcy9ncGlvLmgKQEAgLTYsNiArNiw3IEBAIGVudW0g ZGNiX2dwaW9fZnVuY19uYW1lIHsKIAlEQ0JfR1BJT19UVkRBQzEgPSAweDJkLAogCURDQl9HUElP X0ZBTiA9IDB4MDksCiAJRENCX0dQSU9fRkFOX1NFTlNFID0gMHgzZCwKKwlEQ0JfR1BJT19MT0dP X0xFRF9QV00gPSAweDg0LAogCURDQl9HUElPX1VOVVNFRCA9IDB4ZmYsCiAJRENCX0dQSU9fVklE MCA9IDB4MDQsCiAJRENCX0dQSU9fVklEMSA9IDB4MDUsCmRpZmYgLS1naXQgYS9kcm0vbm91dmVh dS9ub3V2ZWF1X2RybS5jIGIvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYwppbmRleCBkMDY4Nzdk Li5kYzk3NDAxIDEwMDY0NAotLS0gYS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5jCisrKyBiL2Ry bS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJub3V2 ZWF1X3R0bS5oIgogI2luY2x1ZGUgIm5vdXZlYXVfZ2VtLmgiCiAjaW5jbHVkZSAibm91dmVhdV92 Z2EuaCIKKyNpbmNsdWRlICJub3V2ZWF1X2xlZC5oIgogI2luY2x1ZGUgIm5vdXZlYXVfaHdtb24u aCIKICNpbmNsdWRlICJub3V2ZWF1X2FjcGkuaCIKICNpbmNsdWRlICJub3V2ZWF1X2Jpb3MuaCIK QEAgLTQ2OCw2ICs0NjksNyBAQCBub3V2ZWF1X2RybV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJbm91dmVhdV9od21vbl9pbml0KGRldik7CiAJbm91 dmVhdV9hY2NlbF9pbml0KGRybSk7CiAJbm91dmVhdV9mYmNvbl9pbml0KGRldik7CisJbm91dmVh dV9sZWRfaW5pdChkZXYpOwogCiAJaWYgKG5vdXZlYXVfcnVudGltZV9wbSAhPSAwKSB7CiAJCXBt X3J1bnRpbWVfdXNlX2F1dG9zdXNwZW5kKGRldi0+ZGV2KTsKQEAgLTQ5OSw2ICs1MDEsNyBAQCBu b3V2ZWF1X2RybV91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3Qgbm91dmVh dV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKGRldik7CiAKIAlwbV9ydW50aW1lX2dldF9zeW5jKGRl di0+ZGV2KTsKKwlub3V2ZWF1X2xlZF9maW5pKGRldik7CiAJbm91dmVhdV9mYmNvbl9maW5pKGRl dik7CiAJbm91dmVhdV9hY2NlbF9maW5pKGRybSk7CiAJbm91dmVhdV9od21vbl9maW5pKGRldik7 CkBAIC01NTAsNiArNTUzLDggQEAgbm91dmVhdV9kb19zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGJvb2wgcnVudGltZSkKIAlzdHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaTsKIAlpbnQgcmV0 OwogCisJbm91dmVhdV9sZWRfc3VzcGVuZChkZXYpOworCiAJaWYgKGRldi0+bW9kZV9jb25maWcu bnVtX2NydGMpIHsKIAkJTlZfSU5GTyhkcm0sICJzdXNwZW5kaW5nIGNvbnNvbGUuLi5cbiIpOwog CQlub3V2ZWF1X2ZiY29uX3NldF9zdXNwZW5kKGRldiwgMSk7CkBAIC02MzgsNiArNjQzLDggQEAg bm91dmVhdV9kb19yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBydW50aW1lKQog CQlub3V2ZWF1X2ZiY29uX3NldF9zdXNwZW5kKGRldiwgMCk7CiAJfQogCisJbm91dmVhdV9sZWRf cmVzdW1lKGRldik7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUv bm91dmVhdV9kcm0uaCBiL2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmgKaW5kZXggNWMzNjNlZC4u YjE0OGRjYiAxMDA2NDQKLS0tIGEvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uaAorKysgYi9kcm0v bm91dmVhdS9ub3V2ZWF1X2RybS5oCkBAIC0xNjYsNiArMTY2LDkgQEAgc3RydWN0IG5vdXZlYXVf ZHJtIHsKIAlzdHJ1Y3Qgbm91dmVhdV9od21vbiAqaHdtb247CiAJc3RydWN0IG5vdXZlYXVfZGVi dWdmcyAqZGVidWdmczsKIAorCS8qIGxlZCBtYW5hZ2VtZW50ICovCisJc3RydWN0IG5vdXZlYXVf bGVkICpsZWQ7CisKIAkvKiBkaXNwbGF5IHBvd2VyIHJlZmVyZW5jZSAqLwogCWJvb2wgaGF2ZV9k aXNwX3Bvd2VyX3JlZjsKIApkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvbm91dmVhdV9sZWQuYyBi L2RybS9ub3V2ZWF1L25vdXZlYXVfbGVkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uM2YyM2ZmNgotLS0gL2Rldi9udWxsCisrKyBiL2RybS9ub3V2ZWF1L25vdXZlYXVfbGVk LmMKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgTWFydGluIFBl cmVzCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nCisgKiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyAqICJTb2Z0d2FyZSIpLCB0byBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyAqIHdp dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwKKyAqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBv ZiB0aGUgU29mdHdhcmUsIGFuZCB0bworICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29m dHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisgKiB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFs bCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsCisgKiBwb3J0aW9ucyBv ZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5U QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF TUVOVC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIoUykgQU5EL09S IElUUyBTVVBQTElFUlMgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgorICog V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09G VFdBUkUuCisgKgorICovCisKKy8qCisgKiBBdXRob3JzOgorICogIE1hcnRpbiBQZXJlcyA8bWFy dGluLnBlcmVzQGZyZWUuZnI+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2xlZHMuaD4KKworI2lu Y2x1ZGUgIm5vdXZlYXVfZHJtLmgiCisjaW5jbHVkZSAibm91dmVhdV9sZWQuaCIKKyNpbmNsdWRl IDxudmttL3N1YmRldi9ncGlvLmg+CisKK3N0YXRpYyBlbnVtIGxlZF9icmlnaHRuZXNzCitub3V2 ZWF1X2xlZF9nZXRfYnJpZ2h0bmVzcyhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWQpCit7CisJc3Ry dWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBjb250YWluZXJfb2YobGVkLCBzdHJ1Y3Qgbm91dmVh dV9sZWQsIGxlZCktPmRldjsKKwlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJt KGRybV9kZXYpOworCXN0cnVjdCBudmlmX29iamVjdCAqZGV2aWNlID0gJmRybS0+ZGV2aWNlLm9i amVjdDsKKwl1MzIgZGl2LCBkdXR5OworCisJZGl2ID0gIG52aWZfcmQzMihkZXZpY2UsIDB4NjFj ODgwKSAmIDB4MDBmZmZmZmY7CisJZHV0eSA9IG52aWZfcmQzMihkZXZpY2UsIDB4NjFjODg0KSAm IDB4MDBmZmZmZmY7CisKKwlyZXR1cm4gZHV0eSAqIExFRF9GVUxMIC8gZGl2OworfQorCitzdGF0 aWMgdm9pZAorbm91dmVhdV9sZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAq bGVkLCBlbnVtIGxlZF9icmlnaHRuZXNzIHZhbHVlKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2ID0gY29udGFpbmVyX29mKGxlZCwgc3RydWN0IG5vdXZlYXVfbGVkLCBsZWQpLT5kZXY7 CisJc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShkcm1fZGV2KTsKKwlzdHJ1 Y3QgbnZpZl9vYmplY3QgKmRldmljZSA9ICZkcm0tPmRldmljZS5vYmplY3Q7CisKKwl1MzIgaW5w dXRfY2xrID0gMjdlNjsgLyogUERJU1BMQVkuU09SWzFdLlBXTSBpcyBjb25uZWN0ZWQgdG8gdGhl IGNyeXN0YWwgKi8KKwl1MzIgZnJlcSA9IDEwMDsgLyogdGhpcyBpcyB3aGF0IG52aWRpYSB1c2Vz IGFuZCBpdCBzaG91bGQgYmUgZ29vZC1lbm91Z2ggKi8KKwl1MzIgZGl2LCBkdXR5OworCisJZGl2 ID0gaW5wdXRfY2xrIC8gZnJlcTsKKwlkdXR5ID0gdmFsdWUgKiBkaXYgLyBMRURfRlVMTDsKKwor CS8qIGZvciBub3csIHRoaXMgaXMgc2FmZSB0byBkaXJlY3RseSBwb2tlIHRob3NlIHJlZ2lzdGVy cyBiZWNhdXNlOgorCSAqICAtIEE6IG52aWRpYSBuZXZlciBwdXRzIHRoZSBsb2dvIGxlZCB0byBh bnkgb3RoZXIgUFdNIGNvbnRyb2xlcgorCSAqICAgICAgIHRoYW4gUERJU1BMQVkuU09SWzFdLlBX TS4KKwkgKiAgLSBCOiBub3V2ZWF1IGRvZXMgbm90IHRvdWNoIHRoZXNlIHJlZ2lzdGVycyBhbnl3 aGVyZSBlbHNlCisJICovCisJbnZpZl93cjMyKGRldmljZSwgMHg2MWM4ODAsIGRpdik7CisJbnZp Zl93cjMyKGRldmljZSwgMHg2MWM4ODQsIDB4YzAwMDAwMDAgfCBkdXR5KTsKK30KKworaW50Citu b3V2ZWF1X2xlZF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IG5vdXZl YXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShkZXYpOworCXN0cnVjdCBudmttX2dwaW8gKmdwaW8g PSBudnh4X2dwaW8oJmRybS0+ZGV2aWNlKTsKKwlzdHJ1Y3QgZGNiX2dwaW9fZnVuYyBsb2dvX2xl ZDsKKwlpbnQgcmV0OworCisJLyogY2hlY2sgdGhhdCB0aGVyZSBpcyBhIEdQSU8gY29udHJvbGxp bmcgdGhlIGxvZ28gTEVEICovCisJaWYgKG52a21fZ3Bpb19maW5kKGdwaW8sIDAsIERDQl9HUElP X0xPR09fTEVEX1BXTSwgMHhmZiwgJmxvZ29fbGVkKSkKKwkJcmV0dXJuIDA7CisKKwlkcm0tPmxl ZCA9IGt6YWxsb2Moc2l6ZW9mKCpkcm0tPmxlZCksIEdGUF9LRVJORUwpOworCWlmICghZHJtLT5s ZWQpCisJCXJldHVybiAtRU5PTUVNOworCWRybS0+bGVkLT5kZXYgPSBkZXY7CisKKwlkcm0tPmxl ZC0+bGVkLm5hbWUgPSAibnZpZGlhLWxvZ28iOworCWRybS0+bGVkLT5sZWQubWF4X2JyaWdodG5l c3MgPSAyNTU7CisJZHJtLT5sZWQtPmxlZC5icmlnaHRuZXNzX2dldCA9IG5vdXZlYXVfbGVkX2dl dF9icmlnaHRuZXNzOworCWRybS0+bGVkLT5sZWQuYnJpZ2h0bmVzc19zZXQgPSBub3V2ZWF1X2xl ZF9zZXRfYnJpZ2h0bmVzczsKKworCXJldCA9IGxlZF9jbGFzc2Rldl9yZWdpc3RlcihkZXYtPmRl diwgJmRybS0+bGVkLT5sZWQpOworCWlmIChyZXQpIHsKKwkJa2ZyZWUoZHJtLT5sZWQpOworCQly ZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCit2b2lkCitub3V2ZWF1X2xlZF9zdXNw ZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IG5vdXZlYXVfZHJtICpkcm0g PSBub3V2ZWF1X2RybShkZXYpOworCisJbGVkX2NsYXNzZGV2X3N1c3BlbmQoJmRybS0+bGVkLT5s ZWQpOworfQorCit2b2lkCitub3V2ZWF1X2xlZF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKK3sKKwlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKGRldik7CisKKwls ZWRfY2xhc3NkZXZfcmVzdW1lKCZkcm0tPmxlZC0+bGVkKTsKK30KKwordm9pZAorbm91dmVhdV9s ZWRfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBub3V2ZWF1X2RybSAq ZHJtID0gbm91dmVhdV9kcm0oZGV2KTsKKworCWlmIChkcm0tPmxlZCkgeworCQlsZWRfY2xhc3Nk ZXZfdW5yZWdpc3RlcigmZHJtLT5sZWQtPmxlZCk7CisJCWtmcmVlKGRybS0+bGVkKTsKKwkJZHJt LT5sZWQgPSBOVUxMOworCX0KK30KZGlmZiAtLWdpdCBhL2RybS9ub3V2ZWF1L25vdXZlYXVfbGVk LmggYi9kcm0vbm91dmVhdS9ub3V2ZWF1X2xlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjZjOTg2YmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vbm91dmVhdS9ub3V2ZWF1 X2xlZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNSBNYXJ0aW4gUGVy ZXMKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRl YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0 d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0 YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklH SFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF UyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdT IElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5w ZXJlc0BmcmVlLmZyPgorICovCisKKyNpZm5kZWYgX19OT1VWRUFVX0xFRF9IX18KKyNkZWZpbmUg X19OT1VWRUFVX0xFRF9IX18KKworc3RydWN0IGxlZF9jbGFzc2RldjsKKworc3RydWN0IG5vdXZl YXVfbGVkIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OworCisJc3RydWN0IGxlZF9jbGFzc2Rl diBsZWQ7Cit9OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBub3V2ZWF1X2xlZCAqCitub3V2ZWF1 X2xlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXJldHVybiBub3V2ZWF1X2RybShkZXYp LT5sZWQ7Cit9CisKKy8qIG5vdXZlYXVfbGVkLmMgKi8KK2ludCAgbm91dmVhdV9sZWRfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgbm91dmVhdV9sZWRfc3VzcGVuZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgbm91dmVhdV9sZWRfcmVzdW1lKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwordm9pZCBub3V2ZWF1X2xlZF9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp OworCisjZW5kaWYKLS0gCjIuOC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpOb3V2ZWF1IG1haWxpbmcgbGlzdApOb3V2ZWF1QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25v dXZlYXUK