From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Francois Moine Subject: Re: [PATCH RFC 2/2] ASoC: simple-card: Move dai-link level properties away from dai subnodes Date: Sun, 23 Mar 2014 10:54:12 +0100 Message-ID: <20140323105412.4f312449@armhf> References: <0b1c0e2e6766c3a63f598c3b9435d4744b0e2835.1395419906.git.jsarha@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <0b1c0e2e6766c3a63f598c3b9435d4744b0e2835.1395419906.git.jsarha@ti.com> 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: Jyri Sarha Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, kuninori.morimoto.gx@renesas.com, liam.r.girdwood@linux.intel.com, Li.Xiubo@freescale.com, peter.ujfalusi@ti.com, detheridge@ti.com, broonie@kernel.org, bcousson@baylibre.com, linux-omap@vger.kernel.org List-Id: devicetree@vger.kernel.org T24gRnJpLCAyMSBNYXIgMjAxNCAxODo0NzoyMyArMDIwMApKeXJpIFNhcmhhIDxqc2FyaGFAdGku Y29tPiB3cm90ZToKCj4gVGhlIHByb3BlcnRpZXMgbGlrZSBmb3JtYXQsIGJpdGNsb2NrLW1hc3Rl ciwgZnJhbWUtbWFzdGVyLAo+IGJpdGNsb2NrLWludmVyc2lvbiwgYW5kIGZyYW1lLWludmVyc2lv biBzaG91bGQgYmUgY29tbW9uIHRvIHRoZSBkYWlzCj4gY29ubmVjdGVkIHdpdGggYSBkYWktbGlu ay4gRm9yIGJpdGNsb2NrLW1hc3RlciBhbmQgZnJhbWUtbWFzdGVyCj4gcHJvcGVydGllcyB0byBi ZSB1bmFtYmlndW91cyB0aGV5IG5lZWQgdG8gaW5kaWNhdGUgdGhlIG1hc3RlcmluZyBkYWkKPiBu b2RlIHdpdGggYSBwaGFuZGxlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEp5cmkgU2FyaGEgPGpzYXJo YUB0aS5jb20+Cj4gLS0tCj4gIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvdW5kL3NpbXBsZS1j YXJkLnR4dCAgICAgIHwgICA5MSArKysrLS0tLQo+ICBzb3VuZC9zb2MvZ2VuZXJpYy9zaW1wbGUt Y2FyZC5jICAgICAgICAgICAgICAgICAgICB8ICAyMzcgKysrKysrKysrKysrLS0tLS0tLS0KPiAg MiBmaWxlcyBjaGFuZ2VkLCAxOTEgaW5zZXJ0aW9ucygrKSwgMTM3IGRlbGV0aW9ucygtKQo+IAo+ IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291bmQvc2lt cGxlLWNhcmQudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvdW5kL3Np bXBsZS1jYXJkLnR4dAo+IGluZGV4IDEzMWFhMmEuLjNjYWZhOWUgMTAwNjQ0Cj4gLS0tIGEvRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvdW5kL3NpbXBsZS1jYXJkLnR4dAo+ICsr KyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb3VuZC9zaW1wbGUtY2FyZC50 eHQKPiBAQCAtMSw2ICsxLDYgQEAKPiAgU2ltcGxlLUNhcmQ6Cj4gIAo+IC1TaW1wbGUtQ2FyZCBz cGVjaWZpZXMgYXVkaW8gREFJIGNvbm5lY3Rpb24gb2YgU29DIDwtPiBjb2RlYy4KPiArU2ltcGxl LUNhcmQgc3BlY2lmaWVzIGF1ZGlvIERBSSBjb25uZWN0aW9ucyBvZiBTb0MgPC0+IGNvZGVjLgo+ ICAKPiAgUmVxdWlyZWQgcHJvcGVydGllczoKPiAgCj4gQEAgLTgsMjggKzgsNTQgQEAgUmVxdWly ZWQgcHJvcGVydGllczoKPiAgCj4gIE9wdGlvbmFsIHByb3BlcnRpZXM6Cj4gIAo+IC0tIHNpbXBs ZS1hdWRpby1jYXJkLG5hbWUJCTogVXNlciBzcGVjaWZpZWQgYXVkaW8gc291bmQgY2FyZCBuYW1l LCBvbmUgc3RyaW5nCj4gKy0gc2ltcGxlLWF1ZGlvLWNhcmQsbmFtZQkJOiBVc2VyIHNwZWNpZmll ZCBhdWRpbyBzb3VuZCBjYXJkIG5hbWUsCj4gK29uZSBzdHJpbmcKPiAgCQkJCQkgIHByb3BlcnR5 Lgo+IC0tIHNpbXBsZS1hdWRpby1jYXJkLGZvcm1hdAkJOiBDUFUvQ09ERUMgY29tbW9uIGF1ZGlv IGZvcm1hdC4KPiAtCQkJCQkgICJpMnMiLCAicmlnaHRfaiIsICJsZWZ0X2oiICwgImRzcF9hIgo+ IC0JCQkJCSAgImRzcF9iIiwgImFjOTciLCAicGRtIiwgIm1zYiIsICJsc2IiCj4gIC0gc2ltcGxl LWF1ZGlvLWNhcmQsd2lkZ2V0cwkJOiBQbGVhc2UgcmVmZXIgdG8gd2lkZ2V0cy50eHQuCj4gIC0g c2ltcGxlLWF1ZGlvLWNhcmQscm91dGluZwkJOiBBIGxpc3Qgb2YgdGhlIGNvbm5lY3Rpb25zIGJl dHdlZW4gYXVkaW8gY29tcG9uZW50cy4KPiAgCQkJCQkgIEVhY2ggZW50cnkgaXMgYSBwYWlyIG9m IHN0cmluZ3MsIHRoZSBmaXJzdCBiZWluZyB0aGUKPiAgCQkJCQkgIGNvbm5lY3Rpb24ncyBzaW5r LCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBjb25uZWN0aW9uJ3MKPiAgCQkJCQkgIHNvdXJjZS4KPiAt LSBkYWktdGRtLXNsb3QtbnVtCQkJOiBQbGVhc2UgcmVmZXIgdG8gdGRtLXNsb3QudHh0Lgo+IC0t IGRhaS10ZG0tc2xvdC13aWR0aAkJCTogUGxlYXNlIHJlZmVyIHRvIHRkbS1zbG90LnR4dC4KPiAr T3B0aW9uYWwgc3Vibm9kZXM6Cj4gKwo+ICstIHNpbXBsZS1hdWRpby1jYXJkLGRhaS1saW5rCQk6 IENvbnRhaW5lciBmb3IgZGFpLWxpbmsgbGV2ZWwKPiArCQkJCQkgIHByb3BlcnRpZXMgYW5kIHRo ZSBDUFUgYW5kIENPREVDCj4gKwkJCQkJICBzdWItbm9kZXMuIFRoaXMgY29udGFpbmVyIG1heSBi ZQo+ICsJCQkJCSAgb21pdHRlZCB3aGVuIHRoZSBjYXJkIGhhcyBvbmx5IG9uZQo+ICsJCQkJCSAg REFJIGxpbmsuIFNlZSB0aGUgZXhhbXBsZXMgYW5kIHRoZQo+ICsJCQkJCSAgc2VjdGlvbiBiZWxs b3cuCj4gKwo+ICtEYWktbGluayBzdWJub2RlIHByb3BlcnRpZXMgYW5kIHN1Ym5vZGVzOgo+ICsK PiArSWYgZGFpLWxpbmsgc3Vibm9kZSBpcyBvbWl0dGVkIGFuZCB0aGUgc3Vibm9kZSBwcm9wZXJ0 aWVzIGFyZSBkaXJlY3RseQo+ICt1bmRlciAic291bmQiLW5vZGUgdGhlIHN1Ym5vZGUgcHJvcGVy dHkgYW5kIHN1Ym5vZGUgbmFtZXMgaGF2ZSB0byBiZQo+ICtwcmVmaXhlZCB3aXRoICJzaW1wbGUt YXVkaW8tY2FyZCwiLXByZWZpeC4KPiAgCj4gLVJlcXVpcmVkIHN1Ym5vZGVzOgo+ICtSZXF1cmVk IGRhaS1saW5rIHN1Ym5vZGVzOgoKVHlwbzogJ1JlcXVpcmVkJwoKPiAgCj4gLS0gc2ltcGxlLWF1 ZGlvLWNhcmQsZGFpLWxpbmsJCTogY29udGFpbmVyIGZvciB0aGUgQ1BVIGFuZCBDT0RFQyBzdWIt bm9kZXMKPiAtCQkJCQkgIFRoaXMgY29udGFpbmVyIG1heSBiZSBvbWl0dGVkIHdoZW4gdGhlCj4g LQkJCQkJICBjYXJkIGhhcyBvbmx5IG9uZSBEQUkgbGluay4KPiAtCQkJCQkgIFNlZSB0aGUgZXhh bXBsZXMuCj4gKy0gY3B1CQkJCQk6IENQVSAgIHN1Yi1ub2RlCj4gKy0gY29kZWMJCQkJCTogQ09E RUMgc3ViLW5vZGUKPiAgCj4gLS0gc2ltcGxlLWF1ZGlvLWNhcmQsY3B1CQkJOiBDUFUgICBzdWIt bm9kZQo+IC0tIHNpbXBsZS1hdWRpby1jYXJkLGNvZGVjCQk6IENPREVDIHN1Yi1ub2RlCj4gK09w dGlvbmFsIGRhaS1saW5rIHN1Ym5vZGUgcHJvcGVydGllczoKPiArCj4gKy0gZm9ybWF0CQkJCTog Q1BVL0NPREVDIGNvbW1vbiBhdWRpbyBmb3JtYXQuCj4gKwkJCQkJICAiaTJzIiwgInJpZ2h0X2oi LCAibGVmdF9qIiAsICJkc3BfYSIKPiArCQkJCQkgICJkc3BfYiIsICJhYzk3IiwgInBkbSIsICJt c2IiLCAibHNiIgo+ICstIGZyYW1lLW1hc3RlcgkJCQk6IEluZGljYXRlcyBkYWktbGluayBmcmFt ZSBtYXN0ZXIuCj4gKwkJCQkJICBwaGFuZGxlIHRvIGEgY3B1IG9yIGNvZGVjIHN1Ym5vZGUuCj4g Ky0gYml0Y2xvY2stbWFzdGVyCQkJOiBJbmRpY2F0ZXMgZGFpLWxpbmsgYml0IGNsb2NrIG1hc3Rl ci4KPiArCQkJCQkgIHBoYW5kbGUgdG8gYSBjcHUgb3IgY29kZWMgc3Vibm9kZS4KPiArLSBiaXRj bG9jay1pbnZlcnNpb24JCQk6IGJvb2wgcHJvcGVydHkuIEFkZCB0aGlzIGlmIHRoZQo+ICsJCQkJ CSAgZGFpLWxpbmsgdXNlcyBiaXQgY2xvY2sgaW52ZXJzaW9uLgo+ICstIGZyYW1lLWludmVyc2lv bgkJCTogYm9vbCBwcm9wZXJ0eS4gQWRkIHRoaXMgaWYgdGhlCj4gKwkJCQkJICBkYWktbGluayB1 c2VzIGZyYW1lIGNsb2NrIGludmVyc2lvbi4KPiArCj4gK0ZvciBiYWNrd2FyZCBjb21wYXRpYmls aXR5IHRoZSBmcmFtZS1tYXN0ZXIgYW5kIGJpdGNsb2NrLW1hc3Rlcgo+ICtwcm9wZXJ0aWVzIGNh biBiZSB1c2VkIGFzIGJvb2xlYW5zIGluIGNvZGVjIHN1Ym5vZGUgdG8gaW5kaWNhdGUgaWYgdGhl Cj4gK2NvZGVjIGlzIHRoZSBkYWktbGluayBmcmFtZSBvciBiaXQgY2xvY2sgbWFzdGVyLiBJbiB0 aGlzIGNhc2UgdGhlIHNhbWUKPiArcHJvcGVydGllcyBzaG91bGQgbm90IGJlIHByZXNlbnQgYXQg ZGFpLWxpbmsgbGV2ZWwgYW5kIHRoZQo+ICtiaXRjbG9jay1pbnZlcnNpb24gYW5kIGZyYW1lLWlu dmVyc2lvbiBwcm9wZXJ0aWVzIHNob3VsZCBhbHNvIGJlIHBsYWNlZAo+ICtpbiB0aGUgY29kZWMg bm9kZSBpZiBuZWVkZWQuCj4gIAo+ICBSZXF1aXJlZCBDUFUvQ09ERUMgc3Vibm9kZXMgcHJvcGVy dGllczoKPiAgCglbc25pcF0KPiBkaWZmIC0tZ2l0IGEvc291bmQvc29jL2dlbmVyaWMvc2ltcGxl LWNhcmQuYyBiL3NvdW5kL3NvYy9nZW5lcmljL3NpbXBsZS1jYXJkLmMKPiBpbmRleCAyMWYxY2Ni Li5mNDY2M2QwIDEwMDY0NAo+IC0tLSBhL3NvdW5kL3NvYy9nZW5lcmljL3NpbXBsZS1jYXJkLmMK PiArKysgYi9zb3VuZC9zb2MvZ2VuZXJpYy9zaW1wbGUtY2FyZC5jCj4gQEAgLTgsNiArOCw3IEBA Cj4gICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgdmVyc2lvbiAyIGFzCj4gICAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLgo+ICAgKi8KPiArI2RlZmluZSBERUJVRwoKU2hvdWxkIGJlIHJlbW92ZWQuCgo+ICAj aW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KPiAgI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+IEBAIC04OCw3ICs4OSw2IEBAIHN0YXRpYyBpbnQgYXNv Y19zaW1wbGVfY2FyZF9kYWlfaW5pdChzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkKQo+ ICAKPiAgc3RhdGljIGludAo+ICBhc29jX3NpbXBsZV9jYXJkX3N1Yl9wYXJzZV9vZihzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wLAo+IC0JCQkgICAgICB1bnNpZ25lZCBpbnQgZGFpZm10LAo+ICAJCQkg ICAgICBzdHJ1Y3QgYXNvY19zaW1wbGVfZGFpICpkYWksCj4gIAkJCSAgICAgIGNvbnN0IHN0cnVj dCBkZXZpY2Vfbm9kZSAqKnBfbm9kZSwKPiAgCQkJICAgICAgY29uc3QgY2hhciAqKm5hbWUpCj4g QEAgLTExNywxNCArMTE3LDYgQEAgYXNvY19zaW1wbGVfY2FyZF9zdWJfcGFyc2Vfb2Yoc3RydWN0 IGRldmljZV9ub2RlICpucCwKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAgCS8qCj4gLQkgKiBiaXRj bG9jay1pbnZlcnNpb24sIGZyYW1lLWludmVyc2lvbgo+IC0JICogYml0Y2xvY2stbWFzdGVyLCAg ICBmcmFtZS1tYXN0ZXIKPiAtCSAqIGFuZCBzcGVjaWZpYyAiZm9ybWF0IiBpZiBpdCBoYXMKPiAt CSAqLwo+IC0JZGFpLT5mbXQgPSBzbmRfc29jX29mX3BhcnNlX2RhaWZtdChucCwgTlVMTCk7Cj4g LQlkYWktPmZtdCB8PSBkYWlmbXQ7Cj4gLQo+IC0JLyoKPiAgCSAqIGRhaS0+c3lzY2xrIGNvbWUg ZnJvbQo+ICAJICogICJjbG9ja3MgPSA8Jnh4eD4iIChpZiBzeXN0ZW0gaGFzIGNvbW1vbiBjbG9j aykKPiAgCSAqICBvciAic3lzdGVtLWNsb2NrLWZyZXF1ZW5jeSA9IDx4eHg+Igo+IEBAIC0xNTEs MzcgKzE0MywxMzQgQEAgYXNvY19zaW1wbGVfY2FyZF9zdWJfcGFyc2Vfb2Yoc3RydWN0IGRldmlj ZV9ub2RlICpucCwKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHNpbXBsZV9j YXJkX2NwdV9jb2RlY19vZihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCj4gLQkJCQlpbnQgZGFp Zm10LAo+IC0JCQkJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgKmRhaV9saW5rLAo+IC0JCQkJc3Ry dWN0IHNpbXBsZV9kYWlfcHJvcHMgKmRhaV9wcm9wcykKPiArc3RhdGljIGludCBzaW1wbGVfY2Fy ZF9kYWlfbGlua19vZihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCj4gKwkJCQkgICBzdHJ1Y3Qg ZGV2aWNlICpkZXYsCj4gKwkJCQkgICBzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqZGFpX2xpbmss Cj4gKwkJCQkgICBzdHJ1Y3Qgc2ltcGxlX2RhaV9wcm9wcyAqZGFpX3Byb3BzKQo+ICB7Cj4gLQlz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wOwo+ICsJc3RydWN0IGRldmljZV9ub2RlICpucCA9IE5VTEw7 Cj4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmJpdGNsa21hc3RlciA9IE5VTEw7Cj4gKwlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKmZyYW1lbWFzdGVyID0gTlVMTDsKPiArCXVuc2lnbmVkIGludCBkYWlmbXQ7 Cj4gKwljaGFyICpuYW1lOwo+ICsJY2hhciBwcm9wWzEyOF07Cj4gKwljaGFyICpwcmVmaXggPSAi IjsKPiAgCWludCByZXQ7Cj4gIAo+IC0JLyogQ1BVIHN1Yi1ub2RlICovCj4gLQlyZXQgPSAtRUlO VkFMOwo+IC0JbnAgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShub2RlLCAic2ltcGxlLWF1ZGlvLWNh cmQsY3B1Iik7Cj4gLQlpZiAobnApIHsKPiAtCQlyZXQgPSBhc29jX3NpbXBsZV9jYXJkX3N1Yl9w YXJzZV9vZihucCwgZGFpZm10LAo+IC0JCQkJCQkmZGFpX3Byb3BzLT5jcHVfZGFpLAo+IC0JCQkJ CQkmZGFpX2xpbmstPmNwdV9vZl9ub2RlLAo+IC0JCQkJCQkmZGFpX2xpbmstPmNwdV9kYWlfbmFt ZSk7Cj4gLQkJb2Zfbm9kZV9wdXQobnApOwo+ICsJaWYgKCFzdHJjbXAoInNvdW5kIiwgbm9kZS0+ bmFtZSkpCj4gKwkJcHJlZml4ID0gInNpbXBsZS1hdWRpby1jYXJkLCI7Cj4gKwo+ICsJZGFpZm10 ID0gc25kX3NvY19vZl9wYXJzZV9kYWlmbXQobm9kZSwgcHJlZml4LAo+ICsJCQkJCSAmYml0Y2xr bWFzdGVyLCAmZnJhbWVtYXN0ZXIpOwo+ICsJZGFpZm10ICY9IH5TTkRfU09DX0RBSUZNVF9NQVNU RVJfTUFTSzsKPiArCj4gKwlzbnByaW50Zihwcm9wLCBzaXplb2YocHJvcCksICIlc2NwdSIsIHBy ZWZpeCk7Cj4gKwlucCA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKG5vZGUsIHByb3ApOwo+ICsJaWYg KCFucCkgewo+ICsJCXJldCA9IC1FSU5WQUw7Cj4gKwkJZGV2X2VycihkZXYsICIlczogQ2FuJ3Qg ZmluZCBzaW1wbGUtYXVkaW8tY2FyZCxjcHUgRFQgbm9kZVxuIiwKPiArCQkJX19mdW5jX18pOwo+ ICsJCWdvdG8gZGFpX2xpbmtfb2ZfZXJyOwo+ICAJfQo+ICsKPiArCXJldCA9IGFzb2Nfc2ltcGxl X2NhcmRfc3ViX3BhcnNlX29mKG5wLCAmZGFpX3Byb3BzLT5jcHVfZGFpLAo+ICsJCQkJCSAgICAm ZGFpX2xpbmstPmNwdV9vZl9ub2RlLAo+ICsJCQkJCSAgICAmZGFpX2xpbmstPmNwdV9kYWlfbmFt ZSk7Cj4gIAlpZiAocmV0IDwgMCkKPiAtCQlyZXR1cm4gcmV0Owo+ICsJCWdvdG8gZGFpX2xpbmtf b2ZfZXJyOwo+ICsKPiArCWRhaV9wcm9wcy0+Y3B1X2RhaS5mbXQgPSBkYWlmbXQ7Cj4gKwlzd2l0 Y2ggKCgobnAgPT0gYml0Y2xrbWFzdGVyKTw8NCl8KG5wID09IGZyYW1lbWFzdGVyKSkgewo+ICsJ Y2FzZSAweDExOgo+ICsJCWRhaV9wcm9wcy0+Y3B1X2RhaS5mbXQgfD0gU05EX1NPQ19EQUlGTVRf Q0JTX0NGUzsKPiArCQlicmVhazsKPiArCWNhc2UgMHgxMDoKPiArCQlkYWlfcHJvcHMtPmNwdV9k YWkuZm10IHw9IFNORF9TT0NfREFJRk1UX0NCU19DRk07Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIDB4 MDE6Cj4gKwkJZGFpX3Byb3BzLT5jcHVfZGFpLmZtdCB8PSBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZT Owo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlkYWlfcHJvcHMtPmNwdV9kYWkuZm10IHw9 IFNORF9TT0NfREFJRk1UX0NCTV9DRk07Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gIAo+IC0JLyogQ09E RUMgc3ViLW5vZGUgKi8KPiAtCXJldCA9IC1FSU5WQUw7Cj4gLQlucCA9IG9mX2dldF9jaGlsZF9i eV9uYW1lKG5vZGUsICJzaW1wbGUtYXVkaW8tY2FyZCxjb2RlYyIpOwo+IC0JaWYgKG5wKSB7Cj4g LQkJcmV0ID0gYXNvY19zaW1wbGVfY2FyZF9zdWJfcGFyc2Vfb2YobnAsIGRhaWZtdCwKPiAtCQkJ CQkJJmRhaV9wcm9wcy0+Y29kZWNfZGFpLAo+IC0JCQkJCQkmZGFpX2xpbmstPmNvZGVjX29mX25v ZGUsCj4gLQkJCQkJCSZkYWlfbGluay0+Y29kZWNfZGFpX25hbWUpOwo+IC0JCW9mX25vZGVfcHV0 KG5wKTsKPiArCW9mX25vZGVfcHV0KG5wKTsKPiArCXNucHJpbnRmKHByb3AsIHNpemVvZihwcm9w KSwgIiVzY29kZWMiLCBwcmVmaXgpOwo+ICsJbnAgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShub2Rl LCBwcm9wKTsKPiArCWlmICghbnApIHsKPiArCQlyZXQgPSAtRUlOVkFMOwo+ICsJCWRldl9lcnIo ZGV2LCAiJXM6IENhbid0IGZpbmQgc2ltcGxlLWF1ZGlvLWNhcmQsY29kZWMgRFQgbm9kZVxuIiwK PiArCQkJX19mdW5jX18pOwo+ICsJCWdvdG8gZGFpX2xpbmtfb2ZfZXJyOwo+ICAJfQo+ICsKPiAr CXJldCA9IGFzb2Nfc2ltcGxlX2NhcmRfc3ViX3BhcnNlX29mKG5wLCAmZGFpX3Byb3BzLT5jb2Rl Y19kYWksCj4gKwkJCQkJICAgICZkYWlfbGluay0+Y29kZWNfb2Zfbm9kZSwKPiArCQkJCQkgICAg JmRhaV9saW5rLT5jb2RlY19kYWlfbmFtZSk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlnb3RvIGRh aV9saW5rX29mX2VycjsKPiArCj4gKwlpZiAoIWJpdGNsa21hc3RlciAmJiAhZnJhbWVtYXN0ZXIp IHsKPiArCQkvKiBNYXN0ZXIgc2V0dGluZyBub3QgZm91bmQgZnJvbSBkYWlfbGluayBsZXZlbCwg cmV2ZXJ0IGJhY2sKPiArCQkgICB0byBsZWdhY3kgRFQgcGFyc2luZyBhbmQgdGFrZSBzZXR0aW5n cyBmcm9tIGNvZGVjIG5vZGUuICovCj4gKwkJZGV2X2RiZyhkZXYsICIlczogUmV2ZXJ0IHRvIGxl Z2FjeSBkYWlmbXQgcGFyc2luZ1xuIiwKPiArCQkJX19mdW5jX18pOwo+ICsJCWRhaV9wcm9wcy0+ Y3B1X2RhaS5mbXQgPSBkYWlfcHJvcHMtPmNvZGVjX2RhaS5mbXQgPQo+ICsJCQlzbmRfc29jX29m X3BhcnNlX2RhaWZtdChucCwgTlVMTCwgTlVMTCwgTlVMTCkgfAo+ICsJCQkoZGFpZm10ICYgflNO RF9TT0NfREFJRk1UX0NMT0NLX01BU0spOwoKV2UgYXJlIGhlcmUgZWFjaCB0aW1lIHRoZXJlIGlz IG5vIGJpdGNsb2NrLW1hc3RlciBhbmQgbm8gZnJhbWUtbWFzdGVyLAppLmUuIGVhY2ggdGltZSBm b3IgbWUuIEl0IGNvdWxkIGJlIHNpbXBsZXIgdG8ga2VlcCB0aGUgZmlyc3QgJ2RhaWZtdCcKaW5z dGVhZCBvZiBwYXJzaW5nIGFnYWluLgoKPiArCX0gZWxzZSB7Cj4gKwkJZGFpX3Byb3BzLT5jb2Rl Y19kYWkuZm10ID0gZGFpZm10Owo+ICsJCXN3aXRjaCAoKChucCA9PSBiaXRjbGttYXN0ZXIpPDw0 KXwobnAgPT0gZnJhbWVtYXN0ZXIpKSB7Cj4gKwkJY2FzZSAweDExOgo+ICsJCQlkYWlfcHJvcHMt PmNvZGVjX2RhaS5mbXQgfD0gU05EX1NPQ19EQUlGTVRfQ0JNX0NGTTsKPiArCQkJYnJlYWs7Cj4g KwkJY2FzZSAweDEwOgo+ICsJCQlkYWlfcHJvcHMtPmNvZGVjX2RhaS5mbXQgfD0gU05EX1NPQ19E QUlGTVRfQ0JNX0NGUzsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSAweDAxOgo+ICsJCQlkYWlfcHJv cHMtPmNvZGVjX2RhaS5mbXQgfD0gU05EX1NPQ19EQUlGTVRfQ0JTX0NGTTsKPiArCQkJYnJlYWs7 Cj4gKwkJZGVmYXVsdDoKPiArCQkJZGFpX3Byb3BzLT5jb2RlY19kYWkuZm10IHw9IFNORF9TT0Nf REFJRk1UX0NCU19DRlM7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZiAoIWRh aV9saW5rLT5jcHVfZGFpX25hbWUgfHwgIWRhaV9saW5rLT5jb2RlY19kYWlfbmFtZSkgewo+ICsJ CQlyZXQgPSAtRUlOVkFMOwo+ICsJCQlnb3RvIGRhaV9saW5rX29mX2VycjsKPiArCX0KPiArCj4g KwkvKiBzaW1wbGUtY2FyZCBhc3N1bWVzIHBsYXRmb3JtID09IGNwdSAqLwo+ICsJZGFpX2xpbmst PnBsYXRmb3JtX29mX25vZGUgPSBkYWlfbGluay0+Y3B1X29mX25vZGU7Cj4gKwo+ICsJLyogTGlu ayBuYW1lIGlzIGNyZWF0ZWQgZnJvbSBDUFUvQ09ERUMgZGFpIG5hbWUgKi8KPiArCW5hbWUgPSBk ZXZtX2t6YWxsb2MoZGV2LAo+ICsJCQkgICAgc3RybGVuKGRhaV9saW5rLT5jcHVfZGFpX25hbWUp ICAgKwo+ICsJCQkgICAgc3RybGVuKGRhaV9saW5rLT5jb2RlY19kYWlfbmFtZSkgKyAyLAo+ICsJ CQkgICAgR0ZQX0tFUk5FTCk7Cj4gKwlzcHJpbnRmKG5hbWUsICIlcy0lcyIsIGRhaV9saW5rLT5j cHVfZGFpX25hbWUsCj4gKwkJCQlkYWlfbGluay0+Y29kZWNfZGFpX25hbWUpOwo+ICsJZGFpX2xp bmstPm5hbWUgPSBkYWlfbGluay0+c3RyZWFtX25hbWUgPSBuYW1lOwo+ICsKPiArCWRldl9kYmco ZGV2LCAiXHRuYW1lIDogJXNcbiIsIGRhaV9saW5rLT5zdHJlYW1fbmFtZSk7Cj4gKwlkZXZfZGJn KGRldiwgIlx0Y3B1IDogJXMgLyAlMDR4IC8gJWRcbiIsCj4gKwkJZGFpX2xpbmstPmNwdV9kYWlf bmFtZSwKPiArCQlkYWlfcHJvcHMtPmNwdV9kYWkuZm10LAo+ICsJCWRhaV9wcm9wcy0+Y3B1X2Rh aS5zeXNjbGspOwo+ICsJZGV2X2RiZyhkZXYsICJcdGNvZGVjIDogJXMgLyAlMDR4IC8gJWRcbiIs Cj4gKwkJZGFpX2xpbmstPmNvZGVjX2RhaV9uYW1lLAo+ICsJCWRhaV9wcm9wcy0+Y29kZWNfZGFp LmZtdCwKPiArCQlkYWlfcHJvcHMtPmNvZGVjX2RhaS5zeXNjbGspOwo+ICsKPiArZGFpX2xpbmtf b2ZfZXJyOgo+ICsJaWYgKG5wKQo+ICsJCW9mX25vZGVfcHV0KG5wKTsKPiArCWlmIChiaXRjbGtt YXN0ZXIpCj4gKwkJb2Zfbm9kZV9wdXQoYml0Y2xrbWFzdGVyKTsKPiArCWlmIChmcmFtZW1hc3Rl cikKPiArCQlvZl9ub2RlX3B1dChmcmFtZW1hc3Rlcik7Cj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4g IAo+IEBAIC0xOTIsMTggKzI4MSwxMSBAQCBzdGF0aWMgaW50IGFzb2Nfc2ltcGxlX2NhcmRfcGFy c2Vfb2Yoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAo+ICB7Cj4gIAlzdHJ1Y3Qgc25kX3NvY19k YWlfbGluayAqZGFpX2xpbmsgPSBwcml2LT5zbmRfY2FyZC5kYWlfbGluazsKPiAgCXN0cnVjdCBz aW1wbGVfZGFpX3Byb3BzICpkYWlfcHJvcHMgPSBwcml2LT5kYWlfcHJvcHM7Cj4gLQlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wOwo+IC0JY2hhciAqbmFtZTsKPiAtCXVuc2lnbmVkIGludCBkYWlmbXQ7 Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCS8qIHBhcnNpbmcgdGhlIGNhcmQgbmFtZSBmcm9tIERUICov Cj4gIAlzbmRfc29jX29mX3BhcnNlX2NhcmRfbmFtZSgmcHJpdi0+c25kX2NhcmQsICJzaW1wbGUt YXVkaW8tY2FyZCxuYW1lIik7Cj4gIAo+IC0JLyogZ2V0IENQVS9DT0RFQyBjb21tb24gZm9ybWF0 IHZpYSBzaW1wbGUtYXVkaW8tY2FyZCxmb3JtYXQgKi8KPiAtCWRhaWZtdCA9IHNuZF9zb2Nfb2Zf cGFyc2VfZGFpZm10KG5vZGUsICJzaW1wbGUtYXVkaW8tY2FyZCwiKSAmCj4gLQkJKFNORF9TT0Nf REFJRk1UX0ZPUk1BVF9NQVNLIHwgU05EX1NPQ19EQUlGTVRfSU5WX01BU0spOwo+IC0KPiAgCS8q IG9mZi1jb2RlYyB3aWRnZXRzICovCj4gIAlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUs ICJzaW1wbGUtYXVkaW8tY2FyZCx3aWRnZXRzIikpIHsKPiAgCQlyZXQgPSBzbmRfc29jX29mX3Bh cnNlX2F1ZGlvX3NpbXBsZV93aWRnZXRzKCZwcml2LT5zbmRfY2FyZCwKPiBAQCAtMjIwLDcxICsz MDIsMzAgQEAgc3RhdGljIGludCBhc29jX3NpbXBsZV9jYXJkX3BhcnNlX29mKHN0cnVjdCBkZXZp Y2Vfbm9kZSAqbm9kZSwKPiAgCQkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gLQkvKiBsb29wIG9u IHRoZSBEQUkgbGlua3MgKi8KPiAtCW5wID0gTlVMTDsKPiAtCWZvciAoOzspIHsKPiAtCQlpZiAo bXVsdGkpIHsKPiAtCQkJbnAgPSBvZl9nZXRfbmV4dF9jaGlsZChub2RlLCBucCk7Cj4gLQkJCWlm ICghbnApCj4gLQkJCQlicmVhazsKPiAtCQl9Cj4gLQo+IC0JCXJldCA9IHNpbXBsZV9jYXJkX2Nw dV9jb2RlY19vZihtdWx0aSA/IG5wIDogbm9kZSwKPiAtCQkJCQlkYWlmbXQsIGRhaV9saW5rLCBk YWlfcHJvcHMpOwo+IC0JCWlmIChyZXQgPCAwKQo+IC0JCQlnb3RvIGVycjsKPiAtCj4gLQkJLyoK PiAtCQkgKiBvdmVyd3JpdGUgY3B1X2RhaS0+Zm10IGFzIGl0cyBEQUlGTVRfTUFTVEVSIGJpdCBp cyBiYXNlZCBvbiBDT0RFQwo+IC0JCSAqIHdoaWxlIHRoZSBvdGhlciBiaXRzIHNob3VsZCBiZSBp ZGVudGljYWwgdW5sZXNzIGJ1Z2d5IFNXL0hXIGRlc2lnbi4KPiAtCQkgKi8KPiAtCQlkYWlfcHJv cHMtPmNwdV9kYWkuZm10ID0gZGFpX3Byb3BzLT5jb2RlY19kYWkuZm10Owo+ICsJZGV2X2RiZyhk ZXYsICJOZXcgc2ltcGxlLWNhcmQ6ICVzXG4iLCBwcml2LT5zbmRfY2FyZC5uYW1lID8KPiArCQlw cml2LT5zbmRfY2FyZC5uYW1lIDogIiIpOwo+ICAKPiAtCQlpZiAoIWRhaV9saW5rLT5jcHVfZGFp X25hbWUgfHwgIWRhaV9saW5rLT5jb2RlY19kYWlfbmFtZSkgewo+IC0JCQlyZXQgPSAtRUlOVkFM Owo+IC0JCQlnb3RvIGVycjsKPiArCWlmIChtdWx0aSkgewo+ICsJCXN0cnVjdCBkZXZpY2Vfbm9k ZSAqbnAgPSBOVUxMOwo+ICsJCWludCBpOwo+ICsJCWZvciAoaSA9IDA7IChucCA9IG9mX2dldF9u ZXh0X2NoaWxkKG5vZGUsIG5wKSk7IGkrKykgewo+ICsJCQlkZXZfZGJnKGRldiwgIlx0bGluayAl ZDpcbiIsIGkpOwo+ICsJCQlyZXQgPSBzaW1wbGVfY2FyZF9kYWlfbGlua19vZihucCwgZGV2LCBk YWlfbGluayArIGksCj4gKwkJCQkJCSAgICAgIGRhaV9wcm9wcyArIGkpOwoKSSBmZWVsIHRoYXQg bXkgbG9vcCB3YXMgcXVpY2tlcjoKCgkJc3RydWN0IGRldmljZV9ub2RlICpucCA9IE5VTEw7CgoJ CWZvciAoOzspIHsKCQkJbnAgPSBvZl9nZXRfbmV4dF9jaGlsZChub2RlLCBucCk7CgkJCWlmICgh bnApCgkJCQlicmVhazsKCQkJZGV2X2RiZyhkZXYsICJcdGxpbmsgJWQ6XG4iLCBkYWlfbGluayAt IHByaXYtPnNuZF9jYXJkLmRhaV9saW5rKTsKCQkJcmV0ID0gc2ltcGxlX2NhcmRfZGFpX2xpbmtf b2YobnAsIGRldiwgZGFpX2xpbmsrKywKCQkJCQkJICAgICAgZGFpX3Byb3BzKyspOwoKCj4gKwkJ CW9mX25vZGVfcHV0KG5wKTsKPiArCQkJaWYgKHJldCA8IDApCj4gKwkJCQlyZXR1cm4gcmV0OwoK VGhlIG5wIHJlZmVyZW5jZSBjb3VudCBpcyB1cGRhdGVkIGluIG9mX2dldF9uZXh0X2NoaWxkKCks IHNvOgoKCQkJaWYgKHJldCA8IDApIHsKCQkJCW9mX25vZGVfcHV0KG5wKTsKCQkJCXJldHVybiBy ZXQ7CgkJCX0KCk90aGVyd2lzZSwgaXQgd29ya3MgZm9yIG1lLgoKVGVzdGVkLWJ5OiBKZWFuLUZy YW5jb2lzIE1vaW5lIDxtb2luZWpmQGZyZWUuZnI+Cgo+ICAJCX0KPiAtCj4gLQkJLyogc2ltcGxl LWNhcmQgYXNzdW1lcyBwbGF0Zm9ybSA9PSBjcHUgKi8KPiAtCQlkYWlfbGluay0+cGxhdGZvcm1f b2Zfbm9kZSA9IGRhaV9saW5rLT5jcHVfb2Zfbm9kZTsKPiAtCj4gLQkJbmFtZSA9IGRldm1fa3ph bGxvYyhkZXYsCj4gLQkJCQkgICAgc3RybGVuKGRhaV9saW5rLT5jcHVfZGFpX25hbWUpICAgKwo+ IC0JCQkJICAgIHN0cmxlbihkYWlfbGluay0+Y29kZWNfZGFpX25hbWUpICsgMiwKPiAtCQkJCSAg ICBHRlBfS0VSTkVMKTsKPiAtCQlzcHJpbnRmKG5hbWUsICIlcy0lcyIsIGRhaV9saW5rLT5jcHVf ZGFpX25hbWUsCj4gLQkJCQkJZGFpX2xpbmstPmNvZGVjX2RhaV9uYW1lKTsKPiAtCQlkYWlfbGlu ay0+bmFtZSA9IGRhaV9saW5rLT5zdHJlYW1fbmFtZSA9IG5hbWU7Cj4gLQo+IC0JCWlmICghbXVs dGkpCj4gLQkJCWJyZWFrOwo+IC0KPiAtCQlkYWlfbGluaysrOwo+IC0JCWRhaV9wcm9wcysrOwo+ ICsJfSBlbHNlIHsKPiArCQlyZXQgPSBzaW1wbGVfY2FyZF9kYWlfbGlua19vZihub2RlLCBkZXYs IGRhaV9saW5rLCBkYWlfcHJvcHMpOwo+ICsJCWlmIChyZXQgPCAwKQo+ICsJCQlyZXR1cm4gcmV0 Owo+ICAJfQo+ICAKPiAtCS8qIGNhcmQgbmFtZSBpcyBjcmVhdGVkIGZyb20gQ1BVL0NPREVDIGRh aSBuYW1lICovCj4gLQlkYWlfbGluayA9IHByaXYtPnNuZF9jYXJkLmRhaV9saW5rOwo+ICAJaWYg KCFwcml2LT5zbmRfY2FyZC5uYW1lKQo+IC0JCXByaXYtPnNuZF9jYXJkLm5hbWUgPSBkYWlfbGlu ay0+bmFtZTsKPiAtCj4gLQlkZXZfZGJnKGRldiwgImNhcmQtbmFtZSA6ICVzXG4iLCBwcml2LT5z bmRfY2FyZC5uYW1lKTsKPiAtCWRldl9kYmcoZGV2LCAicGxhdGZvcm0gOiAlMDR4XG4iLCBkYWlm bXQpOwo+IC0JZGFpX3Byb3BzID0gcHJpdi0+ZGFpX3Byb3BzOwo+IC0JZGV2X2RiZyhkZXYsICJj cHUgOiAlcyAvICUwNHggLyAlZFxuIiwKPiAtCQlkYWlfbGluay0+Y3B1X2RhaV9uYW1lLAo+IC0J CWRhaV9wcm9wcy0+Y3B1X2RhaS5mbXQsCj4gLQkJZGFpX3Byb3BzLT5jcHVfZGFpLnN5c2Nsayk7 Cj4gLQlkZXZfZGJnKGRldiwgImNvZGVjIDogJXMgLyAlMDR4IC8gJWRcbiIsCj4gLQkJZGFpX2xp bmstPmNvZGVjX2RhaV9uYW1lLAo+IC0JCWRhaV9wcm9wcy0+Y29kZWNfZGFpLmZtdCwKPiAtCQlk YWlfcHJvcHMtPmNvZGVjX2RhaS5zeXNjbGspOwo+ICsJCXByaXYtPnNuZF9jYXJkLm5hbWUgPSBw cml2LT5zbmRfY2FyZC5kYWlfbGluay0+bmFtZTsKPiAgCj4gIAlyZXR1cm4gMDsKPiAtCj4gLWVy cjoKPiAtCW9mX25vZGVfcHV0KG5wKTsKPiAtCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gIC8qIHVw ZGF0ZSB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBkZXZpY2VzIG5vZGVzIGF0IGVuZCBvZiBw cm9iZSAqLwoKLS0gCktlbiBhciBjJ2hlbnRhw7EJfAkgICAgICAqKiBCcmVpemggaGEgTGludXgg YXRhdiEgKioKSmVmCQl8CQlodHRwOi8vbW9pbmVqZi5mcmVlLmZyLwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBbHNhLWRldmVsIG1haWxpbmcgbGlzdApB bHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcKaHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2ZWwK