From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Subject: Re: [PATCH 01/17] ASoC: Ux500: Move MSP pinctrl setup into the MSP driver Date: Mon, 10 Sep 2012 17:46:29 +0100 Message-ID: <20120910164628.GG24506@gmail.com> References: <1345816913-4113-1-git-send-email-lee.jones@linaro.org> <1345816913-4113-2-git-send-email-lee.jones@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ee0-f51.google.com (mail-ee0-f51.google.com [74.125.83.51]) by alsa0.perex.cz (Postfix) with ESMTP id 49700265127 for ; Mon, 10 Sep 2012 18:46:33 +0200 (CEST) Received: by eeke50 with SMTP id e50so1103711eek.38 for ; Mon, 10 Sep 2012 09:46:33 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1345816913-4113-2-git-send-email-lee.jones@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: ola.o.lilja@stericsson.com, alsa-devel@alsa-project.org, linus.walleij@stericsson.com, arnd@arndb.de, roger.xr.nilsson@stericsson.com, broonie@opensource.wolfsonmicro.com, STEricsson_nomadik_linux@list.st.com List-Id: alsa-devel@alsa-project.org T2xhIHBva2UuCgpPbiBGcmksIEF1ZyAyNCwgMjAxMiBhdCAwMzowMTozN1BNICswMTAwLCBMZWUg Sm9uZXMgd3JvdGU6Cj4gSW4gdGhlIGluaXRpYWwgc3VibWlzc2lvbiBvZiB0aGUgTVNQIGRyaXZl ciBtc3AxIGFuZCBtc3AzJ3MgYXNzb2NpYXRlZAo+IHBpbmN0cmwgbWVjaGFuaXNtIHdhcyBwYXNz ZWQgYmFjayB0byBwbGF0Zm9ybSBjb2RlIHVzaW5nIGEgcGxhdF9pbml0KCkKPiBjYWxsLWJhY2sg cm91dGluZSwgYnV0IGl0IGhhcyBubyBwbGFjZSBpbiBwbGF0Zm9ybSBjb2RlLiBUaGUgTVNQIGRy aXZlcgo+IHNob3VsZCBzZXQgdGhpcyB1cCBmb3IgdGhlIGFwcHJvcHJpYXRlIHBvcnRzLiBJbnN0 ZWFkIHdlIHVzZSBhIHVzZV9waW5jdHJsCj4gaWRlbnRpZmllciB3aGljaCBpcyBwYXNzZWQgZnJv bSBwbGF0Zm9ybV9kYXRhL0RldmljZSBUcmVlIHdoaWNoIGluZGljYXRlcwo+IHdoaWNoIHBvcnRz IHNob3VsZCB1c2UgcGluY3RybC4KPiAKPiBDQzogYWxzYS1kZXZlbEBhbHNhLXByb2plY3Qub3Jn Cj4gU2lnbmVkLW9mZi1ieTogTGVlIEpvbmVzIDxsZWUuam9uZXNAbGluYXJvLm9yZz4KPiAtLS0K PiAgYXJjaC9hcm0vbWFjaC11eDUwMC9ib2FyZC1tb3A1MDAtbXNwLmMgfCAgIDc1ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGFyY2gvYXJtL21hY2gtdXg1MDAvaW5jbHVkZS9t YWNoL21zcC5oIHwgICAgMiAtCj4gIHNvdW5kL3NvYy91eDUwMC91eDUwMF9tc3BfaTJzLmMgICAg ICAgIHwgICA2NyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4gIHNvdW5kL3NvYy91eDUw MC91eDUwMF9tc3BfaTJzLmggICAgICAgIHwgICAgOCArKystCj4gIDQgZmlsZXMgY2hhbmdlZCwg NTggaW5zZXJ0aW9ucygrKSwgOTQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2FyY2gv YXJtL21hY2gtdXg1MDAvYm9hcmQtbW9wNTAwLW1zcC5jIGIvYXJjaC9hcm0vbWFjaC11eDUwMC9i b2FyZC1tb3A1MDAtbXNwLmMKPiBpbmRleCBkZjE1NjQ2Li5mYzc4ZDVkIDEwMDY0NAo+IC0tLSBh L2FyY2gvYXJtL21hY2gtdXg1MDAvYm9hcmQtbW9wNTAwLW1zcC5jCj4gKysrIGIvYXJjaC9hcm0v bWFjaC11eDUwMC9ib2FyZC1tb3A1MDAtbXNwLmMKPiBAQCAtMjMsNTMgKzIzLDYgQEAKPiAgI2lu Y2x1ZGUgImRldmljZXMtZGI4NTAwLmgiCj4gICNpbmNsdWRlICJwaW5zLWRiODUwMC5oIgo+ICAK PiAtLyogTVNQMS8zIFR4L1J4IHVzYWdlIHByb3RlY3Rpb24gKi8KPiAtc3RhdGljIERFRklORV9T UElOTE9DSyhtc3Bfcnh0eF9sb2NrKTsKPiAtCj4gLS8qIFJlZmVyZW5jZSBDb3VudCAqLwo+IC1z dGF0aWMgaW50IG1zcF9yeHR4X3JlZjsKPiAtCj4gLS8qIFBpbiBtb2RlcyAqLwo+IC1zdHJ1Y3Qg cGluY3RybCAqbXNwMV9wOwo+IC1zdHJ1Y3QgcGluY3RybF9zdGF0ZSAqbXNwMV9kZWY7Cj4gLXN0 cnVjdCBwaW5jdHJsX3N0YXRlICptc3AxX3NsZWVwOwo+IC0KPiAtaW50IG1zcDEzX2kyc19pbml0 KHZvaWQpCj4gLXsKPiAtCWludCByZXR2YWwgPSAwOwo+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsK PiAtCj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmbXNwX3J4dHhfbG9jaywgZmxhZ3MpOwo+IC0JaWYg KG1zcF9yeHR4X3JlZiA9PSAwICYmICEoSVNfRVJSKG1zcDFfcCkgfHwgSVNfRVJSKG1zcDFfZGVm KSkpIHsKPiAtCQlyZXR2YWwgPSBwaW5jdHJsX3NlbGVjdF9zdGF0ZShtc3AxX3AsIG1zcDFfZGVm KTsKPiAtCQlpZiAocmV0dmFsKQo+IC0JCQlwcl9lcnIoImNvdWxkIG5vdCBzZXQgTVNQMSBkZWZz dGF0ZVxuIik7Cj4gLQl9Cj4gLQlpZiAoIXJldHZhbCkKPiAtCQltc3Bfcnh0eF9yZWYrKzsKPiAt CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1zcF9yeHR4X2xvY2ssIGZsYWdzKTsKPiAtCj4gLQly ZXR1cm4gcmV0dmFsOwo+IC19Cj4gLQo+IC1pbnQgbXNwMTNfaTJzX2V4aXQodm9pZCkKPiAtewo+ IC0JaW50IHJldHZhbCA9IDA7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+IC0KPiAtCXNwaW5f bG9ja19pcnFzYXZlKCZtc3Bfcnh0eF9sb2NrLCBmbGFncyk7Cj4gLQlXQVJOX09OKCFtc3Bfcnh0 eF9yZWYpOwo+IC0JbXNwX3J4dHhfcmVmLS07Cj4gLQlpZiAobXNwX3J4dHhfcmVmID09IDAgJiYg IShJU19FUlIobXNwMV9wKSB8fCBJU19FUlIobXNwMV9zbGVlcCkpKSB7Cj4gLQkJcmV0dmFsID0g cGluY3RybF9zZWxlY3Rfc3RhdGUobXNwMV9wLCBtc3AxX3NsZWVwKTsKPiAtCQlpZiAocmV0dmFs KQo+IC0JCQlwcl9lcnIoImNvdWxkIG5vdCBzZXQgTVNQMSBzbGVlcHN0YXRlXG4iKTsKPiAtCX0K PiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1zcF9yeHR4X2xvY2ssIGZsYWdzKTsKPiAtCj4g LQlyZXR1cm4gcmV0dmFsOwo+IC19Cj4gLQo+ICBzdGF0aWMgc3RydWN0IHN0ZWRtYTQwX2NoYW5f Y2ZnIG1zcDBfZG1hX3J4ID0gewo+ICAJLmhpZ2hfcHJpb3JpdHkgPSB0cnVlLAo+ICAJLmRpciA9 IFNURURNQTQwX1BFUklQSF9UT19NRU0sCj4gQEAgLTEzMiw4ICs4NSw2IEBAIHN0YXRpYyBzdHJ1 Y3QgbXNwX2kyc19wbGF0Zm9ybV9kYXRhIG1zcDFfcGxhdGZvcm1fZGF0YSA9IHsKPiAgCS5pZCA9 IE1TUF9JMlNfMSwKPiAgCS5tc3BfaTJzX2RtYV9yeCA9IE5VTEwsCj4gIAkubXNwX2kyc19kbWFf dHggPSAmbXNwMV9kbWFfdHgsCj4gLQkubXNwX2kyc19pbml0ID0gbXNwMTNfaTJzX2luaXQsCj4g LQkubXNwX2kyc19leGl0ID0gbXNwMTNfaTJzX2V4aXQsCj4gIH07Cj4gIAo+ICBzdGF0aWMgc3Ry dWN0IHN0ZWRtYTQwX2NoYW5fY2ZnIG1zcDJfZG1hX3J4ID0gewo+IEBAIC0yMTksNDcgKzE3MCwy MyBAQCBzdGF0aWMgc3RydWN0IG1zcF9pMnNfcGxhdGZvcm1fZGF0YSBtc3AzX3BsYXRmb3JtX2Rh dGEgPSB7Cj4gIAkuaWQJCT0gTVNQX0kyU18zLAo+ICAJLm1zcF9pMnNfZG1hX3J4CT0gJm1zcDFf ZG1hX3J4LAo+ICAJLm1zcF9pMnNfZG1hX3R4CT0gTlVMTCwKPiAtCS5tc3BfaTJzX2luaXQgPSBt c3AxM19pMnNfaW5pdCwKPiAtCS5tc3BfaTJzX2V4aXQgPSBtc3AxM19pMnNfZXhpdCwKPiAgfTsK PiAgCj4gIGludCBtb3A1MDBfbXNwX2luaXQoc3RydWN0IGRldmljZSAqcGFyZW50KQo+ICB7Cj4g LQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICptc3AxOwo+IC0KPiAgCXByX2luZm8oIiVzOiBSZWdp c3RlciBwbGF0Zm9ybS1kZXZpY2UgJ3NuZC1zb2MtbW9wNTAwJy5cbiIsIF9fZnVuY19fKTsKPiAg CXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmc25kX3NvY19tb3A1MDApOwo+ICAKPiAgCXByX2lu Zm8oIkluaXRpYWxpemUgTVNQIEkyUy1kZXZpY2VzLlxuIik7Cj4gIAlkYjg1MDBfYWRkX21zcF9p MnMocGFyZW50LCAwLCBVODUwMF9NU1AwX0JBU0UsIElSUV9EQjg1MDBfTVNQMCwKPiAgCQkJICAg Jm1zcDBfcGxhdGZvcm1fZGF0YSk7Cj4gLQltc3AxID0gZGI4NTAwX2FkZF9tc3BfaTJzKHBhcmVu dCwgMSwgVTg1MDBfTVNQMV9CQVNFLCBJUlFfREI4NTAwX01TUDEsCj4gKwlkYjg1MDBfYWRkX21z cF9pMnMocGFyZW50LCAxLCBVODUwMF9NU1AxX0JBU0UsIElSUV9EQjg1MDBfTVNQMSwKPiAgCQkJ ICAgJm1zcDFfcGxhdGZvcm1fZGF0YSk7Cj4gIAlkYjg1MDBfYWRkX21zcF9pMnMocGFyZW50LCAy LCBVODUwMF9NU1AyX0JBU0UsIElSUV9EQjg1MDBfTVNQMiwKPiAgCQkJICAgJm1zcDJfcGxhdGZv cm1fZGF0YSk7Cj4gIAlkYjg1MDBfYWRkX21zcF9pMnMocGFyZW50LCAzLCBVODUwMF9NU1AzX0JB U0UsIElSUV9EQjg1MDBfTVNQMSwKPiAgCQkJICAgJm1zcDNfcGxhdGZvcm1fZGF0YSk7Cj4gIAo+ IC0JLyogR2V0IHRoZSBwaW5jdHJsIGhhbmRsZSBmb3IgTVNQMSAqLwo+IC0JaWYgKG1zcDEpIHsK PiAtCQltc3AxX3AgPSBwaW5jdHJsX2dldCgmbXNwMS0+ZGV2KTsKPiAtCQlpZiAoSVNfRVJSKG1z cDFfcCkpCj4gLQkJCWRldl9lcnIoJm1zcDEtPmRldiwgImNvdWxkIG5vdCBnZXQgTVNQMSBwaW5j dHJsXG4iKTsKPiAtCQllbHNlIHsKPiAtCQkJbXNwMV9kZWYgPSBwaW5jdHJsX2xvb2t1cF9zdGF0 ZShtc3AxX3AsCj4gLQkJCQkJCQlQSU5DVFJMX1NUQVRFX0RFRkFVTFQpOwo+IC0JCQlpZiAoSVNf RVJSKG1zcDFfZGVmKSkgewo+IC0JCQkJZGV2X2VycigmbXNwMS0+ZGV2LAo+IC0JCQkJCSJjb3Vs ZCBub3QgZ2V0IE1TUDEgZGVmc3RhdGVcbiIpOwo+IC0JCQl9Cj4gLQkJCW1zcDFfc2xlZXAgPSBw aW5jdHJsX2xvb2t1cF9zdGF0ZShtc3AxX3AsCj4gLQkJCQkJCQkgIFBJTkNUUkxfU1RBVEVfU0xF RVApOwo+IC0JCQlpZiAoSVNfRVJSKG1zcDFfc2xlZXApKQo+IC0JCQkJZGV2X2VycigmbXNwMS0+ ZGV2LAo+IC0JCQkJCSJjb3VsZCBub3QgZ2V0IE1TUDEgaWRsZXN0YXRlXG4iKTsKPiAtCQl9Cj4g LQl9Cj4gLQo+ICAJcHJfaW5mbygiJXM6IFJlZ2lzdGVyIHBsYXRmb3JtLWRldmljZSAndXg1MDAt cGNtJ1xuIiwgX19mdW5jX18pOwo+ICAJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ1eDUwMF9w Y20pOwo+ICAKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC11eDUwMC9pbmNsdWRlL21hY2gv bXNwLmggYi9hcmNoL2FybS9tYWNoLXV4NTAwL2luY2x1ZGUvbWFjaC9tc3AuaAo+IGluZGV4IDc5 OGJlMTkuLjNjYzcxNDIgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vbWFjaC11eDUwMC9pbmNsdWRl L21hY2gvbXNwLmgKPiArKysgYi9hcmNoL2FybS9tYWNoLXV4NTAwL2luY2x1ZGUvbWFjaC9tc3Au aAo+IEBAIC0yMiw4ICsyMiw2IEBAIHN0cnVjdCBtc3BfaTJzX3BsYXRmb3JtX2RhdGEgewo+ICAJ ZW51bSBtc3BfaTJzX2lkIGlkOwo+ICAJc3RydWN0IHN0ZWRtYTQwX2NoYW5fY2ZnICptc3BfaTJz X2RtYV9yeDsKPiAgCXN0cnVjdCBzdGVkbWE0MF9jaGFuX2NmZyAqbXNwX2kyc19kbWFfdHg7Cj4g LQlpbnQgKCptc3BfaTJzX2luaXQpICh2b2lkKTsKPiAtCWludCAoKm1zcF9pMnNfZXhpdCkgKHZv aWQpOwo+ICB9Owo+ICAKPiAgI2VuZGlmCj4gZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy91eDUwMC91 eDUwMF9tc3BfaTJzLmMgYi9zb3VuZC9zb2MvdXg1MDAvdXg1MDBfbXNwX2kycy5jCj4gaW5kZXgg MzZiZTExZS4uMDg4MTNjNSAxMDA2NDQKPiAtLS0gYS9zb3VuZC9zb2MvdXg1MDAvdXg1MDBfbXNw X2kycy5jCj4gKysrIGIvc291bmQvc29jL3V4NTAwL3V4NTAwX21zcF9pMnMuYwo+IEBAIC0xNSw2 ICsxNSw3IEBACj4gIAo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gICNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvY29uc3Vt ZXIuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9zbGFi Lmg+Cj4gIAo+IEBAIC0yNSw2ICsyNiw5IEBACj4gIAo+ICAjaW5jbHVkZSAidXg1MDBfbXNwX2ky cy5oIgo+ICAKPiArLyogTVNQMS8zIFR4L1J4IHVzYWdlIHByb3RlY3Rpb24gKi8KPiArc3RhdGlj IERFRklORV9TUElOTE9DSyhtc3Bfcnh0eF9sb2NrKTsKPiArCj4gICAvKiBQcm90b2NvbCBkZXNj aXB0b3JzICovCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXNwX3Byb3RkZXNjIHByb3RfZGVzY3Nb XSA9IHsKPiAgCXsgLyogSTJTICovCj4gQEAgLTM1MiwxNyArMzU2LDIzIEBAIHN0YXRpYyBpbnQg Y29uZmlndXJlX211bHRpY2hhbm5lbChzdHJ1Y3QgdXg1MDBfbXNwICptc3AsCj4gIAo+ICBzdGF0 aWMgaW50IGVuYWJsZV9tc3Aoc3RydWN0IHV4NTAwX21zcCAqbXNwLCBzdHJ1Y3QgdXg1MDBfbXNw X2NvbmZpZyAqY29uZmlnKQo+ICB7Cj4gLQlpbnQgc3RhdHVzID0gMDsKPiArCWludCBzdGF0dXMg PSAwLCByZXR2YWwgPSAwOwo+ICAJdTMyIHJlZ192YWxfRE1BQ1IsIHJlZ192YWxfR0NSOwo+ICsJ dW5zaWduZWQgbG9uZyBmbGFnczsKPiAgCj4gIAkvKiBDaGVjayBtc3Agc3RhdGUgd2hldGhlciBp biBSVU4gb3IgQ09ORklHVVJFRCBNb2RlICovCj4gLQlpZiAoKG1zcC0+bXNwX3N0YXRlID09IE1T UF9TVEFURV9JRExFKSAmJiAobXNwLT5wbGF0X2luaXQpKSB7Cj4gLQkJc3RhdHVzID0gbXNwLT5w bGF0X2luaXQoKTsKPiAtCQlpZiAoc3RhdHVzKSB7Cj4gLQkJCWRldl9lcnIobXNwLT5kZXYsICIl czogRVJST1I6IEZhaWxlZCB0byBpbml0IE1TUCAoJWQpIVxuIiwKPiAtCQkJCV9fZnVuY19fLCBz dGF0dXMpOwo+IC0JCQlyZXR1cm4gc3RhdHVzOwo+ICsJaWYgKG1zcC0+bXNwX3N0YXRlID09IE1T UF9TVEFURV9JRExFKSB7Cj4gKwkJc3Bpbl9sb2NrX2lycXNhdmUoJm1zcF9yeHR4X2xvY2ssIGZs YWdzKTsKPiArCQlpZiAobXNwLT5waW5jdHJsX3J4dHhfcmVmID09IDAgJiYKPiArCQkJIShJU19F UlIobXNwLT5waW5jdHJsX3ApIHx8IElTX0VSUihtc3AtPnBpbmN0cmxfZGVmKSkpIHsKPiArCQkJ cmV0dmFsID0gcGluY3RybF9zZWxlY3Rfc3RhdGUobXNwLT5waW5jdHJsX3AsCj4gKwkJCQkJCW1z cC0+cGluY3RybF9kZWYpOwo+ICsJCQlpZiAocmV0dmFsKQo+ICsJCQkJcHJfZXJyKCJjb3VsZCBu b3Qgc2V0IE1TUCBkZWZzdGF0ZVxuIik7Cj4gIAkJfQo+ICsJCWlmICghcmV0dmFsKQo+ICsJCQlt c3AtPnBpbmN0cmxfcnh0eF9yZWYrKzsKPiArCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtc3Bf cnh0eF9sb2NrLCBmbGFncyk7Cj4gIAl9Cj4gIAo+ICAJLyogQ29uZmlndXJlIG1zcCB3aXRoIHBy b3RvY29sIGRlcGVuZGVudCBzZXR0aW5ncyAqLwo+IEBAIC02MjAsNyArNjMwLDggQEAgaW50IHV4 NTAwX21zcF9pMnNfdHJpZ2dlcihzdHJ1Y3QgdXg1MDBfbXNwICptc3AsIGludCBjbWQsIGludCBk aXJlY3Rpb24pCj4gIAo+ICBpbnQgdXg1MDBfbXNwX2kyc19jbG9zZShzdHJ1Y3QgdXg1MDBfbXNw ICptc3AsIHVuc2lnbmVkIGludCBkaXIpCj4gIHsKPiAtCWludCBzdGF0dXMgPSAwOwo+ICsJaW50 IHN0YXR1cyA9IDAsIHJldHZhbCA9IDA7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAKPiAg CWRldl9kYmcobXNwLT5kZXYsICIlczogRW50ZXIgKGRpciA9IDB4JTAxeCkuXG4iLCBfX2Z1bmNf XywgZGlyKTsKPiAgCj4gQEAgLTYzMSwxMiArNjQyLDE5IEBAIGludCB1eDUwMF9tc3BfaTJzX2Ns b3NlKHN0cnVjdCB1eDUwMF9tc3AgKm1zcCwgdW5zaWduZWQgaW50IGRpcikKPiAgCQl3cml0ZWwo KHJlYWRsKG1zcC0+cmVnaXN0ZXJzICsgTVNQX0dDUikgJgo+ICAJCQkgICAgICAgKH4oRlJBTUVf R0VOX0VOQUJMRSB8IFNSR19FTkFCTEUpKSksCj4gIAkJCSAgICAgIG1zcC0+cmVnaXN0ZXJzICsg TVNQX0dDUik7Cj4gLQkJaWYgKG1zcC0+cGxhdF9leGl0KQo+IC0JCQlzdGF0dXMgPSBtc3AtPnBs YXRfZXhpdCgpOwo+IC0JCQlpZiAoc3RhdHVzKQo+IC0JCQkJZGV2X3dhcm4obXNwLT5kZXYsCj4g LQkJCQkJIiVzOiBXQVJOOiB1eDUwMF9tc3BfaTJzX2V4aXQgZmFpbGVkICglZCkhXG4iLAo+IC0J CQkJCV9fZnVuY19fLCBzdGF0dXMpOwo+ICsKPiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmbXNwX3J4 dHhfbG9jaywgZmxhZ3MpOwo+ICsJCVdBUk5fT04oIW1zcC0+cGluY3RybF9yeHR4X3JlZik7Cj4g KwkJbXNwLT5waW5jdHJsX3J4dHhfcmVmLS07Cj4gKwkJaWYgKG1zcC0+cGluY3RybF9yeHR4X3Jl ZiA9PSAwICYmCj4gKwkJCSEoSVNfRVJSKG1zcC0+cGluY3RybF9wKSB8fCBJU19FUlIobXNwLT5w aW5jdHJsX3NsZWVwKSkpIHsKPiArCQkJcmV0dmFsID0gcGluY3RybF9zZWxlY3Rfc3RhdGUobXNw LT5waW5jdHJsX3AsCj4gKwkJCQkJCW1zcC0+cGluY3RybF9zbGVlcCk7Cj4gKwkJCWlmIChyZXR2 YWwpCj4gKwkJCQlwcl9lcnIoImNvdWxkIG5vdCBzZXQgTVNQIHNsZWVwc3RhdGVcbiIpOwo+ICsJ CX0KPiArCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtc3Bfcnh0eF9sb2NrLCBmbGFncyk7Cj4g Kwo+ICAJCXdyaXRlbCgwLCBtc3AtPnJlZ2lzdGVycyArIE1TUF9HQ1IpOwo+ICAJCXdyaXRlbCgw LCBtc3AtPnJlZ2lzdGVycyArIE1TUF9UQ0YpOwo+ICAJCXdyaXRlbCgwLCBtc3AtPnJlZ2lzdGVy cyArIE1TUF9SQ0YpOwo+IEBAIC02NzgsOCArNjk2LDYgQEAgaW50IHV4NTAwX21zcF9pMnNfaW5p dF9tc3Aoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgCj4gIAltc3AtPmlkID0gcGxh dGZvcm1fZGF0YS0+aWQ7Cj4gIAltc3AtPmRldiA9ICZwZGV2LT5kZXY7Cj4gLQltc3AtPnBsYXRf aW5pdCA9IHBsYXRmb3JtX2RhdGEtPm1zcF9pMnNfaW5pdDsKPiAtCW1zcC0+cGxhdF9leGl0ID0g cGxhdGZvcm1fZGF0YS0+bXNwX2kyc19leGl0Owo+ICAJbXNwLT5kbWFfY2ZnX3J4ID0gcGxhdGZv cm1fZGF0YS0+bXNwX2kyc19kbWFfcng7Cj4gIAltc3AtPmRtYV9jZmdfdHggPSBwbGF0Zm9ybV9k YXRhLT5tc3BfaTJzX2RtYV90eDsKPiAgCj4gQEAgLTcxNyw2ICs3MzMsMjUgQEAgaW50IHV4NTAw X21zcF9pMnNfaW5pdF9tc3Aoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgCWRldl9k YmcoJnBkZXYtPmRldiwgIkkyUyBkZXZpY2UtbmFtZTogJyVzJ1xuIiwgaTJzX2NvbnQtPm5hbWUp Owo+ICAJbXNwLT5pMnNfY29udCA9IGkyc19jb250Owo+ICAKPiArCW1zcC0+cGluY3RybF9wID0g cGluY3RybF9nZXQobXNwLT5kZXYpOwo+ICsJaWYgKElTX0VSUihtc3AtPnBpbmN0cmxfcCkpCj4g KwkJZGV2X2VycigmcGRldi0+ZGV2LCAiY291bGQgbm90IGdldCBNU1AgcGluY3RybFxuIik7Cj4g KwllbHNlIHsKPiArCQltc3AtPnBpbmN0cmxfZGVmID0gcGluY3RybF9sb29rdXBfc3RhdGUobXNw LT5waW5jdHJsX3AsCj4gKwkJCQkJCVBJTkNUUkxfU1RBVEVfREVGQVVMVCk7Cj4gKwkJaWYgKElT X0VSUihtc3AtPnBpbmN0cmxfZGVmKSkgewo+ICsJCQlkZXZfZXJyKCZwZGV2LT5kZXYsCj4gKwkJ CQkiY291bGQgbm90IGdldCBNU1AgZGVmc3RhdGUgKCVsaSlcbiIsCj4gKwkJCQlQVFJfRVJSKG1z cC0+cGluY3RybF9kZWYpKTsKPiArCQl9Cj4gKwkJbXNwLT5waW5jdHJsX3NsZWVwID0gcGluY3Ry bF9sb29rdXBfc3RhdGUobXNwLT5waW5jdHJsX3AsCj4gKwkJCQkJCVBJTkNUUkxfU1RBVEVfU0xF RVApOwo+ICsJCWlmIChJU19FUlIobXNwLT5waW5jdHJsX3NsZWVwKSkKPiArCQkJZGV2X2Vycigm cGRldi0+ZGV2LAo+ICsJCQkJImNvdWxkIG5vdCBnZXQgTVNQIGlkbGVzdGF0ZSAoJWxpKVxuIiwK PiArCQkJCVBUUl9FUlIobXNwLT5waW5jdHJsX2RlZikpOwo+ICsJfQo+ICsKPiAgCXJldHVybiAw Owo+ICAKPiAgZXJyX2kyc19jb250Ogo+IGRpZmYgLS1naXQgYS9zb3VuZC9zb2MvdXg1MDAvdXg1 MDBfbXNwX2kycy5oIGIvc291bmQvc29jL3V4NTAwL3V4NTAwX21zcF9pMnMuaAo+IGluZGV4IDJk OTEzNmQuLjEzMTFjMGQgMTAwNjQ0Cj4gLS0tIGEvc291bmQvc29jL3V4NTAwL3V4NTAwX21zcF9p MnMuaAo+ICsrKyBiL3NvdW5kL3NvYy91eDUwMC91eDUwMF9tc3BfaTJzLmgKPiBAQCAtNTI0LDE0 ICs1MjQsMTggQEAgc3RydWN0IHV4NTAwX21zcCB7Cj4gIAlzdHJ1Y3QgZG1hX2NoYW4gKnJ4X3Bp cGVpZDsKPiAgCWVudW0gbXNwX3N0YXRlIG1zcF9zdGF0ZTsKPiAgCWludCAoKnRyYW5zZmVyKSAo c3RydWN0IHV4NTAwX21zcCAqbXNwLCBzdHJ1Y3QgaTJzX21lc3NhZ2UgKm1lc3NhZ2UpOwo+IC0J aW50ICgqcGxhdF9pbml0KSAodm9pZCk7Cj4gLQlpbnQgKCpwbGF0X2V4aXQpICh2b2lkKTsKPiAg CXN0cnVjdCB0aW1lcl9saXN0IG5vdGlmeV90aW1lcjsKPiAgCWludCBkZWZfZWxlbV9sZW47Cj4g IAl1bnNpZ25lZCBpbnQgZGlyX2J1c3k7Cj4gIAlpbnQgbG9vcGJhY2tfZW5hYmxlOwo+ICAJdTMy IGJhY2t1cF9yZWdzW01BWF9NU1BfQkFDS1VQX1JFR1NdOwo+ICAJdW5zaWduZWQgaW50IGZfYml0 Y2xrOwo+ICsJLyogUGluIG1vZGVzICovCj4gKwlzdHJ1Y3QgcGluY3RybCAqcGluY3RybF9wOwo+ ICsJc3RydWN0IHBpbmN0cmxfc3RhdGUgKnBpbmN0cmxfZGVmOwo+ICsJc3RydWN0IHBpbmN0cmxf c3RhdGUgKnBpbmN0cmxfc2xlZXA7Cj4gKwkvKiBSZWZlcmVuY2UgQ291bnQgKi8KPiArCWludCBw aW5jdHJsX3J4dHhfcmVmOwo+ICB9Owo+ICAKPiAgc3RydWN0IHV4NTAwX21zcF9kbWFfcGFyYW1z IHsKPiAtLSAKPiAxLjcuOS41Cj4gCgotLSAKTGVlIEpvbmVzCkxpbmFybyBTVC1Fcmljc3NvbiBM YW5kaW5nIFRlYW0gTGVhZApMaW5hcm8ub3JnIOKUgiBPcGVuIHNvdXJjZSBzb2Z0d2FyZSBmb3Ig QVJNIFNvQ3MKRm9sbG93IExpbmFybzogRmFjZWJvb2sgfCBUd2l0dGVyIHwgQmxvZwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBbHNhLWRldmVsIG1haWxp bmcgbGlzdApBbHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcKaHR0cDovL21haWxtYW4uYWxzYS1w cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2ZWwK