From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH v3] drm/i915/dp: DP audio API changes for MST Date: Sat, 13 Aug 2016 00:50:51 +0000 Message-ID: <1471050314.29947.9.camel@dk-H97M-D3H> References: <20160810142118.GT4329@intel.com> <1470858117-2321-1-git-send-email-dhinakaran.pandiyan@intel.com> <20160811062631.GW4329@intel.com> <1470900299.21929.14.camel@dk-H97M-D3H> <20160811073911.GE4329@intel.com> <1470976951.10941.30.camel@dk-H97M-D3H> <20160812051849.GT4329@intel.com> <1471048275.29947.2.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id C67C56E258 for ; Sat, 13 Aug 2016 00:50:53 +0000 (UTC) In-Reply-To: <1471048275.29947.2.camel@dk-H97M-D3H> Content-Language: en-US Content-ID: <812671BCB386A74F8DF231AFAC69CCC7@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" Cc: "intel-gfx@lists.freedesktop.org" , "libin.yang@linux.intel.com" List-Id: intel-gfx@lists.freedesktop.org T24gU2F0LCAyMDE2LTA4LTEzIGF0IDAwOjE2ICswMDAwLCBQYW5kaXlhbiwgRGhpbmFrYXJhbiB3 cm90ZToNCj4gT24gRnJpLCAyMDE2LTA4LTEyIGF0IDA4OjE4ICswMzAwLCBWaWxsZSBTeXJqw6Rs w6Qgd3JvdGU6DQo+ID4gT24gRnJpLCBBdWcgMTIsIDIwMTYgYXQgMDQ6Mjg6MDlBTSArMDAwMCwg UGFuZGl5YW4sIERoaW5ha2FyYW4gd3JvdGU6DQo+ID4gPiBPbiBUaHUsIDIwMTYtMDgtMTEgYXQg MTA6MzkgKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToNCj4gPiA+ID4gT24gVGh1LCBBdWcg MTEsIDIwMTYgYXQgMDc6MTA6MzlBTSArMDAwMCwgUGFuZGl5YW4sIERoaW5ha2FyYW4gd3JvdGU6 DQo+ID4gPiA+ID4gT24gVGh1LCAyMDE2LTA4LTExIGF0IDA5OjI2ICswMzAwLCBWaWxsZSBTeXJq w6Rsw6Qgd3JvdGU6DQo+ID4gPiA+ID4gPiBPbiBXZWQsIEF1ZyAxMCwgMjAxNiBhdCAxMjo0MTo1 N1BNIC0wNzAwLCBEaGluYWthcmFuIFBhbmRpeWFuIHdyb3RlOg0KPiA+ID4gPiA+ID4gPiBEUCBN U1QgcHJvdmlkZXMgdGhlIGNhcGFiaWxpdHkgdG8gc2VuZCBtdWx0aXBsZSB2aWRlbyBhbmQgYXVk aW8gc3RyZWFtcw0KPiA+ID4gPiA+ID4gPiB0aHJvdWdoIGEgc2luZ2xlIHBvcnQuIFRoaXMgcmVx dWlyZXMgdGhlIEFQSSdzIGJldHdlZW4gaTkxNSBhbmQgYXVkaW8NCj4gPiA+ID4gPiA+ID4gZHJp dmVycyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIG11bHRpcGxlIGF1ZGlvIGNhcGFibGUgZGlzcGxh eXMgdGhhdCBjYW4gYmUNCj4gPiA+ID4gPiA+ID4gY29ubmVjdGVkIHRvIGEgcG9ydC4gQ3VycmVu dGx5IG9ubHkgdGhlIHBvcnQgaWRlbnRpdHkgaXMgc2hhcmVkIGluIHRoZQ0KPiA+ID4gPiA+ID4g PiBBUElzLiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgTVNUIHdpdGggYW4gYWRkaXRpb25h bCBwYXJhbWV0ZXINCj4gPiA+ID4gPiA+ID4gJ2ludCBwaXBlJy4gIFRoZSBleGlzdGluZyBwYXJh bWV0ZXIgJ3BvcnQnIGRvZXMgbm90IGNoYW5nZSBpdCdzIG1lYW5pbmcuDQo+ID4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiBwaXBlID0NCj4gPiA+ID4gPiA+ID4gCU1TVAk6IGRpc3BsYXkgcGlw ZSB0aGF0IHRoZSBzdHJlYW0gb3JpZ2luYXRlcyBmcm9tDQo+ID4gPiA+ID4gPiA+IAlOb24tTVNU CTogLTENCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IEFmZmVjdGVkIEFQSXM6DQo+ID4g PiA+ID4gPiA+IHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMNCj4gPiA+ID4gPiA+ID4g LSAgICAgICBpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQs IGludCByYXRlKTsNCj4gPiA+ID4gPiA+ID4gKwlpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVj dCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBwaXBlLA0KPiA+ID4gPiA+ID4gPiArCSAgICAgaW50 IHJhdGUpOw0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gLSAgICAgICBpbnQgKCpnZXRf ZWxkKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBib29sICplbmFibGVkLA0KPiA+ID4gPiA+ ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhf Ynl0ZXMpOw0KPiA+ID4gPiA+ID4gPiArICAgICAgIGludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZp Y2UgKiwgaW50IHBvcnQsIGludCBwaXBlLA0KPiA+ID4gPiA+ID4gPiArCQkgICAgICAgYm9vbCAq ZW5hYmxlZCwgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsNCj4gPiA+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gPiA+IHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMN Cj4gPiA+ID4gPiA+ID4gLSAgICAgICB2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlv X3B0ciwgaW50IHBvcnQpOw0KPiA+ID4gPiA+ID4gPiArICAgICAgIHZvaWQgKCpwaW5fZWxkX25v dGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCwgaW50IHBpcGUpOw0KPiA+ID4gPiA+ID4g PiANCj4gPiA+ID4gPiA+ID4gVGhpcyBwYXRjaCBtYWtlcyBkdW1teSBjaGFuZ2VzIGluIHRoZSBh dWRpbyBkcml2ZXJzIChMaWJpbikgZm9yIGJ1aWxkIHRvDQo+ID4gPiA+ID4gPiA+IHN1Y2NlZWQu IFRoZSBhdWRpbyBzaWRlIGRyaXZlcnMgd2lsbCBzZW5kIHRoZSByaWdodCAncGlwZScgdmFsdWVz IGluDQo+ID4gPiA+ID4gPiA+IHBhdGNoZXMgdGhhdCB3aWxsIGZvbGxvdy4NCj4gPiA+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gPiA+IHYyOg0KPiA+ID4gPiA+ID4gPiBSZW5hbWVkIHRoZSBuZXcgQVBJ IHBhcmFtZXRlciBmcm9tICdkZXZfaWQnIHRvICdwaXBlJy4gKEppbSwgVmlsbGUpDQo+ID4gPiA+ ID4gPiA+IEluY2x1ZGVkIEFzb2MgZHJpdmVyIEFQSSBjb21wYXRpYmlsaXR5IGNoYW5nZXMgZnJv bSBKZWVqYS4NCj4gPiA+ID4gPiA+ID4gQWRkZWQgV0FSTl9PTigpIGZvciBpbnZhbGlkIHBpcGUg aW4gZ2V0X3NhdmVkX2VuY29kZXIoKS4gKFRha2FzaGkpDQo+ID4gPiA+ID4gPiA+IEFkZGVkIGNv bW1lbnQgZm9yIGF2X2VuY19tYXBbXSBkZWZpbml0aW9uLiAoVGFrYXNoaSkNCj4gPiA+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gPiA+IHYzOg0KPiA+ID4gPiA+ID4gPiBGaXhlZCBsb2dpYyBlcnJvciBp bnRyb2R1Y2VkIHdoaWxlIHJlbmFtaW5nICdkZXZfaWQnIGFzICdwaXBlJyAoVmlsbGUpDQo+ID4g PiA+ID4gPiA+IFJlbmFtZWQgZ2V0X3NhdmVkX2VuY29kZXIoKSB0byBnZXRfc2F2ZWRfZW5jKCkg dG8gcmVkdWNlIGxpbmUgbGVuZ3RoDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBTaWdu ZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVs LmNvbT4NCj4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgIHwgIDMgKy0NCj4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F1ZGlvLmMgfCA5MyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQ0KPiA+ID4gPiA+ID4gPiAgaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaCAgICAg ICB8ICA2ICstLQ0KPiA+ID4gPiA+ID4gPiAgaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oICAgICAg ICAgICB8IDExICsrKy0tDQo+ID4gPiA+ID4gPiA+ICBzb3VuZC9oZGEvaGRhY19pOTE1LmMgICAg ICAgICAgICAgIHwgIDkgKystLQ0KPiA+ID4gPiA+ID4gPiAgc291bmQvcGNpL2hkYS9wYXRjaF9o ZG1pLmMgICAgICAgICB8ICA3ICstLQ0KPiA+ID4gPiA+ID4gPiAgc291bmQvc29jL2NvZGVjcy9o ZGFjX2hkbWkuYyAgICAgICB8ICAyICstDQo+ID4gPiA+ID4gPiA+ICA3IGZpbGVzIGNoYW5nZWQs IDg2IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gPiA+ID4gPiA+IGluZGV4IGMzNmQx NzYuLjhlNGE4OGYgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgNCj4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaA0KPiA+ID4gPiA+ID4gPiBAQCAtMjAzNiw3ICsyMDM2LDggQEAgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgew0KPiA+ID4gPiA+ID4gPiAgCS8qIHBlcmZvcm0gUEhZIHN0YXRlIHNh bml0eSBjaGVja3M/ICovDQo+ID4gPiA+ID4gPiA+ICAJYm9vbCBjaHZfcGh5X2Fzc2VydFsyXTsN Cj4gPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpk aWdfcG9ydF9tYXBbSTkxNV9NQVhfUE9SVFNdOw0KPiA+ID4gPiA+ID4gPiArCS8qIFVzZWQgdG8g c2F2ZSB0aGUgcGlwZS10by1lbmNvZGVyIG1hcHBpbmcgZm9yIGF1ZGlvICovDQo+ID4gPiA+ID4g PiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbSTkxNV9NQVhfUElQRVNdOw0K PiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ICAJLyoNCj4gPiA+ID4gPiA+ID4gIAkgKiBO T1RFOiBUaGlzIGlzIHRoZSBkcmkxL3VtcyBkdW5nZW9uLCBkb24ndCBhZGQgc3R1ZmYgaGVyZS4g WW91ciBwYXRjaA0KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMNCj4g PiA+ID4gPiA+ID4gaW5kZXggZWYyMDg3NS4uYTc0NjdlYSAxMDA2NDQNCj4gPiA+ID4gPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYw0KPiA+ID4gPiA+ID4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jDQo+ID4gPiA+ID4gPiA+IEBA IC01MDAsNiArNTAwLDcgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpDQo+ID4gPiA+ID4gPiA+ICAJc3RydWN0IGk5MTVf YXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7DQo+ID4g PiA+ID4gPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBl bmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7DQo+ID4gPiA+ID4gPiA+ICAJZW51bSBwb3J0IHBvcnQg PSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsNCj4gPiA+ID4gPiA+ID4gKwllbnVtIHBpcGUgcGlwZSA9 IGNydGMtPnBpcGU7DQo+ID4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ID4gIAljb25uZWN0b3Ig PSBkcm1fc2VsZWN0X2VsZChlbmNvZGVyKTsNCj4gPiA+ID4gPiA+ID4gIAlpZiAoIWNvbm5lY3Rv cikNCj4gPiA+ID4gPiA+ID4gQEAgLTUyNCwxMiArNTI1LDE4IEBAIHZvaWQgaW50ZWxfYXVkaW9f Y29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQ0KPiA+ID4g PiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4 KTsNCj4gPiA+ID4gPiA+ID4gIAlpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgPSBjb25u ZWN0b3I7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gIAkvKiByZWZlcnJlZCBpbiBh dWRpbyBjYWxsYmFja3MgKi8NCj4gPiA+ID4gPiA+ID4gLQlkZXZfcHJpdi0+ZGlnX3BvcnRfbWFw W3BvcnRdID0gaW50ZWxfZW5jb2RlcjsNCj4gPiA+ID4gPiA+ID4gKwlkZXZfcHJpdi0+YXZfZW5j X21hcFtwaXBlXSA9IGludGVsX2VuY29kZXI7DQo+ID4gPiA+ID4gPiA+ICAJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ICsJ LyogYXVkaW8gZHJpdmVycyBleHBlY3QgcGlwZSA9IC0xIHRvIGluZGljYXRlIE5vbi1NU1QgY2Fz ZXMgKi8NCj4gPiA+ID4gPiA+ID4gKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9P VVRQVVRfRFBfTVNUKQ0KPiA+ID4gPiA+ID4gPiArCQlwaXBlID0gLTE7DQo+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4gIAlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29t cC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkNCj4gPiA+ID4gPiA+ID4gLQkJYWNvbXAtPmF1 ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLCAoaW50 KSBwb3J0KTsNCj4gPiA+ID4gPiA+ID4gKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3Rp ZnkoYWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLA0KPiA+ID4gPiA+ID4gPiArCQkJCQkJIChp bnQpIHBvcnQsIChpbnQpIHBpcGUpOw0KPiA+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gPiAg DQo+ID4gPiA+ID4gPiA+ICAvKioNCj4gPiA+ID4gPiA+ID4gQEAgLTU0MiwyMiArNTQ5LDI5IEBA IHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyKQ0KPiA+ID4gPiA+ID4gPiAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQ0KPiA+ID4gPiA+ID4gPiAgew0K PiA+ID4gPiA+ID4gPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9lbmNv ZGVyLT5iYXNlOw0KPiA+ID4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsNCj4gPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Ow0KPiA+ID4gPiA+ID4gPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4gPiA+ID4gPiA+ID4gIAlzdHJ1 Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVu dDsNCj4gPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsNCj4gPiA+ID4gPiA+ID4gIAllbnVtIHBv cnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Ow0KPiA+ID4gPiA+ID4gPiArCWVudW0gcGlw ZSBwaXBlID0gY3J0Yy0+cGlwZTsNCj4gPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gPiAgCWlm IChkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlKQ0KPiA+ID4gPiA+ID4gPiAg CQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlKGludGVsX2VuY29kZXIpOw0K PiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2 X211dGV4KTsNCj4gPiA+ID4gPiA+ID4gIAlpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3Ig PSBOVUxMOw0KPiA+ID4gPiA+ID4gPiAtCWRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF0gPSBO VUxMOw0KPiA+ID4gPiA+ID4gPiArCWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gTlVMTDsN Cj4gPiA+ID4gPiA+ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7DQo+ID4g PiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ID4gKwkvKiBhdWRpbyBkcml2ZXJzIGV4cGVjdCBwaXBl ID0gLTEgdG8gaW5kaWNhdGUgTm9uLU1TVCBjYXNlcyAqLw0KPiA+ID4gPiA+ID4gPiArCWlmIChp bnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EUF9NU1QpDQo+ID4gPiA+ID4gPiA+ ICsJCXBpcGUgPSAtMTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAgCWlmIChhY29t cCAmJiBhY29tcC0+YXVkaW9fb3BzICYmIGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5 KQ0KPiA+ID4gPiA+ID4gPiAtCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29t cC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsIChpbnQpIHBvcnQpOw0KPiA+ID4gPiA+ID4gPiArCQlh Y29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19w dHIsDQo+ID4gPiA+ID4gPiA+ICsJCQkJCQkgKGludCkgcG9ydCwgKGludCkgcGlwZSk7DQo+ID4g PiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ID4gIC8qKg0KPiA+ID4g PiA+ID4gPiBAQCAtNjMyLDE1ICs2NDYsMzkgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBv bmVudF9nZXRfY2RjbGtfZnJlcShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gPiA+ID4gPiA+ICAJ cmV0dXJuIGRldl9wcml2LT5jZGNsa19mcmVxOw0KPiA+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ ID4gPiAgDQo+ID4gPiA+ID4gPiA+IC1zdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5 bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ID4gPiA+ID4gPiA+IC0JCQkJCQlp bnQgcG9ydCwgaW50IHJhdGUpDQo+ID4gPiA+ID4gPiA+ICtzdGF0aWMgc3RydWN0IGludGVsX2Vu Y29kZXIgKmdldF9zYXZlZF9lbmMoc3RydWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbXSwN Cj4gPiA+ID4gPiA+ID4gKwkJCQkJICAgICAgIGludCBwb3J0LCBpbnQgcGlwZSkNCj4gPiA+ID4g PiA+ID4gK3sNCj4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7DQo+ ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKwlpZiAoV0FSTl9PTihwaXBlID49IEk5MTVf TUFYX1BJUEVTKSkNCj4gPiA+ID4gPiA+ID4gKwkJcmV0dXJuIE5VTEw7DQo+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4gKwkvKiBNU1QgKi8NCj4gPiA+ID4gPiA+ID4gKwlpZiAocGlwZSAh PSAtMSkNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gSSdkIG1ha2UgdGhhdCA8IDANCj4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+IFRoYW5rcyBmb3IgcmV2aWV3aW5nLg0KPiA+ID4gPiA+IERvIHlv dSBtZWFuIHRoaXM/IC0gaGFuZGxlIHRoZSBub24tTVNUIGJyYW5jaCBmaXJzdCB3aXRoIA0KPiA+ ID4gPiA+IA0KPiA+ID4gPiA+IGlmIChwaXBlIDwgMCl7IA0KPiA+ID4gPiA+IAlmb3JfZWFjaF9w aXBlKCl7DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gCQkuLi4NCj4gPiA+ID4gPiAJfQ0KPiA+ID4g PiA+IH0NCj4gPiA+ID4gPiBlbHNlIA0KPiA+ID4gPiA+IAlyZXR1cm4gYXZfZW5jX21hcFtwaXBl XTsNCj4gPiA+ID4gDQo+ID4gPiA+IFNvcnJ5LCBuby4gSSBsaWtlIHlvdXIgY3VycmVudCBjb2Rl IHN0cnVjdHVyZSwgc28gd2hhdCBJIHJlYWxseSBtZWFudA0KPiA+ID4gPiB3YXMgJ3BpcGUgPj0g MCcsIHNvOg0KPiA+ID4gPiANCj4gPiA+ID4gaWYgKHBpcGUgPj0gMCkNCj4gPiA+ID4gCXJldHVy biAuLi4NCj4gPiA+ID4gDQo+ID4gPiA+IGZvcl9lYWNoX3BpcGUoKQ0KPiA+ID4gPiAJLi4uDQo+ ID4gPiA+IAkNCj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IEknbGwgbWFrZSB0aGlzIGNoYW5nZS4N Cj4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiArCQlyZXR1cm4gYXZfZW5jX21hcFtw aXBlXTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArCS8qIE5vbi1NU1QgKi8NCj4g PiA+ID4gPiA+ID4gKwlmb3IgKHBpcGUgPSBQSVBFX0E7IHBpcGUgPCBJOTE1X01BWF9QSVBFUzsg cGlwZSsrKSB7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IGZvcl9lYWNoX3BpcGUoKSB3b3Vs ZCBiZSBuaWNlci4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiArCQlpZiAoIWF2X2VuY19t YXBbcGlwZV0pDQo+ID4gPiA+ID4gPiA+ICsJCQljb250aW51ZTsNCj4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPiArCQllbmNvZGVyID0gJmF2X2VuY19tYXBbcGlwZV0tPmJhc2U7DQo+ID4g PiA+ID4gPiA+ICsJCWlmIChwb3J0ID09IGVuY190b19kaWdfcG9ydChlbmNvZGVyKS0+cG9ydCkN Cj4gPiA+ID4gPiA+ID4gKwkJCXJldHVybiBhdl9lbmNfbWFwW3BpcGVdOw0KPiA+ID4gPiA+ID4g PiArCX0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArCXJldHVybiBOVUxMOw0KPiA+ ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICtzdGF0aWMgaW50 IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYs IGludCBwb3J0LA0KPiA+ID4gPiA+ID4gPiArCQkJCQkJaW50IHBpcGUsIGludCByYXRlKQ0KPiA+ ID4gPiA+ID4gPiAgew0KPiA+ID4gPiA+ID4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7DQo+ID4gPiA+ID4gPiA+ICAJc3RydWN0IGludGVs X2VuY29kZXIgKmludGVsX2VuY29kZXI7DQo+ID4gPiA+ID4gPiA+ICAJc3RydWN0IGludGVsX2Ny dGMgKmNydGM7DQo+ID4gPiA+ID4gPiA+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7 DQo+ID4gPiA+ID4gPiA+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRl dl9wcml2LT5hdWRpb19jb21wb25lbnQ7DQo+ID4gPiA+ID4gPiA+IC0JZW51bSBwaXBlIHBpcGUg PSBJTlZBTElEX1BJUEU7DQo+ID4gPiA+ID4gPiA+ICAJdTMyIHRtcDsNCj4gPiA+ID4gPiA+ID4g IAlpbnQgbjsNCj4gPiA+ID4gPiA+ID4gIAlpbnQgZXJyID0gMDsNCj4gPiA+ID4gPiA+ID4gQEAg LTY1NCwyNSArNjkyLDIwIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19h dWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ ID4gPiAgCWk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9wb3dlcihkZXYpOw0KPiA+ID4gPiA+ID4g PiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7DQo+ID4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ID4gIAkvKiAxLiBnZXQgdGhlIHBpcGUgKi8NCj4gPiA+ID4gPiA+ID4gLQlpbnRl bF9lbmNvZGVyID0gZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XTsNCj4gPiA+ID4gPiA+ID4g LQkvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0IGJlIE5VTEwgZm9yIERQIE1TVCAqLw0KPiA+ID4gPiA+ ID4gPiArCWludGVsX2VuY29kZXIgPSBnZXRfc2F2ZWRfZW5jKGRldl9wcml2LT5hdl9lbmNfbWFw LCBwb3J0LCBwaXBlKTsNCj4gPiA+ID4gPiA+ID4gIAlpZiAoIWludGVsX2VuY29kZXIgfHwgIWlu dGVsX2VuY29kZXItPmJhc2UuY3J0YyB8fA0KPiA+ID4gPiA+ID4gPiAgCSAgICBpbnRlbF9lbmNv ZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9IRE1JKSB7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4g PiA+IERpZCB3ZSBoYXZlIGEgZm9sbG93dXAgcGxhbm5lZCB0byBkZWFsIHdpdGggTVNUIGhlcmU/ IEkga25vdyB0aGVyZSdzDQo+ID4gPiA+ID4gPiB0aGF0IFNTVCBNL04gcGF0Y2ggZmxvYXRpbmcg YXJvdW5kLCBidXQgSSB0aGluayB3ZSdsbCB3YW50IGl0IGZvciBNU1QNCj4gPiA+ID4gPiA+IHRv by4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+IExvb2tzIGxpa2UgTGliaW4gWWFuZyBpcyB3b3Jr aW5nIG9uIHRoZSBEUCBwYXRjaCwgSSB3aWxsIGNoZWNrIHdpdGggaGltLg0KPiA+ID4gPiA+IA0K PiA+ID4gPiA+ID4gPiAtCQlEUk1fREVCVUdfS01TKCJubyB2YWxpZCBwb3J0ICVjXG4iLCBwb3J0 X25hbWUocG9ydCkpOw0KPiA+ID4gPiA+ID4gPiArCQlEUk1fREVCVUdfS01TKCJOb3QgdmFsaWQg Zm9yIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7DQo+ID4gPiA+ID4gPiA+ICAJCWVyciA9 IC1FTk9ERVY7DQo+ID4gPiA+ID4gPiA+ICAJCWdvdG8gdW5sb2NrOw0KPiA+ID4gPiA+ID4gPiAg CX0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArCS8qIHBpcGUgcGFzc2VkIGZyb20g dGhlIGF1ZGlvIGRyaXZlciB3aWxsIGJlIC0xIGZvciBOb24tTVNUIGNhc2UgKi8NCj4gPiA+ID4g PiA+ID4gIAljcnRjID0gdG9faW50ZWxfY3J0YyhpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpOw0K PiA+ID4gPiA+ID4gPiAgCXBpcGUgPSBjcnRjLT5waXBlOw0KPiA+ID4gPiA+ID4gPiAtCWlmIChw aXBlID09IElOVkFMSURfUElQRSkgew0KPiA+ID4gPiA+ID4gPiAtCQlEUk1fREVCVUdfS01TKCJu byBwaXBlIGZvciB0aGUgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsNCj4gPiA+ID4gPiA+ ID4gLQkJZXJyID0gLUVOT0RFVjsNCj4gPiA+ID4gPiA+ID4gLQkJZ290byB1bmxvY2s7DQo+ID4g PiA+ID4gPiA+IC0JfQ0KPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+IC0JRFJNX0RFQlVH X0tNUygicGlwZSAlYyBjb25uZWN0cyBwb3J0ICVjXG4iLA0KPiA+ID4gPiA+ID4gPiAtCQkJCSAg cGlwZV9uYW1lKHBpcGUpLCBwb3J0X25hbWUocG9ydCkpOw0KPiA+ID4gPiA+ID4gPiAgCW1vZGUg PSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7DQo+ID4gPiA+ID4gPiA+ICANCj4g PiA+ID4gPiA+ID4gIAkvKiBwb3J0IG11c3QgYmUgdmFsaWQgbm93LCBvdGhlcndpc2UgdGhlIHBp cGUgd2lsbCBiZSBpbnZhbGlkICovDQo+ID4gPiA+ID4gPiA+IEBAIC03MDgsNyArNzQxLDcgQEAg c3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRl dmljZSAqZGV2LA0KPiA+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4g PiA+ICBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmlj ZSAqZGV2LCBpbnQgcG9ydCwNCj4gPiA+ID4gPiA+ID4gLQkJCQkJYm9vbCAqZW5hYmxlZCwNCj4g PiA+ID4gPiA+ID4gKwkJCQkJaW50IHBpcGUsIGJvb2wgKmVuYWJsZWQsDQo+ID4gPiA+ID4gPiA+ ICAJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcykNCj4gPiA+ID4gPiA+ID4g IHsNCj4gPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXZfdG9faTkxNShkZXYpOw0KPiA+ID4gPiA+ID4gPiBAQCAtNzE3LDE2ICs3NTAsMjAgQEAgc3Rh dGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRldiwg aW50IHBvcnQsDQo+ID4gPiA+ID4gPiA+ICAJaW50IHJldCA9IC1FSU5WQUw7DQo+ID4gPiA+ID4g PiA+ICANCj4gPiA+ID4gPiA+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0K PiA+ID4gPiA+ID4gPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3Bv cnRdOw0KPiA+ID4gPiA+ID4gPiAtCS8qIGludGVsX2VuY29kZXIgbWlnaHQgYmUgTlVMTCBmb3Ig RFAgTVNUICovDQo+ID4gPiA+ID4gPiA+IC0JaWYgKGludGVsX2VuY29kZXIpIHsNCj4gPiA+ID4g PiA+ID4gLQkJcmV0ID0gMDsNCj4gPiA+ID4gPiA+ID4gLQkJKmVuYWJsZWQgPSBpbnRlbF9lbmNv ZGVyLT5hdWRpb19jb25uZWN0b3IgIT0gTlVMTDsNCj4gPiA+ID4gPiA+ID4gLQkJaWYgKCplbmFi bGVkKSB7DQo+ID4gPiA+ID4gPiA+IC0JCQllbGQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25u ZWN0b3ItPmVsZDsNCj4gPiA+ID4gPiA+ID4gLQkJCXJldCA9IGRybV9lbGRfc2l6ZShlbGQpOw0K PiA+ID4gPiA+ID4gPiAtCQkJbWVtY3B5KGJ1ZiwgZWxkLCBtaW4obWF4X2J5dGVzLCByZXQpKTsN Cj4gPiA+ID4gPiA+ID4gLQkJfQ0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsJaW50 ZWxfZW5jb2RlciA9IGdldF9zYXZlZF9lbmMoZGV2X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIHBp cGUpOw0KPiA+ID4gPiA+ID4gPiArCWlmICghaW50ZWxfZW5jb2Rlcikgew0KPiA+ID4gPiA+ID4g PiArCQlEUk1fREVCVUdfS01TKCJOb3QgdmFsaWQgZm9yIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShw b3J0KSk7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFByaW50IHRoZSBwaXBlIG5hbWUgdG9v LCBpZiB3ZSBoYXZlIGEgdmFsaWQgcGlwZT8NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiAr CQltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7DQo+ID4gPiA+ID4gPiA+ICsJCXJl dHVybiByZXQ7DQo+ID4gPiA+ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4g PiA+ICsJcmV0ID0gMDsNCj4gPiA+ID4gPiA+ID4gKwkqZW5hYmxlZCA9IGludGVsX2VuY29kZXIt PmF1ZGlvX2Nvbm5lY3RvciAhPSBOVUxMOw0KPiA+ID4gPiA+ID4gPiArCWlmICgqZW5hYmxlZCkg ew0KPiA+ID4gPiA+ID4gPiArCQllbGQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3It PmVsZDsNCj4gPiA+ID4gPiA+ID4gKwkJcmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7DQo+ID4gPiA+ ID4gPiA+ICsJCW1lbWNweShidWYsIGVsZCwgbWluKG1heF9ieXRlcywgcmV0KSk7DQo+ID4gPiA+ ID4gPiA+ICAJfQ0KPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ICAJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vaTkxNV9jb21wb25lbnQuaCBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgNCj4g PiA+ID4gPiA+ID4gaW5kZXggYjQ2ZmEwZS4uNTQ1YzZlMCAxMDA2NDQNCj4gPiA+ID4gPiA+ID4g LS0tIGEvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaA0KPiA+ID4gPiA+ID4gPiArKysgYi9p bmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oDQo+ID4gPiA+ID4gPiA+IEBAIC02NCw3ICs2NCw3 IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgew0KPiA+ID4gPiA+ID4gPiAgCSAq IENhbGxlZCBmcm9tIGF1ZGlvIGRyaXZlci4gQWZ0ZXIgYXVkaW8gZHJpdmVyIHNldHMgdGhlDQo+ ID4gPiA+ID4gPiA+ICAJICogc2FtcGxlIHJhdGUsIGl0IHdpbGwgY2FsbCB0aGlzIGZ1bmN0aW9u IHRvIHNldCBuL2N0cw0KPiA+ID4gPiA+ID4gPiAgCSAqLw0KPiA+ID4gPiA+ID4gPiAtCWludCAo KnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHJhdGUpOw0K PiA+ID4gPiA+ID4gPiArCWludCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBp bnQgcG9ydCwgaW50IHBpcGUsIGludCByYXRlKTsNCj4gPiA+ID4gPiA+ID4gIAkvKioNCj4gPiA+ ID4gPiA+ID4gIAkgKiBAZ2V0X2VsZDogZmlsbCB0aGUgYXVkaW8gc3RhdGUgYW5kIEVMRCBieXRl cyBmb3IgdGhlIGdpdmVuIHBvcnQNCj4gPiA+ID4gPiA+ID4gIAkgKg0KPiA+ID4gPiA+ID4gPiBA QCAtNzcsNyArNzcsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzIHsNCj4gPiA+ ID4gPiA+ID4gIAkgKiBOb3RlIHRoYXQgdGhlIHJldHVybmVkIHNpemUgbWF5IGJlIG92ZXIgQG1h eF9ieXRlcy4gIFRoZW4gaXQNCj4gPiA+ID4gPiA+ID4gIAkgKiBpbXBsaWVzIHRoYXQgb25seSBh IHBhcnQgb2YgRUxEIGhhcyBiZWVuIGNvcGllZCB0byB0aGUgYnVmZmVyLg0KPiA+ID4gPiA+ID4g PiAgCSAqLw0KPiA+ID4gPiA+ID4gPiAtCWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwg aW50IHBvcnQsIGJvb2wgKmVuYWJsZWQsDQo+ID4gPiA+ID4gPiA+ICsJaW50ICgqZ2V0X2VsZCko c3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsIGJvb2wgKmVuYWJsZWQsDQo+ID4g PiA+ID4gPiA+ICAJCSAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpOw0K PiA+ID4gPiA+ID4gPiAgfTsNCj4gPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gPiBAQCAtOTcs NyArOTcsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzIHsNCj4gPiA+ ID4gPiA+ID4gIAkgKiBzdGF0dXMgYWNjb3JkaW5nbHkgKGV2ZW4gd2hlbiB0aGUgSERBIGNvbnRy b2xsZXIgaXMgaW4gcG93ZXIgc2F2ZQ0KPiA+ID4gPiA+ID4gPiAgCSAqIG1vZGUpLg0KPiA+ID4g PiA+ID4gPiAgCSAqLw0KPiA+ID4gPiA+ID4gPiAtCXZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9p ZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCk7DQo+ID4gPiA+ID4gPiA+ICsJdm9pZCAoKnBpbl9lbGRf bm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBpbnQgcGlwZSk7DQo+ID4gPiA+ID4g PiA+ICB9Ow0KPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ICAvKioNCj4gPiA+ID4gPiA+ ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaCBiL2luY2x1ZGUvc291bmQv aGRhX2k5MTUuaA0KPiA+ID4gPiA+ID4gPiBpbmRleCA3OTZjYWJmLi4wN2ZkNjRlIDEwMDY0NA0K PiA+ID4gPiA+ID4gPiAtLS0gYS9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgNCj4gPiA+ID4gPiA+ ID4gKysrIGIvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oDQo+ID4gPiA+ID4gPiA+IEBAIC0xMCw4 ICsxMCw5IEBADQo+ID4gPiA+ID4gPiA+ICBpbnQgc25kX2hkYWNfc2V0X2NvZGVjX3dha2V1cChz dHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOw0KPiA+ID4gPiA+ID4gPiAgaW50IHNu ZF9oZGFjX2Rpc3BsYXlfcG93ZXIoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxlKTsN Cj4gPiA+ID4gPiA+ID4gIHZvaWQgc25kX2hkYWNfaTkxNV9zZXRfYmNsayhzdHJ1Y3QgaGRhY19i dXMgKmJ1cyk7DQo+ID4gPiA+ID4gPiA+IC1pbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0 cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKTsNCj4gPiA+ ID4gPiA+ID4gLWludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAq Y29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4gPiA+ID4gPiA+ICtpbnQgc25kX2hkYWNfc3luY19h dWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4g PiA+ID4gPiA+ICsJCQkgICAgIGludCBwaXBlLCBpbnQgcmF0ZSk7DQo+ID4gPiA+ID4gPiA+ICtp bnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFf bmlkX3QgbmlkLCBpbnQgcGlwZSwNCj4gPiA+ID4gPiA+ID4gIAkJCSAgIGJvb2wgKmF1ZGlvX2Vu YWJsZWQsIGNoYXIgKmJ1ZmZlciwgaW50IG1heF9ieXRlcyk7DQo+ID4gPiA+ID4gPiA+ICBpbnQg c25kX2hkYWNfaTkxNV9pbml0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsNCj4gPiA+ID4gPiA+ID4g IGludCBzbmRfaGRhY19pOTE1X2V4aXQoc3RydWN0IGhkYWNfYnVzICpidXMpOw0KPiA+ID4gPiA+ ID4gPiBAQCAtMjksMTMgKzMwLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzbmRfaGRhY19pOTE1 X3NldF9iY2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVzKQ0KPiA+ID4gPiA+ID4gPiAgew0KPiA+ID4g PiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gPiAgc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNfc3lu Y19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsDQo+ID4gPiA+ID4gPiA+IC0J CQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQ0KPiA+ID4gPiA+ID4gPiArCQkJCQkgICBo ZGFfbmlkX3QgbmlkLCBpbnQgcGlwZSwgaW50IHJhdGUpDQo+ID4gPiA+ID4gPiA+ICB7DQo+ID4g PiA+ID4gPiA+ICAJcmV0dXJuIDA7DQo+ID4gPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gPiA+ICBz dGF0aWMgaW5saW5lIGludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2Rldmlj ZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4gPiA+ID4gPiA+IC0JCQkJCSBib29sICphdWRp b19lbmFibGVkLCBjaGFyICpidWZmZXIsDQo+ID4gPiA+ID4gPiA+IC0JCQkJCSBpbnQgbWF4X2J5 dGVzKQ0KPiA+ID4gPiA+ID4gPiArCQkJCQkgaW50IHBpcGUsIGJvb2wgKmF1ZGlvX2VuYWJsZWQs DQo+ID4gPiA+ID4gPiA+ICsJCQkJCSBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpDQo+ID4g PiA+ID4gPiA+ICB7DQo+ID4gPiA+ID4gPiA+ICAJcmV0dXJuIC1FTk9ERVY7DQo+ID4gPiA+ID4g PiA+ICB9DQo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9zb3VuZC9oZGEvaGRhY19pOTE1LmMg Yi9zb3VuZC9oZGEvaGRhY19pOTE1LmMNCj4gPiA+ID4gPiA+ID4gaW5kZXggYzlhZjAyMi4uYjk5 OTk0YiAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tIGEvc291bmQvaGRhL2hkYWNfaTkxNS5jDQo+ ID4gPiA+ID4gPiA+ICsrKyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYw0KPiA+ID4gPiA+ID4gPiBA QCAtMjAxLDcgKzIwMSw4IEBAIHN0YXRpYyBpbnQgcGluMnBvcnQoc3RydWN0IGhkYWNfZGV2aWNl ICpjb2RlYywgaGRhX25pZF90IHBpbl9uaWQpDQo+ID4gPiA+ID4gPiA+ICAgKiBUaGlzIGZ1bmN0 aW9uIHNldHMgTi9DVFMgdmFsdWUgYmFzZWQgb24gdGhlIGdpdmVuIHNhbXBsZSByYXRlLg0KPiA+ ID4gPiA+ID4gPiAgICogUmV0dXJucyB6ZXJvIGZvciBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVy cm9yIGNvZGUuDQo+ID4gPiA+ID4gPiA+ICAgKi8NCj4gPiA+ID4gPiA+ID4gLWludCBzbmRfaGRh Y19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5p ZCwgaW50IHJhdGUpDQo+ID4gPiA+ID4gPiA+ICtpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRl KHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4gPiA+ID4gPiA+ ICsJCQkgICAgIGludCBwaXBlLCBpbnQgcmF0ZSkNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g SSB0aG91Z2h0IHlvdSdkIHN0aWxsIHdhbnQgdG8gY2FsbCBpdCAnZGV2X2lkJyBvbiB0aGUgaGRh IHNpZGUsIGFuZCBqdXN0DQo+ID4gPiA+ID4gPiBkbyB0aGUgZGV2X2lkLT5waXBlIGNvbnZlcnNp b24gaGVyZSBuZXh0IHRvIHRoZSBwaW4tPnBvcnQgY29udmVyc2lvbj8NCj4gPiA+ID4gPiA+IEp1 c3QgZmlndXJlZCB0aGF0IHdvdWxkIGJlIGxlc3MgY29uZnVzaW5nIGZvciBwZW9wbGUgd2hvIGFy ZSBqdXN0IGZhbWlsaWFyDQo+ID4gPiA+ID4gPiB3aXRoIGhkYSBhbmQgbm90IGk5MTUuDQo+ID4g PiA+ID4gPiANCj4gPiA+ID4gPiBZZWFoLCB0aGF0IG1ha2VzIHNlbnNlLiANCj4gPiA+ID4gPiAN Cj4gPiA+ID4gPiA+IEFueXdheXMsIHRoZSBwYXRjaCBsb29rcyBwcmV0dHkgZ29vZCB0byBtZSBm cm9tIHRoZSBpOTE1IFBPVi4gV2hldGhlcg0KPiA+ID4gPiA+ID4geW91IHdhbnQgdG8gZG8gdGhv c2Ugc21hbGwgY2hhbmdlcyBJIHByb3Bvc2VkIGlzIHVwIHRvIHlvdSwgYW5kIGVpdGhlcg0KPiA+ ID4gPiA+ID4gd2F5IHRoZSBpOTE1IHBhcnRzIGFyZQ0KPiA+ID4gPiA+ID4gUmV2aWV3ZWQtYnk6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+DQo+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBJIGhhdmUgYXNzdW1lZCBlbmNfdG9fZGlnX3Bv cnQoKSB3b3JrcyBmb3IgTVNUIGVuY29kZXJzLiBEbyB5b3UgdGhpbmsNCj4gPiA+ID4gPiBpdCdz IGdvb2QgaWRlYSB0byBoYXZlIHRoaXMNCj4gPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9hcmNoaXZlcy9pbnRlbC1nZngvMjAxNi1BdWd1c3QvMTAyOTk0Lmh0bWwNCj4gPiA+ ID4gPiBub3c/DQo+ID4gPiA+IA0KPiA+ID4gPiBPaCBJIGZvcmdvdCBhYm91dCB0aGF0IHBhcnQu IEknbSBub3QgcmVhbGx5IGV4Y2l0ZWQgYWJvdXQgdGhhdCBwYXRjaC4NCj4gPiA+ID4gSSdkIHBy ZWZlciB0aGF0IHBlb3BsZSBoYXZlIHRvIHRoaW5rIGEgYml0IHdoZW4gZGVhbGluZyB3aXRoIE1T VA0KPiA+ID4gPiBlbmNvZGVycywgb3RoZXJ3aXNlIHRoZXkgbWlnaHQgYXNzdW1lIHRoZXkgd29y ayBqdXN0IGxpa2UgYW55IG90aGVyDQo+ID4gPiA+IGVuY29kZXIuDQo+ID4gPiA+IA0KPiA+ID4g PiBTbyBJJ2QgcHJlZmVyIHRoYXQgeW91IGV4cGxpY2l0bHkgaGFuZGxlIHRoZSBNU1QgY2FzZSB3 aGVuIGxvb2tpbmcgdXANCj4gPiA+ID4gdGhlIGVuY29kZXIuIEZvciB5b3VyIGF1ZGlvIHVzZSBj YXNlLCBJIHRoaW5rIHlvdSBqdXN0IG5lZWQgdGhlICdwb3J0Jw0KPiA+ID4gPiBpbmZvcm1hdGlv biBmcm9tIHRoZSBkaWdfcG9ydCwgbm8/IEkgdGhpbmsgbWFraW5nIHRoYXQgcGFydCBnZW5lcmlj IGlzbid0DQo+ID4gPiA+IGEgaHVnZSBwcm9ibGVtIHNpbmNlIHRoYXQgd2F5IGF0IGxlYXN0IHlv dSdyZSBub3QgZ2V0dGluZyB5b3VyIGhhbmRzDQo+ID4gPiA+ICBvbiBhIGRpZ19wb3J0IHN0cnVj dHVyZSB0aGF0IHlvdSBkb24ndCByZWFsbHkgb3duLg0KPiA+ID4gPiANCj4gPiA+ID4gU28geW91 IGNvdWxkIGFsbW9zdCB1c2UgaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoKSwgZXhjZXB0IHVz aW5nIGENCj4gPiA+ID4gRERJIHNwZWNpZmljIGZ1bmN0aW9uIGluIGdlbmVyaWMgY29kZSBpc24n dCB2ZXJ5IG5pY2UuIFdlIGNvdWxkIGV4dHJhY3QNCj4gPiA+ID4gdGhlIGdlbmVyaWMgcGFydCB0 byBhIHNlcGFyYXRlIGZ1bmN0aW9uLCBsaWtlIHNvOg0KPiA+ID4gPiANCj4gPiA+ID4gZW51bSBw b3J0IGludGVsX2VuY29kZXJfZ2V0X3BvcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp DQo+ID4gPiA+IHsNCj4gPiA+ID4gICAgICAgICBzd2l0Y2ggKGVuY29kZXItPnR5cGUpIHsNCj4g PiA+ID4gICAgICAgICBjYXNlIElOVEVMX09VVFBVVF9EUF9NU1Q6DQo+ID4gPiA+ICAgICAgICAg ICAgICAgICByZXR1cm4gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSktPnByaW1hcnktPnBvcnQ7 DQo+ID4gPiA+ICAgICAgICAgY2FzZSBJTlRFTF9PVVRQVVRfRFA6DQo+ID4gPiA+ICAgICAgICAg Y2FzZSBJTlRFTF9PVVRQVVRfRURQOg0KPiA+ID4gPiAgICAgICAgIGNhc2UgSU5URUxfT1VUUFVU X0hETUk6DQo+ID4gPiA+ICAgICAgICAgY2FzZSBJTlRFTF9PVVRQVVRfVU5LTk9XTjoNCj4gPiA+ ID4gICAgICAgICAgICAgICAgIHJldHVybiBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2Up LT5wb3J0Ow0KPiA+ID4gPiAgICAgICAgIGRlZmF1bHQ6DQo+ID4gPiA+ICAgICAgICAgICAgICAg ICBNSVNTSU5HX0NBU0UoZW5jb2Rlci0+dHlwZSk7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBy ZXR1cm4gUE9SVF9BOw0KPiA+ID4gPiAgICAgICAgIH0NCj4gPiA+ID4gfQ0KPiA+ID4gPiANCj4g PiA+ID4gZW51bSBwb3J0IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQ0KPiA+ID4gPiB7DQo+ID4gPiA+ICAgICAgICAgc3dpdGNoIChlbmNv ZGVyLT50eXBlKSB7DQo+ID4gPiA+ICAgICAgICAgY2FzZSBJTlRFTF9PVVRQVVRfQU5BTE9HOg0K PiA+ID4gPiAJCXJldHVybiBQT1JUX0U7DQo+ID4gPiA+ICAgICAgICAgZGVmYXVsdDoNCj4gPiA+ ID4gCQlyZXR1cm4gaW50ZWxfZW5jb2Rlcl9nZXRfcG9ydChlbmNvZGVyKTsNCj4gPiA+ID4gICAg ICAgICB9DQo+ID4gPiA+IH0NCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBJIGxpa2UgdGhlIGlkZWEg b2Ygbm90IHBhc3NpbmcgdGhlIHBvaW50ZXIgdG8gaW50ZWxfZGlnX3BvcnQuIEJ1dCwgdGhlDQo+ ID4gPiBnZW5lcmljIG5hbWluZyBvZiBpbnRlbF9lbmNvZGVyX2dldF9wb3J0KCkgc291bmRzIGxp a2UgaXQgc2hvdWxkIGhhbmRsZQ0KPiA+ID4gRERJIGFuZCBOb24tRERJIHBsYXRmb3Jtcy4gQ2Fu IHdlIGp1c3QgaGF2ZSBpbnRlbF9lbmNvZGVyX2dldF9wb3J0KCk/DQo+ID4gPiBJT1csIHJlbmFt ZSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydCgpIHRvIGludGVsX2VuY29kZXJfZ2V0X3BvcnQo KSBhbmQNCj4gPiA+IG1vdmUgaXQgb3V0IG9mIGludGVsX2RkaS5jPw0KPiA+IA0KPiA+IFRoYXQn cyB3aGF0IEkganVzdCBkZXNjcmliZWQgZXNzZW50aWFsbHkuIFRoZSBvbmx5IGNhdGNoIGlzIHRo YXQgdGhlIEZESQ0KPiA+IHBvcnQgRSBjYXNlIHNob3VsZCBzdGF5IGluIHRoZSBEREkgY29kZSBh bmQgbm90IGJlIG1vdmVkIHRvIGdlbmVyaWMNCj4gPiBjb2RlLiBIZW5jZSBJIHN1Z2dlc3RlZCBz cGxpdHRpbmcgaXQgdXAuDQo+ID4gDQo+IA0KPiBUaGlzIGlzIHdoYXQgSSBtZWFudCAtDQo+IA0K PiBpbnRlbF9nZXRfZW5jb2Rlcl9wb3J0KCkgaXMgdGhlIGdlbmVyaWMgY2F0Y2hhbGwgZnVuY3Rp b24sIHdlIHNob3VsZA0KPiBleHBlY3QgaXQgdG8gaGFuZGxlIGFuYWxvZyBlbmNvZGVycyBhcyB3 ZWxsIGFuZCBsZWF2ZSB0aGUgRERJIHNwZWNpZmljDQo+IGNhc2UgdG8gdGhlIERESSBmdW5jdGlv bi4NCj4gDQo+IGVudW0gcG9ydCBpbnRlbF9nZXRfZW5jb2Rlcl9wb3J0KHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQ0KPiB7DQo+ICAgICAgICAgc3dpdGNoIChlbmNvZGVyLT50eXBlKSB7 DQo+ICAgICAgICAgY2FzZSBJTlRFTF9PVVRQVVRfRFBfTVNUOg0KPiAgICAgICAgICAgICAgICAg cmV0dXJuIGVuY190b19tc3QoJmVuY29kZXItPmJhc2UpLT5wcmltYXJ5LT5wb3J0Ow0KPiAgICAg ICAgIGNhc2UgSU5URUxfT1VUUFVUX0RQOg0KPiAgICAgICAgIGNhc2UgSU5URUxfT1VUUFVUX0VE UDoNCj4gICAgICAgICBjYXNlIElOVEVMX09VVFBVVF9IRE1JOg0KPiAgICAgICAgIGNhc2UgSU5U RUxfT1VUUFVUX1VOS05PV046DQo+ICAgICAgICAgICAgICAgICByZXR1cm4gZW5jX3RvX2RpZ19w b3J0KCZlbmNvZGVyLT5iYXNlKS0+cG9ydDsNCj4gICAgICAgICBjYXNlIElOVEVMX09VVFBVVF9B TkFMT0c6DQo+ICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZWxfZGRpX2dldF9hbmFsb2dfZW5j b2Rlcl9wb3J0KGVuY29kZXIpOw0KPiAgICAgICAgIGRlZmF1bHQ6DQo+ICAgICAgICAgICAgICAg ICBNSVNTSU5HX0NBU0UoZW5jb2Rlci0+dHlwZSk7DQo+ICAgICAgICAgICAgICAgICByZXR1cm4g UE9SVF9BOw0KPiAgICAgICAgIH0NCj4gfQ0KPiANCj4gDQo+IGVudW0gcG9ydCBpbnRlbF9kZGlf Z2V0X2FuYWxvZ19lbmNvZGVyX3BvcnQoc3RydWN0IGludGVsX2VuY29kZXINCj4gKmVuY29kZXIp DQo+IHsNCj4gICAgIHJldHVybiBQT1JUX0U7DQo+IH0NCj4gDQo+IA0KKlJlbW92aW5nIHRoZSBh dWRpbyBsaXN0IGZyb20gY2MgYXMgdGhpcyBpcyBpOTE1IHNwZWNpZmljLg0KDQpTb3JyeSwgbm8g cGFyYW1ldGVycyBmb3IgaW50ZWxfZGRpX2dldF9hbmFsb2dfZW5jb2Rlcl9wb3J0KCkNCg0KDQo+ ID4gPiANCj4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gb3IgeW91IGNvdWxkIGp1c3QgeW91ciBv d24gZnVuY3Rpb24gZm9yIGludGVsX2F1ZGlvLmMgYXQgdGhpcyB0aW1lLCBsaWtlOg0KPiA+ID4g PiANCj4gPiA+ID4gc3RhdGljIGVudW0gcG9ydCBlbmNvZGVyX2dldF9wb3J0KGVuY29kZXIpDQo+ ID4gPiA+IHsNCj4gPiA+ID4gCWlmIChlbmNvZGVyLT50eXBlID09IE1TVDsNCj4gPiA+ID4gCQly ZXR1cm4gZW5jX3RvX21zdCgpLi4uOw0KPiA+ID4gPiAJZWxzZQ0KPiA+ID4gPiAJCXJldHVybiBl bmNfdG9fZGlnX3BvcnQoKS4uLjsNCj4gPiA+ID4gfQ0KPiA+ID4gPiAJDQo+ID4gPiA+IA0KPiA+ ID4gPiANCj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ICB7DQo+ID4gPiA+ID4gPiA+ICAJc3Ry dWN0IGhkYWNfYnVzICpidXMgPSBjb2RlYy0+YnVzOw0KPiA+ID4gPiA+ID4gPiAgCXN0cnVjdCBp OTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBidXMtPmF1ZGlvX2NvbXBvbmVudDsNCj4gPiA+ ID4gPiA+ID4gQEAgLTIxMiw3ICsyMTMsNyBAQCBpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRl KHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQ0KPiA+ ID4gPiA+ID4gPiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsNCj4gPiA+ID4gPiA+ID4g IAlpZiAocG9ydCA8IDApDQo+ID4gPiA+ID4gPiA+ICAJCXJldHVybiAtRUlOVkFMOw0KPiA+ID4g PiA+ID4gPiAtCXJldHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlvX3JhdGUoYWNvbXAtPmRldiwg cG9ydCwgcmF0ZSk7DQo+ID4gPiA+ID4gPiA+ICsJcmV0dXJuIGFjb21wLT5vcHMtPnN5bmNfYXVk aW9fcmF0ZShhY29tcC0+ZGV2LCBwb3J0LCBwaXBlLCByYXRlKTsNCj4gPiA+ID4gPiA+ID4gIH0N Cj4gPiA+ID4gPiA+ID4gIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0 ZSk7DQo+ID4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ID4gQEAgLTIzNiw3ICsyMzcsNyBAQCBF WFBPUlRfU1lNQk9MX0dQTChzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUpOw0KPiA+ID4gPiA+ID4g PiAgICogdGh1cyBpdCBtYXkgYmUgb3ZlciBAbWF4X2J5dGVzLiAgSWYgaXQncyBvdmVyIEBtYXhf Ynl0ZXMsIGl0IGltcGxpZXMNCj4gPiA+ID4gPiA+ID4gICAqIHRoYXQgb25seSBhIHBhcnQgb2Yg RUxEIGJ5dGVzIGhhdmUgYmVlbiBmZXRjaGVkLg0KPiA+ID4gPiA+ID4gPiAgICovDQo+ID4gPiA+ ID4gPiA+IC1pbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNv ZGVjLCBoZGFfbmlkX3QgbmlkLA0KPiA+ID4gPiA+ID4gPiAraW50IHNuZF9oZGFjX2Fjb21wX2dl dF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHBpcGUs DQo+ID4gPiA+ID4gPiA+ICAJCQkgICBib29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZmZXIs IGludCBtYXhfYnl0ZXMpDQo+ID4gPiA+ID4gPiA+ICB7DQo+ID4gPiA+ID4gPiA+ICAJc3RydWN0 IGhkYWNfYnVzICpidXMgPSBjb2RlYy0+YnVzOw0KPiA+ID4gPiA+ID4gPiBAQCAtMjQ5LDcgKzI1 MCw3IEBAIGludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29k ZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4gPiA+ID4gPiA+ICAJcG9ydCA9IHBpbjJwb3J0KGNvZGVj LCBuaWQpOw0KPiA+ID4gPiA+ID4gPiAgCWlmIChwb3J0IDwgMCkNCj4gPiA+ID4gPiA+ID4gIAkJ cmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+ID4gPiA+IC0JcmV0dXJuIGFjb21wLT5vcHMtPmdldF9l bGQoYWNvbXAtPmRldiwgcG9ydCwgYXVkaW9fZW5hYmxlZCwNCj4gPiA+ID4gPiA+ID4gKwlyZXR1 cm4gYWNvbXAtPm9wcy0+Z2V0X2VsZChhY29tcC0+ZGV2LCBwb3J0LCBwaXBlLCBhdWRpb19lbmFi bGVkLA0KPiA+ID4gPiA+ID4gPiAgCQkJCSAgIGJ1ZmZlciwgbWF4X2J5dGVzKTsNCj4gPiA+ID4g PiA+ID4gIH0NCj4gPiA+ID4gPiA+ID4gIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9oZGFjX2Fjb21w X2dldF9lbGQpOw0KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRj aF9oZG1pLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYw0KPiA+ID4gPiA+ID4gPiBpbmRl eCBkMGQ1YWQ4Li42Nzg5MGRmIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiAtLS0gYS9zb3VuZC9wY2kv aGRhL3BhdGNoX2hkbWkuYw0KPiA+ID4gPiA+ID4gPiArKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNo X2hkbWkuYw0KPiA+ID4gPiA+ID4gPiBAQCAtMTQ4NSw3ICsxNDg1LDcgQEAgc3RhdGljIHZvaWQg c3luY19lbGRfdmlhX2Fjb21wKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLA0KPiA+ID4gPiA+ID4g PiAgDQo+ID4gPiA+ID4gPiA+ICAJbXV0ZXhfbG9jaygmcGVyX3Bpbi0+bG9jayk7DQo+ID4gPiA+ ID4gPiA+ICAJZWxkLT5tb25pdG9yX3ByZXNlbnQgPSBmYWxzZTsNCj4gPiA+ID4gPiA+ID4gLQlz aXplID0gc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4tPnBpbl9u aWQsDQo+ID4gPiA+ID4gPiA+ICsJc2l6ZSA9IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoJmNvZGVj LT5jb3JlLCBwZXJfcGluLT5waW5fbmlkLCAtMSwNCj4gPiA+ID4gPiA+ID4gIAkJCQkgICAgICAm ZWxkLT5tb25pdG9yX3ByZXNlbnQsIGVsZC0+ZWxkX2J1ZmZlciwNCj4gPiA+ID4gPiA+ID4gIAkJ CQkgICAgICBFTERfTUFYX1NJWkUpOw0KPiA+ID4gPiA+ID4gPiAgCWlmIChzaXplID4gMCkgew0K PiA+ID4gPiA+ID4gPiBAQCAtMTczOSw3ICsxNzM5LDggQEAgc3RhdGljIGludCBnZW5lcmljX2hk bWlfcGxheWJhY2tfcGNtX3ByZXBhcmUoc3RydWN0IGhkYV9wY21fc3RyZWFtICpoaW5mbywNCj4g PiA+ID4gPiA+ID4gIAkvKiBDYWxsIHN5bmNfYXVkaW9fcmF0ZSB0byBzZXQgdGhlIE4vQ1RTL00g bWFudWFsbHkgaWYgbmVjZXNzYXJ5ICovDQo+ID4gPiA+ID4gPiA+ICAJLyogVG9kbzogYWRkIERQ MS4yIE1TVCBhdWRpbyBzdXBwb3J0IGxhdGVyICovDQo+ID4gPiA+ID4gPiA+ICAJaWYgKGNvZGVj X2hhc19hY29tcChjb2RlYykpDQo+ID4gPiA+ID4gPiA+IC0JCXNuZF9oZGFjX3N5bmNfYXVkaW9f cmF0ZSgmY29kZWMtPmNvcmUsIHBpbl9uaWQsIHJ1bnRpbWUtPnJhdGUpOw0KPiA+ID4gPiA+ID4g PiArCQlzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoJmNvZGVjLT5jb3JlLCBwaW5fbmlkLCAtMSwN Cj4gPiA+ID4gPiA+ID4gKwkJCQkJIHJ1bnRpbWUtPnJhdGUpOw0KPiA+ID4gPiA+ID4gPiAgDQo+ ID4gPiA+ID4gPiA+ICAJbm9uX3BjbSA9IGNoZWNrX25vbl9wY21fcGVyX2N2dChjb2RlYywgY3Z0 X25pZCk7DQo+ID4gPiA+ID4gPiA+ICAJbXV0ZXhfbG9jaygmcGVyX3Bpbi0+bG9jayk7DQo+ID4g PiA+ID4gPiA+IEBAIC0yMjg1LDcgKzIyODYsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NldF9w b3dlcl9zdGF0ZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgaGRhX25pZF90IGZnLA0KPiA+ID4g PiA+ID4gPiAgCXNuZF9oZGFfY29kZWNfc2V0X3Bvd2VyX3RvX2FsbChjb2RlYywgZmcsIHBvd2Vy X3N0YXRlKTsNCj4gPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4g PiAtc3RhdGljIHZvaWQgaW50ZWxfcGluX2VsZF9ub3RpZnkodm9pZCAqYXVkaW9fcHRyLCBpbnQg cG9ydCkNCj4gPiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGludGVsX3Bpbl9lbGRfbm90aWZ5KHZv aWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQsIGludCBwaXBlKQ0KPiA+ID4gPiA+ID4gPiAgew0KPiA+ ID4gPiA+ID4gPiAgCXN0cnVjdCBoZGFfY29kZWMgKmNvZGVjID0gYXVkaW9fcHRyOw0KPiA+ID4g PiA+ID4gPiAgCWludCBwaW5fbmlkOw0KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvc291bmQv c29jL2NvZGVjcy9oZGFjX2hkbWkuYyBiL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMNCj4g PiA+ID4gPiA+ID4gaW5kZXggMmFiYjc0Mi4uY2Y1N2FiMyAxMDA2NDQNCj4gPiA+ID4gPiA+ID4g LS0tIGEvc291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYw0KPiA+ID4gPiA+ID4gPiArKysgYi9z b3VuZC9zb2MvY29kZWNzL2hkYWNfaGRtaS5jDQo+ID4gPiA+ID4gPiA+IEBAIC0xMzY2LDcgKzEz NjYsNyBAQCBzdGF0aWMgaW50IGhkYWNfaGRtaV9wYXJzZV9hbmRfbWFwX25pZChzdHJ1Y3QgaGRh Y19leHRfZGV2aWNlICplZGV2LA0KPiA+ID4gPiA+ID4gPiAgCXJldHVybiBoZGFjX2hkbWlfaW5p dF9kYWlfbWFwKGVkZXYpOw0KPiA+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gPiAgDQo+ID4g PiA+ID4gPiA+IC1zdGF0aWMgdm9pZCBoZGFjX2hkbWlfZWxkX25vdGlmeV9jYih2b2lkICphcHRy LCBpbnQgcG9ydCkNCj4gPiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGhkYWNfaGRtaV9lbGRfbm90 aWZ5X2NiKHZvaWQgKmFwdHIsIGludCBwb3J0LCBpbnQgcGlwZSkNCj4gPiA+ID4gPiA+ID4gIHsN Cj4gPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgaGRhY19leHRfZGV2aWNlICplZGV2ID0gYXB0cjsNCj4g PiA+ID4gPiA+ID4gIAlzdHJ1Y3QgaGRhY19oZG1pX3ByaXYgKmhkbWkgPSBlZGV2LT5wcml2YXRl X2RhdGE7DQo+ID4gPiA+ID4gPiA+IC0tIA0KPiA+ID4gPiA+ID4gPiAyLjUuMA0KPiA+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gDQo+ID4gDQo+IA0KPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBJbnRlbC1nZnggbWFpbGlu ZyBsaXN0DQo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngNCg0KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==