From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915/dp: DP audio API changes for MST Date: Wed, 3 Aug 2016 23:28:08 +0300 Message-ID: <20160803202808.GP4329@intel.com> References: <1470190470-32326-1-git-send-email-dhinakaran.pandiyan@intel.com> <1470190470-32326-2-git-send-email-dhinakaran.pandiyan@intel.com> <20160803190812.GO4329@intel.com> <1470254234.6362.15.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470254234.6362.15.camel@dk-H97M-D3H> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "tiwai@suse.de" , "libin.yang@linux.intel.com" , "intel-gfx@lists.freedesktop.org" , "alsa-devel@alsa-project.org" List-Id: alsa-devel@alsa-project.org T24gV2VkLCBBdWcgMDMsIDIwMTYgYXQgMDc6NDM6MDZQTSArMDAwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gV2VkLCAyMDE2LTA4LTAzIGF0IDIyOjA4ICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBUdWUsIEF1ZyAwMiwgMjAxNiBhdCAwNzoxNDozMFBNIC0w NzAwLCBEaGluYWthcmFuIFBhbmRpeWFuIHdyb3RlOgo+ID4gPiBEUCBNU1QgcHJvdmlkZXMgdGhl IGNhcGFiaWxpdHkgdG8gc2VuZCBtdWx0aXBsZSB2aWRlbyBhbmQgYXVkaW8gc3RyZWFtcyB2aWEK PiA+ID4gb25lIHNpbmdsZSBwb3J0LiBUaGlzIHJlcXVpcmVzIHRoZSBBUEkncyBiZXR3ZWVuIGk5 MTUgYW5kIGF1ZGlvIGRyaXZlcnMgdG8KPiA+ID4gZGlzdGluZ3Vpc2ggYmV0d2VlbiBhdWRpbyBj YXBhYmxlIGRpc3BsYXlzIGNvbm5lY3RlZCB0byBhIHBvcnQuIFRoaXMgcGF0Y2gKPiA+ID4gYWRk cyB0aGlzIHN1cHBvcnQgdmlhIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyICdpbnQgZGV2X2lkJy4g VGhlIGV4aXN0aW5nCj4gPiA+IHBhcmFtZXRlciAncG9ydCcgZG9lcyBub3QgY2hhbmdlIGl0J3Mg bWVhbmluZy4KPiA+ID4gCj4gPiA+IGRldl9pZCA9Cj4gPiA+IAlNU1QJOiBwaXBlIHRoYXQgdGhl IHN0cmVhbSBvcmlnaW5hdGVzIGZyb20KPiA+ID4gCU5vbi1NU1QJOiAtMQo+ID4gPiAKPiA+ID4g QWZmZWN0ZWQgQVBJczoKPiA+ID4gc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcwo+ID4g PiAtICAgICAgIGludCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9y dCwgaW50IHJhdGUpOwo+ID4gPiArCWludCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmlj ZSAqLCBpbnQgcG9ydCwgaW50IGRldl9pZCwKPiA+IAo+ID4gRG9lcyB0aGUgdGVybSAnZGV2X2lk JyBoYXZlIHNvbWUgc3BlY2lhbCBtZWFuaW5nIG9uIHRoZSBhdWRpbyBzaWRlPyBPbgo+ID4gdGhl IGk5MTUgc2lkZSB0aGluZ3Mgd291bGQgYmUgbGVzcyBjb25mdXNpbmcgaWYgd2UganVzdCBjYWxs ZWQgaXQKPiA+ICdwaXBlJy4KPiA+IAo+IAo+IFRoZXJlIHdhcyBxdWl0ZSBhIGJpdCBvZiBiYWNr IGFuZCBmb3J0aCBvbiB0aGlzLiAicGlwZSIgc2VlbWVkIHRvIHRpZSB1cwo+IHRvIHRoZSBnZngg aGFyZHdhcmUgYXJjaGl0ZWN0dXJlLiBJbiBjYXNlLCB0aGVyZSBpcyBubyAxOjEgbWFwcGluZyBm cm9tCj4gcGlwZXMgdG8gZW5jb2RlcnMsIHRoaXMgd2lsbCBnZXQgY29uZnVzaW5nIGFzIGk5MTUg YXVkaW8gcmVnaXN0ZXJzCj4gKEUuZy5IU1dfQVVEX1BJTl9FTERfQ1BfVkxEKSBhcmUgZW5jb2Rl ciBiYXNlZC4KCkknbSBub3QgZm9sbG93aW5nLiBMb29raW5nIGF0IHRoZSBjdXJyZW50IGk5MTUg YXVkaW8gY29kZSwgb24gSFNXKwpldmVyeXRoaW5nIGlzIHBpcGUgYmFzZWQuCgo+IFdoZXJlYXMs IGRldl9pZCBpcwo+IGdlbmVyaWMgLSBIREEgc3BlYyBjYWxscyB0aGVtICJkZXZpY2VzIiBvciAi ZGV2aWNlIGVudHJ5IgoKR2VuZXJpYyBhbmQgdG90YWxseSB1bmNsZWFyIHdoYXQgaXQgbWVhbnMg ZnJvbSBncmFwaGljcyBzaWRlLgoKcGlwZSBhbmQgcG9ydCBhcmUgdGhlIG9ubHkgdGhpbmdzIHdl IHJlYWxseSBoYXZlIGluIGk5MTUuIElmIHRob3NlIGFyZW4ndApnb29kIGVub3VnaCBmb3IgdGhl IGF1ZGlvIHNpZGUsIHRoZW4gSSB0aGluayB3ZSBzaG91bGQgaGF2ZSBzb21lIGRlY2VudApjb2Rl IHRvIHJlbWFwIGJldHdlZW4gdGhlIHBpcGUrcG9ydCB2cy4gd2hhdGV2ZXIgYXVkaW8gc2lkZSBp ZCBpcyBuZWVkZWQuCkkgZG9uJ3QgcmVhbGx5IGNhcmUgb24gd2hpY2ggc2lkZSBvZiB0aGUgYm9y ZGVyIHN1Y2ggY29kZSB3b3VsZCBsaXZlLCBhcwpsb25nIGFzIGl0J3MgY2xlYXIgd2hhdCBpdCdz IGRvaW5nLgoKPiAKPiA+ID4gKwkgICAgIGludCByYXRlKTsKPiA+ID4gCj4gPiA+IC0gICAgICAg aW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgYm9vbCAqZW5hYmxlZCwK PiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4 X2J5dGVzKTsKPiA+ID4gKyAgICAgICBpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICosIGlu dCBwb3J0LCBpbnQgZGV2X2lkLAo+ID4gPiArCQkgICAgICAgYm9vbCAqZW5hYmxlZCwgdW5zaWdu ZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKPiA+ID4gCj4gPiA+IHN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMKPiA+ID4gLSAgICAgICB2b2lkICgqcGluX2VsZF9ub3Rp ZnkpKHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQpOwo+ID4gPiArICAgICAgIHZvaWQgKCpwaW5f ZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCwgaW50IGRldl9pZCk7Cj4gPiA+ IAo+ID4gPiBUaGlzIHBhdGNoIG1ha2VzIGR1bW15IGNoYW5nZXMgaW4gdGhlIGF1ZGlvIGRyaXZl cnMgZm9yIGJ1aWxkIHRvIHN1Y2NlZWQuCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBEaGlu YWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiA+ID4gLS0t Cj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgIHwgIDIgKy0KPiA+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgfCA4MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLQo+ID4gPiAgaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQu aCAgICAgICB8ICA2ICstLQo+ID4gPiAgaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oICAgICAgICAg ICB8IDExICsrLS0tCj4gPiA+ICBzb3VuZC9oZGEvaGRhY19pOTE1LmMgICAgICAgICAgICAgIHwg IDkgKysrLS0KPiA+ID4gIHNvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jICAgICAgICAgfCAgNyAr Ky0tCj4gPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9u cygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+IGluZGV4IDY1YWRh NWQuLjhlNGM4YzggMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBA QCAtMjA1NCw3ICsyMDU0LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4gPiAgCS8q IHBlcmZvcm0gUEhZIHN0YXRlIHNhbml0eSBjaGVja3M/ICovCj4gPiA+ICAJYm9vbCBjaHZfcGh5 X2Fzc2VydFsyXTsKPiA+ID4gIAo+ID4gPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpkaWdfcG9y dF9tYXBbSTkxNV9NQVhfUE9SVFNdOwo+ID4gPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICphdl9l bmNfbWFwW0k5MTVfTUFYX1BJUEVTXTsKPiA+ID4gIAo+ID4gPiAgCS8qCj4gPiA+ICAJICogTk9U RTogVGhpcyBpcyB0aGUgZHJpMS91bXMgZHVuZ2VvbiwgZG9uJ3QgYWRkIHN0dWZmIGhlcmUuIFlv dXIgcGF0Y2gKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gPiA+IGluZGV4IDhj NDkzZGUuLmNiZTQ0YzggMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F1ZGlvLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8u Ywo+ID4gPiBAQCAtNTAwLDYgKzUwMCw5IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ID4gPiAgCXN0cnVjdCBpOTE1 X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Owo+ID4g PiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2Rp Z19wb3J0KGVuY29kZXIpOwo+ID4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQt PnBvcnQ7Cj4gPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4gPiArCWludCBk ZXZfaWQgPSAtMTsKPiA+ID4gKwo+ID4gPiAgCj4gPiA+ICAJY29ubmVjdG9yID0gZHJtX3NlbGVj dF9lbGQoZW5jb2Rlcik7Cj4gPiA+ICAJaWYgKCFjb25uZWN0b3IpCj4gPiA+IEBAIC01MjIsMTQg KzUyNSwxOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29k ZWNfZW5hYmxlKGNvbm5lY3RvciwgaW50ZWxfZW5jb2RlciwKPiA+ID4gIAkJCQkJCSAgICAgYWRq dXN0ZWRfbW9kZSk7Cj4gPiA+ICAKPiA+ID4gKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJ TlRFTF9PVVRQVVRfRFBfTVNUKQo+ID4gPiArCQlkZXZfaWQgPSBwaXBlOwo+ID4gPiArCj4gPiA+ ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gIAlpbnRlbF9lbmNvZGVy LT5hdWRpb19jb25uZWN0b3IgPSBjb25uZWN0b3I7Cj4gPiA+ICsKPiA+ID4gIAkvKiByZWZlcnJl ZCBpbiBhdWRpbyBjYWxsYmFja3MgKi8KPiA+ID4gLQlkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3Bv cnRdID0gaW50ZWxfZW5jb2RlcjsKPiA+ID4gKwlkZXZfcHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9 IGludGVsX2VuY29kZXI7Cj4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgp Owo+ID4gPiAgCj4gPiA+ICAJaWYgKGFjb21wICYmIGFjb21wLT5hdWRpb19vcHMgJiYgYWNvbXAt PmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkpCj4gPiA+IC0JCWFjb21wLT5hdWRpb19vcHMtPnBp bl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwgKGludCkgcG9ydCk7Cj4g PiA+ICsJCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMt PmF1ZGlvX3B0ciwKPiA+ID4gKwkJCQkJCSAoaW50KSBwb3J0LCBkZXZfaWQpOwo+ID4gPiAgfQo+ ID4gPiAgCj4gPiA+ICAvKioKPiA+ID4gQEAgLTU0MiwyMiArNTUwLDI5IEBAIHZvaWQgaW50ZWxf YXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ ID4gPiAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwo+ID4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ID4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ID4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21w b25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKPiA+ID4gIAlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNv ZGVyKTsKPiA+ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Owo+ID4g PiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiA+ID4gKwlpbnQgZGV2X2lkID0gLTE7 Cj4gPiA+ICsKPiA+ID4gKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRf RFBfTVNUKQo+ID4gPiArCQlkZXZfaWQgPSBwaXBlOwo+ID4gPiAgCj4gPiA+ICAJaWYgKGRldl9w cml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUpCj4gPiA+ICAJCWRldl9wcml2LT5kaXNw bGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUoaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICAKPiA+ID4gIAlt dXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gPiAgCWludGVsX2VuY29kZXItPmF1 ZGlvX2Nvbm5lY3RvciA9IE5VTEw7Cj4gPiA+IC0JZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0 XSA9IE5VTEw7Cj4gPiA+ICsJZGV2X3ByaXYtPmF2X2VuY19tYXBbcGlwZV0gPSBOVUxMOwo+ID4g PiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gIAo+ID4gPiAgCWlm IChhY29tcCAmJiBhY29tcC0+YXVkaW9fb3BzICYmIGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRf bm90aWZ5KQo+ID4gPiAtCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+ YXVkaW9fb3BzLT5hdWRpb19wdHIsIChpbnQpIHBvcnQpOwo+ID4gPiArCQlhY29tcC0+YXVkaW9f b3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsCj4gPiA+ICsJ CQkJCQkgKGludCkgcG9ydCwgZGV2X2lkKTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAgLyoqCj4g PiA+IEBAIC02MjgsOCArNjQzLDMyIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRf Z2V0X2NkY2xrX2ZyZXEoc3RydWN0IGRldmljZSAqZGV2KQo+ID4gPiAgCXJldHVybiBkZXZfcHJp di0+Y2RjbGtfZnJlcTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAtc3RhdGljIGludCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gPiAt CQkJCQkJaW50IHBvcnQsIGludCByYXRlKQo+ID4gPiArc3RhdGljIHN0cnVjdCBpbnRlbF9lbmNv ZGVyICpnZXRfc2F2ZWRfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYXZfZW5jX21hcFtd LAo+ID4gPiArCQkJCQkgICAgICAgaW50IHBvcnQsIGludCBkZXZfaWQpCj4gPiA+ICt7Cj4gPiA+ ICsKPiA+ID4gKwllbnVtIHBpcGUgcGlwZTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXI7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoZGV2X2lkID49IDAgJiYgZGV2X2lkIDwgSTkxNV9N QVhfUElQRVMpCj4gPiA+ICsJCXJldHVybiBhdl9lbmNfbWFwW2Rldl9pZF07Cj4gPiA+ICsKPiA+ ID4gKwlmb3IgKHBpcGUgPSBQSVBFX0E7IHBpcGUgPCBJOTE1X01BWF9QSVBFUzsgcGlwZSsrKSB7 Cj4gPiA+ICsKPiA+ID4gKwkJaWYgKCFhdl9lbmNfbWFwW3BpcGVdKQo+ID4gPiArCQkJY29udGlu dWU7Cj4gPiA+ICsKPiA+ID4gKwkJZW5jb2RlciA9ICZhdl9lbmNfbWFwW3BpcGVdLT5iYXNlOwo+ ID4gPiArCQlpZiAocG9ydCA9PSBlbmNfdG9fZGlnX3BvcnQoZW5jb2RlciktPnBvcnQpCj4gPiA+ ICsJCQlyZXR1cm4gYXZfZW5jX21hcFtwaXBlXTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwly ZXR1cm4gTlVMTDsKPiA+ID4gKwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IGk5 MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGlu dCBwb3J0LAo+ID4gPiArCQkJCQkJaW50IGRldl9pZCwgaW50IHJhdGUpCj4gPiA+ICB7Cj4gPiA+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUoZGV2KTsK PiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsKPiA+ID4gQEAgLTY0 OSwxNSArNjg4LDE2IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRp b19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ID4gIAkJcmV0dXJuIDA7Cj4gPiA+ICAKPiA+ ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gPiArCj4gPiA+ICAJLyog MS4gZ2V0IHRoZSBwaXBlICovCj4gPiA+IC0JaW50ZWxfZW5jb2RlciA9IGRldl9wcml2LT5kaWdf cG9ydF9tYXBbcG9ydF07Cj4gPiA+IC0JLyogaW50ZWxfZW5jb2RlciBtaWdodCBiZSBOVUxMIGZv ciBEUCBNU1QgKi8KPiA+ID4gKwlpbnRlbF9lbmNvZGVyID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2 X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIGRldl9pZCk7Cj4gPiA+ICAJaWYgKCFpbnRlbF9lbmNv ZGVyIHx8ICFpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMgfHwKPiA+ID4gIAkgICAgaW50ZWxfZW5j b2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkgewo+ID4gPiAgCQlEUk1fREVCVUdfS01T KCJubyB2YWxpZCBwb3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOwo+ID4gPiAgCQllcnIgPSAt RU5PREVWOwo+ID4gPiAgCQlnb3RvIHVubG9jazsKPiA+ID4gIAl9Cj4gPiA+ICsKPiA+ID4gIAlj cnRjID0gdG9faW50ZWxfY3J0YyhpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpOwo+ID4gPiAgCXBp cGUgPSBjcnRjLT5waXBlOwo+ID4gPiAgCWlmIChwaXBlID09IElOVkFMSURfUElQRSkgewo+ID4g PiBAQCAtNzAyLDcgKzc0Miw3IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3lu Y19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAg c3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRl diwgaW50IHBvcnQsCj4gPiA+IC0JCQkJCWJvb2wgKmVuYWJsZWQsCj4gPiA+ICsJCQkJCWludCBk ZXZfaWQsIGJvb2wgKmVuYWJsZWQsCj4gPiA+ICAJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50 IG1heF9ieXRlcykKPiA+ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXZfdG9faTkxNShkZXYpOwo+ID4gPiBAQCAtNzEwLDE3ICs3NTAsMjEgQEAgc3Rh dGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRldiwg aW50IHBvcnQsCj4gPiA+ICAJY29uc3QgdTggKmVsZDsKPiA+ID4gIAlpbnQgcmV0ID0gLUVJTlZB TDsKPiA+ID4gIAo+ID4gPiArCj4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4 KTsKPiA+ID4gLQlpbnRlbF9lbmNvZGVyID0gZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XTsK PiA+ID4gLQkvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0IGJlIE5VTEwgZm9yIERQIE1TVCAqLwo+ID4g PiAtCWlmIChpbnRlbF9lbmNvZGVyKSB7Cj4gPiA+IC0JCXJldCA9IDA7Cj4gPiA+IC0JCSplbmFi bGVkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yICE9IE5VTEw7Cj4gPiA+IC0JCWlm ICgqZW5hYmxlZCkgewo+ID4gPiAtCQkJZWxkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVj dG9yLT5lbGQ7Cj4gPiA+IC0JCQlyZXQgPSBkcm1fZWxkX3NpemUoZWxkKTsKPiA+ID4gLQkJCW1l bWNweShidWYsIGVsZCwgbWluKG1heF9ieXRlcywgcmV0KSk7Cj4gPiA+IC0JCX0KPiA+ID4gKwo+ ID4gPiArCWludGVsX2VuY29kZXIgPSBnZXRfc2F2ZWRfZW5jb2RlcihkZXZfcHJpdi0+YXZfZW5j X21hcCwgcG9ydCwgZGV2X2lkKTsKPiA+ID4gKwlpZiAoIWludGVsX2VuY29kZXIpIHsKPiA+ID4g KwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gPiArCQlyZXR1cm4gcmV0 Owo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCXJldCA9IDA7Cj4gPiA+ICsJKmVuYWJsZWQgPSBp bnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgIT0gTlVMTDsKPiA+ID4gKwlpZiAoKmVuYWJs ZWQpIHsKPiA+ID4gKwkJZWxkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yLT5lbGQ7 Cj4gPiA+ICsJCXJldCA9IGRybV9lbGRfc2l6ZShlbGQpOwo+ID4gPiArCQltZW1jcHkoYnVmLCBl bGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAgCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2k5MTVfY29tcG9uZW50LmggYi9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4gPiA+ IGluZGV4IGI0NmZhMGUuLjE0MTljOTggMTAwNjQ0Cj4gPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2k5 MTVfY29tcG9uZW50LmgKPiA+ID4gKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAo+ ID4gPiBAQCAtNjQsNyArNjQsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzIHsK PiA+ID4gIAkgKiBDYWxsZWQgZnJvbSBhdWRpbyBkcml2ZXIuIEFmdGVyIGF1ZGlvIGRyaXZlciBz ZXRzIHRoZQo+ID4gPiAgCSAqIHNhbXBsZSByYXRlLCBpdCB3aWxsIGNhbGwgdGhpcyBmdW5jdGlv biB0byBzZXQgbi9jdHMKPiA+ID4gIAkgKi8KPiA+ID4gLQlpbnQgKCpzeW5jX2F1ZGlvX3JhdGUp KHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCByYXRlKTsKPiA+ID4gKwlpbnQgKCpzeW5j X2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBkZXZfaWQsIGludCBy YXRlKTsKPiA+ID4gIAkvKioKPiA+ID4gIAkgKiBAZ2V0X2VsZDogZmlsbCB0aGUgYXVkaW8gc3Rh dGUgYW5kIEVMRCBieXRlcyBmb3IgdGhlIGdpdmVuIHBvcnQKPiA+ID4gIAkgKgo+ID4gPiBAQCAt NzcsNyArNzcsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzIHsKPiA+ID4gIAkg KiBOb3RlIHRoYXQgdGhlIHJldHVybmVkIHNpemUgbWF5IGJlIG92ZXIgQG1heF9ieXRlcy4gIFRo ZW4gaXQKPiA+ID4gIAkgKiBpbXBsaWVzIHRoYXQgb25seSBhIHBhcnQgb2YgRUxEIGhhcyBiZWVu IGNvcGllZCB0byB0aGUgYnVmZmVyLgo+ID4gPiAgCSAqLwo+ID4gPiAtCWludCAoKmdldF9lbGQp KHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGJvb2wgKmVuYWJsZWQsCj4gPiA+ICsJaW50ICgq Z2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9pZCwgYm9vbCAqZW5h YmxlZCwKPiA+ID4gIAkJICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7 Cj4gPiA+ICB9Owo+ID4gPiAgCj4gPiA+IEBAIC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMgewo+ID4gPiAgCSAqIHN0YXR1cyBhY2NvcmRpbmdseSAo ZXZlbiB3aGVuIHRoZSBIREEgY29udHJvbGxlciBpcyBpbiBwb3dlciBzYXZlCj4gPiA+ICAJICog bW9kZSkuCj4gPiA+ICAJICovCj4gPiA+IC0Jdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICph dWRpb19wdHIsIGludCBwb3J0KTsKPiA+ID4gKwl2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQg KmF1ZGlvX3B0ciwgaW50IHBvcnQsIGludCBkZXZfaWQpOwo+ID4gPiAgfTsKPiA+ID4gIAo+ID4g PiAgLyoqCj4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmggYi9pbmNs dWRlL3NvdW5kL2hkYV9pOTE1LmgKPiA+ID4gaW5kZXggNzk2Y2FiZi4uNWFiOTcyZSAxMDA2NDQK PiA+ID4gLS0tIGEvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oCj4gPiA+ICsrKyBiL2luY2x1ZGUv c291bmQvaGRhX2k5MTUuaAo+ID4gPiBAQCAtMTAsOCArMTAsOSBAQAo+ID4gPiAgaW50IHNuZF9o ZGFjX3NldF9jb2RlY193YWtldXAoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxlKTsK PiA+ID4gIGludCBzbmRfaGRhY19kaXNwbGF5X3Bvd2VyKHN0cnVjdCBoZGFjX2J1cyAqYnVzLCBi b29sIGVuYWJsZSk7Cj4gPiA+ICB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2JjbGsoc3RydWN0IGhk YWNfYnVzICpidXMpOwo+ID4gPiAtaW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3Qg aGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcmF0ZSk7Cj4gPiA+IC1pbnQg c25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlk X3QgbmlkLAo+ID4gPiAraW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19k ZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ID4gPiArCQkJICAgICBpbnQgZGV2X2lkLCBp bnQgcmF0ZSk7Cj4gPiA+ICtpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19k ZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgZGV2X2lkLAo+ID4gPiAgCQkJICAgYm9v bCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKTsKPiA+ID4gIGlu dCBzbmRfaGRhY19pOTE1X2luaXQoc3RydWN0IGhkYWNfYnVzICpidXMpOwo+ID4gPiAgaW50IHNu ZF9oZGFjX2k5MTVfZXhpdChzdHJ1Y3QgaGRhY19idXMgKmJ1cyk7Cj4gPiA+IEBAIC0yOSwxMyAr MzAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2JjbGsoc3RydWN0 IGhkYWNfYnVzICpidXMpCj4gPiA+ICB7Cj4gPiA+ICB9Cj4gPiA+ICBzdGF0aWMgaW5saW5lIGlu dCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywKPiA+ ID4gLQkJCQkJICAgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpCj4gPiA+ICsJCQkJCSAgIGhkYV9u aWRfdCBuaWQsIGludCBkZXZfaWQsIGludCByYXRlKQo+ID4gPiAgewo+ID4gPiAgCXJldHVybiAw Owo+ID4gPiAgfQo+ID4gPiAgc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2Vs ZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ID4gPiAtCQkJCQkg Ym9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLAo+ID4gPiAtCQkJCQkgaW50IG1heF9i eXRlcykKPiA+ID4gKwkJCQkJIGludCBkZXZfaWQsIGJvb2wgKmF1ZGlvX2VuYWJsZWQsCj4gPiA+ ICsJCQkJCSBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpCj4gPiA+ICB7Cj4gPiA+ICAJcmV0 dXJuIC1FTk9ERVY7Cj4gPiA+ICB9Cj4gPiA+IGRpZmYgLS1naXQgYS9zb3VuZC9oZGEvaGRhY19p OTE1LmMgYi9zb3VuZC9oZGEvaGRhY19pOTE1LmMKPiA+ID4gaW5kZXggYzlhZjAyMi4uNmVhNjNh YyAxMDA2NDQKPiA+ID4gLS0tIGEvc291bmQvaGRhL2hkYWNfaTkxNS5jCj4gPiA+ICsrKyBiL3Nv dW5kL2hkYS9oZGFjX2k5MTUuYwo+ID4gPiBAQCAtMjAxLDcgKzIwMSw4IEBAIHN0YXRpYyBpbnQg cGluMnBvcnQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IHBpbl9uaWQpCj4g PiA+ICAgKiBUaGlzIGZ1bmN0aW9uIHNldHMgTi9DVFMgdmFsdWUgYmFzZWQgb24gdGhlIGdpdmVu IHNhbXBsZSByYXRlLgo+ID4gPiAgICogUmV0dXJucyB6ZXJvIGZvciBzdWNjZXNzLCBvciBhIG5l Z2F0aXZlIGVycm9yIGNvZGUuCj4gPiA+ICAgKi8KPiA+ID4gLWludCBzbmRfaGRhY19zeW5jX2F1 ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJh dGUpCj4gPiA+ICtpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2Rldmlj ZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCj4gPiA+ICsJCQkgICAgIGludCBkZXZfaWQsIGludCBy YXRlKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1czsK PiA+ID4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19j b21wb25lbnQ7Cj4gPiA+IEBAIC0yMTIsNyArMjEzLDcgQEAgaW50IHNuZF9oZGFjX3N5bmNfYXVk aW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcmF0 ZSkKPiA+ID4gIAlwb3J0ID0gcGluMnBvcnQoY29kZWMsIG5pZCk7Cj4gPiA+ICAJaWYgKHBvcnQg PCAwKQo+ID4gPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gLQlyZXR1cm4gYWNvbXAtPm9wcy0+ c3luY19hdWRpb19yYXRlKGFjb21wLT5kZXYsIHBvcnQsIHJhdGUpOwo+ID4gPiArCXJldHVybiBh Y29tcC0+b3BzLT5zeW5jX2F1ZGlvX3JhdGUoYWNvbXAtPmRldiwgcG9ydCwgZGV2X2lkLCByYXRl KTsKPiA+ID4gIH0KPiA+ID4gIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9oZGFjX3N5bmNfYXVkaW9f cmF0ZSk7Cj4gPiA+ICAKPiA+ID4gQEAgLTIzNiw3ICsyMzcsNyBAQCBFWFBPUlRfU1lNQk9MX0dQ TChzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUpOwo+ID4gPiAgICogdGh1cyBpdCBtYXkgYmUgb3Zl ciBAbWF4X2J5dGVzLiAgSWYgaXQncyBvdmVyIEBtYXhfYnl0ZXMsIGl0IGltcGxpZXMKPiA+ID4g ICAqIHRoYXQgb25seSBhIHBhcnQgb2YgRUxEIGJ5dGVzIGhhdmUgYmVlbiBmZXRjaGVkLgo+ID4g PiAgICovCj4gPiA+IC1pbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZp Y2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ID4gPiAraW50IHNuZF9oZGFjX2Fjb21wX2dldF9l bGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IGRldl9pZCwK PiA+ID4gIAkJCSAgIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwgaW50IG1heF9i eXRlcykKPiA+ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgaGRhY19idXMgKmJ1cyA9IGNvZGVjLT5idXM7 Cj4gPiA+IEBAIC0yNDksNyArMjUwLDcgQEAgaW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3Ry dWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKPiA+ID4gIAlwb3J0ID0gcGlu MnBvcnQoY29kZWMsIG5pZCk7Cj4gPiA+ICAJaWYgKHBvcnQgPCAwKQo+ID4gPiAgCQlyZXR1cm4g LUVJTlZBTDsKPiA+ID4gLQlyZXR1cm4gYWNvbXAtPm9wcy0+Z2V0X2VsZChhY29tcC0+ZGV2LCBw b3J0LCBhdWRpb19lbmFibGVkLAo+ID4gPiArCXJldHVybiBhY29tcC0+b3BzLT5nZXRfZWxkKGFj b21wLT5kZXYsIHBvcnQsIGRldl9pZCwgYXVkaW9fZW5hYmxlZCwKPiA+ID4gIAkJCQkgICBidWZm ZXIsIG1heF9ieXRlcyk7Cj4gPiA+ICB9Cj4gPiA+ICBFWFBPUlRfU1lNQk9MX0dQTChzbmRfaGRh Y19hY29tcF9nZXRfZWxkKTsKPiA+ID4gZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hf aGRtaS5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiA+ID4gaW5kZXggZDBkNWFkOC4u MDc3ZDQ4YSAxMDA2NDQKPiA+ID4gLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiA+ ID4gKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiA+ID4gQEAgLTE0ODUsNyArMTQ4 NSw3IEBAIHN0YXRpYyB2b2lkIHN5bmNfZWxkX3ZpYV9hY29tcChzdHJ1Y3QgaGRhX2NvZGVjICpj b2RlYywKPiA+ID4gIAo+ID4gPiAgCW11dGV4X2xvY2soJnBlcl9waW4tPmxvY2spOwo+ID4gPiAg CWVsZC0+bW9uaXRvcl9wcmVzZW50ID0gZmFsc2U7Cj4gPiA+IC0Jc2l6ZSA9IHNuZF9oZGFjX2Fj b21wX2dldF9lbGQoJmNvZGVjLT5jb3JlLCBwZXJfcGluLT5waW5fbmlkLAo+ID4gPiArCXNpemUg PSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2RlYy0+Y29yZSwgcGVyX3Bpbi0+cGluX25pZCwg LTEsCj4gPiA+ICAJCQkJICAgICAgJmVsZC0+bW9uaXRvcl9wcmVzZW50LCBlbGQtPmVsZF9idWZm ZXIsCj4gPiA+ICAJCQkJICAgICAgRUxEX01BWF9TSVpFKTsKPiA+ID4gIAlpZiAoc2l6ZSA+IDAp IHsKPiA+ID4gQEAgLTE3MzksNyArMTczOSw4IEBAIHN0YXRpYyBpbnQgZ2VuZXJpY19oZG1pX3Bs YXliYWNrX3BjbV9wcmVwYXJlKHN0cnVjdCBoZGFfcGNtX3N0cmVhbSAqaGluZm8sCj4gPiA+ICAJ LyogQ2FsbCBzeW5jX2F1ZGlvX3JhdGUgdG8gc2V0IHRoZSBOL0NUUy9NIG1hbnVhbGx5IGlmIG5l Y2Vzc2FyeSAqLwo+ID4gPiAgCS8qIFRvZG86IGFkZCBEUDEuMiBNU1QgYXVkaW8gc3VwcG9ydCBs YXRlciAqLwo+ID4gPiAgCWlmIChjb2RlY19oYXNfYWNvbXAoY29kZWMpKQo+ID4gPiAtCQlzbmRf aGRhY19zeW5jX2F1ZGlvX3JhdGUoJmNvZGVjLT5jb3JlLCBwaW5fbmlkLCBydW50aW1lLT5yYXRl KTsKPiA+ID4gKwkJc25kX2hkYWNfc3luY19hdWRpb19yYXRlKCZjb2RlYy0+Y29yZSwgcGluX25p ZCwgLTEsCj4gPiA+ICsJCQkJCSBydW50aW1lLT5yYXRlKTsKPiA+ID4gIAo+ID4gPiAgCW5vbl9w Y20gPSBjaGVja19ub25fcGNtX3Blcl9jdnQoY29kZWMsIGN2dF9uaWQpOwo+ID4gPiAgCW11dGV4 X2xvY2soJnBlcl9waW4tPmxvY2spOwo+ID4gPiBAQCAtMjI4NSw3ICsyMjg2LDcgQEAgc3RhdGlj IHZvaWQgaGFzd2VsbF9zZXRfcG93ZXJfc3RhdGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGhk YV9uaWRfdCBmZywKPiA+ID4gIAlzbmRfaGRhX2NvZGVjX3NldF9wb3dlcl90b19hbGwoY29kZWMs IGZnLCBwb3dlcl9zdGF0ZSk7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRpYyB2b2lkIGlu dGVsX3Bpbl9lbGRfbm90aWZ5KHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQpCj4gPiA+ICtzdGF0 aWMgdm9pZCBpbnRlbF9waW5fZWxkX25vdGlmeSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBp bnQgZGV2X2lkKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBoZGFfY29kZWMgKmNvZGVjID0gYXVk aW9fcHRyOwo+ID4gPiAgCWludCBwaW5fbmlkOwo+ID4gPiAtLSAKPiA+ID4gMi41LjAKPiA+IAo+ IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==