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: Thu, 11 Aug 2016 07:10:39 +0000 Message-ID: <1470900299.21929.14.camel@dk-H97M-D3H> References: <20160810142118.GT4329@intel.com> <1470858117-2321-1-git-send-email-dhinakaran.pandiyan@intel.com> <20160811062631.GW4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 86DBB6E8D0 for ; Thu, 11 Aug 2016 07:10:57 +0000 (UTC) In-Reply-To: <20160811062631.GW4329@intel.com> Content-Language: en-US Content-ID: 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 T24gVGh1LCAyMDE2LTA4LTExIGF0IDA5OjI2ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+IE9uIFdlZCwgQXVnIDEwLCAyMDE2IGF0IDEyOjQxOjU3UE0gLTA3MDAsIERoaW5ha2FyYW4g 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 aW9uLiAoVGFrYXNoaSkNCj4gPiANCj4gPiB2MzoNCj4gPiBGaXhlZCBsb2dpYyBlcnJvciBpbnRy b2R1Y2VkIHdoaWxlIHJlbmFtaW5nICdkZXZfaWQnIGFzICdwaXBlJyAoVmlsbGUpDQo+ID4gUmVu YW1lZCBnZXRfc2F2ZWRfZW5jb2RlcigpIHRvIGdldF9zYXZlZF9lbmMoKSB0byByZWR1Y2UgbGlu ZSBsZW5ndGgNCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxk aGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICB8ICAzICstDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2F1ZGlvLmMgfCA5MyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LQ0KPiA+ICBpbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oICAgICAgIHwgIDYgKy0tDQo+ID4g IGluY2x1ZGUvc291bmQvaGRhX2k5MTUuaCAgICAgICAgICAgfCAxMSArKystLQ0KPiA+ICBzb3Vu ZC9oZGEvaGRhY19pOTE1LmMgICAgICAgICAgICAgIHwgIDkgKystLQ0KPiA+ICBzb3VuZC9wY2kv aGRhL3BhdGNoX2hkbWkuYyAgICAgICAgIHwgIDcgKy0tDQo+ID4gIHNvdW5kL3NvYy9jb2RlY3Mv aGRhY19oZG1pLmMgICAgICAgfCAgMiArLQ0KPiA+ICA3IGZpbGVzIGNoYW5nZWQsIDg2IGluc2Vy dGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aA0KPiA+IGluZGV4IGMzNmQxNzYuLjhlNGE4OGYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgNCj4gPiBAQCAtMjAzNiw3ICsyMDM2LDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgew0KPiA+ICAJLyogcGVyZm9ybSBQSFkgc3RhdGUgc2FuaXR5IGNoZWNrcz8gKi8NCj4gPiAg CWJvb2wgY2h2X3BoeV9hc3NlcnRbMl07DQo+ID4gIA0KPiA+IC0Jc3RydWN0IGludGVsX2VuY29k ZXIgKmRpZ19wb3J0X21hcFtJOTE1X01BWF9QT1JUU107DQo+ID4gKwkvKiBVc2VkIHRvIHNhdmUg dGhlIHBpcGUtdG8tZW5jb2RlciBtYXBwaW5nIGZvciBhdWRpbyAqLw0KPiA+ICsJc3RydWN0IGlu dGVsX2VuY29kZXIgKmF2X2VuY19tYXBbSTkxNV9NQVhfUElQRVNdOw0KPiA+ICANCj4gPiAgCS8q DQo+ID4gIAkgKiBOT1RFOiBUaGlzIGlzIHRoZSBkcmkxL3VtcyBkdW5nZW9uLCBkb24ndCBhZGQg c3R1ZmYgaGVyZS4gWW91ciBwYXRjaA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYw0K PiA+IGluZGV4IGVmMjA4NzUuLmE3NDY3ZWEgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXVkaW8uYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F1ZGlvLmMNCj4gPiBAQCAtNTAwLDYgKzUwMCw3IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29k ZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQ0KPiA+ICAJc3Ry dWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25l bnQ7DQo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVu Y190b19kaWdfcG9ydChlbmNvZGVyKTsNCj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGln X3BvcnQtPnBvcnQ7DQo+ID4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7DQo+ID4gIA0K PiA+ICAJY29ubmVjdG9yID0gZHJtX3NlbGVjdF9lbGQoZW5jb2Rlcik7DQo+ID4gIAlpZiAoIWNv bm5lY3RvcikNCj4gPiBAQCAtNTI0LDEyICs1MjUsMTggQEAgdm9pZCBpbnRlbF9hdWRpb19jb2Rl Y19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpDQo+ID4gIA0KPiA+ ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsNCj4gPiAgCWludGVsX2VuY29kZXIt PmF1ZGlvX2Nvbm5lY3RvciA9IGNvbm5lY3RvcjsNCj4gPiArDQo+ID4gIAkvKiByZWZlcnJlZCBp biBhdWRpbyBjYWxsYmFja3MgKi8NCj4gPiAtCWRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF0g PSBpbnRlbF9lbmNvZGVyOw0KPiA+ICsJZGV2X3ByaXYtPmF2X2VuY19tYXBbcGlwZV0gPSBpbnRl bF9lbmNvZGVyOw0KPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+ ICANCj4gPiArCS8qIGF1ZGlvIGRyaXZlcnMgZXhwZWN0IHBpcGUgPSAtMSB0byBpbmRpY2F0ZSBO b24tTVNUIGNhc2VzICovDQo+ID4gKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9P VVRQVVRfRFBfTVNUKQ0KPiA+ICsJCXBpcGUgPSAtMTsNCj4gPiArDQo+ID4gIAlpZiAoYWNvbXAg JiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkN Cj4gPiAtCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3Bz LT5hdWRpb19wdHIsIChpbnQpIHBvcnQpOw0KPiA+ICsJCWFjb21wLT5hdWRpb19vcHMtPnBpbl9l bGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwNCj4gPiArCQkJCQkJIChpbnQp IHBvcnQsIChpbnQpIHBpcGUpOw0KPiA+ICB9DQo+ID4gIA0KPiA+ICAvKioNCj4gPiBAQCAtNTQy LDIyICs1NDksMjkgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmludGVsX2VuY29kZXIpDQo+ID4gIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikNCj4gPiAgew0KPiA+ICAJ c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2VuY29kZXItPmJhc2U7DQo+ID4g KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7 DQo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Ow0KPiA+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiA+ICAJc3Ry dWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25l bnQ7DQo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVu Y190b19kaWdfcG9ydChlbmNvZGVyKTsNCj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGln X3BvcnQtPnBvcnQ7DQo+ID4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7DQo+ID4gIA0K PiA+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUpDQo+ID4gIAkJ ZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVyKTsNCj4g PiAgDQo+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+ICAJaW50ZWxf ZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0gTlVMTDsNCj4gPiAtCWRldl9wcml2LT5kaWdfcG9y dF9tYXBbcG9ydF0gPSBOVUxMOw0KPiA+ICsJZGV2X3ByaXYtPmF2X2VuY19tYXBbcGlwZV0gPSBO VUxMOw0KPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+ICANCj4g PiArCS8qIGF1ZGlvIGRyaXZlcnMgZXhwZWN0IHBpcGUgPSAtMSB0byBpbmRpY2F0ZSBOb24tTVNU IGNhc2VzICovDQo+ID4gKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRf RFBfTVNUKQ0KPiA+ICsJCXBpcGUgPSAtMTsNCj4gPiArDQo+ID4gIAlpZiAoYWNvbXAgJiYgYWNv bXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkNCj4gPiAt CQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRp b19wdHIsIChpbnQpIHBvcnQpOw0KPiA+ICsJCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90 aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwNCj4gPiArCQkJCQkJIChpbnQpIHBvcnQs IChpbnQpIHBpcGUpOw0KPiA+ICB9DQo+ID4gIA0KPiA+ICAvKioNCj4gPiBAQCAtNjMyLDE1ICs2 NDYsMzkgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfY2RjbGtfZnJlcShz dHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gIAlyZXR1cm4gZGV2X3ByaXYtPmNkY2xrX2ZyZXE7DQo+ ID4gIH0NCj4gPiAgDQo+ID4gLXN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19h dWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiAtCQkJCQkJaW50IHBvcnQsIGludCBy YXRlKQ0KPiA+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKmdldF9zYXZlZF9lbmMoc3Ry dWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbXSwNCj4gPiArCQkJCQkgICAgICAgaW50IHBv cnQsIGludCBwaXBlKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7 DQo+ID4gKw0KPiA+ICsJaWYgKFdBUk5fT04ocGlwZSA+PSBJOTE1X01BWF9QSVBFUykpDQo+ID4g KwkJcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ICsJLyogTVNUICovDQo+ID4gKwlpZiAocGlwZSAh PSAtMSkNCj4gDQo+IEknZCBtYWtlIHRoYXQgPCAwDQo+IA0KVGhhbmtzIGZvciByZXZpZXdpbmcu DQpEbyB5b3UgbWVhbiB0aGlzPyAtIGhhbmRsZSB0aGUgbm9uLU1TVCBicmFuY2ggZmlyc3Qgd2l0 aCANCg0KaWYgKHBpcGUgPCAwKXsgDQoJZm9yX2VhY2hfcGlwZSgpew0KDQoJCS4uLg0KCX0NCn0N CmVsc2UgDQoJcmV0dXJuIGF2X2VuY19tYXBbcGlwZV07DQoNCj4gPiArCQlyZXR1cm4gYXZfZW5j X21hcFtwaXBlXTsNCj4gPiArDQo+ID4gKwkvKiBOb24tTVNUICovDQo+ID4gKwlmb3IgKHBpcGUg PSBQSVBFX0E7IHBpcGUgPCBJOTE1X01BWF9QSVBFUzsgcGlwZSsrKSB7DQo+IA0KPiBmb3JfZWFj aF9waXBlKCkgd291bGQgYmUgbmljZXIuDQo+IA0KPiA+ICsJCWlmICghYXZfZW5jX21hcFtwaXBl XSkNCj4gPiArCQkJY29udGludWU7DQo+ID4gKw0KPiA+ICsJCWVuY29kZXIgPSAmYXZfZW5jX21h cFtwaXBlXS0+YmFzZTsNCj4gPiArCQlpZiAocG9ydCA9PSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rl ciktPnBvcnQpDQo+ID4gKwkJCXJldHVybiBhdl9lbmNfbWFwW3BpcGVdOw0KPiA+ICsJfQ0KPiA+ ICsNCj4gPiArCXJldHVybiBOVUxMOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGk5 MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGlu dCBwb3J0LA0KPiA+ICsJCQkJCQlpbnQgcGlwZSwgaW50IHJhdGUpDQo+ID4gIHsNCj4gPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7DQo+ID4g IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsNCj4gPiAgCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjOw0KPiA+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7DQo+ID4g IAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2Nv bXBvbmVudDsNCj4gPiAtCWVudW0gcGlwZSBwaXBlID0gSU5WQUxJRF9QSVBFOw0KPiA+ICAJdTMy IHRtcDsNCj4gPiAgCWludCBuOw0KPiA+ICAJaW50IGVyciA9IDA7DQo+ID4gQEAgLTY1NCwyNSAr NjkyLDIwIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRl KHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiAgDQo+ID4gIAlpOTE1X2F1ZGlvX2NvbXBvbmVudF9n ZXRfcG93ZXIoZGV2KTsNCj4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7DQo+ ID4gKw0KPiA+ICAJLyogMS4gZ2V0IHRoZSBwaXBlICovDQo+ID4gLQlpbnRlbF9lbmNvZGVyID0g ZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XTsNCj4gPiAtCS8qIGludGVsX2VuY29kZXIgbWln aHQgYmUgTlVMTCBmb3IgRFAgTVNUICovDQo+ID4gKwlpbnRlbF9lbmNvZGVyID0gZ2V0X3NhdmVk X2VuYyhkZXZfcHJpdi0+YXZfZW5jX21hcCwgcG9ydCwgcGlwZSk7DQo+ID4gIAlpZiAoIWludGVs X2VuY29kZXIgfHwgIWludGVsX2VuY29kZXItPmJhc2UuY3J0YyB8fA0KPiA+ICAJICAgIGludGVs X2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0hETUkpIHsNCj4gDQo+IERpZCB3ZSBoYXZl IGEgZm9sbG93dXAgcGxhbm5lZCB0byBkZWFsIHdpdGggTVNUIGhlcmU/IEkga25vdyB0aGVyZSdz DQo+IHRoYXQgU1NUIE0vTiBwYXRjaCBmbG9hdGluZyBhcm91bmQsIGJ1dCBJIHRoaW5rIHdlJ2xs IHdhbnQgaXQgZm9yIE1TVA0KPiB0b28uDQo+IA0KTG9va3MgbGlrZSBMaWJpbiBZYW5nIGlzIHdv cmtpbmcgb24gdGhlIERQIHBhdGNoLCBJIHdpbGwgY2hlY2sgd2l0aCBoaW0uDQoNCj4gPiAtCQlE Uk1fREVCVUdfS01TKCJubyB2YWxpZCBwb3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOw0KPiA+ ICsJCURSTV9ERUJVR19LTVMoIk5vdCB2YWxpZCBmb3IgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBv cnQpKTsNCj4gPiAgCQllcnIgPSAtRU5PREVWOw0KPiA+ICAJCWdvdG8gdW5sb2NrOw0KPiA+ICAJ fQ0KPiA+ICsNCj4gPiArCS8qIHBpcGUgcGFzc2VkIGZyb20gdGhlIGF1ZGlvIGRyaXZlciB3aWxs IGJlIC0xIGZvciBOb24tTVNUIGNhc2UgKi8NCj4gPiAgCWNydGMgPSB0b19pbnRlbF9jcnRjKGlu dGVsX2VuY29kZXItPmJhc2UuY3J0Yyk7DQo+ID4gIAlwaXBlID0gY3J0Yy0+cGlwZTsNCj4gPiAt CWlmIChwaXBlID09IElOVkFMSURfUElQRSkgew0KPiA+IC0JCURSTV9ERUJVR19LTVMoIm5vIHBp cGUgZm9yIHRoZSBwb3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOw0KPiA+IC0JCWVyciA9IC1F Tk9ERVY7DQo+ID4gLQkJZ290byB1bmxvY2s7DQo+ID4gLQl9DQo+ID4gIA0KPiA+IC0JRFJNX0RF QlVHX0tNUygicGlwZSAlYyBjb25uZWN0cyBwb3J0ICVjXG4iLA0KPiA+IC0JCQkJICBwaXBlX25h bWUocGlwZSksIHBvcnRfbmFtZShwb3J0KSk7DQo+ID4gIAltb2RlID0gJmNydGMtPmNvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlOw0KPiA+ICANCj4gPiAgCS8qIHBvcnQgbXVzdCBiZSB2YWxpZCBu b3csIG90aGVyd2lzZSB0aGUgcGlwZSB3aWxsIGJlIGludmFsaWQgKi8NCj4gPiBAQCAtNzA4LDcg Kzc0MSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRl KHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiAgfQ0KPiA+ICANCj4gPiAgc3RhdGljIGludCBpOTE1 X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBvcnQsDQo+ ID4gLQkJCQkJYm9vbCAqZW5hYmxlZCwNCj4gPiArCQkJCQlpbnQgcGlwZSwgYm9vbCAqZW5hYmxl ZCwNCj4gPiAgCQkJCQl1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpDQo+ID4gIHsN Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRl dik7DQo+ID4gQEAgLTcxNywxNiArNzUwLDIwIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21w b25lbnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LA0KPiA+ICAJaW50IHJl dCA9IC1FSU5WQUw7DQo+ID4gIA0KPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4 KTsNCj4gPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOw0K PiA+IC0JLyogaW50ZWxfZW5jb2RlciBtaWdodCBiZSBOVUxMIGZvciBEUCBNU1QgKi8NCj4gPiAt CWlmIChpbnRlbF9lbmNvZGVyKSB7DQo+ID4gLQkJcmV0ID0gMDsNCj4gPiAtCQkqZW5hYmxlZCA9 IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciAhPSBOVUxMOw0KPiA+IC0JCWlmICgqZW5h YmxlZCkgew0KPiA+IC0JCQllbGQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVs ZDsNCj4gPiAtCQkJcmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7DQo+ID4gLQkJCW1lbWNweShidWYs IGVsZCwgbWluKG1heF9ieXRlcywgcmV0KSk7DQo+ID4gLQkJfQ0KPiA+ICsNCj4gPiArCWludGVs X2VuY29kZXIgPSBnZXRfc2F2ZWRfZW5jKGRldl9wcml2LT5hdl9lbmNfbWFwLCBwb3J0LCBwaXBl KTsNCj4gPiArCWlmICghaW50ZWxfZW5jb2Rlcikgew0KPiA+ICsJCURSTV9ERUJVR19LTVMoIk5v dCB2YWxpZCBmb3IgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsNCj4gDQo+IFByaW50IHRo ZSBwaXBlIG5hbWUgdG9vLCBpZiB3ZSBoYXZlIGEgdmFsaWQgcGlwZT8NCj4gDQo+ID4gKwkJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4g Kwl9DQo+ID4gKw0KPiA+ICsJcmV0ID0gMDsNCj4gPiArCSplbmFibGVkID0gaW50ZWxfZW5jb2Rl ci0+YXVkaW9fY29ubmVjdG9yICE9IE5VTEw7DQo+ID4gKwlpZiAoKmVuYWJsZWQpIHsNCj4gPiAr CQllbGQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVsZDsNCj4gPiArCQlyZXQg PSBkcm1fZWxkX3NpemUoZWxkKTsNCj4gPiArCQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0 ZXMsIHJldCkpOw0KPiA+ICAJfQ0KPiA+ICANCj4gPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmF2X211dGV4KTsNCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQu aCBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgNCj4gPiBpbmRleCBiNDZmYTBlLi41NDVj NmUwIDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgNCj4gPiAr KysgYi9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oDQo+ID4gQEAgLTY0LDcgKzY0LDcgQEAg c3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyB7DQo+ID4gIAkgKiBDYWxsZWQgZnJvbSBh dWRpbyBkcml2ZXIuIEFmdGVyIGF1ZGlvIGRyaXZlciBzZXRzIHRoZQ0KPiA+ICAJICogc2FtcGxl IHJhdGUsIGl0IHdpbGwgY2FsbCB0aGlzIGZ1bmN0aW9uIHRvIHNldCBuL2N0cw0KPiA+ICAJICov DQo+ID4gLQlpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQs IGludCByYXRlKTsNCj4gPiArCWludCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAq LCBpbnQgcG9ydCwgaW50IHBpcGUsIGludCByYXRlKTsNCj4gPiAgCS8qKg0KPiA+ICAJICogQGdl dF9lbGQ6IGZpbGwgdGhlIGF1ZGlvIHN0YXRlIGFuZCBFTEQgYnl0ZXMgZm9yIHRoZSBnaXZlbiBw b3J0DQo+ID4gIAkgKg0KPiA+IEBAIC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2Nv bXBvbmVudF9vcHMgew0KPiA+ICAJICogTm90ZSB0aGF0IHRoZSByZXR1cm5lZCBzaXplIG1heSBi ZSBvdmVyIEBtYXhfYnl0ZXMuICBUaGVuIGl0DQo+ID4gIAkgKiBpbXBsaWVzIHRoYXQgb25seSBh IHBhcnQgb2YgRUxEIGhhcyBiZWVuIGNvcGllZCB0byB0aGUgYnVmZmVyLg0KPiA+ICAJICovDQo+ ID4gLQlpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBib29sICplbmFi bGVkLA0KPiA+ICsJaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50 IHBpcGUsIGJvb2wgKmVuYWJsZWQsDQo+ID4gIAkJICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1Ziwg aW50IG1heF9ieXRlcyk7DQo+ID4gIH07DQo+ID4gIA0KPiA+IEBAIC05Nyw3ICs5Nyw3IEBAIHN0 cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMgew0KPiA+ICAJICogc3RhdHVzIGFj Y29yZGluZ2x5IChldmVuIHdoZW4gdGhlIEhEQSBjb250cm9sbGVyIGlzIGluIHBvd2VyIHNhdmUN Cj4gPiAgCSAqIG1vZGUpLg0KPiA+ICAJICovDQo+ID4gLQl2b2lkICgqcGluX2VsZF9ub3RpZnkp KHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQpOw0KPiA+ICsJdm9pZCAoKnBpbl9lbGRfbm90aWZ5 KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBpbnQgcGlwZSk7DQo+ID4gIH07DQo+ID4gIA0K PiA+ICAvKioNCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oIGIvaW5j bHVkZS9zb3VuZC9oZGFfaTkxNS5oDQo+ID4gaW5kZXggNzk2Y2FiZi4uMDdmZDY0ZSAxMDA2NDQN Cj4gPiAtLS0gYS9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgNCj4gPiArKysgYi9pbmNsdWRlL3Nv dW5kL2hkYV9pOTE1LmgNCj4gPiBAQCAtMTAsOCArMTAsOSBAQA0KPiA+ICBpbnQgc25kX2hkYWNf c2V0X2NvZGVjX3dha2V1cChzdHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOw0KPiA+ ICBpbnQgc25kX2hkYWNfZGlzcGxheV9wb3dlcihzdHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBl bmFibGUpOw0KPiA+ICB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2JjbGsoc3RydWN0IGhkYWNfYnVz ICpidXMpOw0KPiA+IC1pbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2Rl dmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKTsNCj4gPiAtaW50IHNuZF9oZGFj X2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwN Cj4gPiAraW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNv ZGVjLCBoZGFfbmlkX3QgbmlkLA0KPiA+ICsJCQkgICAgIGludCBwaXBlLCBpbnQgcmF0ZSk7DQo+ ID4gK2ludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMs IGhkYV9uaWRfdCBuaWQsIGludCBwaXBlLA0KPiA+ICAJCQkgICBib29sICphdWRpb19lbmFibGVk LCBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpOw0KPiA+ICBpbnQgc25kX2hkYWNfaTkxNV9p bml0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsNCj4gPiAgaW50IHNuZF9oZGFjX2k5MTVfZXhpdChz dHJ1Y3QgaGRhY19idXMgKmJ1cyk7DQo+ID4gQEAgLTI5LDEzICszMCwxMyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgc25kX2hkYWNfaTkxNV9zZXRfYmNsayhzdHJ1Y3QgaGRhY19idXMgKmJ1cykNCj4g PiAgew0KPiA+ICB9DQo+ID4gIHN0YXRpYyBpbmxpbmUgaW50IHNuZF9oZGFjX3N5bmNfYXVkaW9f cmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLA0KPiA+IC0JCQkJCSAgIGhkYV9uaWRfdCBu aWQsIGludCByYXRlKQ0KPiA+ICsJCQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCBwaXBlLCBpbnQg cmF0ZSkNCj4gPiAgew0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPiAgc3RhdGljIGlubGlu ZSBpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBo ZGFfbmlkX3QgbmlkLA0KPiA+IC0JCQkJCSBib29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZm ZXIsDQo+ID4gLQkJCQkJIGludCBtYXhfYnl0ZXMpDQo+ID4gKwkJCQkJIGludCBwaXBlLCBib29s ICphdWRpb19lbmFibGVkLA0KPiA+ICsJCQkJCSBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMp DQo+ID4gIHsNCj4gPiAgCXJldHVybiAtRU5PREVWOw0KPiA+ICB9DQo+ID4gZGlmZiAtLWdpdCBh L3NvdW5kL2hkYS9oZGFjX2k5MTUuYyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYw0KPiA+IGluZGV4 IGM5YWYwMjIuLmI5OTk5NGIgMTAwNjQ0DQo+ID4gLS0tIGEvc291bmQvaGRhL2hkYWNfaTkxNS5j DQo+ID4gKysrIGIvc291bmQvaGRhL2hkYWNfaTkxNS5jDQo+ID4gQEAgLTIwMSw3ICsyMDEsOCBA QCBzdGF0aWMgaW50IHBpbjJwb3J0KHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRf dCBwaW5fbmlkKQ0KPiA+ICAgKiBUaGlzIGZ1bmN0aW9uIHNldHMgTi9DVFMgdmFsdWUgYmFzZWQg b24gdGhlIGdpdmVuIHNhbXBsZSByYXRlLg0KPiA+ICAgKiBSZXR1cm5zIHplcm8gZm9yIHN1Y2Nl c3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4NCj4gPiAgICovDQo+ID4gLWludCBzbmRfaGRh Y19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5p ZCwgaW50IHJhdGUpDQo+ID4gK2ludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhk YWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwNCj4gPiArCQkJICAgICBpbnQgcGlwZSwg aW50IHJhdGUpDQo+IA0KPiBJIHRob3VnaHQgeW91J2Qgc3RpbGwgd2FudCB0byBjYWxsIGl0ICdk ZXZfaWQnIG9uIHRoZSBoZGEgc2lkZSwgYW5kIGp1c3QNCj4gZG8gdGhlIGRldl9pZC0+cGlwZSBj b252ZXJzaW9uIGhlcmUgbmV4dCB0byB0aGUgcGluLT5wb3J0IGNvbnZlcnNpb24/DQo+IEp1c3Qg ZmlndXJlZCB0aGF0IHdvdWxkIGJlIGxlc3MgY29uZnVzaW5nIGZvciBwZW9wbGUgd2hvIGFyZSBq dXN0IGZhbWlsaWFyDQo+IHdpdGggaGRhIGFuZCBub3QgaTkxNS4NCj4gDQpZZWFoLCB0aGF0IG1h a2VzIHNlbnNlLiANCg0KPiBBbnl3YXlzLCB0aGUgcGF0Y2ggbG9va3MgcHJldHR5IGdvb2QgdG8g bWUgZnJvbSB0aGUgaTkxNSBQT1YuIFdoZXRoZXINCj4geW91IHdhbnQgdG8gZG8gdGhvc2Ugc21h bGwgY2hhbmdlcyBJIHByb3Bvc2VkIGlzIHVwIHRvIHlvdSwgYW5kIGVpdGhlcg0KPiB3YXkgdGhl IGk5MTUgcGFydHMgYXJlDQo+IFJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPg0KPiANCg0KSSBoYXZlIGFzc3VtZWQgZW5jX3RvX2RpZ19w b3J0KCkgd29ya3MgZm9yIE1TVCBlbmNvZGVycy4gRG8geW91IHRoaW5rDQppdCdzIGdvb2QgaWRl YSB0byBoYXZlIHRoaXMNCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lu dGVsLWdmeC8yMDE2LUF1Z3VzdC8xMDI5OTQuaHRtbA0Kbm93Pw0KIA0KPiA+ICB7DQo+ID4gIAlz dHJ1Y3QgaGRhY19idXMgKmJ1cyA9IGNvZGVjLT5idXM7DQo+ID4gIAlzdHJ1Y3QgaTkxNV9hdWRp b19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19jb21wb25lbnQ7DQo+ID4gQEAgLTIxMiw3 ICsyMTMsNyBAQCBpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2Rldmlj ZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQ0KPiA+ICAJcG9ydCA9IHBpbjJwb3J0 KGNvZGVjLCBuaWQpOw0KPiA+ICAJaWYgKHBvcnQgPCAwKQ0KPiA+ICAJCXJldHVybiAtRUlOVkFM Ow0KPiA+IC0JcmV0dXJuIGFjb21wLT5vcHMtPnN5bmNfYXVkaW9fcmF0ZShhY29tcC0+ZGV2LCBw b3J0LCByYXRlKTsNCj4gPiArCXJldHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlvX3JhdGUoYWNv bXAtPmRldiwgcG9ydCwgcGlwZSwgcmF0ZSk7DQo+ID4gIH0NCj4gPiAgRVhQT1JUX1NZTUJPTF9H UEwoc25kX2hkYWNfc3luY19hdWRpb19yYXRlKTsNCj4gPiAgDQo+ID4gQEAgLTIzNiw3ICsyMzcs NyBAQCBFWFBPUlRfU1lNQk9MX0dQTChzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUpOw0KPiA+ICAg KiB0aHVzIGl0IG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBJZiBpdCdzIG92ZXIgQG1heF9ieXRl cywgaXQgaW1wbGllcw0KPiA+ICAgKiB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVMRCBieXRlcyBoYXZl IGJlZW4gZmV0Y2hlZC4NCj4gPiAgICovDQo+ID4gLWludCBzbmRfaGRhY19hY29tcF9nZXRfZWxk KHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4gK2ludCBzbmRf aGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBu aWQsIGludCBwaXBlLA0KPiA+ICAJCQkgICBib29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZm ZXIsIGludCBtYXhfYnl0ZXMpDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0g Y29kZWMtPmJ1czsNCj4gPiBAQCAtMjQ5LDcgKzI1MCw3IEBAIGludCBzbmRfaGRhY19hY29tcF9n ZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4gIAlw b3J0ID0gcGluMnBvcnQoY29kZWMsIG5pZCk7DQo+ID4gIAlpZiAocG9ydCA8IDApDQo+ID4gIAkJ cmV0dXJuIC1FSU5WQUw7DQo+ID4gLQlyZXR1cm4gYWNvbXAtPm9wcy0+Z2V0X2VsZChhY29tcC0+ ZGV2LCBwb3J0LCBhdWRpb19lbmFibGVkLA0KPiA+ICsJcmV0dXJuIGFjb21wLT5vcHMtPmdldF9l bGQoYWNvbXAtPmRldiwgcG9ydCwgcGlwZSwgYXVkaW9fZW5hYmxlZCwNCj4gPiAgCQkJCSAgIGJ1 ZmZlciwgbWF4X2J5dGVzKTsNCj4gPiAgfQ0KPiA+ICBFWFBPUlRfU1lNQk9MX0dQTChzbmRfaGRh Y19hY29tcF9nZXRfZWxkKTsNCj4gPiBkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9o ZG1pLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYw0KPiA+IGluZGV4IGQwZDVhZDguLjY3 ODkwZGYgMTAwNjQ0DQo+ID4gLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMNCj4gPiAr KysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYw0KPiA+IEBAIC0xNDg1LDcgKzE0ODUsNyBA QCBzdGF0aWMgdm9pZCBzeW5jX2VsZF92aWFfYWNvbXAoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMs DQo+ID4gIA0KPiA+ICAJbXV0ZXhfbG9jaygmcGVyX3Bpbi0+bG9jayk7DQo+ID4gIAllbGQtPm1v bml0b3JfcHJlc2VudCA9IGZhbHNlOw0KPiA+IC0Jc2l6ZSA9IHNuZF9oZGFjX2Fjb21wX2dldF9l bGQoJmNvZGVjLT5jb3JlLCBwZXJfcGluLT5waW5fbmlkLA0KPiA+ICsJc2l6ZSA9IHNuZF9oZGFj X2Fjb21wX2dldF9lbGQoJmNvZGVjLT5jb3JlLCBwZXJfcGluLT5waW5fbmlkLCAtMSwNCj4gPiAg CQkJCSAgICAgICZlbGQtPm1vbml0b3JfcHJlc2VudCwgZWxkLT5lbGRfYnVmZmVyLA0KPiA+ICAJ CQkJICAgICAgRUxEX01BWF9TSVpFKTsNCj4gPiAgCWlmIChzaXplID4gMCkgew0KPiA+IEBAIC0x NzM5LDcgKzE3MzksOCBAQCBzdGF0aWMgaW50IGdlbmVyaWNfaGRtaV9wbGF5YmFja19wY21fcHJl cGFyZShzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0gKmhpbmZvLA0KPiA+ICAJLyogQ2FsbCBzeW5jX2F1 ZGlvX3JhdGUgdG8gc2V0IHRoZSBOL0NUUy9NIG1hbnVhbGx5IGlmIG5lY2Vzc2FyeSAqLw0KPiA+ ICAJLyogVG9kbzogYWRkIERQMS4yIE1TVCBhdWRpbyBzdXBwb3J0IGxhdGVyICovDQo+ID4gIAlp ZiAoY29kZWNfaGFzX2Fjb21wKGNvZGVjKSkNCj4gPiAtCQlzbmRfaGRhY19zeW5jX2F1ZGlvX3Jh dGUoJmNvZGVjLT5jb3JlLCBwaW5fbmlkLCBydW50aW1lLT5yYXRlKTsNCj4gPiArCQlzbmRfaGRh Y19zeW5jX2F1ZGlvX3JhdGUoJmNvZGVjLT5jb3JlLCBwaW5fbmlkLCAtMSwNCj4gPiArCQkJCQkg cnVudGltZS0+cmF0ZSk7DQo+ID4gIA0KPiA+ICAJbm9uX3BjbSA9IGNoZWNrX25vbl9wY21fcGVy X2N2dChjb2RlYywgY3Z0X25pZCk7DQo+ID4gIAltdXRleF9sb2NrKCZwZXJfcGluLT5sb2NrKTsN Cj4gPiBAQCAtMjI4NSw3ICsyMjg2LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfcG93ZXJf c3RhdGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGhkYV9uaWRfdCBmZywNCj4gPiAgCXNuZF9o ZGFfY29kZWNfc2V0X3Bvd2VyX3RvX2FsbChjb2RlYywgZmcsIHBvd2VyX3N0YXRlKTsNCj4gPiAg fQ0KPiA+ICANCj4gPiAtc3RhdGljIHZvaWQgaW50ZWxfcGluX2VsZF9ub3RpZnkodm9pZCAqYXVk aW9fcHRyLCBpbnQgcG9ydCkNCj4gPiArc3RhdGljIHZvaWQgaW50ZWxfcGluX2VsZF9ub3RpZnko dm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCwgaW50IHBpcGUpDQo+ID4gIHsNCj4gPiAgCXN0cnVj dCBoZGFfY29kZWMgKmNvZGVjID0gYXVkaW9fcHRyOw0KPiA+ICAJaW50IHBpbl9uaWQ7DQo+ID4g ZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMgYi9zb3VuZC9zb2MvY29k ZWNzL2hkYWNfaGRtaS5jDQo+ID4gaW5kZXggMmFiYjc0Mi4uY2Y1N2FiMyAxMDA2NDQNCj4gPiAt LS0gYS9zb3VuZC9zb2MvY29kZWNzL2hkYWNfaGRtaS5jDQo+ID4gKysrIGIvc291bmQvc29jL2Nv ZGVjcy9oZGFjX2hkbWkuYw0KPiA+IEBAIC0xMzY2LDcgKzEzNjYsNyBAQCBzdGF0aWMgaW50IGhk YWNfaGRtaV9wYXJzZV9hbmRfbWFwX25pZChzdHJ1Y3QgaGRhY19leHRfZGV2aWNlICplZGV2LA0K PiA+ICAJcmV0dXJuIGhkYWNfaGRtaV9pbml0X2RhaV9tYXAoZWRldik7DQo+ID4gIH0NCj4gPiAg DQo+ID4gLXN0YXRpYyB2b2lkIGhkYWNfaGRtaV9lbGRfbm90aWZ5X2NiKHZvaWQgKmFwdHIsIGlu dCBwb3J0KQ0KPiA+ICtzdGF0aWMgdm9pZCBoZGFjX2hkbWlfZWxkX25vdGlmeV9jYih2b2lkICph cHRyLCBpbnQgcG9ydCwgaW50IHBpcGUpDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBoZGFjX2V4dF9k ZXZpY2UgKmVkZXYgPSBhcHRyOw0KPiA+ICAJc3RydWN0IGhkYWNfaGRtaV9wcml2ICpoZG1pID0g ZWRldi0+cHJpdmF0ZV9kYXRhOw0KPiA+IC0tIA0KPiA+IDIuNS4wDQo+IA0KDQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK