From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B6FDCC282DE for ; Wed, 5 Jun 2019 07:55:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 748C420866 for ; Wed, 5 Jun 2019 07:55:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726635AbfFEHz4 (ORCPT ); Wed, 5 Jun 2019 03:55:56 -0400 Received: from mx.socionext.com ([202.248.49.38]:46504 "EHLO mx.socionext.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726467AbfFEHz4 (ORCPT ); Wed, 5 Jun 2019 03:55:56 -0400 Received: from unknown (HELO kinkan-ex.css.socionext.com) ([172.31.9.52]) by mx.socionext.com with ESMTP; 05 Jun 2019 16:55:50 +0900 Received: from mail.mfilter.local (m-filter-1 [10.213.24.61]) by kinkan-ex.css.socionext.com (Postfix) with ESMTP id 49850180B7D; Wed, 5 Jun 2019 16:55:50 +0900 (JST) Received: from 10.213.24.1 (10.213.24.1) by m-FILTER with ESMTP; Wed, 5 Jun 2019 16:55:50 +0900 Received: from SOC-EX01V.e01.socionext.com (10.213.24.21) by SOC-EX03V.e01.socionext.com (10.213.24.23) with Microsoft SMTP Server (TLS) id 15.0.995.29; Wed, 5 Jun 2019 16:55:49 +0900 Received: from SOC-EX01V.e01.socionext.com ([10.213.24.21]) by SOC-EX01V.e01.socionext.com ([10.213.24.21]) with mapi id 15.00.0995.028; Wed, 5 Jun 2019 16:55:49 +0900 From: To: , CC: , , , , , , , , , Subject: Re: [PATCH v2 2/2] mmc: sdhci-milbeaut: add Milbeaut SD controller driver Thread-Topic: [PATCH v2 2/2] mmc: sdhci-milbeaut: add Milbeaut SD controller driver Thread-Index: AQHVFsjbuEg958h9okKKfWEQE9ME2qaJYaEAgAEbh4CAAaaUgA== Date: Wed, 5 Jun 2019 07:55:49 +0000 Message-ID: <20190605165543.DBD7.F0D17A80@socionext.com> References: <2846adc4-4e24-8bf0-ef5c-3a6b7819b1ce@intel.com> In-Reply-To: <2846adc4-4e24-8bf0-ef5c-3a6b7819b1ce@intel.com> Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Becky! ver. 2.74.02 [ja] (Unregistered) x-originating-ip: [10.213.24.1] Content-Type: text/plain; charset="iso-2022-jp" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQpIaQ0KDQo+IE9uIDMvMDYvMTkgNDo0OCBQTSwgVWxmIEhhbnNzb24gd3JvdGU6DQo+ID4gKyBB ZHJpYW4NCj4gPiANCj4gPiBPbiBUaHUsIDMwIE1heSAyMDE5IGF0IDExOjIwLCBUYWthbyBPcml0 byA8b3JpdG8udGFrYW9Ac29jaW9uZXh0LmNvbT4gd3JvdGU6DQo+ID4+DQo+ID4+IFNEIEhvc3Qg Y29udHJvbGxlciBvbiBNaWxiZWF1dCBjb25zaXN0cyBvZiB0d28gY29udHJvbGxlciBwYXJ0cy4N Cj4gPj4gT25lIGlzIGNvcmUgY29udHJvbGxlciBGX1NESDMwLCB0aGlzIGlzIHNpbWlsYXIgdG8g c2RoY2ktZnVqaXRzdQ0KPiA+PiBjb250cm9sbGVyLg0KPiA+PiBBbm90aGVyIGlzIGJyaWRnZSBj b250cm9sbGVyLg0KPiA+PiBUaGlzIGJyaWRnZSBjb250cm9sbGVyIGlzIG5vdCBjb21wYXRpYmxl IHdpdGggc2RoY2ktZnVqaXRzdSBjb250cm9sbGVyLg0KPiA+PiBUaGlzIGlzIHNwZWNpYWwgZm9y IE1pbGJlYXV0IHNlcmllcy4gVGhpcyBoYXMgc29tZSBmdW5jdGlvbnMuDQo+ID4+IEZvciBleGFt cGxlLCByZXNldCBjb250cm9sLCBjbG9jayBlbmFibGUvc2VsZWN0IGZvciBTRFI1MC8yNS8xMiwg c2V0DQo+ID4+IHByb3BlcnR5IG9mIFNEIHBoeXNpY2FsIHBpbnMsIHJldHVuaW5nIGNvbnRyb2ws IHNldCBjYXBhYmlsaXR5aWVzLg0KPiA+Pg0KPiA+PiBUaGlzIGJyaWRnZSBjb250cm9sbGVyIHJl cXVpcmVzIHNwZWNpYWwgcHJvY2VkdXJlcyBhdCByZXNldCBvciBjbG9jaw0KPiA+PiBlbmFibGVt ZW50IG9yIGNoYW5nZSBmb3IgZnVydGhlciB0dW5pbmcgb2YgY2xvY2suDQo+ID4+DQo+ID4+IFNp Z25lZC1vZmYtYnk6IFRha2FvIE9yaXRvIDxvcml0by50YWthb0Bzb2Npb25leHQuY29tPg0KPiA+ IA0KPiA+IFRoaXMgbG9va3MgZ29vZCB0byBtZSwgaG93ZXZlciBJIGhhdmUgbG9vcGVkIGluIEFk cmlhbiB3aG8gbWFpbnRhaW5zDQo+ID4gU0RIQ0kgZHJpdmVycywgdG8gYWxsb3cgaGltIHRvIHBy b3ZpZGUgc29tZSBpbnB1dC4NCj4gDQo+IExvb2tzIE9LLg0KPiANCj4gQ291bGQgYWRkcmVzcyB0 aGUgb3V0cHV0IG9mOiBzY3JpcHRzL2NoZWNrcGF0Y2gucGwgLS1zdHJpY3QNCj4gDQo+IEFuZCB0 aGUgInJlYWRsKGhvc3QtPmlvYWRkciArIFNESENJX0lOVF9TVEFUVVMpID09IDB4ZmZmZmZmZmYi IHRoaW5nIG9ubHkNCj4gbWFrZXMgc2Vuc2UgZm9yIFBDSS4NCj4gDQo+IE5ldmVydGhlbGVzczoN Cj4gDQo+IEFja2VkLWJ5OiBBZHJpYW4gSHVudGVyIDxhZHJpYW4uaHVudGVyQGludGVsLmNvbT4N Cj4gDQoNClRoYW5rIHlvdSAhDQpPcml0bw0KDQo+ID4gDQo+ID4gS2luZCByZWdhcmRzDQo+ID4g VWZmZQ0KPiA+IA0KPiA+IA0KPiA+PiAtLS0NCj4gPj4gIGRyaXZlcnMvbW1jL2hvc3QvS2NvbmZp ZyAgICAgICAgICB8ICAxMSArKw0KPiA+PiAgZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZSAgICAg ICAgIHwgICAxICsNCj4gPj4gIGRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktbWlsYmVhdXQuYyB8IDM2 MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+PiAgZHJpdmVycy9t bWMvaG9zdC9zZGhjaV9mX3NkaDMwLmMgIHwgIDI2ICstLQ0KPiA+PiAgZHJpdmVycy9tbWMvaG9z dC9zZGhjaV9mX3NkaDMwLmggIHwgIDMyICsrKysNCj4gPj4gIDUgZmlsZXMgY2hhbmdlZCwgNDA3 IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQ0KPiA+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktbWlsYmVhdXQuYw0KPiA+PiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvbW1jL2hvc3Qvc2RoY2lfZl9zZGgzMC5oDQo+ID4+DQo+ID4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL21tYy9ob3N0L0tjb25maWcgYi9kcml2ZXJzL21tYy9ob3N0L0tjb25maWcN Cj4gPj4gaW5kZXggMjhmY2Q4Zi4uOWIzOTExMSAxMDA2NDQNCj4gPj4gLS0tIGEvZHJpdmVycy9t bWMvaG9zdC9LY29uZmlnDQo+ID4+ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZw0KPiA+ PiBAQCAtMzUzLDYgKzM1MywxNyBAQCBjb25maWcgTU1DX1NESENJX0ZfU0RIMzANCj4gPj4NCj4g Pj4gICAgICAgICAgIElmIHVuc3VyZSwgc2F5IE4uDQo+ID4+DQo+ID4+ICtjb25maWcgTU1DX1NE SENJX01JTEJFQVVUDQo+ID4+ICsgICAgICAgdHJpc3RhdGUgIlNESENJIHN1cHBvcnQgZm9yIFNv Y2lvbmV4dCBNaWxiZWF1dCBTZXJpZWFzIHVzaW5nIEZfU0RIMzAiDQo+ID4+ICsgICAgICAgZGVw ZW5kcyBvbiBNTUNfU0RIQ0lfUExURk0NCj4gPj4gKyAgICAgICBkZXBlbmRzIG9uIE9GDQo+ID4+ ICsgICAgICAgaGVscA0KPiA+PiArICAgICAgICAgVGhpcyBzZWxlY3RzIHRoZSBTZWN1cmUgRGln aXRhbCBIb3N0IENvbnRyb2xsZXIgSW50ZXJmYWNlIChTREhDSSkNCj4gPj4gKyAgICAgICAgIE5l ZWRlZCBieSBNaWxiZWF1dCBTb0MgZm9yIE1NQyAvIFNEIC8gU0RJTyBzdXBwb3J0Lg0KPiA+PiAr ICAgICAgICAgSWYgeW91IGhhdmUgYSBjb250cm9sbGVyIHdpdGggdGhpcyBpbnRlcmZhY2UsIHNh eSBZIG9yIE0gaGVyZS4NCj4gPj4gKw0KPiA+PiArICAgICAgICAgSWYgdW5zdXJlLCBzYXkgTi4N Cj4gPj4gKw0KPiA+PiAgY29uZmlnIE1NQ19TREhDSV9JUFJPQw0KPiA+PiAgICAgICAgIHRyaXN0 YXRlICJTREhDSSBzdXBwb3J0IGZvciB0aGUgQkNNMjgzNSAmIGlQcm9jIFNEL01NQyBDb250cm9s bGVyIg0KPiA+PiAgICAgICAgIGRlcGVuZHMgb24gQVJDSF9CQ00yODM1IHx8IEFSQ0hfQkNNX0lQ Uk9DIHx8IENPTVBJTEVfVEVTVA0KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9N YWtlZmlsZSBiL2RyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGUNCj4gPj4gaW5kZXggNzM1Nzg3MS4u ZGI5OGU4YSAxMDA2NDQNCj4gPj4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZQ0KPiA+ PiArKysgYi9kcml2ZXJzL21tYy9ob3N0L01ha2VmaWxlDQo+ID4+IEBAIC0yMSw2ICsyMSw3IEBA IG9iai0kKENPTkZJR19NTUNfU0RIQ0lfUFhBVjIpICs9IHNkaGNpLXB4YXYyLm8NCj4gPj4gIG9i ai0kKENPTkZJR19NTUNfU0RIQ0lfUzNDKSAgICArPSBzZGhjaS1zM2Mubw0KPiA+PiAgb2JqLSQo Q09ORklHX01NQ19TREhDSV9TSVJGKSAgICAgICAgICAgKz0gc2RoY2ktc2lyZi5vDQo+ID4+ICBv YmotJChDT05GSUdfTU1DX1NESENJX0ZfU0RIMzApICAgICAgICArPSBzZGhjaV9mX3NkaDMwLm8N Cj4gPj4gK29iai0kKENPTkZJR19NTUNfU0RIQ0lfTUlMQkVBVVQpICAgICAgICs9IHNkaGNpLW1p bGJlYXV0Lm8NCj4gPj4gIG9iai0kKENPTkZJR19NTUNfU0RIQ0lfU1BFQVIpICArPSBzZGhjaS1z cGVhci5vDQo+ID4+ICBvYmotJChDT05GSUdfTU1DX1NESENJX0FNNjU0KSAgKz0gc2RoY2lfYW02 NTQubw0KPiA+PiAgb2JqLSQoQ09ORklHX01NQ19XQlNEKSAgICAgICAgICs9IHdic2Qubw0KPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1taWxiZWF1dC5jIGIvZHJpdmVy cy9tbWMvaG9zdC9zZGhjaS1taWxiZWF1dC5jDQo+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ ID4+IGluZGV4IDAwMDAwMDAuLmExYWEyMWINCj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysg Yi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLW1pbGJlYXV0LmMNCj4gPj4gQEAgLTAsMCArMSwzNjIg QEANCj4gPj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+ID4+ICsvKg0K PiA+PiArICogQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNSBGdWppdHN1IFNlbWljb25kdWN0b3Is IEx0ZA0KPiA+PiArICogICAgICAgICAgICAgIFZpbmNlbnQgWWFuZyA8dmluY2VudC55YW5nQHR3 LmZ1aml0c3UuY29tPg0KPiA+PiArICogQ29weXJpZ2h0IChDKSAyMDE1IExpbmFybyBMdGQgIEFu ZHkgR3JlZW4gPGFuZHkuZ3JlZW5AbGluYXJvLm9yZz4NCj4gPj4gKyAqIENvcHlyaWdodCAoQykg MjAxOSBTb2Npb25leHQgSW5jLg0KPiA+PiArICogICAgICAgICAgICAgIFRha2FvIE9yaXRvIDxv cml0by50YWthb0Bzb2Npb25leHQuY29tPg0KPiA+PiArICovDQo+ID4+ICsNCj4gPj4gKyNpbmNs dWRlIDxsaW51eC9iaXRzLmg+DQo+ID4+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+DQo+ID4+ICsj aW5jbHVkZSA8bGludXgvZGVsYXkuaD4NCj4gPj4gKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4NCj4g Pj4gKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+DQo+ID4+ICsjaW5jbHVkZSA8bGlu dXgvbW9kdWxlLmg+DQo+ID4+ICsjaW5jbHVkZSA8bGludXgvb2YuaD4NCj4gPj4gKyNpbmNsdWRl IDxsaW51eC9wcm9wZXJ0eS5oPg0KPiA+PiArDQo+ID4+ICsjaW5jbHVkZSAic2RoY2ktcGx0Zm0u aCINCj4gPj4gKyNpbmNsdWRlICJzZGhjaV9mX3NkaDMwLmgiDQo+ID4+ICsNCj4gPj4gKy8qIG1p bGJlYXV0IGJyaWRnZSBjb250cm9sbGVyIHJlZ2lzdGVyICovDQo+ID4+ICsjZGVmaW5lIE1MQl9T T0ZUX1JFU0VUICAgICAgICAgMHgwMjAwDQo+ID4+ICsjZGVmaW5lICBNTEJfU09GVF9SRVNFVF9S U1RYICAgICAgICAgICBCSVQoMCkNCj4gPj4gKw0KPiA+PiArI2RlZmluZSBNTEJfV1BfQ0RfTEVE X1NFVCAgICAgIDB4MDIxMA0KPiA+PiArI2RlZmluZSAgTUxCX1dQX0NEX0xFRF9TRVRfTEVEX0lO ViAgQklUKDIpDQo+ID4+ICsNCj4gPj4gKyNkZWZpbmUgTUxCX0NSX1NFVCAgICAgICAgICAgICAg ICAgICAgIDB4MDIyMA0KPiA+PiArI2RlZmluZSAgTUxCX0NSX1NFVF9DUl9UT0NMS1VOSVQgICAg ICAgQklUKDI0KQ0KPiA+PiArI2RlZmluZSAgTUxCX0NSX1NFVF9DUl9UT0NMS0ZSRVFfU0ZUICAg KDE2KQ0KPiA+PiArI2RlZmluZSAgTUxCX0NSX1NFVF9DUl9UT0NMS0ZSRVFfTUFTSyAgKDB4M0Yg PDwgTUxCX0NSX1NFVF9DUl9UT0NMS0ZSRVFfU0ZUKQ0KPiA+PiArI2RlZmluZSAgTUxCX0NSX1NF VF9DUl9CQ0xLRlJFUV9TRlQgICAgKDgpDQo+ID4+ICsjZGVmaW5lICBNTEJfQ1JfU0VUX0NSX0JD TEtGUkVRX01BU0sgICAoMHhGRiA8PCBNTEJfQ1JfU0VUX0NSX0JDTEtGUkVRX1NGVCkNCj4gPj4g KyNkZWZpbmUgIE1MQl9DUl9TRVRfQ1JfUlRVTlRJTUVSX1NGVCAgICg0KQ0KPiA+PiArI2RlZmlu ZSAgTUxCX0NSX1NFVF9DUl9SVFVOVElNRVJfTUFTSyAgKDB4RiA8PCBNTEJfQ1JfU0VUX0NSX1JU VU5USU1FUl9TRlQpDQo+ID4+ICsNCj4gPj4gKyNkZWZpbmUgTUxCX1NEX1RPQ0xLX0lfRElWICAx Ng0KPiA+PiArI2RlZmluZSBNTEJfVE9DTEtGUkVRX1VOSVRfVEhSRVMgICAgMTYwMDAwMDANCj4g Pj4gKyNkZWZpbmUgTUxCX0NBTF9UT0NMS0ZSRVFfTUhaKHJhdGUpIChyYXRlIC8gTUxCX1NEX1RP Q0xLX0lfRElWIC8gMTAwMDAwMCkNCj4gPj4gKyNkZWZpbmUgTUxCX0NBTF9UT0NMS0ZSRVFfS0ha KHJhdGUpIChyYXRlIC8gTUxCX1NEX1RPQ0xLX0lfRElWIC8gMTAwMCkNCj4gPj4gKyNkZWZpbmUg TUxCX1RPQ0xLRlJFUV9NQVggICA2Mw0KPiA+PiArI2RlZmluZSBNTEJfVE9DTEtGUkVRX01JTiAg ICAxDQo+ID4+ICsNCj4gPj4gKyNkZWZpbmUgTUxCX1NEX0JDTEtfSV9ESVYgICA0DQo+ID4+ICsj ZGVmaW5lIE1MQl9DQUxfQkNMS0ZSRVEocmF0ZSkgIChyYXRlIC8gTUxCX1NEX0JDTEtfSV9ESVYg LyAxMDAwMDAwKQ0KPiA+PiArI2RlZmluZSBNTEJfQkNMS0ZSRVFfTUFYICAgICAgICAyNTUNCj4g Pj4gKyNkZWZpbmUgTUxCX0JDTEtGUkVRX01JTiAgICAgICAgICAxDQo+ID4+ICsNCj4gPj4gKyNk ZWZpbmUgTUxCX0NEUl9TRVQgICAgICAgICAgICAgICAgICAgIDB4MDIzMA0KPiA+PiArI2RlZmlu ZSBNTEJfQ0RSX1NFVF9DTEsyUE9XMTYgIDMNCj4gPj4gKw0KPiA+PiArc3RydWN0IGZfc2Rob3N0 X3ByaXYgew0KPiA+PiArICAgICAgIHN0cnVjdCBjbGsgKmNsa19pZmFjZTsNCj4gPj4gKyAgICAg ICBzdHJ1Y3QgY2xrICpjbGs7DQo+ID4+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2Ow0KPiA+ PiArICAgICAgIGJvb2wgZW5hYmxlX2NtZF9kYXRfZGVsYXk7DQo+ID4+ICt9Ow0KPiA+PiArDQo+ ID4+ICtzdGF0aWMgdm9pZCBzZGhjaV9taWxiZWF1dF9zb2Z0X3ZvbHRhZ2Vfc3dpdGNoKHN0cnVj dCBzZGhjaV9ob3N0ICpob3N0KQ0KPiA+PiArew0KPiA+PiArICAgICAgIHUzMiBjdHJsID0gMDsN Cj4gPj4gKw0KPiA+PiArICAgICAgIHVzbGVlcF9yYW5nZSgyNTAwLCAzMDAwKTsNCj4gPj4gKyAg ICAgICBjdHJsID0gc2RoY2lfcmVhZGwoaG9zdCwgRl9TREgzMF9JT19DT05UUk9MMik7DQo+ID4+ ICsgICAgICAgY3RybCB8PSBGX1NESDMwX0NSRVNfT19ETjsNCj4gPj4gKyAgICAgICBzZGhjaV93 cml0ZWwoaG9zdCwgY3RybCwgRl9TREgzMF9JT19DT05UUk9MMik7DQo+ID4+ICsgICAgICAgY3Ry bCB8PSBGX1NESDMwX01TRUxfT18xXzg7DQo+ID4+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhvc3Qs IGN0cmwsIEZfU0RIMzBfSU9fQ09OVFJPTDIpOw0KPiA+PiArDQo+ID4+ICsgICAgICAgY3RybCAm PSB+Rl9TREgzMF9DUkVTX09fRE47DQo+ID4+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhvc3QsIGN0 cmwsIEZfU0RIMzBfSU9fQ09OVFJPTDIpOw0KPiA+PiArICAgICAgIHVzbGVlcF9yYW5nZSgyNTAw LCAzMDAwKTsNCj4gPj4gKw0KPiA+PiArICAgICAgIGN0cmwgPSBzZGhjaV9yZWFkbChob3N0LCBG X1NESDMwX1RVTklOR19TRVRUSU5HKTsNCj4gPj4gKyAgICAgICBjdHJsIHw9IEZfU0RIMzBfQ01E X0NIS19ESVM7DQo+ID4+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhvc3QsIGN0cmwsIEZfU0RIMzBf VFVOSU5HX1NFVFRJTkcpOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICtzdGF0aWMgdW5zaWduZWQg aW50IHNkaGNpX21pbGJlYXV0X2dldF9taW5fY2xvY2soc3RydWN0IHNkaGNpX2hvc3QgKmhvc3Qp DQo+ID4+ICt7DQo+ID4+ICsgICAgICAgcmV0dXJuIEZfU0RIMzBfTUlOX0NMT0NLOw0KPiA+PiAr fQ0KPiA+PiArDQo+ID4+ICtzdGF0aWMgdm9pZCBzZGhjaV9taWxiZWF1dF9yZXNldChzdHJ1Y3Qg c2RoY2lfaG9zdCAqaG9zdCwgdTggbWFzaykNCj4gPj4gK3sNCj4gPj4gKyAgICAgICBzdHJ1Y3Qg Zl9zZGhvc3RfcHJpdiAqcHJpdiA9IHNkaGNpX3ByaXYoaG9zdCk7DQo+ID4+ICsgICAgICAgdTE2 IGNsazsNCj4gPj4gKyAgICAgICB1MzIgY3RsOw0KPiA+PiArICAgICAgIGt0aW1lX3QgdGltZW91 dDsNCj4gPj4gKw0KPiA+PiArICAgICAgIGNsayA9IHNkaGNpX3JlYWR3KGhvc3QsIFNESENJX0NM T0NLX0NPTlRST0wpOw0KPiA+PiArICAgICAgIGNsayA9IChjbGsgJiB+U0RIQ0lfQ0xPQ0tfQ0FS RF9FTikgfCBTREhDSV9DTE9DS19JTlRfRU47DQo+ID4+ICsgICAgICAgc2RoY2lfd3JpdGV3KGhv c3QsIGNsaywgU0RIQ0lfQ0xPQ0tfQ09OVFJPTCk7DQo+ID4+ICsNCj4gPj4gKyAgICAgICBzZGhj aV9yZXNldChob3N0LCBtYXNrKTsNCj4gPj4gKw0KPiA+PiArICAgICAgIGNsayB8PSBTREhDSV9D TE9DS19DQVJEX0VOOw0KPiA+PiArICAgICAgIHNkaGNpX3dyaXRldyhob3N0LCBjbGssIFNESENJ X0NMT0NLX0NPTlRST0wpOw0KPiA+PiArDQo+ID4+ICsgICAgICAgdGltZW91dCA9IGt0aW1lX2Fk ZF9tcyhrdGltZV9nZXQoKSwgMTApOw0KPiA+PiArICAgICAgIHdoaWxlICgxKSB7DQo+ID4+ICsg ICAgICAgICAgICAgICBib29sIHRpbWVkb3V0ID0ga3RpbWVfYWZ0ZXIoa3RpbWVfZ2V0KCksIHRp bWVvdXQpOw0KPiA+PiArDQo+ID4+ICsgICAgICAgICAgICAgICBjbGsgPSBzZGhjaV9yZWFkdyho b3N0LCBTREhDSV9DTE9DS19DT05UUk9MKTsNCj4gPj4gKyAgICAgICAgICAgICAgIGlmIChjbGsg JiBTREhDSV9DTE9DS19JTlRfU1RBQkxFKQ0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCj4gPj4gKyAgICAgICAgICAgICAgIGlmICh0aW1lZG91dCkgew0KPiA+PiArICAgICAg ICAgICAgICAgICAgICAgICBwcl9lcnIoIiVzOiBJbnRlcm5hbCBjbG9jayBuZXZlciBzdGFiaWxp c2VkLlxuIiwNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbWNfaG9zdG5h bWUoaG9zdC0+bW1jKSk7DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHNkaGNpX2R1bXBy ZWdzKGhvc3QpOw0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQo+ID4+ICsg ICAgICAgICAgICAgICB9DQo+ID4+ICsgICAgICAgICAgICAgICB1ZGVsYXkoMTApOw0KPiA+PiAr ICAgICAgIH0NCj4gPj4gKw0KPiA+PiArICAgICAgIGlmIChwcml2LT5lbmFibGVfY21kX2RhdF9k ZWxheSkgew0KPiA+PiArICAgICAgICAgICAgICAgY3RsID0gc2RoY2lfcmVhZGwoaG9zdCwgRl9T REgzMF9FU0RfQ09OVFJPTCk7DQo+ID4+ICsgICAgICAgICAgICAgICBjdGwgfD0gRl9TREgzMF9D TURfREFUX0RFTEFZOw0KPiA+PiArICAgICAgICAgICAgICAgc2RoY2lfd3JpdGVsKGhvc3QsIGN0 bCwgRl9TREgzMF9FU0RfQ09OVFJPTCk7DQo+ID4+ICsgICAgICAgfQ0KPiA+PiArfQ0KPiA+PiAr DQo+ID4+ICtzdGF0aWMgdm9pZCBzZGhjaV9taWxiZWF1dF9zZXRfcG93ZXIoc3RydWN0IHNkaGNp X2hvc3QgKmhvc3QsDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIg bW9kZSwgdW5zaWduZWQgc2hvcnQgdmRkKQ0KPiA+PiArew0KPiA+PiArICAgICAgIGlmICghSVNf RVJSKGhvc3QtPm1tYy0+c3VwcGx5LnZtbWMpKSB7DQo+ID4+ICsgICAgICAgICAgICAgICBzdHJ1 Y3QgbW1jX2hvc3QgKm1tYyA9IGhvc3QtPm1tYzsNCj4gPj4gKw0KPiA+PiArICAgICAgICAgICAg ICAgbW1jX3JlZ3VsYXRvcl9zZXRfb2NyKG1tYywgbW1jLT5zdXBwbHkudm1tYywgdmRkKTsNCj4g Pj4gKyAgICAgICB9DQo+ID4+ICsgICAgICAgc2RoY2lfc2V0X3Bvd2VyX25vcmVnKGhvc3QsIG1v ZGUsIHZkZCk7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Ro Y2lfb3BzIHNkaGNpX21pbGJlYXV0X29wcyA9IHsNCj4gPj4gKyAgICAgICAudm9sdGFnZV9zd2l0 Y2ggPSBzZGhjaV9taWxiZWF1dF9zb2Z0X3ZvbHRhZ2Vfc3dpdGNoLA0KPiA+PiArICAgICAgIC5n ZXRfbWluX2Nsb2NrID0gc2RoY2lfbWlsYmVhdXRfZ2V0X21pbl9jbG9jaywNCj4gPj4gKyAgICAg ICAucmVzZXQgPSBzZGhjaV9taWxiZWF1dF9yZXNldCwNCj4gPj4gKyAgICAgICAuc2V0X2Nsb2Nr ID0gc2RoY2lfc2V0X2Nsb2NrLA0KPiA+PiArICAgICAgIC5zZXRfYnVzX3dpZHRoID0gc2RoY2lf c2V0X2J1c193aWR0aCwNCj4gPj4gKyAgICAgICAuc2V0X3Voc19zaWduYWxpbmcgPSBzZGhjaV9z ZXRfdWhzX3NpZ25hbGluZywNCj4gPj4gKyAgICAgICAuc2V0X3Bvd2VyID0gc2RoY2lfbWlsYmVh dXRfc2V0X3Bvd2VyLA0KPiA+PiArfTsNCj4gPj4gKw0KPiA+PiArc3RhdGljIHZvaWQgc2RoY2lf bWlsYmVhdXRfYnJpZGdlX3Jlc2V0KHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0LA0KPiA+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzZXRfZmxh ZykNCj4gPj4gK3sNCj4gPj4gKyAgICAgICBpZiAocmVzZXRfZmxhZykNCj4gPj4gKyAgICAgICAg ICAgICAgIHNkaGNpX3dyaXRlbChob3N0LCAwLCBNTEJfU09GVF9SRVNFVCk7DQo+ID4+ICsgICAg ICAgZWxzZQ0KPiA+PiArICAgICAgICAgICAgICAgc2RoY2lfd3JpdGVsKGhvc3QsIE1MQl9TT0ZU X1JFU0VUX1JTVFgsIE1MQl9TT0ZUX1JFU0VUKTsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiArc3Rh dGljIHZvaWQgc2RoY2lfbWlsYmVhdXRfYnJpZGdlX2luaXQoc3RydWN0IHNkaGNpX2hvc3QgKmhv c3QsDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCByYXRlKQ0KPiA+PiArew0KPiA+PiArICAgICAgIHUzMiB2YWwsIGNsazsNCj4gPj4gKw0K PiA+PiArICAgICAgIC8qIElPX1NESU9fQ1JfU0VUIHNob3VsZCBiZSBzZXQgd2hpbGUgcmVzZXQg Ki8NCj4gPj4gKyAgICAgICB2YWwgPSBzZGhjaV9yZWFkbChob3N0LCBNTEJfQ1JfU0VUKTsNCj4g Pj4gKyAgICAgICB2YWwgJj0gfihNTEJfQ1JfU0VUX0NSX1RPQ0xLRlJFUV9NQVNLIHwgTUxCX0NS X1NFVF9DUl9UT0NMS1VOSVQgfA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBNTEJfQ1Jf U0VUX0NSX0JDTEtGUkVRX01BU0spOw0KPiA+PiArICAgICAgIGlmIChyYXRlID49IE1MQl9UT0NM S0ZSRVFfVU5JVF9USFJFUykgew0KPiA+PiArICAgICAgICAgICAgICAgY2xrID0gTUxCX0NBTF9U T0NMS0ZSRVFfTUhaKHJhdGUpOw0KPiA+PiArICAgICAgICAgICAgICAgY2xrID0gbWluX3QodTMy LCBNTEJfVE9DTEtGUkVRX01BWCwgY2xrKTsNCj4gPj4gKyAgICAgICAgICAgICAgIHZhbCB8PSBN TEJfQ1JfU0VUX0NSX1RPQ0xLVU5JVCB8DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIChj bGsgPDwgTUxCX0NSX1NFVF9DUl9UT0NMS0ZSRVFfU0ZUKTsNCj4gPj4gKyAgICAgICB9IGVsc2Ug ew0KPiA+PiArICAgICAgICAgICAgICAgY2xrID0gTUxCX0NBTF9UT0NMS0ZSRVFfS0haKHJhdGUp Ow0KPiA+PiArICAgICAgICAgICAgICAgY2xrID0gbWluX3QodTMyLCBNTEJfVE9DTEtGUkVRX01B WCwgY2xrKTsNCj4gPj4gKyAgICAgICAgICAgICAgIGNsayA9IG1heF90KHUzMiwgTUxCX1RPQ0xL RlJFUV9NSU4sIGNsayk7DQo+ID4+ICsgICAgICAgICAgICAgICB2YWwgfD0gY2xrIDw8IE1MQl9D Ul9TRVRfQ1JfVE9DTEtGUkVRX1NGVDsNCj4gPj4gKyAgICAgICB9DQo+ID4+ICsNCj4gPj4gKyAg ICAgICBjbGsgPSBNTEJfQ0FMX0JDTEtGUkVRKHJhdGUpOw0KPiA+PiArICAgICAgIGNsayA9IG1p bl90KHUzMiwgTUxCX0JDTEtGUkVRX01BWCwgY2xrKTsNCj4gPj4gKyAgICAgICBjbGsgPSBtYXhf dCh1MzIsIE1MQl9CQ0xLRlJFUV9NSU4sIGNsayk7DQo+ID4+ICsgICAgICAgdmFsIHw9ICBjbGsg PDwgTUxCX0NSX1NFVF9DUl9CQ0xLRlJFUV9TRlQ7DQo+ID4+ICsgICAgICAgdmFsICY9IH5NTEJf Q1JfU0VUX0NSX1JUVU5USU1FUl9NQVNLOw0KPiA+PiArICAgICAgIHNkaGNpX3dyaXRlbChob3N0 LCB2YWwsIE1MQl9DUl9TRVQpOw0KPiA+PiArDQo+ID4+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhv c3QsIE1MQl9DRFJfU0VUX0NMSzJQT1cxNiwgTUxCX0NEUl9TRVQpOw0KPiA+PiArDQo+ID4+ICsg ICAgICAgc2RoY2lfd3JpdGVsKGhvc3QsIE1MQl9XUF9DRF9MRURfU0VUX0xFRF9JTlYsIE1MQl9X UF9DRF9MRURfU0VUKTsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiArc3RhdGljIHZvaWQgc2RoY2lf bWlsYmVhdXRfdmVuZG9yX2luaXQoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QpDQo+ID4+ICt7DQo+ ID4+ICsgICAgICAgc3RydWN0IGZfc2Rob3N0X3ByaXYgKnByaXYgPSBzZGhjaV9wcml2KGhvc3Qp Ow0KPiA+PiArICAgICAgIHUzMiBjdGw7DQo+ID4+ICsNCj4gPj4gKyAgICAgICBjdGwgPSBzZGhj aV9yZWFkbChob3N0LCBGX1NESDMwX0lPX0NPTlRST0wyKTsNCj4gPj4gKyAgICAgICBjdGwgfD0g Rl9TREgzMF9DUkVTX09fRE47DQo+ID4+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhvc3QsIGN0bCwg Rl9TREgzMF9JT19DT05UUk9MMik7DQo+ID4+ICsgICAgICAgY3RsICY9IH5GX1NESDMwX01TRUxf T18xXzg7DQo+ID4+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhvc3QsIGN0bCwgRl9TREgzMF9JT19D T05UUk9MMik7DQo+ID4+ICsgICAgICAgY3RsICY9IH5GX1NESDMwX0NSRVNfT19ETjsNCj4gPj4g KyAgICAgICBzZGhjaV93cml0ZWwoaG9zdCwgY3RsLCBGX1NESDMwX0lPX0NPTlRST0wyKTsNCj4g Pj4gKw0KPiA+PiArICAgICAgIGN0bCA9IHNkaGNpX3JlYWR3KGhvc3QsIEZfU0RIMzBfQUhCX0NP TkZJRyk7DQo+ID4+ICsgICAgICAgY3RsIHw9IEZfU0RIMzBfU0lOIHwgRl9TREgzMF9BSEJfSU5D Ul8xNiB8IEZfU0RIMzBfQUhCX0lOQ1JfOCB8DQo+ID4+ICsgICAgICAgICAgICAgIEZfU0RIMzBf QUhCX0lOQ1JfNDsNCj4gPj4gKyAgICAgICBjdGwgJj0gfihGX1NESDMwX0FIQl9CSUdFRCB8IEZf U0RIMzBfQlVTTE9DS19FTik7DQo+ID4+ICsgICAgICAgc2RoY2lfd3JpdGV3KGhvc3QsIGN0bCwg Rl9TREgzMF9BSEJfQ09ORklHKTsNCj4gPj4gKw0KPiA+PiArICAgICAgIGlmIChwcml2LT5lbmFi bGVfY21kX2RhdF9kZWxheSkgew0KPiA+PiArICAgICAgICAgICAgICAgY3RsID0gc2RoY2lfcmVh ZGwoaG9zdCwgRl9TREgzMF9FU0RfQ09OVFJPTCk7DQo+ID4+ICsgICAgICAgICAgICAgICBjdGwg fD0gRl9TREgzMF9DTURfREFUX0RFTEFZOw0KPiA+PiArICAgICAgICAgICAgICAgc2RoY2lfd3Jp dGVsKGhvc3QsIGN0bCwgRl9TREgzMF9FU0RfQ09OVFJPTCk7DQo+ID4+ICsgICAgICAgfQ0KPiA+ PiArfQ0KPiA+PiArDQo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtbGJf ZHRfaWRzW10gPSB7DQo+ID4+ICsgICAgICAgew0KPiA+PiArICAgICAgICAgICAgICAgLmNvbXBh dGlibGUgPSAic29jaW9uZXh0LG1pbGJlYXV0LW0xMHYtc2RoY2ktMy4wIiwNCj4gPj4gKyAgICAg ICB9LA0KPiA+PiArICAgICAgIHsgLyogc2VudGluZWwgKi8gfQ0KPiA+PiArfTsNCj4gPj4gK01P RFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1sYl9kdF9pZHMpOw0KPiA+PiArDQo+ID4+ICtzdGF0aWMg dm9pZCBzZGhjaV9taWxiZWF1dF9pbml0KHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0KQ0KPiA+PiAr ew0KPiA+PiArICAgICAgIHN0cnVjdCBmX3NkaG9zdF9wcml2ICpwcml2ID0gc2RoY2lfcHJpdiho b3N0KTsNCj4gPj4gKyAgICAgICBpbnQgcmF0ZSA9IGNsa19nZXRfcmF0ZShwcml2LT5jbGspOw0K PiA+PiArICAgICAgIHUxNiBjdGw7DQo+ID4+ICsNCj4gPj4gKyAgICAgICBzZGhjaV9taWxiZWF1 dF9icmlkZ2VfcmVzZXQoaG9zdCwgMCk7DQo+ID4+ICsNCj4gPj4gKyAgICAgICBjdGwgPSBzZGhj aV9yZWFkdyhob3N0LCBTREhDSV9DTE9DS19DT05UUk9MKTsNCj4gPj4gKyAgICAgICBjdGwgJj0g fihTREhDSV9DTE9DS19DQVJEX0VOIHwgU0RIQ0lfQ0xPQ0tfSU5UX0VOKTsNCj4gPj4gKyAgICAg ICBzZGhjaV93cml0ZXcoaG9zdCwgY3RsLCBTREhDSV9DTE9DS19DT05UUk9MKTsNCj4gPj4gKw0K PiA+PiArICAgICAgIHNkaGNpX21pbGJlYXV0X2JyaWRnZV9yZXNldChob3N0LCAxKTsNCj4gPj4g Kw0KPiA+PiArICAgICAgIHNkaGNpX21pbGJlYXV0X2JyaWRnZV9pbml0KGhvc3QsIHJhdGUpOw0K PiA+PiArICAgICAgIHNkaGNpX21pbGJlYXV0X2JyaWRnZV9yZXNldChob3N0LCAwKTsNCj4gPj4g Kw0KPiA+PiArICAgICAgIHNkaGNpX21pbGJlYXV0X3ZlbmRvcl9pbml0KGhvc3QpOw0KPiA+PiAr fQ0KPiA+PiArDQo+ID4+ICtzdGF0aWMgaW50IHNkaGNpX21pbGJlYXV0X3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4+ICt7DQo+ID4+ICsgICAgICAgc3RydWN0IHNkaGNp X2hvc3QgKmhvc3Q7DQo+ID4+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRl djsNCj4gPj4gKyAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlczsNCj4gPj4gKyAgICAgICBpbnQg aXJxLCByZXQgPSAwOw0KPiA+PiArICAgICAgIHN0cnVjdCBmX3NkaG9zdF9wcml2ICpwcml2Ow0K PiA+PiArDQo+ID4+ICsgICAgICAgaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsNCj4g Pj4gKyAgICAgICBpZiAoaXJxIDwgMCkgew0KPiA+PiArICAgICAgICAgICAgICAgZGV2X2Vycihk ZXYsICIlczogbm8gaXJxIHNwZWNpZmllZFxuIiwgX19mdW5jX18pOw0KPiA+PiArICAgICAgICAg ICAgICAgcmV0dXJuIGlycTsNCj4gPj4gKyAgICAgICB9DQo+ID4+ICsNCj4gPj4gKyAgICAgICBo b3N0ID0gc2RoY2lfYWxsb2NfaG9zdChkZXYsIHNpemVvZihzdHJ1Y3QgZl9zZGhvc3RfcHJpdikp Ow0KPiA+PiArICAgICAgIGlmIChJU19FUlIoaG9zdCkpDQo+ID4+ICsgICAgICAgICAgICAgICBy ZXR1cm4gUFRSX0VSUihob3N0KTsNCj4gPj4gKw0KPiA+PiArICAgICAgIHByaXYgPSBzZGhjaV9w cml2KGhvc3QpOw0KPiA+PiArICAgICAgIHByaXYtPmRldiA9IGRldjsNCj4gPj4gKw0KPiA+PiAr ICAgICAgIGhvc3QtPnF1aXJrcyA9IFNESENJX1FVSVJLX05PX0VOREFUVFJfSU5fTk9QREVTQyB8 DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFNESENJX1FVSVJLX0lOVkVSVEVEX1dS SVRFX1BST1RFQ1QgfA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBTREhDSV9RVUlS S19DTE9DS19CRUZPUkVfUkVTRVQgfA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBT REhDSV9RVUlSS19ERUxBWV9BRlRFUl9QT1dFUjsNCj4gPj4gKyAgICAgICBob3N0LT5xdWlya3My ID0gU0RIQ0lfUVVJUksyX1NVUFBPUlRfU0lOR0xFIHwNCj4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgU0RIQ0lfUVVJUksyX1RVTklOR19XT1JLX0FST1VORCB8DQo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgIFNESENJX1FVSVJLMl9QUkVTRVRfVkFMVUVfQlJPS0VOOw0KPiA+PiArDQo+ ID4+ICsgICAgICAgcHJpdi0+ZW5hYmxlX2NtZF9kYXRfZGVsYXkgPSBkZXZpY2VfcHJvcGVydHlf cmVhZF9ib29sKGRldiwNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImZ1aml0c3UsY21kLWRhdC1kZWxheS1zZWxlY3QiKTsNCj4gPj4gKw0KPiA+ PiArICAgICAgIHJldCA9IG1tY19vZl9wYXJzZShob3N0LT5tbWMpOw0KPiA+PiArICAgICAgIGlm IChyZXQpDQo+ID4+ICsgICAgICAgICAgICAgICBnb3RvIGVycjsNCj4gPj4gKw0KPiA+PiArICAg ICAgIHBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGhvc3QpOw0KPiA+PiArDQo+ID4+ICsgICAg ICAgaG9zdC0+aHdfbmFtZSA9ICJmX3NkaDMwIjsNCj4gPj4gKyAgICAgICBob3N0LT5vcHMgPSAm c2RoY2lfbWlsYmVhdXRfb3BzOw0KPiA+PiArICAgICAgIGhvc3QtPmlycSA9IGlycTsNCj4gPj4g Kw0KPiA+PiArICAgICAgIHJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09V UkNFX01FTSwgMCk7DQo+ID4+ICsgICAgICAgaG9zdC0+aW9hZGRyID0gZGV2bV9pb3JlbWFwX3Jl c291cmNlKCZwZGV2LT5kZXYsIHJlcyk7DQo+ID4+ICsgICAgICAgaWYgKElTX0VSUihob3N0LT5p b2FkZHIpKSB7DQo+ID4+ICsgICAgICAgICAgICAgICByZXQgPSBQVFJfRVJSKGhvc3QtPmlvYWRk cik7DQo+ID4+ICsgICAgICAgICAgICAgICBnb3RvIGVycjsNCj4gPj4gKyAgICAgICB9DQo+ID4+ ICsNCj4gPj4gKyAgICAgICBpZiAoZGV2X29mX25vZGUoZGV2KSkgew0KPiA+PiArICAgICAgICAg ICAgICAgc2RoY2lfZ2V0X29mX3Byb3BlcnR5KHBkZXYpOw0KPiA+PiArDQo+ID4+ICsgICAgICAg ICAgICAgICBwcml2LT5jbGtfaWZhY2UgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgImlmYWNl Iik7DQo+ID4+ICsgICAgICAgICAgICAgICBpZiAoSVNfRVJSKHByaXYtPmNsa19pZmFjZSkpIHsN Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihwcml2LT5jbGtfaWZh Y2UpOw0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycjsNCj4gPj4gKyAgICAg ICAgICAgICAgIH0NCj4gPj4gKw0KPiA+PiArICAgICAgICAgICAgICAgcmV0ID0gY2xrX3ByZXBh cmVfZW5hYmxlKHByaXYtPmNsa19pZmFjZSk7DQo+ID4+ICsgICAgICAgICAgICAgICBpZiAocmV0 KQ0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycjsNCj4gPj4gKw0KPiA+PiAr ICAgICAgICAgICAgICAgcHJpdi0+Y2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJjb3Jl Iik7DQo+ID4+ICsgICAgICAgICAgICAgICBpZiAoSVNfRVJSKHByaXYtPmNsaykpIHsNCj4gPj4g KyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihwcml2LT5jbGspOw0KPiA+PiAr ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycl9jbGs7DQo+ID4+ICsgICAgICAgICAgICAg ICB9DQo+ID4+ICsNCj4gPj4gKyAgICAgICAgICAgICAgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJs ZShwcml2LT5jbGspOw0KPiA+PiArICAgICAgICAgICAgICAgaWYgKHJldCkNCj4gPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgZ290byBlcnJfY2xrOw0KPiA+PiArICAgICAgIH0NCj4gPj4gKw0K PiA+PiArICAgICAgIHNkaGNpX21pbGJlYXV0X2luaXQoaG9zdCk7DQo+ID4+ICsNCj4gPj4gKyAg ICAgICByZXQgPSBzZGhjaV9hZGRfaG9zdChob3N0KTsNCj4gPj4gKyAgICAgICBpZiAocmV0KQ0K PiA+PiArICAgICAgICAgICAgICAgZ290byBlcnJfYWRkX2hvc3Q7DQo+ID4+ICsNCj4gPj4gKyAg ICAgICByZXR1cm4gMDsNCj4gPj4gKw0KPiA+PiArZXJyX2FkZF9ob3N0Og0KPiA+PiArICAgICAg IGNsa19kaXNhYmxlX3VucHJlcGFyZShwcml2LT5jbGspOw0KPiA+PiArZXJyX2NsazoNCj4gPj4g KyAgICAgICBjbGtfZGlzYWJsZV91bnByZXBhcmUocHJpdi0+Y2xrX2lmYWNlKTsNCj4gPj4gK2Vy cjoNCj4gPj4gKyAgICAgICBzZGhjaV9mcmVlX2hvc3QoaG9zdCk7DQo+ID4+ICsgICAgICAgcmV0 dXJuIHJldDsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiArc3RhdGljIGludCBzZGhjaV9taWxiZWF1 dF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPj4gK3sNCj4gPj4gKyAg ICAgICBzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYp Ow0KPiA+PiArICAgICAgIHN0cnVjdCBmX3NkaG9zdF9wcml2ICpwcml2ID0gc2RoY2lfcHJpdiho b3N0KTsNCj4gPj4gKw0KPiA+PiArICAgICAgIHNkaGNpX3JlbW92ZV9ob3N0KGhvc3QsIHJlYWRs KGhvc3QtPmlvYWRkciArIFNESENJX0lOVF9TVEFUVVMpID09DQo+ID4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgMHhmZmZmZmZmZik7DQo+ID4+ICsNCj4gPj4gKyAgICAgICBjbGtfZGlzYWJs ZV91bnByZXBhcmUocHJpdi0+Y2xrX2lmYWNlKTsNCj4gPj4gKyAgICAgICBjbGtfZGlzYWJsZV91 bnByZXBhcmUocHJpdi0+Y2xrKTsNCj4gPj4gKw0KPiA+PiArICAgICAgIHNkaGNpX2ZyZWVfaG9z dChob3N0KTsNCj4gPj4gKyAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsN Cj4gPj4gKw0KPiA+PiArICAgICAgIHJldHVybiAwOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICtz dGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzZGhjaV9taWxiZWF1dF9kcml2ZXIgPSB7DQo+ ID4+ICsgICAgICAgLmRyaXZlciA9IHsNCj4gPj4gKyAgICAgICAgICAgICAgIC5uYW1lID0gInNk aGNpLW1pbGJlYXV0IiwNCj4gPj4gKyAgICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9IG9m X21hdGNoX3B0cihtbGJfZHRfaWRzKSwNCj4gPj4gKyAgICAgICB9LA0KPiA+PiArICAgICAgIC5w cm9iZSAgPSBzZGhjaV9taWxiZWF1dF9wcm9iZSwNCj4gPj4gKyAgICAgICAucmVtb3ZlID0gc2Ro Y2lfbWlsYmVhdXRfcmVtb3ZlLA0KPiA+PiArfTsNCj4gPj4gKw0KPiA+PiArbW9kdWxlX3BsYXRm b3JtX2RyaXZlcihzZGhjaV9taWxiZWF1dF9kcml2ZXIpOw0KPiA+PiArDQo+ID4+ICtNT0RVTEVf REVTQ1JJUFRJT04oIk1JTEJFQVVUIFNEIENhcmQgQ29udHJvbGxlciBkcml2ZXIiKTsNCj4gPj4g K01PRFVMRV9BVVRIT1IoIlRha2FvIE9yaXRvIDxvcml0by50YWthb0Bzb2Npb25leHQuY29tPiIp Ow0KPiA+PiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOw0KPiA+PiArTU9EVUxFX0FMSUFTKCJw bGF0Zm9ybTpzZGhjaS1taWxiZWF1dCIpOw0KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMv aG9zdC9zZGhjaV9mX3NkaDMwLmMgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpX2Zfc2RoMzAuYw0K PiA+PiBpbmRleCA0ODVmNzU5Li5jYTRjOTlhIDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2ZXJzL21t Yy9ob3N0L3NkaGNpX2Zfc2RoMzAuYw0KPiA+PiArKysgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNp X2Zfc2RoMzAuYw0KPiA+PiBAQCAtMTksMzEgKzE5LDcgQEANCj4gPj4gICNpbmNsdWRlIDxsaW51 eC9jbGsuaD4NCj4gPj4NCj4gPj4gICNpbmNsdWRlICJzZGhjaS1wbHRmbS5oIg0KPiA+PiAtDQo+ ID4+IC0vKiBGX1NESDMwIGV4dGVuZGVkIENvbnRyb2xsZXIgcmVnaXN0ZXJzICovDQo+ID4+IC0j ZGVmaW5lIEZfU0RIMzBfQUhCX0NPTkZJRyAgICAgICAgICAgICAweDEwMA0KPiA+PiAtI2RlZmlu ZSAgRl9TREgzMF9BSEJfQklHRUQgICAgICAgICAgICAgMHgwMDAwMDA0MA0KPiA+PiAtI2RlZmlu ZSAgRl9TREgzMF9CVVNMT0NLX0RNQSAgICAgICAgICAgMHgwMDAwMDAyMA0KPiA+PiAtI2RlZmlu ZSAgRl9TREgzMF9CVVNMT0NLX0VOICAgICAgICAgICAgMHgwMDAwMDAxMA0KPiA+PiAtI2RlZmlu ZSAgRl9TREgzMF9TSU4gICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOA0KPiA+PiAtI2RlZmlu ZSAgRl9TREgzMF9BSEJfSU5DUl8xNiAgICAgICAgICAgMHgwMDAwMDAwNA0KPiA+PiAtI2RlZmlu ZSAgRl9TREgzMF9BSEJfSU5DUl84ICAgICAgICAgICAgMHgwMDAwMDAwMg0KPiA+PiAtI2RlZmlu ZSAgRl9TREgzMF9BSEJfSU5DUl80ICAgICAgICAgICAgMHgwMDAwMDAwMQ0KPiA+PiAtDQo+ID4+ IC0jZGVmaW5lIEZfU0RIMzBfVFVOSU5HX1NFVFRJTkcgICAgICAgICAweDEwOA0KPiA+PiAtI2Rl ZmluZSAgRl9TREgzMF9DTURfQ0hLX0RJUyAgICAgICAgICAgMHgwMDAxMDAwMA0KPiA+PiAtDQo+ ID4+IC0jZGVmaW5lIEZfU0RIMzBfSU9fQ09OVFJPTDIgICAgICAgICAgICAweDExNA0KPiA+PiAt I2RlZmluZSAgRl9TREgzMF9DUkVTX09fRE4gICAgICAgICAgICAgMHgwMDA4MDAwMA0KPiA+PiAt I2RlZmluZSAgRl9TREgzMF9NU0VMX09fMV84ICAgICAgICAgICAgMHgwMDA0MDAwMA0KPiA+PiAt DQo+ID4+IC0jZGVmaW5lIEZfU0RIMzBfRVNEX0NPTlRST0wgICAgICAgICAgICAweDEyNA0KPiA+ PiAtI2RlZmluZSAgRl9TREgzMF9FTU1DX1JTVCAgICAgICAgICAgICAgMHgwMDAwMDAwMg0KPiA+ PiAtI2RlZmluZSAgRl9TREgzMF9FTU1DX0hTMjAwICAgICAgICAgICAgMHgwMTAwMDAwMA0KPiA+ PiAtDQo+ID4+IC0jZGVmaW5lIEZfU0RIMzBfQ01EX0RBVF9ERUxBWSAgICAgICAgICAweDIwMA0K PiA+PiAtDQo+ID4+IC0jZGVmaW5lIEZfU0RIMzBfTUlOX0NMT0NLICAgICAgICAgICAgICA0MDAw MDANCj4gPj4gKyNpbmNsdWRlICJzZGhjaV9mX3NkaDMwLmgiDQo+ID4+DQo+ID4+ICBzdHJ1Y3Qg Zl9zZGhvc3RfcHJpdiB7DQo+ID4+ICAgICAgICAgc3RydWN0IGNsayAqY2xrX2lmYWNlOw0KPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaV9mX3NkaDMwLmggYi9kcml2ZXJz L21tYy9ob3N0L3NkaGNpX2Zfc2RoMzAuaA0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ PiBpbmRleCAwMDAwMDAwLi5mYzFhZDI4DQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIv ZHJpdmVycy9tbWMvaG9zdC9zZGhjaV9mX3NkaDMwLmgNCj4gPj4gQEAgLTAsMCArMSwzMiBAQA0K PiA+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8NCj4gPj4gKy8qDQo+ ID4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE1IEZ1aml0c3UgU2VtaWNvbmR1Y3Rvciwg THRkDQo+ID4+ICsgKiAgICAgICAgICAgICAgVmluY2VudCBZYW5nIDx2aW5jZW50LnlhbmdAdHcu ZnVqaXRzdS5jb20+DQo+ID4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTUgTGluYXJvIEx0ZCAgQW5k eSBHcmVlbiA8YW5keS5ncmVlbkBsaW5hcm8ub3JnPg0KPiA+PiArICogQ29weXJpZ2h0IChDKSAy MDE5IFNvY2lvbmV4dCBJbmMuDQo+ID4+ICsgKg0KPiA+PiArICovDQo+ID4+ICsNCj4gPj4gKy8q IEZfU0RIMzAgZXh0ZW5kZWQgQ29udHJvbGxlciByZWdpc3RlcnMgKi8NCj4gPj4gKyNkZWZpbmUg Rl9TREgzMF9BSEJfQ09ORklHICAgICAgMHgxMDANCj4gPj4gKyNkZWZpbmUgIEZfU0RIMzBfQUhC X0JJR0VEICAgICAgQklUKDYpDQo+ID4+ICsjZGVmaW5lICBGX1NESDMwX0JVU0xPQ0tfRE1BICAg IEJJVCg1KQ0KPiA+PiArI2RlZmluZSAgRl9TREgzMF9CVVNMT0NLX0VOICAgICBCSVQoNCkNCj4g Pj4gKyNkZWZpbmUgIEZfU0RIMzBfU0lOICAgICAgICAgICAgQklUKDMpDQo+ID4+ICsjZGVmaW5l ICBGX1NESDMwX0FIQl9JTkNSXzE2ICAgIEJJVCgyKQ0KPiA+PiArI2RlZmluZSAgRl9TREgzMF9B SEJfSU5DUl84ICAgICBCSVQoMSkNCj4gPj4gKyNkZWZpbmUgIEZfU0RIMzBfQUhCX0lOQ1JfNCAg ICAgQklUKDApDQo+ID4+ICsNCj4gPj4gKyNkZWZpbmUgRl9TREgzMF9UVU5JTkdfU0VUVElORyAg MHgxMDgNCj4gPj4gKyNkZWZpbmUgIEZfU0RIMzBfQ01EX0NIS19ESVMgICAgQklUKDE2KQ0KPiA+ PiArDQo+ID4+ICsjZGVmaW5lIEZfU0RIMzBfSU9fQ09OVFJPTDIgICAgIDB4MTE0DQo+ID4+ICsj ZGVmaW5lICBGX1NESDMwX0NSRVNfT19ETiAgICAgIEJJVCgxOSkNCj4gPj4gKyNkZWZpbmUgIEZf U0RIMzBfTVNFTF9PXzFfOCAgICAgQklUKDE4KQ0KPiA+PiArDQo+ID4+ICsjZGVmaW5lIEZfU0RI MzBfRVNEX0NPTlRST0wgICAgIDB4MTI0DQo+ID4+ICsjZGVmaW5lICAgICAgICAgRl9TREgzMF9F TU1DX1JTVCAgICAgICAgICAgICAgIEJJVCgxKQ0KPiA+PiArI2RlZmluZSAgRl9TREgzMF9DTURf REFUX0RFTEFZIEJJVCg5KQ0KPiA+PiArI2RlZmluZSAgICAgICAgIEZfU0RIMzBfRU1NQ19IUzIw MCAgICAgICAgICAgICBCSVQoMjQpDQo+ID4+ICsNCj4gPj4gKyNkZWZpbmUgRl9TREgzMF9NSU5f Q0xPQ0sgICAgICAgICAgICAgIDQwMDAwMA0KPiA+PiAtLQ0KPiA+PiAxLjkuMQ0KPiA+Pg0KPiA+ Pg0KPiA+IA0KDQotLSANClRha2FvIE9yaXRvIDxvcml0by50YWthb0Bzb2Npb25leHQuY29tPg0K