From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail.tricorecenter.de ([217.6.246.34] helo=root.phytec.de) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1aREVG-00017n-Nf for barebox@lists.infradead.org; Thu, 04 Feb 2016 07:39:01 +0000 Date: Thu, 4 Feb 2016 08:38:30 +0100 From: Stefan Christ Message-ID: <20160204073830.GA2447@lws-christ> References: <1454516411-22858-1-git-send-email-s.hauer@pengutronix.de> <1454516411-22858-5-git-send-email-s.hauer@pengutronix.de> MIME-Version: 1.0 In-Reply-To: <1454516411-22858-5-git-send-email-s.hauer@pengutronix.de> Content-Disposition: inline List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: Re: [PATCH 4/4] ARM: i.MX ocotp: Switch to regmap support To: Sascha Hauer Cc: Barebox List SGkgU2FzY2hhLAoKPiArCXByaXYtPm1hcCA9IHJlZ21hcF9pbml0KGRldiwgJmlteF9vY290cF9y ZWdtYXBfYnVzLCBwcml2LCAmaW14X29jb3RwX3JlZ21hcF9jb25maWcpOwo+ICsJaWYgKElTX0VS Uihwcml2LT5tYXApKQo+ICsJCXJldHVybiBQVFJfRVJSKHByaXYtPm1hcCk7Cj4gKwo+ICsJcmV0 ID0gcmVnbWFwX3JlZ2lzdGVyX2NkZXYocHJpdi0+bWFwLCAiaW14LW9jb3RwIik7Cj4gKyAgICAg ICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gKwoKSGVyZSBhcmUg d2hpdGVzcGFjZXMgaW5zdGVhZCBvZiB0YWJzLgoKTWl0IGZyZXVuZGxpY2hlbiBHcsO8w59lbiAv IEtpbmQgcmVnYXJkcywKCVN0ZWZhbiBDaHJpc3QKCk9uIFdlZCwgRmViIDAzLCAyMDE2IGF0IDA1 OjIwOjExUE0gKzAxMDAsIFNhc2NoYSBIYXVlciB3cm90ZToKPiBTaWduZWQtb2ZmLWJ5OiBTYXNj aGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+Cj4gLS0tCj4gIGFyY2gvYXJtL21hY2gt aW14L29jb3RwLmMgfCAxNDYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgODkgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L29jb3RwLmMgYi9hcmNoL2Fy bS9tYWNoLWlteC9vY290cC5jCj4gaW5kZXggYzk5YTAwMy4uYzZjMzQxZCAxMDA2NDQKPiAtLS0g YS9hcmNoL2FybS9tYWNoLWlteC9vY290cC5jCj4gKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvb2Nv dHAuYwo+IEBAIC0yNiw2ICsyNiw3IEBACj4gICNpbmNsdWRlIDxpby5oPgo+ICAjaW5jbHVkZSA8 b2YuaD4KPiAgI2luY2x1ZGUgPGNsb2NrLmg+Cj4gKyNpbmNsdWRlIDxyZWdtYXAuaD4KPiAgI2lu Y2x1ZGUgPGxpbnV4L2Nsay5oPgo+ICAKPiAgLyoKPiBAQCAtNzEsNyArNzIsNyBAQAo+ICAjZGVm aW5lIE1BQ19CWVRFUwkJCTgKPiAgCj4gIHN0cnVjdCBvY290cF9wcml2IHsKPiAtCXN0cnVjdCBj ZGV2IGNkZXY7Cj4gKwlzdHJ1Y3QgcmVnbWFwICptYXA7Cj4gIAl2b2lkIF9faW9tZW0gKmJhc2U7 Cj4gIAlzdHJ1Y3QgY2xrICpjbGs7Cj4gIAlzdHJ1Y3QgZGV2aWNlX2QgZGV2Owo+IEBAIC0xNTks NTMgKzE2MCw0MiBAQCBpbnQgaW14Nl9vY290cF9yZWFkX29uZV91MzIodTMyIGluZGV4LCB1MzIg KnBkYXRhLCBzdHJ1Y3Qgb2NvdHBfcHJpdiAqcHJpdikKPiAgCj4gIAlyZXQgPSBpbXg2X29jb3Rw X3ByZXBhcmUocHJpdik7Cj4gIAlpZiAocmV0KSB7Cj4gLQkJZGV2X2Vycihwcml2LT5jZGV2LmRl diwgImZhaWxlZCB0byBwcmVwYXJlIHJlYWQgZnVzZSAweCUwOHhcbiIsCj4gKwkJZGV2X2Vycigm cHJpdi0+ZGV2LCAiZmFpbGVkIHRvIHByZXBhcmUgcmVhZCBmdXNlIDB4JTA4eFxuIiwKPiAgCQkJ CWluZGV4KTsKPiAgCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiAgCXJldCA9IGZ1c2VfcmVhZF9h ZGRyKGluZGV4LCBwZGF0YSwgcHJpdik7Cj4gIAlpZiAocmV0KSB7Cj4gLQkJZGV2X2Vycihwcml2 LT5jZGV2LmRldiwgImZhaWxlZCB0byByZWFkIGZ1c2UgMHglMDh4XG4iLCBpbmRleCk7Cj4gKwkJ ZGV2X2VycigmcHJpdi0+ZGV2LCAiZmFpbGVkIHRvIHJlYWQgZnVzZSAweCUwOHhcbiIsIGluZGV4 KTsKPiAgCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiAgCWlmIChyZWFkbChwcml2LT5iYXNlKSAm IE9DT1RQX0NUUkxfRVJST1IpIHsKPiAtCQlkZXZfZXJyKHByaXYtPmNkZXYuZGV2LCAiYmFkIHJl YWQgc3RhdHVzIGF0IGZ1c2UgMHglMDh4XG4iLCBpbmRleCk7Cj4gKwkJZGV2X2VycigmcHJpdi0+ ZGV2LCAiYmFkIHJlYWQgc3RhdHVzIGF0IGZ1c2UgMHglMDh4XG4iLCBpbmRleCk7Cj4gIAkJcmV0 dXJuIC1FRkFVTFQ7Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBz c2l6ZV90IGlteDZfb2NvdHBfY2Rldl9yZWFkKHN0cnVjdCBjZGV2ICpjZGV2LCB2b2lkICpidWYs Cj4gLQkJc2l6ZV90IGNvdW50LCBsb2ZmX3Qgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+ ICtzdGF0aWMgaW50IGlteF9vY290cF9yZWdfcmVhZCh2b2lkICpjdHgsIHVuc2lnbmVkIGludCBy ZWcsIHVuc2lnbmVkIGludCAqdmFsKQo+ICB7Cj4gKwlzdHJ1Y3Qgb2NvdHBfcHJpdiAqcHJpdiA9 IGN0eDsKPiAgCXUzMiBpbmRleDsKPiAtCXNzaXplX3QgcmVhZF9jb3VudCA9IDA7Cj4gLQlpbnQg cmV0LCBpOwo+IC0Jc3RydWN0IG9jb3RwX3ByaXYgKnByaXYgPSBjb250YWluZXJfb2YoY2Rldiwg c3RydWN0IG9jb3RwX3ByaXYsIGNkZXYpOwo+IC0KPiAtCWluZGV4ID0gb2Zmc2V0ID4+IDI7Cj4g LQljb3VudCA+Pj0gMjsKPiAtCj4gLQlpZiAoY291bnQgPiAoRlVTRV9SRUdTX0NPVU5UIC0gaW5k ZXgpKQo+IC0JCWNvdW50ID0gRlVTRV9SRUdTX0NPVU5UIC0gaW5kZXggLSAxOwo+IC0KPiAtCWZv ciAoaSA9IGluZGV4OyBpIDwgKGluZGV4ICsgY291bnQpOyBpKyspIHsKPiAtCQlpZiAocHJpdi0+ c2Vuc2VfZW5hYmxlKSB7Cj4gLQkJCXJldCA9IGlteDZfb2NvdHBfcmVhZF9vbmVfdTMyKGksIGJ1 ZiwgcHJpdik7Cj4gLQkJCWlmIChyZXQpCj4gLQkJCQlyZXR1cm4gcmV0Owo+IC0JCX0gZWxzZSB7 Cj4gLQkJCSoodTMyICopYnVmID0gcmVhZGwocHJpdi0+YmFzZSArIDB4NDAwICsgaSAqIDB4MTAp Owo+IC0JCX0KPiArCWludCByZXQ7Cj4gIAo+IC0JCWJ1ZiArPSA0Owo+IC0JCXJlYWRfY291bnQr KzsKPiArCWluZGV4ID0gcmVnID4+IDI7Cj4gKwo+ICsJaWYgKHByaXYtPnNlbnNlX2VuYWJsZSkg ewo+ICsJCXJldCA9IGlteDZfb2NvdHBfcmVhZF9vbmVfdTMyKGluZGV4LCB2YWwsIHByaXYpOwo+ ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9IGVsc2Ugewo+ICsJCSoodTMyICop dmFsID0gcmVhZGwocHJpdi0+YmFzZSArIDB4NDAwICsgaW5kZXggKiAweDEwKTsKPiAgCX0KPiAg Cj4gLQlyZXR1cm4gcmVhZF9jb3VudCA8PCAyOwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0 YXRpYyBpbnQgZnVzZV9ibG93X2FkZHIodTMyIGFkZHIsIHUzMiB2YWx1ZSwgc3RydWN0IG9jb3Rw X3ByaXYgKnByaXYpCj4gQEAgLTIzMiw3ICsyMjIsNyBAQCBzdGF0aWMgaW50IGZ1c2VfYmxvd19h ZGRyKHUzMiBhZGRyLCB1MzIgdmFsdWUsIHN0cnVjdCBvY290cF9wcml2ICpwcml2KQo+ICAKPiAg c3RhdGljIGludCBpbXg2X29jb3RwX3JlbG9hZF9zaGFkb3coc3RydWN0IG9jb3RwX3ByaXYgKnBy aXYpCj4gIHsKPiAtCWRldl9pbmZvKHByaXYtPmNkZXYuZGV2LCAicmVsb2FkaW5nIHNoYWRvdyBy ZWdpc3RlcnMuLi5cbiIpOwo+ICsJZGV2X2luZm8oJnByaXYtPmRldiwgInJlbG9hZGluZyBzaGFk b3cgcmVnaXN0ZXJzLi4uXG4iKTsKPiAgCXdyaXRlbChPQ09UUF9DVFJMX1JFTE9BRF9TSEFET1dT LCBwcml2LT5iYXNlICsgT0NPVFBfQ1RSTF9TRVQpOwo+ICAJdWRlbGF5KDEpOwo+ICAKPiBAQCAt MjQ2LDE4ICsyMzYsMTggQEAgaW50IGlteDZfb2NvdHBfYmxvd19vbmVfdTMyKHUzMiBpbmRleCwg dTMyIGRhdGEsIHUzMiAqcGZ1c2VkX3ZhbHVlLAo+ICAKPiAgCXJldCA9IGlteDZfb2NvdHBfcHJl cGFyZShwcml2KTsKPiAgCWlmIChyZXQpIHsKPiAtCQlkZXZfZXJyKHByaXYtPmNkZXYuZGV2LCAi cHJlcGFyZSB0byB3cml0ZSBmYWlsZWRcbiIpOwo+ICsJCWRldl9lcnIoJnByaXYtPmRldiwgInBy ZXBhcmUgdG8gd3JpdGUgZmFpbGVkXG4iKTsKPiAgCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiAg CXJldCA9IGZ1c2VfYmxvd19hZGRyKGluZGV4LCBkYXRhLCBwcml2KTsKPiAgCWlmIChyZXQpIHsK PiAtCQlkZXZfZXJyKHByaXYtPmNkZXYuZGV2LCAiZnVzZSBibG93IGZhaWxlZFxuIik7Cj4gKwkJ ZGV2X2VycigmcHJpdi0+ZGV2LCAiZnVzZSBibG93IGZhaWxlZFxuIik7Cj4gIAkJcmV0dXJuIHJl dDsKPiAgCX0KPiAgCj4gIAlpZiAocmVhZGwocHJpdi0+YmFzZSkgJiBPQ09UUF9DVFJMX0VSUk9S KSB7Cj4gLQkJZGV2X2Vycihwcml2LT5jZGV2LmRldiwgImJhZCB3cml0ZSBzdGF0dXNcbiIpOwo+ ICsJCWRldl9lcnIoJnByaXYtPmRldiwgImJhZCB3cml0ZSBzdGF0dXNcbiIpOwo+ICAJCXJldHVy biAtRUZBVUxUOwo+ICAJfQo+ICAKPiBAQCAtMjY2LDYwICsyNTYsMjkgQEAgaW50IGlteDZfb2Nv dHBfYmxvd19vbmVfdTMyKHUzMiBpbmRleCwgdTMyIGRhdGEsIHUzMiAqcGZ1c2VkX3ZhbHVlLAo+ ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtc3RhdGljIHNzaXplX3QgaW14Nl9vY290cF9jZGV2 X3dyaXRlKHN0cnVjdCBjZGV2ICpjZGV2LCBjb25zdCB2b2lkICpidWYsCj4gLQkJc2l6ZV90IGNv dW50LCBsb2ZmX3Qgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+ICtzdGF0aWMgaW50IGlt eF9vY290cF9yZWdfd3JpdGUodm9pZCAqY3R4LCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBp bnQgdmFsKQo+ICB7Cj4gLQlzdHJ1Y3Qgb2NvdHBfcHJpdiAqcHJpdiA9IGNkZXYtPnByaXY7Cj4g LQlpbnQgaW5kZXgsIGk7Cj4gLQlzc2l6ZV90IHdyaXRlX2NvdW50ID0gMDsKPiAtCWNvbnN0IHUz MiAqZGF0YTsKPiArCXN0cnVjdCBvY290cF9wcml2ICpwcml2ID0gY3R4Owo+ICsJaW50IGluZGV4 Owo+ICAJdTMyIHBmdXNlOwo+ICAJaW50IHJldDsKPiAgCj4gLQkvKiBXZSBjb3VsZCBkbyBiZXR0 ZXIsIGJ1dCBjdXJyZW50bHkgdGhpcyBpcyB3aGF0J3MgaW1wbGVtZW50ZWQgKi8KPiAtCWlmIChv ZmZzZXQgJiAweDMgfHwgY291bnQgJiAweDMpIHsKPiAtCQlkZXZfZXJyKGNkZXYtPmRldiwgIm9u bHkgdTMyIGFsaWduZWQgd3JpdGVzIGFsbG93ZWRcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+ IC0JfQo+IC0KPiAtCWluZGV4ID0gb2Zmc2V0ID4+IDI7Cj4gLQljb3VudCA+Pj0gMjsKPiAtCj4g LQlpZiAoY291bnQgPiAoRlVTRV9SRUdTX0NPVU5UIC0gaW5kZXgpKQo+IC0JCWNvdW50ID0gRlVT RV9SRUdTX0NPVU5UIC0gaW5kZXggLSAxOwo+ICsJaW5kZXggPSByZWcgPj4gMjsKPiAgCj4gLQlk YXRhID0gYnVmOwo+IC0KPiAtCWZvciAoaSA9IGluZGV4OyBpIDwgKGluZGV4ICsgY291bnQpOyBp KyspIHsKPiAtCQlpZiAocHJpdi0+cGVybWFuZW50X3dyaXRlX2VuYWJsZSkgewo+IC0JCQlyZXQg PSBpbXg2X29jb3RwX2Jsb3dfb25lX3UzMihpLCAqZGF0YSwKPiAtCQkJCQkmcGZ1c2UsIHByaXYp Owo+IC0JCQlpZiAocmV0IDwgMCkgewo+IC0JCQkJZ290byBvdXQ7Cj4gLQkJCX0KPiAtCQl9IGVs c2Ugewo+IC0JCQl3cml0ZWwoKmRhdGEsIHByaXYtPmJhc2UgKyAweDQwMCArIGkgKiAweDEwKTsK PiAtCQl9Cj4gLQo+IC0JCWRhdGErKzsKPiAtCQl3cml0ZV9jb3VudCsrOwo+ICsJaWYgKHByaXYt PnBlcm1hbmVudF93cml0ZV9lbmFibGUpIHsKPiArCQlyZXQgPSBpbXg2X29jb3RwX2Jsb3dfb25l X3UzMihpbmRleCwgdmFsLCAmcGZ1c2UsIHByaXYpOwo+ICsJCWlmIChyZXQgPCAwKQo+ICsJCQly ZXR1cm4gcmV0Owo+ICsJfSBlbHNlIHsKPiArCQl3cml0ZWwodmFsLCBwcml2LT5iYXNlICsgMHg0 MDAgKyBpbmRleCAqIDB4MTApOwo+ICAJfQo+ICAKPiAtCXJldCA9IDA7Cj4gLQo+IC1vdXQ6Cj4g IAlpZiAocHJpdi0+cGVybWFuZW50X3dyaXRlX2VuYWJsZSkKPiAgCQlpbXg2X29jb3RwX3JlbG9h ZF9zaGFkb3cocHJpdik7Cj4gIAo+IC0JcmV0dXJuIHJldCA8IDAgPyByZXQgOiAod3JpdGVfY291 bnQgPDwgMik7Cj4gKwlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgaW14Nl9vY290cF9vcHMgPSB7Cj4gLQkucmVhZAk9IGlteDZfb2NvdHBfY2Rldl9y ZWFkLAo+IC0JLndyaXRlCT0gaW14Nl9vY290cF9jZGV2X3dyaXRlLAo+IC0JLmxzZWVrCT0gZGV2 X2xzZWVrX2RlZmF1bHQsCj4gLX07Cj4gLQo+ICBzdGF0aWMgdWludDMyX3QgaW5jX29mZnNldCh1 aW50MzJfdCBvZmZzZXQpCj4gIHsKPiAgCWlmICgob2Zmc2V0ICYgMHgzKSA9PSAweDMpCj4gQEAg LTM3Myw5ICszMzIsMTEgQEAgc3RhdGljIGludCBpbXhfb2NvdHBfZ2V0X21hYyhzdHJ1Y3QgcGFy YW1fZCAqcGFyYW0sIHZvaWQgKnByaXYpCj4gIHsKPiAgCXN0cnVjdCBvY290cF9wcml2ICpvY290 cF9wcml2ID0gcHJpdjsKPiAgCWNoYXIgYnVmWzhdOwo+IC0JaW50IGk7Cj4gKwlpbnQgaSwgcmV0 Owo+ICAKPiAtCWlteDZfb2NvdHBfY2Rldl9yZWFkKCZvY290cF9wcml2LT5jZGV2LCBidWYsIE1B Q19CWVRFUywgTUFDX09GRlNFVCwgMCk7Cj4gKwlyZXQgPSByZWdtYXBfYnVsa19yZWFkKG9jb3Rw X3ByaXYtPm1hcCwgTUFDX09GRlNFVCwgYnVmLCBNQUNfQllURVMpOwo+ICsJaWYgKHJldCA8IDAp Cj4gKwkJcmV0dXJuIHJldDsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKQo+ICAJCW9j b3RwX3ByaXYtPmV0aGFkZHJbaV0gPSBidWZbNSAtIGldOwo+IEBAIC0zOTMsMTggKzM1NCwyOSBA QCBzdGF0aWMgaW50IGlteF9vY290cF9zZXRfbWFjKHN0cnVjdCBwYXJhbV9kICpwYXJhbSwgdm9p ZCAqcHJpdikKPiAgCQlidWZbNSAtIGldID0gb2NvdHBfcHJpdi0+ZXRoYWRkcltpXTsKPiAgCWJ1 Zls2XSA9IDA7IGJ1Zls3XSA9IDA7Cj4gIAo+IC0JcmV0ID0gaW14Nl9vY290cF9jZGV2X3dyaXRl KCZvY290cF9wcml2LT5jZGV2LCBidWYsIE1BQ19CWVRFUywgTUFDX09GRlNFVCwgMCk7Cj4gKwly ZXQgPSByZWdtYXBfYnVsa193cml0ZShvY290cF9wcml2LT5tYXAsIE1BQ19PRkZTRVQsIGJ1Ziwg TUFDX0JZVEVTKTsKPiAgCWlmIChyZXQgPCAwKQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+ICAJcmV0 dXJuIDA7Cj4gIH0KPiAgCj4gK3N0YXRpYyBzdHJ1Y3QgcmVnbWFwX2J1cyBpbXhfb2NvdHBfcmVn bWFwX2J1cyA9IHsKPiArCS5yZWdfd3JpdGUgPSBpbXhfb2NvdHBfcmVnX3dyaXRlLAo+ICsJLnJl Z19yZWFkID0gaW14X29jb3RwX3JlZ19yZWFkLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCByZWdtYXBfY29uZmlnIGlteF9vY290cF9yZWdtYXBfY29uZmlnID0gewo+ICsJLnJlZ19i aXRzID0gMzIsCj4gKwkudmFsX2JpdHMgPSAzMiwKPiArCS5yZWdfc3RyaWRlID0gNCwKPiArCS5t YXhfcmVnaXN0ZXIgPSAweGJjLAo+ICt9Owo+ICsKPiAgc3RhdGljIGludCBpbXhfb2NvdHBfcHJv YmUoc3RydWN0IGRldmljZV9kICpkZXYpCj4gIHsKPiAgCXZvaWQgX19pb21lbSAqYmFzZTsKPiAg CXN0cnVjdCBvY290cF9wcml2ICpwcml2Owo+IC0Jc3RydWN0IGNkZXYgKmNkZXY7Cj4gIAlpbnQg cmV0ID0gMDsKPiAgCj4gIAliYXNlID0gZGV2X3JlcXVlc3RfbWVtX3JlZ2lvbihkZXYsIDApOwo+ IEBAIC00MjAsMjIgKzM5MiwxOCBAQCBzdGF0aWMgaW50IGlteF9vY290cF9wcm9iZShzdHJ1Y3Qg ZGV2aWNlX2QgKmRldikKPiAgCWlmIChJU19FUlIocHJpdi0+Y2xrKSkKPiAgCQlyZXR1cm4gUFRS X0VSUihwcml2LT5jbGspOwo+ICAKPiAtCWNkZXYJCT0gJnByaXYtPmNkZXY7Cj4gLQljZGV2LT5k ZXYJPSBkZXY7Cj4gLQljZGV2LT5vcHMJPSAmaW14Nl9vY290cF9vcHM7Cj4gLQljZGV2LT5wcml2 CT0gcHJpdjsKPiAtCWNkZXYtPnNpemUJPSAxOTI7Cj4gLQljZGV2LT5uYW1lCT0gImlteC1vY290 cCI7Cj4gLQo+IC0JcmV0ID0gZGV2ZnNfY3JlYXRlKGNkZXYpOwo+IC0KPiAtCWlmIChyZXQgPCAw KQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+ICAJc3RyY3B5KHByaXYtPmRldi5uYW1lLCAib2NvdHAi KTsKPiAgCXByaXYtPmRldi5wYXJlbnQgPSBkZXY7Cj4gIAlyZWdpc3Rlcl9kZXZpY2UoJnByaXYt PmRldik7Cj4gIAo+ICsJcHJpdi0+bWFwID0gcmVnbWFwX2luaXQoZGV2LCAmaW14X29jb3RwX3Jl Z21hcF9idXMsIHByaXYsICZpbXhfb2NvdHBfcmVnbWFwX2NvbmZpZyk7Cj4gKwlpZiAoSVNfRVJS KHByaXYtPm1hcCkpCj4gKwkJcmV0dXJuIFBUUl9FUlIocHJpdi0+bWFwKTsKPiArCj4gKwlyZXQg PSByZWdtYXBfcmVnaXN0ZXJfY2Rldihwcml2LT5tYXAsICJpbXgtb2NvdHAiKTsKPiArICAgICAg ICBpZiAocmV0KQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiArCj4gIAlpZiAoSVNf RU5BQkxFRChDT05GSUdfSU1YX09DT1RQX1dSSVRFKSkgewo+ICAJCWRldl9hZGRfcGFyYW1fYm9v bCgmKHByaXYtPmRldiksICJwZXJtYW5lbnRfd3JpdGVfZW5hYmxlIiwKPiAgCQkJCU5VTEwsIE5V TEwsICZwcml2LT5wZXJtYW5lbnRfd3JpdGVfZW5hYmxlLCBOVUxMKTsKPiAtLSAKPiAyLjcuMC5y YzMKPiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IGJhcmVib3ggbWFpbGluZyBsaXN0Cj4gYmFyZWJveEBsaXN0cy5pbmZyYWRlYWQub3JnCj4g aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9iYXJlYm94CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpiYXJlYm94IG1haWxp bmcgbGlzdApiYXJlYm94QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9iYXJlYm94Cg==