From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH v2] drm/i915/dp: DP audio API changes for MST Date: Wed, 10 Aug 2016 19:33:44 +0000 Message-ID: <1470858483.25988.7.camel@dk-H97M-D3H> References: <1470776313-15416-1-git-send-email-dhinakaran.pandiyan@intel.com> <20160810142118.GT4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 04BC16E841 for ; Wed, 10 Aug 2016 19:33:45 +0000 (UTC) In-Reply-To: <20160810142118.GT4329@intel.com> Content-Language: en-US Content-ID: <30189CA68E8A2C4FA5C1860FC0C76B87@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: "tiwai@suse.de" , "Kp, Jeeja" , "intel-gfx@lists.freedesktop.org" , "alsa-devel@alsa-project.org" , "libin.yang@linux.intel.com" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE2LTA4LTEwIGF0IDE3OjIxICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+IE9uIFR1ZSwgQXVnIDA5LCAyMDE2IGF0IDAxOjU4OjMzUE0gLTA3MDAsIERoaW5ha2FyYW4g UGFuZGl5YW4gd3JvdGU6DQo+ID4gRFAgTVNUIHByb3ZpZGVzIHRoZSBjYXBhYmlsaXR5IHRvIHNl bmQgbXVsdGlwbGUgdmlkZW8gYW5kIGF1ZGlvIHN0cmVhbXMNCj4gPiB0aHJvdWdoIGEgc2luZ2xl IHBvcnQuIFRoaXMgcmVxdWlyZXMgdGhlIEFQSSdzIGJldHdlZW4gaTkxNSBhbmQgYXVkaW8NCj4g PiBkcml2ZXJzIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbXVsdGlwbGUgYXVkaW8gY2FwYWJsZSBk aXNwbGF5cyB0aGF0IGNhbiBiZQ0KPiA+IGNvbm5lY3RlZCB0byBhIHBvcnQuIEN1cnJlbnRseSBv bmx5IHRoZSBwb3J0IGlkZW50aXR5IGlzIHNoYXJlZCBpbiB0aGUNCj4gPiBBUElzLiBUaGlzIHBh dGNoIGFkZHMgc3VwcG9ydCBmb3IgTVNUIHdpdGggYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXINCj4g PiAnaW50IHBpcGUnLiAgVGhlIGV4aXN0aW5nIHBhcmFtZXRlciAncG9ydCcgZG9lcyBub3QgY2hh bmdlIGl0J3MgbWVhbmluZy4NCj4gPiANCj4gPiBwaXBlID0NCj4gPiAJTVNUCTogZGlzcGxheSBw aXBlIHRoYXQgdGhlIHN0cmVhbSBvcmlnaW5hdGVzIGZyb20NCj4gPiAJTm9uLU1TVAk6IC0xDQo+ ID4gDQo+ID4gQWZmZWN0ZWQgQVBJczoNCj4gPiBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRf b3BzDQo+ID4gLSAgICAgICBpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwg aW50IHBvcnQsIGludCByYXRlKTsNCj4gPiArCWludCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0 IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsDQo+ID4gKwkgICAgIGludCByYXRlKTsNCj4g PiANCj4gPiAtICAgICAgIGludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQs IGJvb2wgKmVuYWJsZWQsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hh ciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsNCj4gPiArICAgICAgIGludCAoKmdldF9lbGQpKHN0cnVj dCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBwaXBlLA0KPiA+ICsJCSAgICAgICBib29sICplbmFi bGVkLCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpOw0KPiA+IA0KPiA+IHN0cnVj dCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMNCj4gPiAtICAgICAgIHZvaWQgKCpwaW5f ZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCk7DQo+ID4gKyAgICAgICB2b2lk ICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQsIGludCBwaXBlKTsN Cj4gPiANCj4gPiBUaGlzIHBhdGNoIG1ha2VzIGR1bW15IGNoYW5nZXMgaW4gdGhlIGF1ZGlvIGRy aXZlcnMgKExpYmluKSBmb3IgYnVpbGQgdG8NCj4gPiBzdWNjZWVkLiBUaGUgYXVkaW8gc2lkZSBk cml2ZXJzIHdpbGwgc2VuZCB0aGUgcmlnaHQgJ3BpcGUnIHZhbHVlcyBpbg0KPiA+IHBhdGNoZXMg dGhhdCB3aWxsIGZvbGxvdy4NCj4gPiANCj4gPiB2MjoNCj4gPiBSZW5hbWVkIHRoZSBuZXcgQVBJ IHBhcmFtZXRlciBmcm9tICdkZXZfaWQnIHRvICdwaXBlJy4gKEppbSwgVmlsbGUpDQo+ID4gSW5j bHVkZWQgQXNvYyBkcml2ZXIgQVBJIGNvbXBhdGliaWxpdHkgY2hhbmdlcyBmcm9tIEplZWphLg0K PiA+IEFkZGVkIFdBUk5fT04oKSBmb3IgaW52YWxpZCBwaXBlIGluIGdldF9zYXZlZF9lbmNvZGVy KCkuIChUYWthc2hpKQ0KPiA+IEFkZGVkIGNvbW1lbnQgZm9yIGF2X2VuY19tYXBbXSBkZWZpbml0 aW9uLiAoVGFrYXNoaSkNCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRp eWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICB8ICAzICstDQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F1ZGlvLmMgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQ0KPiA+ICBpbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oICAgICAgIHwgIDYgKy0t DQo+ID4gIGluY2x1ZGUvc291bmQvaGRhX2k5MTUuaCAgICAgICAgICAgfCAxMSArKy0tLQ0KPiA+ ICBzb3VuZC9oZGEvaGRhY19pOTE1LmMgICAgICAgICAgICAgIHwgIDkgKystLQ0KPiA+ICBzb3Vu ZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyAgICAgICAgIHwgIDcgKy0tDQo+ID4gIHNvdW5kL3NvYy9j b2RlY3MvaGRhY19oZG1pLmMgICAgICAgfCAgMiArLQ0KPiA+ICA3IGZpbGVzIGNoYW5nZWQsIDg1 IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaA0KPiA+IGluZGV4IGMzNmQxNzYuLjhlNGE4OGYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgNCj4gPiBAQCAtMjAzNiw3ICsyMDM2LDggQEAgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgew0KPiA+ICAJLyogcGVyZm9ybSBQSFkgc3RhdGUgc2FuaXR5IGNoZWNrcz8gKi8N Cj4gPiAgCWJvb2wgY2h2X3BoeV9hc3NlcnRbMl07DQo+ID4gIA0KPiA+IC0Jc3RydWN0IGludGVs X2VuY29kZXIgKmRpZ19wb3J0X21hcFtJOTE1X01BWF9QT1JUU107DQo+ID4gKwkvKiBVc2VkIHRv IHNhdmUgdGhlIHBpcGUtdG8tZW5jb2RlciBtYXBwaW5nIGZvciBhdWRpbyAqLw0KPiA+ICsJc3Ry dWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbSTkxNV9NQVhfUElQRVNdOw0KPiA+ICANCj4g PiAgCS8qDQo+ID4gIAkgKiBOT1RFOiBUaGlzIGlzIHRoZSBkcmkxL3VtcyBkdW5nZW9uLCBkb24n dCBhZGQgc3R1ZmYgaGVyZS4gWW91ciBwYXRjaA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVk aW8uYw0KPiA+IGluZGV4IGVmMjA4NzUuLjI0MGRhZDIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F1ZGlvLmMNCj4gPiBAQCAtNTAwLDYgKzUwMCw3IEBAIHZvaWQgaW50ZWxfYXVk aW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQ0KPiA+ ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19j b21wb25lbnQ7DQo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsNCj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50 ZWxfZGlnX3BvcnQtPnBvcnQ7DQo+ID4gKwllbnVtIHBpcGUgcGlwZSA9IC0xOw0KPiA+ICANCj4g PiAgCWNvbm5lY3RvciA9IGRybV9zZWxlY3RfZWxkKGVuY29kZXIpOw0KPiA+ICAJaWYgKCFjb25u ZWN0b3IpDQo+ID4gQEAgLTUyNCwxMiArNTI1LDE4IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQ0KPiA+ICANCj4gPiAg CW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7DQo+ID4gIAlpbnRlbF9lbmNvZGVyLT5h dWRpb19jb25uZWN0b3IgPSBjb25uZWN0b3I7DQo+ID4gKw0KPiA+ICAJLyogcmVmZXJyZWQgaW4g YXVkaW8gY2FsbGJhY2tzICovDQo+ID4gLQlkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdID0g aW50ZWxfZW5jb2RlcjsNCj4gPiArCWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gaW50ZWxf ZW5jb2RlcjsNCj4gDQo+IFstMV0gZG9lc24ndCBsb29rIHJpZ2h0Lg0KPiANCkZpeGVkIHRoaXMs IHRoYW5rcyBmb3IgdGhlIHJldmlldy4NCj4gPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2 X211dGV4KTsNCj4gPiAgDQo+ID4gKw0KPiA+ICsJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0g SU5URUxfT1VUUFVUX0RQX01TVCkNCj4gPiArCQlwaXBlID0gY3J0Yy0+cGlwZTsNCj4gPiArDQo+ ID4gIAlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5w aW5fZWxkX25vdGlmeSkNCj4gPiAtCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShh Y29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsIChpbnQpIHBvcnQpOw0KPiA+ICsJCWFjb21wLT5h dWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwNCj4g PiArCQkJCQkJIChpbnQpIHBvcnQsIChpbnQpIHBpcGUpOw0KPiA+ICB9DQo+ID4gIA0KPiA+ICAv KioNCj4gPiBAQCAtNTQyLDIyICs1NDksMjggQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpDQo+ID4gIHZvaWQgaW50ZWxf YXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikN Cj4gPiAgew0KPiA+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2VuY29k ZXItPmJhc2U7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo ZW5jb2Rlci0+Y3J0Yyk7DQo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ ZGV2Ow0KPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShk ZXYpOw0KPiA+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2 LT5hdWRpb19jb21wb25lbnQ7DQo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsNCj4gPiAgCWVudW0gcG9ydCBw b3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7DQo+ID4gKwllbnVtIHBpcGUgcGlwZSA9IC0xOw0K PiA+ICANCj4gPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlKQ0K PiA+ICAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUoaW50ZWxfZW5jb2Rl cik7DQo+ID4gIA0KPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsNCj4gPiAg CWludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciA9IE5VTEw7DQo+ID4gLQlkZXZfcHJpdi0+ ZGlnX3BvcnRfbWFwW3BvcnRdID0gTlVMTDsNCj4gPiArCWRldl9wcml2LT5hdl9lbmNfbWFwW3Bp cGVdID0gTlVMTDsNCj4gDQo+IHNhbWUNCj4gDQpEb25lLg0KDQo+ID4gIAltdXRleF91bmxvY2so JmRldl9wcml2LT5hdl9tdXRleCk7DQo+ID4gIA0KPiA+ICsJaWYgKGludGVsX2VuY29kZXItPnR5 cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCkNCj4gPiArCQlwaXBlID0gY3J0Yy0+cGlwZTsNCj4g PiArDQo+ID4gIAlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9f b3BzLT5waW5fZWxkX25vdGlmeSkNCj4gPiAtCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25v dGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsIChpbnQpIHBvcnQpOw0KPiA+ICsJCWFj b21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0 ciwNCj4gPiArCQkJCQkJIChpbnQpIHBvcnQsIChpbnQpIHBpcGUpOw0KPiA+ICB9DQo+ID4gIA0K PiA+ICAvKioNCj4gPiBAQCAtNjMyLDE1ICs2NDUsMzkgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlv X2NvbXBvbmVudF9nZXRfY2RjbGtfZnJlcShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gIAlyZXR1 cm4gZGV2X3ByaXYtPmNkY2xrX2ZyZXE7DQo+ID4gIH0NCj4gPiAgDQo+ID4gLXN0YXRpYyBpbnQg aTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwN Cj4gPiAtCQkJCQkJaW50IHBvcnQsIGludCByYXRlKQ0KPiA+ICtzdGF0aWMgc3RydWN0IGludGVs X2VuY29kZXIgKmdldF9zYXZlZF9lbmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICphdl9lbmNf bWFwW10sDQo+ID4gKwkJCQkJICAgICAgIGludCBwb3J0LCBpbnQgcGlwZSkNCj4gPiArew0KPiA+ ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOw0KPiA+ICsNCj4gPiArCWlmIChXQVJOX09O KHBpcGUgPj0gSTkxNV9NQVhfUElQRVMpKQ0KPiA+ICsJCXJldHVybiBOVUxMOw0KPiA+ICsNCj4g PiArCS8qIE1TVCAqLw0KPiA+ICsJaWYgKHBpcGUgIT0gLTEpDQo+ID4gKwkJcmV0dXJuIGF2X2Vu Y19tYXBbcGlwZV07DQo+ID4gKw0KPiA+ICsJLyogTm9uLU1TVCAqLw0KPiA+ICsJZm9yIChwaXBl ID0gUElQRV9BOyBwaXBlIDwgSTkxNV9NQVhfUElQRVM7IHBpcGUrKykgew0KPiA+ICsJCWlmICgh YXZfZW5jX21hcFtwaXBlXSkNCj4gPiArCQkJY29udGludWU7DQo+ID4gKw0KPiA+ICsJCWVuY29k ZXIgPSAmYXZfZW5jX21hcFtwaXBlXS0+YmFzZTsNCj4gPiArCQlpZiAocG9ydCA9PSBlbmNfdG9f ZGlnX3BvcnQoZW5jb2RlciktPnBvcnQpDQo+ID4gKwkJCXJldHVybiBhdl9lbmNfbWFwW3BpcGVd Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVybiBOVUxMOw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3Qg ZGV2aWNlICpkZXYsIGludCBwb3J0LA0KPiA+ICsJCQkJCQlpbnQgcGlwZSwgaW50IHJhdGUpDQo+ ID4gIHsNCj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldl90b19p OTE1KGRldik7DQo+ID4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsNCj4g PiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOw0KPiA+ICAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7DQo+ID4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2 X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsNCj4gPiAtCWVudW0gcGlwZSBwaXBlID0gSU5WQUxJRF9Q SVBFOw0KPiA+ICAJdTMyIHRtcDsNCj4gPiAgCWludCBuOw0KPiA+ICAJaW50IGVyciA9IDA7DQo+ ID4gQEAgLTY1NCwyNSArNjkxLDIwIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRf c3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiAgDQo+ID4gIAlpOTE1X2F1 ZGlvX2NvbXBvbmVudF9nZXRfcG93ZXIoZGV2KTsNCj4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2 LT5hdl9tdXRleCk7DQo+ID4gKw0KPiA+ICAJLyogMS4gZ2V0IHRoZSBwaXBlICovDQo+ID4gLQlp bnRlbF9lbmNvZGVyID0gZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XTsNCj4gPiAtCS8qIGlu dGVsX2VuY29kZXIgbWlnaHQgYmUgTlVMTCBmb3IgRFAgTVNUICovDQo+ID4gKwlpbnRlbF9lbmNv ZGVyID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIHBpcGUp Ow0KPiA+ICAJaWYgKCFpbnRlbF9lbmNvZGVyIHx8ICFpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMg fHwNCj4gPiAgCSAgICBpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9IRE1JKSB7 DQo+ID4gLQkJRFJNX0RFQlVHX0tNUygibm8gdmFsaWQgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBv cnQpKTsNCj4gPiArCQlEUk1fREVCVUdfS01TKCJOb3QgdmFsaWQgZm9yIHBvcnQgJWNcbiIsIHBv cnRfbmFtZShwb3J0KSk7DQo+ID4gIAkJZXJyID0gLUVOT0RFVjsNCj4gPiAgCQlnb3RvIHVubG9j azsNCj4gPiAgCX0NCj4gPiArDQo+ID4gKwkvKiBwaXBlIHBhc3NlZCBmcm9tIHRoZSBhdWRpbyBk cml2ZXIgd2lsbCBiZSAtMSBmb3Igbm9uLW1zdCBjYXNlICAqLw0KPiA+ICAJY3J0YyA9IHRvX2lu dGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKTsNCj4gPiAgCXBpcGUgPSBjcnRjLT5w aXBlOw0KPiA+IC0JaWYgKHBpcGUgPT0gSU5WQUxJRF9QSVBFKSB7DQo+ID4gLQkJRFJNX0RFQlVH X0tNUygibm8gcGlwZSBmb3IgdGhlIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7DQo+ID4g LQkJZXJyID0gLUVOT0RFVjsNCj4gPiAtCQlnb3RvIHVubG9jazsNCj4gPiAtCX0NCj4gPiAgDQo+ ID4gLQlEUk1fREVCVUdfS01TKCJwaXBlICVjIGNvbm5lY3RzIHBvcnQgJWNcbiIsDQo+ID4gLQkJ CQkgIHBpcGVfbmFtZShwaXBlKSwgcG9ydF9uYW1lKHBvcnQpKTsNCj4gPiAgCW1vZGUgPSAmY3J0 Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7DQo+ID4gIA0KPiA+ICAJLyogcG9ydCBtdXN0 IGJlIHZhbGlkIG5vdywgb3RoZXJ3aXNlIHRoZSBwaXBlIHdpbGwgYmUgaW52YWxpZCAqLw0KPiA+ IEBAIC03MDgsNyArNzQwLDcgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5j X2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LA0KPiA+ICB9DQo+ID4gIA0KPiA+ICBzdGF0 aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAqZGV2LCBp bnQgcG9ydCwNCj4gPiAtCQkJCQlib29sICplbmFibGVkLA0KPiA+ICsJCQkJCWludCBwaXBlLCBi b29sICplbmFibGVkLA0KPiA+ICAJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRl cykNCj4gPiAgew0KPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 X3RvX2k5MTUoZGV2KTsNCj4gPiBAQCAtNzE3LDE2ICs3NDksMjAgQEAgc3RhdGljIGludCBpOTE1 X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBvcnQsDQo+ ID4gIAlpbnQgcmV0ID0gLUVJTlZBTDsNCj4gPiAgDQo+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJp di0+YXZfbXV0ZXgpOw0KPiA+IC0JaW50ZWxfZW5jb2RlciA9IGRldl9wcml2LT5kaWdfcG9ydF9t YXBbcG9ydF07DQo+ID4gLQkvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0IGJlIE5VTEwgZm9yIERQIE1T VCAqLw0KPiA+IC0JaWYgKGludGVsX2VuY29kZXIpIHsNCj4gPiAtCQlyZXQgPSAwOw0KPiA+IC0J CSplbmFibGVkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yICE9IE5VTEw7DQo+ID4g LQkJaWYgKCplbmFibGVkKSB7DQo+ID4gLQkJCWVsZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nv bm5lY3Rvci0+ZWxkOw0KPiA+IC0JCQlyZXQgPSBkcm1fZWxkX3NpemUoZWxkKTsNCj4gPiAtCQkJ bWVtY3B5KGJ1ZiwgZWxkLCBtaW4obWF4X2J5dGVzLCByZXQpKTsNCj4gPiAtCQl9DQo+ID4gKw0K PiA+ICsJaW50ZWxfZW5jb2RlciA9IGdldF9zYXZlZF9lbmNvZGVyKGRldl9wcml2LT5hdl9lbmNf bWFwLCBwb3J0LCBwaXBlKTsNCj4gPiArCWlmICghaW50ZWxfZW5jb2Rlcikgew0KPiA+ICsJCURS TV9ERUJVR19LTVMoIk5vdCB2YWxpZCBmb3IgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsN Cj4gPiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7DQo+ID4gKwkJcmV0dXJu IHJldDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXQgPSAwOw0KPiA+ICsJKmVuYWJsZWQgPSBp bnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgIT0gTlVMTDsNCj4gPiArCWlmICgqZW5hYmxl ZCkgew0KPiA+ICsJCWVsZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxkOw0K PiA+ICsJCXJldCA9IGRybV9lbGRfc2l6ZShlbGQpOw0KPiA+ICsJCW1lbWNweShidWYsIGVsZCwg bWluKG1heF9ieXRlcywgcmV0KSk7DQo+ID4gIAl9DQo+ID4gIA0KPiA+ICAJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pOTE1 X2NvbXBvbmVudC5oIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaA0KPiA+IGluZGV4IGI0 NmZhMGUuLjU0NWM2ZTAgMTAwNjQ0DQo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25l bnQuaA0KPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgNCj4gPiBAQCAtNjQs NyArNjQsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzIHsNCj4gPiAgCSAqIENh bGxlZCBmcm9tIGF1ZGlvIGRyaXZlci4gQWZ0ZXIgYXVkaW8gZHJpdmVyIHNldHMgdGhlDQo+ID4g IAkgKiBzYW1wbGUgcmF0ZSwgaXQgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gc2V0IG4vY3Rz DQo+ID4gIAkgKi8NCj4gPiAtCWludCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAq LCBpbnQgcG9ydCwgaW50IHJhdGUpOw0KPiA+ICsJaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1 Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgcGlwZSwgaW50IHJhdGUpOw0KPiA+ICAJLyoqDQo+ ID4gIAkgKiBAZ2V0X2VsZDogZmlsbCB0aGUgYXVkaW8gc3RhdGUgYW5kIEVMRCBieXRlcyBmb3Ig dGhlIGdpdmVuIHBvcnQNCj4gPiAgCSAqDQo+ID4gQEAgLTc3LDcgKzc3LDcgQEAgc3RydWN0IGk5 MTVfYXVkaW9fY29tcG9uZW50X29wcyB7DQo+ID4gIAkgKiBOb3RlIHRoYXQgdGhlIHJldHVybmVk IHNpemUgbWF5IGJlIG92ZXIgQG1heF9ieXRlcy4gIFRoZW4gaXQNCj4gPiAgCSAqIGltcGxpZXMg dGhhdCBvbmx5IGEgcGFydCBvZiBFTEQgaGFzIGJlZW4gY29waWVkIHRvIHRoZSBidWZmZXIuDQo+ ID4gIAkgKi8NCj4gDQo+IFBsZWFzIHVwZGF0ZSB0aGUgZG9jcyB0byBpbmNsdWRlIHdoYXQgdGhl IHBpcGUgcGFyYW1ldGVyIG1lYW5zLg0KPiBMb29rcyBsaWtlIG1vc3Qgb2YgdGhlc2UgZG9jcyBj b3VsZCB1c2UgYSBsaXR0bGUgYmVlZmluZyB1cCB0byBtYWtlDQo+IHN1cmUgYm90aCBzaWRlcyBm b2xsb3cgdGhlIHNhbWUgY29udHJhY3QuIFJpZ2h0IG5vdyB0aGVyZSBhcmUgYSBsb3QNCj4gb2Yg Z3JleSBhcmVhcy4NCj4gDQoNClN1cmUsIEkgd2lsbCBmaWd1cmUgb3V0IHdoZXJlIHRvIG1ha2Ug dGhvc2UgY2hhbmdlcyBhbmQgc2VuZCBhIHBhdGNoLg0KDQo+ID4gLQlpbnQgKCpnZXRfZWxkKShz dHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBib29sICplbmFibGVkLA0KPiA+ICsJaW50ICgqZ2V0 X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsIGJvb2wgKmVuYWJsZWQs DQo+ID4gIAkJICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7DQo+ID4g IH07DQo+ID4gIA0KPiA+IEBAIC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBv bmVudF9hdWRpb19vcHMgew0KPiA+ICAJICogc3RhdHVzIGFjY29yZGluZ2x5IChldmVuIHdoZW4g dGhlIEhEQSBjb250cm9sbGVyIGlzIGluIHBvd2VyIHNhdmUNCj4gPiAgCSAqIG1vZGUpLg0KPiA+ ICAJICovDQo+ID4gLQl2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlvX3B0ciwgaW50 IHBvcnQpOw0KPiA+ICsJdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGlu dCBwb3J0LCBpbnQgcGlwZSk7DQo+ID4gIH07DQo+ID4gIA0KPiA+ICAvKioNCj4gPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oIGIvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5o DQo+ID4gaW5kZXggNzk2Y2FiZi4uMDdmZDY0ZSAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL3Nv dW5kL2hkYV9pOTE1LmgNCj4gPiArKysgYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgNCj4gPiBA QCAtMTAsOCArMTAsOSBAQA0KPiA+ICBpbnQgc25kX2hkYWNfc2V0X2NvZGVjX3dha2V1cChzdHJ1 Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOw0KPiA+ICBpbnQgc25kX2hkYWNfZGlzcGxh eV9wb3dlcihzdHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOw0KPiA+ICB2b2lkIHNu ZF9oZGFjX2k5MTVfc2V0X2JjbGsoc3RydWN0IGhkYWNfYnVzICpidXMpOw0KPiA+IC1pbnQgc25k X2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRf dCBuaWQsIGludCByYXRlKTsNCj4gPiAtaW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0 IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwNCj4gPiAraW50IHNuZF9oZGFjX3N5 bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLA0K PiA+ICsJCQkgICAgIGludCBwaXBlLCBpbnQgcmF0ZSk7DQo+ID4gK2ludCBzbmRfaGRhY19hY29t cF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCBw aXBlLA0KPiA+ICAJCQkgICBib29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZmZXIsIGludCBt YXhfYnl0ZXMpOw0KPiA+ICBpbnQgc25kX2hkYWNfaTkxNV9pbml0KHN0cnVjdCBoZGFjX2J1cyAq YnVzKTsNCj4gPiAgaW50IHNuZF9oZGFjX2k5MTVfZXhpdChzdHJ1Y3QgaGRhY19idXMgKmJ1cyk7 DQo+ID4gQEAgLTI5LDEzICszMCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc25kX2hkYWNfaTkx NV9zZXRfYmNsayhzdHJ1Y3QgaGRhY19idXMgKmJ1cykNCj4gPiAgew0KPiA+ICB9DQo+ID4gIHN0 YXRpYyBpbmxpbmUgaW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZp Y2UgKmNvZGVjLA0KPiA+IC0JCQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQ0KPiA+ICsJ CQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCBwaXBlLCBpbnQgcmF0ZSkNCj4gPiAgew0KPiA+ICAJ cmV0dXJuIDA7DQo+ID4gIH0NCj4gPiAgc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNfYWNvbXBf Z2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLA0KPiA+IC0J CQkJCSBib29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZmZXIsDQo+ID4gLQkJCQkJIGludCBt YXhfYnl0ZXMpDQo+ID4gKwkJCQkJIGludCBwaXBlLCBib29sICphdWRpb19lbmFibGVkLA0KPiA+ ICsJCQkJCSBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpDQo+ID4gIHsNCj4gPiAgCXJldHVy biAtRU5PREVWOw0KPiA+ICB9DQo+ID4gZGlmZiAtLWdpdCBhL3NvdW5kL2hkYS9oZGFjX2k5MTUu YyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYw0KPiA+IGluZGV4IGM5YWYwMjIuLmI5OTk5NGIgMTAw NjQ0DQo+ID4gLS0tIGEvc291bmQvaGRhL2hkYWNfaTkxNS5jDQo+ID4gKysrIGIvc291bmQvaGRh L2hkYWNfaTkxNS5jDQo+ID4gQEAgLTIwMSw3ICsyMDEsOCBAQCBzdGF0aWMgaW50IHBpbjJwb3J0 KHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBwaW5fbmlkKQ0KPiA+ICAgKiBU aGlzIGZ1bmN0aW9uIHNldHMgTi9DVFMgdmFsdWUgYmFzZWQgb24gdGhlIGdpdmVuIHNhbXBsZSBy YXRlLg0KPiA+ICAgKiBSZXR1cm5zIHplcm8gZm9yIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJy b3IgY29kZS4NCj4gPiAgICovDQo+ID4gLWludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3Ry dWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpDQo+ID4gK2lu dCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRh X25pZF90IG5pZCwNCj4gPiArCQkJICAgICBpbnQgcGlwZSwgaW50IHJhdGUpDQo+ID4gIHsNCj4g PiAgCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1czsNCj4gPiAgCXN0cnVjdCBpOTE1 X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBidXMtPmF1ZGlvX2NvbXBvbmVudDsNCj4gPiBAQCAt MjEyLDcgKzIxMyw3IEBAIGludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNf ZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpDQo+ID4gIAlwb3J0ID0gcGlu MnBvcnQoY29kZWMsIG5pZCk7DQo+ID4gIAlpZiAocG9ydCA8IDApDQo+ID4gIAkJcmV0dXJuIC1F SU5WQUw7DQo+ID4gLQlyZXR1cm4gYWNvbXAtPm9wcy0+c3luY19hdWRpb19yYXRlKGFjb21wLT5k ZXYsIHBvcnQsIHJhdGUpOw0KPiA+ICsJcmV0dXJuIGFjb21wLT5vcHMtPnN5bmNfYXVkaW9fcmF0 ZShhY29tcC0+ZGV2LCBwb3J0LCBwaXBlLCByYXRlKTsNCj4gPiAgfQ0KPiA+ICBFWFBPUlRfU1lN Qk9MX0dQTChzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUpOw0KPiA+ICANCj4gPiBAQCAtMjM2LDcg KzIzNyw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSk7DQo+ ID4gICAqIHRodXMgaXQgbWF5IGJlIG92ZXIgQG1heF9ieXRlcy4gIElmIGl0J3Mgb3ZlciBAbWF4 X2J5dGVzLCBpdCBpbXBsaWVzDQo+ID4gICAqIHRoYXQgb25seSBhIHBhcnQgb2YgRUxEIGJ5dGVz IGhhdmUgYmVlbiBmZXRjaGVkLg0KPiA+ICAgKi8NCj4gPiAtaW50IHNuZF9oZGFjX2Fjb21wX2dl dF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwNCj4gPiAraW50 IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25p ZF90IG5pZCwgaW50IHBpcGUsDQo+ID4gIAkJCSAgIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIg KmJ1ZmZlciwgaW50IG1heF9ieXRlcykNCj4gPiAgew0KPiA+ICAJc3RydWN0IGhkYWNfYnVzICpi dXMgPSBjb2RlYy0+YnVzOw0KPiA+IEBAIC0yNDksNyArMjUwLDcgQEAgaW50IHNuZF9oZGFjX2Fj b21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwNCj4g PiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsNCj4gPiAgCWlmIChwb3J0IDwgMCkNCj4g PiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiAtCXJldHVybiBhY29tcC0+b3BzLT5nZXRfZWxkKGFj b21wLT5kZXYsIHBvcnQsIGF1ZGlvX2VuYWJsZWQsDQo+ID4gKwlyZXR1cm4gYWNvbXAtPm9wcy0+ Z2V0X2VsZChhY29tcC0+ZGV2LCBwb3J0LCBwaXBlLCBhdWRpb19lbmFibGVkLA0KPiA+ICAJCQkJ ICAgYnVmZmVyLCBtYXhfYnl0ZXMpOw0KPiA+ICB9DQo+ID4gIEVYUE9SVF9TWU1CT0xfR1BMKHNu ZF9oZGFjX2Fjb21wX2dldF9lbGQpOw0KPiA+IGRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3Bh dGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jDQo+ID4gaW5kZXggZDBkNWFk OC4uNjc4OTBkZiAxMDA2NDQNCj4gPiAtLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYw0K PiA+ICsrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jDQo+ID4gQEAgLTE0ODUsNyArMTQ4 NSw3IEBAIHN0YXRpYyB2b2lkIHN5bmNfZWxkX3ZpYV9hY29tcChzdHJ1Y3QgaGRhX2NvZGVjICpj b2RlYywNCj4gPiAgDQo+ID4gIAltdXRleF9sb2NrKCZwZXJfcGluLT5sb2NrKTsNCj4gPiAgCWVs ZC0+bW9uaXRvcl9wcmVzZW50ID0gZmFsc2U7DQo+ID4gLQlzaXplID0gc25kX2hkYWNfYWNvbXBf Z2V0X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4tPnBpbl9uaWQsDQo+ID4gKwlzaXplID0gc25k X2hkYWNfYWNvbXBfZ2V0X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4tPnBpbl9uaWQsIC0xLA0K PiA+ICAJCQkJICAgICAgJmVsZC0+bW9uaXRvcl9wcmVzZW50LCBlbGQtPmVsZF9idWZmZXIsDQo+ ID4gIAkJCQkgICAgICBFTERfTUFYX1NJWkUpOw0KPiA+ICAJaWYgKHNpemUgPiAwKSB7DQo+ID4g QEAgLTE3MzksNyArMTczOSw4IEBAIHN0YXRpYyBpbnQgZ2VuZXJpY19oZG1pX3BsYXliYWNrX3Bj bV9wcmVwYXJlKHN0cnVjdCBoZGFfcGNtX3N0cmVhbSAqaGluZm8sDQo+ID4gIAkvKiBDYWxsIHN5 bmNfYXVkaW9fcmF0ZSB0byBzZXQgdGhlIE4vQ1RTL00gbWFudWFsbHkgaWYgbmVjZXNzYXJ5ICov DQo+ID4gIAkvKiBUb2RvOiBhZGQgRFAxLjIgTVNUIGF1ZGlvIHN1cHBvcnQgbGF0ZXIgKi8NCj4g PiAgCWlmIChjb2RlY19oYXNfYWNvbXAoY29kZWMpKQ0KPiA+IC0JCXNuZF9oZGFjX3N5bmNfYXVk aW9fcmF0ZSgmY29kZWMtPmNvcmUsIHBpbl9uaWQsIHJ1bnRpbWUtPnJhdGUpOw0KPiA+ICsJCXNu ZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSgmY29kZWMtPmNvcmUsIHBpbl9uaWQsIC0xLA0KPiA+ICsJ CQkJCSBydW50aW1lLT5yYXRlKTsNCj4gPiAgDQo+ID4gIAlub25fcGNtID0gY2hlY2tfbm9uX3Bj bV9wZXJfY3Z0KGNvZGVjLCBjdnRfbmlkKTsNCj4gPiAgCW11dGV4X2xvY2soJnBlcl9waW4tPmxv Y2spOw0KPiA+IEBAIC0yMjg1LDcgKzIyODYsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NldF9w b3dlcl9zdGF0ZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgaGRhX25pZF90IGZnLA0KPiA+ICAJ c25kX2hkYV9jb2RlY19zZXRfcG93ZXJfdG9fYWxsKGNvZGVjLCBmZywgcG93ZXJfc3RhdGUpOw0K PiA+ICB9DQo+ID4gIA0KPiA+IC1zdGF0aWMgdm9pZCBpbnRlbF9waW5fZWxkX25vdGlmeSh2b2lk ICphdWRpb19wdHIsIGludCBwb3J0KQ0KPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9waW5fZWxkX25v dGlmeSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBpbnQgcGlwZSkNCj4gPiAgew0KPiA+ICAJ c3RydWN0IGhkYV9jb2RlYyAqY29kZWMgPSBhdWRpb19wdHI7DQo+ID4gIAlpbnQgcGluX25pZDsN Cj4gPiBkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYyBiL3NvdW5kL3Nv Yy9jb2RlY3MvaGRhY19oZG1pLmMNCj4gPiBpbmRleCAyYWJiNzQyLi5jZjU3YWIzIDEwMDY0NA0K PiA+IC0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMNCj4gPiArKysgYi9zb3VuZC9z b2MvY29kZWNzL2hkYWNfaGRtaS5jDQo+ID4gQEAgLTEzNjYsNyArMTM2Niw3IEBAIHN0YXRpYyBp bnQgaGRhY19oZG1pX3BhcnNlX2FuZF9tYXBfbmlkKHN0cnVjdCBoZGFjX2V4dF9kZXZpY2UgKmVk ZXYsDQo+ID4gIAlyZXR1cm4gaGRhY19oZG1pX2luaXRfZGFpX21hcChlZGV2KTsNCj4gPiAgfQ0K PiA+ICANCj4gPiAtc3RhdGljIHZvaWQgaGRhY19oZG1pX2VsZF9ub3RpZnlfY2Iodm9pZCAqYXB0 ciwgaW50IHBvcnQpDQo+ID4gK3N0YXRpYyB2b2lkIGhkYWNfaGRtaV9lbGRfbm90aWZ5X2NiKHZv aWQgKmFwdHIsIGludCBwb3J0LCBpbnQgcGlwZSkNCj4gPiAgew0KPiA+ICAJc3RydWN0IGhkYWNf ZXh0X2RldmljZSAqZWRldiA9IGFwdHI7DQo+ID4gIAlzdHJ1Y3QgaGRhY19oZG1pX3ByaXYgKmhk bWkgPSBlZGV2LT5wcml2YXRlX2RhdGE7DQo+ID4gLS0gDQo+ID4gMi41LjANCj4gDQoNCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=