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: Thu, 4 Aug 2016 15:49:17 +0300 Message-ID: <20160804124916.GG4329@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> <20160803202808.GP4329@intel.com> <1470261422.6362.25.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: <1470261422.6362.25.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" , "Kp, Jeeja" , "alsa-devel@alsa-project.org" , "intel-gfx@lists.freedesktop.org" , "libin.yang@linux.intel.com" List-Id: alsa-devel@alsa-project.org T24gV2VkLCBBdWcgMDMsIDIwMTYgYXQgMDk6NDI6NTNQTSArMDAwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gV2VkLCAyMDE2LTA4LTAzIGF0IDIzOjI4ICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIEF1ZyAwMywgMjAxNiBhdCAwNzo0MzowNlBNICsw MDAwLCBQYW5kaXlhbiwgRGhpbmFrYXJhbiB3cm90ZToKPiA+ID4gT24gV2VkLCAyMDE2LTA4LTAz IGF0IDIyOjA4ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gVHVlLCBB dWcgMDIsIDIwMTYgYXQgMDc6MTQ6MzBQTSAtMDcwMCwgRGhpbmFrYXJhbiBQYW5kaXlhbiB3cm90 ZToKPiA+ID4gPiA+IERQIE1TVCBwcm92aWRlcyB0aGUgY2FwYWJpbGl0eSB0byBzZW5kIG11bHRp cGxlIHZpZGVvIGFuZCBhdWRpbyBzdHJlYW1zIHZpYQo+ID4gPiA+ID4gb25lIHNpbmdsZSBwb3J0 LiBUaGlzIHJlcXVpcmVzIHRoZSBBUEkncyBiZXR3ZWVuIGk5MTUgYW5kIGF1ZGlvIGRyaXZlcnMg dG8KPiA+ID4gPiA+IGRpc3Rpbmd1aXNoIGJldHdlZW4gYXVkaW8gY2FwYWJsZSBkaXNwbGF5cyBj b25uZWN0ZWQgdG8gYSBwb3J0LiBUaGlzIHBhdGNoCj4gPiA+ID4gPiBhZGRzIHRoaXMgc3VwcG9y dCB2aWEgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgJ2ludCBkZXZfaWQnLiBUaGUgZXhpc3RpbmcK PiA+ID4gPiA+IHBhcmFtZXRlciAncG9ydCcgZG9lcyBub3QgY2hhbmdlIGl0J3MgbWVhbmluZy4K PiA+ID4gPiA+IAo+ID4gPiA+ID4gZGV2X2lkID0KPiA+ID4gPiA+IAlNU1QJOiBwaXBlIHRoYXQg dGhlIHN0cmVhbSBvcmlnaW5hdGVzIGZyb20KPiA+ID4gPiA+IAlOb24tTVNUCTogLTEKPiA+ID4g PiA+IAo+ID4gPiA+ID4gQWZmZWN0ZWQgQVBJczoKPiA+ID4gPiA+IHN0cnVjdCBpOTE1X2F1ZGlv X2NvbXBvbmVudF9vcHMKPiA+ID4gPiA+IC0gICAgICAgaW50ICgqc3luY19hdWRpb19yYXRlKShz dHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgcmF0ZSk7Cj4gPiA+ID4gPiArCWludCAoKnN5 bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9pZCwKPiA+ ID4gPiAKPiA+ID4gPiBEb2VzIHRoZSB0ZXJtICdkZXZfaWQnIGhhdmUgc29tZSBzcGVjaWFsIG1l YW5pbmcgb24gdGhlIGF1ZGlvIHNpZGU/IE9uCj4gPiA+ID4gdGhlIGk5MTUgc2lkZSB0aGluZ3Mg d291bGQgYmUgbGVzcyBjb25mdXNpbmcgaWYgd2UganVzdCBjYWxsZWQgaXQKPiA+ID4gPiAncGlw ZScuCj4gPiA+ID4gCj4gPiA+IAo+ID4gPiBUaGVyZSB3YXMgcXVpdGUgYSBiaXQgb2YgYmFjayBh bmQgZm9ydGggb24gdGhpcy4gInBpcGUiIHNlZW1lZCB0byB0aWUgdXMKPiA+ID4gdG8gdGhlIGdm eCBoYXJkd2FyZSBhcmNoaXRlY3R1cmUuIEluIGNhc2UsIHRoZXJlIGlzIG5vIDE6MSBtYXBwaW5n IGZyb20KPiA+ID4gcGlwZXMgdG8gZW5jb2RlcnMsIHRoaXMgd2lsbCBnZXQgY29uZnVzaW5nIGFz IGk5MTUgYXVkaW8gcmVnaXN0ZXJzCj4gPiA+IChFLmcuSFNXX0FVRF9QSU5fRUxEX0NQX1ZMRCkg YXJlIGVuY29kZXIgYmFzZWQuCj4gPiAKPiA+IEknbSBub3QgZm9sbG93aW5nLiBMb29raW5nIGF0 IHRoZSBjdXJyZW50IGk5MTUgYXVkaW8gY29kZSwgb24gSFNXKwo+ID4gZXZlcnl0aGluZyBpcyBw aXBlIGJhc2VkLgo+ID4gCj4gQWx0aG91Z2ggd2UgcGFzcyAicGlwZSIgdG8gdGhlc2UgbWFjcm9z LCB0aGUgZGVmaW5pdGlvbiBoZXJlIGFuZCBpbiB0aGUKPiBCU3BlYyBzZWVtIHRvIGluZGljYXRl IHRoZXkgYXJlIGJhc2VkIG9uIHRoZSBlbmNvZGVyLgo+IAo+IEVnOiAjZGVmaW5lIEhTV19BVURf UElOX0VMRF9DUF9WTEQgICAgICAgICAgX01NSU8oMHg2NTBjMCkKPiAjZGVmaW5lICAgQVVESU9f SU5BQ1RJVkUodHJhbnMpICAgICAgICAgKCgxIDw8IDMpIDw8ICgodHJhbnMpICogNCkpCj4gI2Rl ZmluZSAgIEFVRElPX09VVFBVVF9FTkFCTEUodHJhbnMpICAgICgoMSA8PCAyKSA8PCAoKHRyYW5z KSAqIDQpKQo+ICNkZWZpbmUgICBBVURJT19DUF9SRUFEWSh0cmFucykgICAgICAgICAoKDEgPDwg MSkgPDwgKCh0cmFucykgKiA0KSkKPiAjZGVmaW5lICAgQVVESU9fRUxEX1ZBTElEKHRyYW5zKSAg ICAgICAgKCgxIDw8IDApIDw8ICgodHJhbnMpICogNCkpCgpUaGF0J3MgdHJhbnNjb2Rlciwgbm90 IGVuY29kZXIuIHRyYW5zY29kZXIgaXMgdGhlIHRhaWwgZW5kIG9mIHRoZSBwaXBlLgpGb3IgYWxs IHRoZSBleHRlcm5hbCBwb3J0cyB0cmFuc2NvZGVyPT1waXBlLCBhbmQgZm9yIHBvcnQgQSB0aGVy ZSBpcyB0aGUKc3BlY2lhbCBlZHAgdHJhbnNjb2RlciB3aGljaCBjYW4gYmUgZmVkIGJ5IGFueSBw aXBlLiBUaGUgZWRwIHRyYW5zY29kZXIKZG9lc24ndCBzdXBwb3J0IGF1ZGlvIHRob3VnaCwgYW5k IEkgY2FuJ3Qgc2VlIGFueXRoaW5nIGluIHRoZSBzcGVjIHRvCnN1Z2dlc3QgdGhhdCBpdCB3b3Vs ZCBnYWluIGF1ZGlvIGNhcGFiaWxpdGllcywgaW4gdGhlIG5lYXIgZnV0dXJlIGF0CmxlYXN0LiBT byBmcm9tIHRoYXQgcG9pbnQgb2YgdmlldyBwYXNzaW5nIGFyb3VuZCB0aGUgcGlwZSB3b3VsZCBz ZWVtCmxpa2UgYSBzYWZlIGFwcHJvYWNoLgoKV2UgY291bGQgb2YgY291cnNlIHBhc3MgYXJvdW5k IHRyYW5zY29kZXIgaW5zdGVhZCBvZiBwaXBlLiBTaW5jZSB3ZQpkb24ndCBldmVyIG5lZWQgdG8g ZW5hYmxlIGF1ZGlvIG9uIHRoZSBlZHAgdHJhbnNjb2Rlciwgd2UgZG9uJ3QgZXZlbgpoYXZlIHRv IHdvcnJ5IGFib3V0IHdoYXQgbnVtYmVyIHdlIGFzc2lnbiB0byBpdC4gQW5kIGhlbmNlIGl0IGlz CmFjdHVhbGx5IHRoZSBzYW1lIGFzIHBhc3NpbmcgdGhlIHBpcGUsIGV4Y2VwdCBpbiBuYW1lLgoK PiAKPiAKPiA+ID4gV2hlcmVhcywgZGV2X2lkIGlzCj4gPiA+IGdlbmVyaWMgLSBIREEgc3BlYyBj YWxscyB0aGVtICJkZXZpY2VzIiBvciAiZGV2aWNlIGVudHJ5Igo+ID4gCj4gPiBHZW5lcmljIGFu ZCB0b3RhbGx5IHVuY2xlYXIgd2hhdCBpdCBtZWFucyBmcm9tIGdyYXBoaWNzIHNpZGUuCj4gPiAK PiA+IHBpcGUgYW5kIHBvcnQgYXJlIHRoZSBvbmx5IHRoaW5ncyB3ZSByZWFsbHkgaGF2ZSBpbiBp OTE1LiBJZiB0aG9zZSBhcmVuJ3QKPiA+IGdvb2QgZW5vdWdoIGZvciB0aGUgYXVkaW8gc2lkZSwg dGhlbiBJIHRoaW5rIHdlIHNob3VsZCBoYXZlIHNvbWUgZGVjZW50Cj4gPiBjb2RlIHRvIHJlbWFw IGJldHdlZW4gdGhlIHBpcGUrcG9ydCB2cy4gd2hhdGV2ZXIgYXVkaW8gc2lkZSBpZCBpcyBuZWVk ZWQuCj4gPiBJIGRvbid0IHJlYWxseSBjYXJlIG9uIHdoaWNoIHNpZGUgb2YgdGhlIGJvcmRlciBz dWNoIGNvZGUgd291bGQgbGl2ZSwgYXMKPiA+IGxvbmcgYXMgaXQncyBjbGVhciB3aGF0IGl0J3Mg ZG9pbmcuCj4gPiAKPiAKPiBJIGFncmVlLCBkZXZfaWQgY2FuIGJlIG1pc2xlYWRpbmcgd2l0aGlu IGk5MTUuCj4gPiA+IAo+ID4gPiA+ID4gKwkgICAgIGludCByYXRlKTsKPiA+ID4gPiA+IAo+ID4g PiA+ID4gLSAgICAgICBpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBi b29sICplbmFibGVkLAo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg Y2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKPiA+ID4gPiA+ICsgICAgICAgaW50ICgqZ2V0X2Vs ZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9pZCwKPiA+ID4gPiA+ICsJCSAg ICAgICBib29sICplbmFibGVkLCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpOwo+ ID4gPiA+ID4gCj4gPiA+ID4gPiBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3Bz Cj4gPiA+ID4gPiAtICAgICAgIHZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRy LCBpbnQgcG9ydCk7Cj4gPiA+ID4gPiArICAgICAgIHZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9p ZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCwgaW50IGRldl9pZCk7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ IFRoaXMgcGF0Y2ggbWFrZXMgZHVtbXkgY2hhbmdlcyBpbiB0aGUgYXVkaW8gZHJpdmVycyBmb3Ig YnVpbGQgdG8gc3VjY2VlZC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRGhp bmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gPiA+ID4g PiAtLS0KPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgIHwgIDIg Ky0KPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIHwgODIgKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiA+ID4gPiA+ICBpbmNsdWRlL2Ry bS9pOTE1X2NvbXBvbmVudC5oICAgICAgIHwgIDYgKy0tCj4gPiA+ID4gPiAgaW5jbHVkZS9zb3Vu ZC9oZGFfaTkxNS5oICAgICAgICAgICB8IDExICsrLS0tCj4gPiA+ID4gPiAgc291bmQvaGRhL2hk YWNfaTkxNS5jICAgICAgICAgICAgICB8ICA5ICsrKy0tCj4gPiA+ID4gPiAgc291bmQvcGNpL2hk YS9wYXRjaF9oZG1pLmMgICAgICAgICB8ICA3ICsrLS0KPiA+ID4gPiA+ICA2IGZpbGVzIGNoYW5n ZWQsIDgyIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gCj4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+IGluZGV4IDY1YWRhNWQuLjhlNGM4Yzgg MTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g PiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ID4gPiBA QCAtMjA1NCw3ICsyMDU0LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4gPiA+ID4g IAkvKiBwZXJmb3JtIFBIWSBzdGF0ZSBzYW5pdHkgY2hlY2tzPyAqLwo+ID4gPiA+ID4gIAlib29s IGNodl9waHlfYXNzZXJ0WzJdOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gLQlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5MTVfTUFYX1BPUlRTXTsKPiA+ID4gPiA+ICsJc3RydWN0 IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbSTkxNV9NQVhfUElQRVNdOwo+ID4gPiA+ID4gIAo+ ID4gPiA+ID4gIAkvKgo+ID4gPiA+ID4gIAkgKiBOT1RFOiBUaGlzIGlzIHRoZSBkcmkxL3VtcyBk dW5nZW9uLCBkb24ndCBhZGQgc3R1ZmYgaGVyZS4gWW91ciBwYXRjaAo+ID4gPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gPiA+ID4gPiBpbmRleCA4YzQ5M2RlLi5jYmU0NGM4IDEw MDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gPiA+ ID4gQEAgLTUwMCw2ICs1MDAsOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ID4gPiA+ICAJc3RydWN0IGk5MTVf YXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7Cj4gPiA+ ID4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3Rv X2RpZ19wb3J0KGVuY29kZXIpOwo+ID4gPiA+ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2Rp Z19wb3J0LT5wb3J0Owo+ID4gPiA+ID4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4g PiA+ID4gPiArCWludCBkZXZfaWQgPSAtMTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICAKPiA+ID4g PiA+ICAJY29ubmVjdG9yID0gZHJtX3NlbGVjdF9lbGQoZW5jb2Rlcik7Cj4gPiA+ID4gPiAgCWlm ICghY29ubmVjdG9yKQo+ID4gPiA+ID4gQEAgLTUyMiwxNCArNTI1LDE5IEBAIHZvaWQgaW50ZWxf YXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ ID4gPiA+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZW5hYmxlKGNvbm5lY3Rv ciwgaW50ZWxfZW5jb2RlciwKPiA+ID4gPiA+ICAJCQkJCQkgICAgIGFkanVzdGVkX21vZGUpOwo+ ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9P VVRQVVRfRFBfTVNUKQo+ID4gPiA+ID4gKwkJZGV2X2lkID0gcGlwZTsKPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gPiA+ICAJaW50 ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0gY29ubmVjdG9yOwo+ID4gPiA+ID4gKwo+ID4g PiA+ID4gIAkvKiByZWZlcnJlZCBpbiBhdWRpbyBjYWxsYmFja3MgKi8KPiA+ID4gPiA+IC0JZGV2 X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IGludGVsX2VuY29kZXI7Cj4gPiA+ID4gPiArCWRl dl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gaW50ZWxfZW5jb2RlcjsKPiA+ID4gPiA+ICAJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlp ZiAoYWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxk X25vdGlmeSkKPiA+ID4gPiA+IC0JCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFj b21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwgKGludCkgcG9ydCk7Cj4gPiA+ID4gPiArCQlhY29t cC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIs Cj4gPiA+ID4gPiArCQkJCQkJIChpbnQpIHBvcnQsIGRldl9pZCk7Cj4gPiA+ID4gPiAgfQo+ID4g PiA+ID4gIAo+ID4gPiA+ID4gIC8qKgo+ID4gPiA+ID4gQEAgLTU0MiwyMiArNTUwLDI5IEBAIHZv aWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyKQo+ID4gPiA+ID4gIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiAgCXN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwo+ID4gPiA+ ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0 Yyk7Cj4gPiA+ID4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4g PiA+ID4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKPiA+ID4gPiA+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9w cml2LT5hdWRpb19jb21wb25lbnQ7Cj4gPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ID4gPiA+ID4g IAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Owo+ID4gPiA+ID4gKwllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiA+ID4gPiArCWludCBkZXZfaWQgPSAtMTsKPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ICsJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VU UFVUX0RQX01TVCkKPiA+ID4gPiA+ICsJCWRldl9pZCA9IHBpcGU7Cj4gPiA+ID4gPiAgCj4gPiA+ ID4gPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlKQo+ID4gPiA+ ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVy KTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4 KTsKPiA+ID4gPiA+ICAJaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0gTlVMTDsKPiA+ ID4gPiA+IC0JZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IE5VTEw7Cj4gPiA+ID4gPiAr CWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gTlVMTDsKPiA+ID4gPiA+ICAJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlpZiAoYWNv bXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlm eSkKPiA+ID4gPiA+IC0JCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5h dWRpb19vcHMtPmF1ZGlvX3B0ciwgKGludCkgcG9ydCk7Cj4gPiA+ID4gPiArCQlhY29tcC0+YXVk aW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsCj4gPiA+ ID4gPiArCQkJCQkJIChpbnQpIHBvcnQsIGRldl9pZCk7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4g IAo+ID4gPiA+ID4gIC8qKgo+ID4gPiA+ID4gQEAgLTYyOCw4ICs2NDMsMzIgQEAgc3RhdGljIGlu dCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfY2RjbGtfZnJlcShzdHJ1Y3QgZGV2aWNlICpkZXYp Cj4gPiA+ID4gPiAgCXJldHVybiBkZXZfcHJpdi0+Y2RjbGtfZnJlcTsKPiA+ID4gPiA+ICB9Cj4g PiA+ID4gPiAgCj4gPiA+ID4gPiAtc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5j X2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gPiA+ID4gLQkJCQkJCWludCBwb3J0 LCBpbnQgcmF0ZSkKPiA+ID4gPiA+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKmdldF9z YXZlZF9lbmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICphdl9lbmNfbWFwW10sCj4gPiA+ID4g PiArCQkJCQkgICAgICAgaW50IHBvcnQsIGludCBkZXZfaWQpCj4gPiA+ID4gPiArewo+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gKwllbnVtIHBpcGUgcGlwZTsKPiA+ID4gPiA+ICsJc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoZGV2X2lkID49IDAg JiYgZGV2X2lkIDwgSTkxNV9NQVhfUElQRVMpCj4gPiA+ID4gPiArCQlyZXR1cm4gYXZfZW5jX21h cFtkZXZfaWRdOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlmb3IgKHBpcGUgPSBQSVBFX0E7IHBp cGUgPCBJOTE1X01BWF9QSVBFUzsgcGlwZSsrKSB7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCQlp ZiAoIWF2X2VuY19tYXBbcGlwZV0pCj4gPiA+ID4gPiArCQkJY29udGludWU7Cj4gPiA+ID4gPiAr Cj4gPiA+ID4gPiArCQllbmNvZGVyID0gJmF2X2VuY19tYXBbcGlwZV0tPmJhc2U7Cj4gPiA+ID4g PiArCQlpZiAocG9ydCA9PSBlbmNfdG9fZGlnX3BvcnQoZW5jb2RlciktPnBvcnQpCj4gPiA+ID4g PiArCQkJcmV0dXJuIGF2X2VuY19tYXBbcGlwZV07Cj4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICsJcmV0dXJuIE5VTEw7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArfQo+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gK3N0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRp b19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBvcnQsCj4gPiA+ID4gPiArCQkJCQkJaW50 IGRldl9pZCwgaW50IHJhdGUpCj4gPiA+ID4gPiAgewo+ID4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShkZXYpOwo+ID4gPiA+ID4gIAlzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsKPiA+ID4gPiA+IEBAIC02NDksMTUgKzY4 OCwxNiBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShz dHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiA+ID4gPiAgCQlyZXR1cm4gMDsKPiA+ID4gPiA+ICAKPiA+ ID4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ICAJLyogMS4gZ2V0IHRoZSBwaXBlICovCj4gPiA+ID4gPiAtCWludGVsX2VuY29kZXIg PSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOwo+ID4gPiA+ID4gLQkvKiBpbnRlbF9lbmNv ZGVyIG1pZ2h0IGJlIE5VTEwgZm9yIERQIE1TVCAqLwo+ID4gPiA+ID4gKwlpbnRlbF9lbmNvZGVy ID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIGRldl9pZCk7 Cj4gPiA+ID4gPiAgCWlmICghaW50ZWxfZW5jb2RlciB8fCAhaW50ZWxfZW5jb2Rlci0+YmFzZS5j cnRjIHx8Cj4gPiA+ID4gPiAgCSAgICBpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBV VF9IRE1JKSB7Cj4gPiA+ID4gPiAgCQlEUk1fREVCVUdfS01TKCJubyB2YWxpZCBwb3J0ICVjXG4i LCBwb3J0X25hbWUocG9ydCkpOwo+ID4gPiA+ID4gIAkJZXJyID0gLUVOT0RFVjsKPiA+ID4gPiA+ ICAJCWdvdG8gdW5sb2NrOwo+ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCWNy dGMgPSB0b19pbnRlbF9jcnRjKGludGVsX2VuY29kZXItPmJhc2UuY3J0Yyk7Cj4gPiA+ID4gPiAg CXBpcGUgPSBjcnRjLT5waXBlOwo+ID4gPiA+ID4gIAlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUp IHsKPiA+ID4gPiA+IEBAIC03MDIsNyArNzQyLDcgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2Nv bXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gPiA+ID4gIH0K PiA+ID4gPiA+ICAKPiA+ID4gPiA+ICBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dl dF9lbGQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcG9ydCwKPiA+ID4gPiA+IC0JCQkJCWJvb2wg KmVuYWJsZWQsCj4gPiA+ID4gPiArCQkJCQlpbnQgZGV2X2lkLCBib29sICplbmFibGVkLAo+ID4g PiA+ID4gIAkJCQkJdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKQo+ID4gPiA+ID4g IHsKPiA+ID4gPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3Rv X2k5MTUoZGV2KTsKPiA+ID4gPiA+IEBAIC03MTAsMTcgKzc1MCwyMSBAQCBzdGF0aWMgaW50IGk5 MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcG9ydCwK PiA+ID4gPiA+ICAJY29uc3QgdTggKmVsZDsKPiA+ID4gPiA+ICAJaW50IHJldCA9IC1FSU5WQUw7 Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2 LT5hdl9tdXRleCk7Cj4gPiA+ID4gPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3Bv cnRfbWFwW3BvcnRdOwo+ID4gPiA+ID4gLQkvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0IGJlIE5VTEwg Zm9yIERQIE1TVCAqLwo+ID4gPiA+ID4gLQlpZiAoaW50ZWxfZW5jb2Rlcikgewo+ID4gPiA+ID4g LQkJcmV0ID0gMDsKPiA+ID4gPiA+IC0JCSplbmFibGVkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9f Y29ubmVjdG9yICE9IE5VTEw7Cj4gPiA+ID4gPiAtCQlpZiAoKmVuYWJsZWQpIHsKPiA+ID4gPiA+ IC0JCQllbGQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVsZDsKPiA+ID4gPiA+ IC0JCQlyZXQgPSBkcm1fZWxkX3NpemUoZWxkKTsKPiA+ID4gPiA+IC0JCQltZW1jcHkoYnVmLCBl bGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwo+ID4gPiA+ID4gLQkJfQo+ID4gPiA+ID4gKwo+ID4g PiA+ID4gKwlpbnRlbF9lbmNvZGVyID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2X3ByaXYtPmF2X2Vu Y19tYXAsIHBvcnQsIGRldl9pZCk7Cj4gPiA+ID4gPiArCWlmICghaW50ZWxfZW5jb2Rlcikgewo+ ID4gPiA+ID4gKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gPiA+ID4g KwkJcmV0dXJuIHJldDsKPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlyZXQg PSAwOwo+ID4gPiA+ID4gKwkqZW5hYmxlZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3Rv ciAhPSBOVUxMOwo+ID4gPiA+ID4gKwlpZiAoKmVuYWJsZWQpIHsKPiA+ID4gPiA+ICsJCWVsZCA9 IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxkOwo+ID4gPiA+ID4gKwkJcmV0ID0g ZHJtX2VsZF9zaXplKGVsZCk7Cj4gPiA+ID4gPiArCQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhf Ynl0ZXMsIHJldCkpOwo+ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9pOTE1X2NvbXBvbmVudC5oIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAo+ ID4gPiA+ID4gaW5kZXggYjQ2ZmEwZS4uMTQxOWM5OCAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2lu Y2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKPiA+ID4gPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2k5 MTVfY29tcG9uZW50LmgKPiA+ID4gPiA+IEBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9vcHMgewo+ID4gPiA+ID4gIAkgKiBDYWxsZWQgZnJvbSBhdWRpbyBkcml2 ZXIuIEFmdGVyIGF1ZGlvIGRyaXZlciBzZXRzIHRoZQo+ID4gPiA+ID4gIAkgKiBzYW1wbGUgcmF0 ZSwgaXQgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gc2V0IG4vY3RzCj4gPiA+ID4gPiAgCSAq Lwo+ID4gPiA+ID4gLQlpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50 IHBvcnQsIGludCByYXRlKTsKPiA+ID4gPiA+ICsJaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1 Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgZGV2X2lkLCBpbnQgcmF0ZSk7Cj4gPiA+ID4gPiAg CS8qKgo+ID4gPiA+ID4gIAkgKiBAZ2V0X2VsZDogZmlsbCB0aGUgYXVkaW8gc3RhdGUgYW5kIEVM RCBieXRlcyBmb3IgdGhlIGdpdmVuIHBvcnQKPiA+ID4gPiA+ICAJICoKPiA+ID4gPiA+IEBAIC03 Nyw3ICs3Nyw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgewo+ID4gPiA+ID4g IAkgKiBOb3RlIHRoYXQgdGhlIHJldHVybmVkIHNpemUgbWF5IGJlIG92ZXIgQG1heF9ieXRlcy4g IFRoZW4gaXQKPiA+ID4gPiA+ICAJICogaW1wbGllcyB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVMRCBo YXMgYmVlbiBjb3BpZWQgdG8gdGhlIGJ1ZmZlci4KPiA+ID4gPiA+ICAJICovCj4gPiA+ID4gPiAt CWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGJvb2wgKmVuYWJsZWQs Cj4gPiA+ID4gPiArCWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGlu dCBkZXZfaWQsIGJvb2wgKmVuYWJsZWQsCj4gPiA+ID4gPiAgCQkgICAgICAgdW5zaWduZWQgY2hh ciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKPiA+ID4gPiA+ICB9Owo+ID4gPiA+ID4gIAo+ID4gPiA+ ID4gQEAgLTk3LDcgKzk3LDcgQEAgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X2F1ZGlvX29w cyB7Cj4gPiA+ID4gPiAgCSAqIHN0YXR1cyBhY2NvcmRpbmdseSAoZXZlbiB3aGVuIHRoZSBIREEg Y29udHJvbGxlciBpcyBpbiBwb3dlciBzYXZlCj4gPiA+ID4gPiAgCSAqIG1vZGUpLgo+ID4gPiA+ ID4gIAkgKi8KPiA+ID4gPiA+IC0Jdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19w dHIsIGludCBwb3J0KTsKPiA+ID4gPiA+ICsJdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICph dWRpb19wdHIsIGludCBwb3J0LCBpbnQgZGV2X2lkKTsKPiA+ID4gPiA+ICB9Owo+ID4gPiA+ID4g IAo+ID4gPiA+ID4gIC8qKgo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvaGRh X2k5MTUuaCBiL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaAo+ID4gPiA+ID4gaW5kZXggNzk2Y2Fi Zi4uNWFiOTcyZSAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2luY2x1ZGUvc291bmQvaGRhX2k5MTUu aAo+ID4gPiA+ID4gKysrIGIvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oCj4gPiA+ID4gPiBAQCAt MTAsOCArMTAsOSBAQAo+ID4gPiA+ID4gIGludCBzbmRfaGRhY19zZXRfY29kZWNfd2FrZXVwKHN0 cnVjdCBoZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSk7Cj4gPiA+ID4gPiAgaW50IHNuZF9oZGFj X2Rpc3BsYXlfcG93ZXIoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxlKTsKPiA+ID4g PiA+ICB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2JjbGsoc3RydWN0IGhkYWNfYnVzICpidXMpOwo+ ID4gPiA+ID4gLWludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNl ICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpOwo+ID4gPiA+ID4gLWludCBzbmRfaGRh Y19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQs Cj4gPiA+ID4gPiAraW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZp Y2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ID4gPiA+ID4gKwkJCSAgICAgaW50IGRldl9pZCwg aW50IHJhdGUpOwo+ID4gPiA+ID4gK2ludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBo ZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCBkZXZfaWQsCj4gPiA+ID4gPiAg CQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKTsK PiA+ID4gPiA+ICBpbnQgc25kX2hkYWNfaTkxNV9pbml0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsK PiA+ID4gPiA+ICBpbnQgc25kX2hkYWNfaTkxNV9leGl0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsK PiA+ID4gPiA+IEBAIC0yOSwxMyArMzAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHNuZF9oZGFj X2k5MTVfc2V0X2JjbGsoc3RydWN0IGhkYWNfYnVzICpidXMpCj4gPiA+ID4gPiAgewo+ID4gPiA+ ID4gIH0KPiA+ID4gPiA+ICBzdGF0aWMgaW5saW5lIGludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3Jh dGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywKPiA+ID4gPiA+IC0JCQkJCSAgIGhkYV9uaWRf dCBuaWQsIGludCByYXRlKQo+ID4gPiA+ID4gKwkJCQkJICAgaGRhX25pZF90IG5pZCwgaW50IGRl dl9pZCwgaW50IHJhdGUpCj4gPiA+ID4gPiAgewo+ID4gPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4g PiA+ICB9Cj4gPiA+ID4gPiAgc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2Vs ZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ID4gPiA+ID4gLQkJ CQkJIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwKPiA+ID4gPiA+IC0JCQkJCSBp bnQgbWF4X2J5dGVzKQo+ID4gPiA+ID4gKwkJCQkJIGludCBkZXZfaWQsIGJvb2wgKmF1ZGlvX2Vu YWJsZWQsCj4gPiA+ID4gPiArCQkJCQkgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKQo+ID4g PiA+ID4gIHsKPiA+ID4gPiA+ICAJcmV0dXJuIC1FTk9ERVY7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ ID4gZGlmZiAtLWdpdCBhL3NvdW5kL2hkYS9oZGFjX2k5MTUuYyBiL3NvdW5kL2hkYS9oZGFjX2k5 MTUuYwo+ID4gPiA+ID4gaW5kZXggYzlhZjAyMi4uNmVhNjNhYyAxMDA2NDQKPiA+ID4gPiA+IC0t LSBhL3NvdW5kL2hkYS9oZGFjX2k5MTUuYwo+ID4gPiA+ID4gKysrIGIvc291bmQvaGRhL2hkYWNf aTkxNS5jCj4gPiA+ID4gPiBAQCAtMjAxLDcgKzIwMSw4IEBAIHN0YXRpYyBpbnQgcGluMnBvcnQo c3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IHBpbl9uaWQpCj4gPiA+ID4gPiAg ICogVGhpcyBmdW5jdGlvbiBzZXRzIE4vQ1RTIHZhbHVlIGJhc2VkIG9uIHRoZSBnaXZlbiBzYW1w bGUgcmF0ZS4KPiA+ID4gPiA+ICAgKiBSZXR1cm5zIHplcm8gZm9yIHN1Y2Nlc3MsIG9yIGEgbmVn YXRpdmUgZXJyb3IgY29kZS4KPiA+ID4gPiA+ICAgKi8KPiA+ID4gPiA+IC1pbnQgc25kX2hkYWNf c3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQs IGludCByYXRlKQo+ID4gPiA+ID4gK2ludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0 IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKPiA+ID4gPiA+ICsJCQkgICAgIGlu dCBkZXZfaWQsIGludCByYXRlKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ICAJc3RydWN0IGhkYWNf YnVzICpidXMgPSBjb2RlYy0+YnVzOwo+ID4gPiA+ID4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21w b25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19jb21wb25lbnQ7Cj4gPiA+ID4gPiBAQCAtMjEyLDcg KzIxMyw3IEBAIGludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNl ICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpCj4gPiA+ID4gPiAgCXBvcnQgPSBwaW4y cG9ydChjb2RlYywgbmlkKTsKPiA+ID4gPiA+ICAJaWYgKHBvcnQgPCAwKQo+ID4gPiA+ID4gIAkJ cmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4gPiAtCXJldHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlv X3JhdGUoYWNvbXAtPmRldiwgcG9ydCwgcmF0ZSk7Cj4gPiA+ID4gPiArCXJldHVybiBhY29tcC0+ b3BzLT5zeW5jX2F1ZGlvX3JhdGUoYWNvbXAtPmRldiwgcG9ydCwgZGV2X2lkLCByYXRlKTsKPiA+ ID4gPiA+ICB9Cj4gPiA+ID4gPiAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRp b19yYXRlKTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+IEBAIC0yMzYsNyArMjM3LDcgQEAgRVhQT1JU X1NZTUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRpb19yYXRlKTsKPiA+ID4gPiA+ICAgKiB0aHVz IGl0IG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBJZiBpdCdzIG92ZXIgQG1heF9ieXRlcywgaXQg aW1wbGllcwo+ID4gPiA+ID4gICAqIHRoYXQgb25seSBhIHBhcnQgb2YgRUxEIGJ5dGVzIGhhdmUg YmVlbiBmZXRjaGVkLgo+ID4gPiA+ID4gICAqLwo+ID4gPiA+ID4gLWludCBzbmRfaGRhY19hY29t cF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCj4gPiA+ ID4gPiAraW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2Rl YywgaGRhX25pZF90IG5pZCwgaW50IGRldl9pZCwKPiA+ID4gPiA+ICAJCQkgICBib29sICphdWRp b19lbmFibGVkLCBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpCj4gPiA+ID4gPiAgewo+ID4g PiA+ID4gIAlzdHJ1Y3QgaGRhY19idXMgKmJ1cyA9IGNvZGVjLT5idXM7Cj4gPiA+ID4gPiBAQCAt MjQ5LDcgKzI1MCw3IEBAIGludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2Rl dmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCj4gPiA+ID4gPiAgCXBvcnQgPSBwaW4ycG9ydChj b2RlYywgbmlkKTsKPiA+ID4gPiA+ICAJaWYgKHBvcnQgPCAwKQo+ID4gPiA+ID4gIAkJcmV0dXJu IC1FSU5WQUw7Cj4gPiA+ID4gPiAtCXJldHVybiBhY29tcC0+b3BzLT5nZXRfZWxkKGFjb21wLT5k ZXYsIHBvcnQsIGF1ZGlvX2VuYWJsZWQsCj4gPiA+ID4gPiArCXJldHVybiBhY29tcC0+b3BzLT5n ZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIGRldl9pZCwgYXVkaW9fZW5hYmxlZCwKPiA+ID4gPiA+ ICAJCQkJICAgYnVmZmVyLCBtYXhfYnl0ZXMpOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICBFWFBP UlRfU1lNQk9MX0dQTChzbmRfaGRhY19hY29tcF9nZXRfZWxkKTsKPiA+ID4gPiA+IGRpZmYgLS1n aXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRt aS5jCj4gPiA+ID4gPiBpbmRleCBkMGQ1YWQ4Li4wNzdkNDhhIDEwMDY0NAo+ID4gPiA+ID4gLS0t IGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiA+ID4gPiA+ICsrKyBiL3NvdW5kL3BjaS9o ZGEvcGF0Y2hfaGRtaS5jCj4gPiA+ID4gPiBAQCAtMTQ4NSw3ICsxNDg1LDcgQEAgc3RhdGljIHZv aWQgc3luY19lbGRfdmlhX2Fjb21wKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLAo+ID4gPiA+ID4g IAo+ID4gPiA+ID4gIAltdXRleF9sb2NrKCZwZXJfcGluLT5sb2NrKTsKPiA+ID4gPiA+ICAJZWxk LT5tb25pdG9yX3ByZXNlbnQgPSBmYWxzZTsKPiA+ID4gPiA+IC0Jc2l6ZSA9IHNuZF9oZGFjX2Fj b21wX2dldF9lbGQoJmNvZGVjLT5jb3JlLCBwZXJfcGluLT5waW5fbmlkLAo+ID4gPiA+ID4gKwlz aXplID0gc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4tPnBpbl9u aWQsIC0xLAo+ID4gPiA+ID4gIAkJCQkgICAgICAmZWxkLT5tb25pdG9yX3ByZXNlbnQsIGVsZC0+ ZWxkX2J1ZmZlciwKPiA+ID4gPiA+ICAJCQkJICAgICAgRUxEX01BWF9TSVpFKTsKPiA+ID4gPiA+ ICAJaWYgKHNpemUgPiAwKSB7Cj4gPiA+ID4gPiBAQCAtMTczOSw3ICsxNzM5LDggQEAgc3RhdGlj IGludCBnZW5lcmljX2hkbWlfcGxheWJhY2tfcGNtX3ByZXBhcmUoc3RydWN0IGhkYV9wY21fc3Ry ZWFtICpoaW5mbywKPiA+ID4gPiA+ICAJLyogQ2FsbCBzeW5jX2F1ZGlvX3JhdGUgdG8gc2V0IHRo ZSBOL0NUUy9NIG1hbnVhbGx5IGlmIG5lY2Vzc2FyeSAqLwo+ID4gPiA+ID4gIAkvKiBUb2RvOiBh ZGQgRFAxLjIgTVNUIGF1ZGlvIHN1cHBvcnQgbGF0ZXIgKi8KPiA+ID4gPiA+ICAJaWYgKGNvZGVj X2hhc19hY29tcChjb2RlYykpCj4gPiA+ID4gPiAtCQlzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUo JmNvZGVjLT5jb3JlLCBwaW5fbmlkLCBydW50aW1lLT5yYXRlKTsKPiA+ID4gPiA+ICsJCXNuZF9o ZGFjX3N5bmNfYXVkaW9fcmF0ZSgmY29kZWMtPmNvcmUsIHBpbl9uaWQsIC0xLAo+ID4gPiA+ID4g KwkJCQkJIHJ1bnRpbWUtPnJhdGUpOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlub25fcGNtID0g Y2hlY2tfbm9uX3BjbV9wZXJfY3Z0KGNvZGVjLCBjdnRfbmlkKTsKPiA+ID4gPiA+ICAJbXV0ZXhf bG9jaygmcGVyX3Bpbi0+bG9jayk7Cj4gPiA+ID4gPiBAQCAtMjI4NSw3ICsyMjg2LDcgQEAgc3Rh dGljIHZvaWQgaGFzd2VsbF9zZXRfcG93ZXJfc3RhdGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMs IGhkYV9uaWRfdCBmZywKPiA+ID4gPiA+ICAJc25kX2hkYV9jb2RlY19zZXRfcG93ZXJfdG9fYWxs KGNvZGVjLCBmZywgcG93ZXJfc3RhdGUpOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4g PiA+IC1zdGF0aWMgdm9pZCBpbnRlbF9waW5fZWxkX25vdGlmeSh2b2lkICphdWRpb19wdHIsIGlu dCBwb3J0KQo+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGludGVsX3Bpbl9lbGRfbm90aWZ5KHZvaWQg KmF1ZGlvX3B0ciwgaW50IHBvcnQsIGludCBkZXZfaWQpCj4gPiA+ID4gPiAgewo+ID4gPiA+ID4g IAlzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYyA9IGF1ZGlvX3B0cjsKPiA+ID4gPiA+ICAJaW50IHBp bl9uaWQ7Cj4gPiA+ID4gPiAtLSAKPiA+ID4gPiA+IDIuNS4wCj4gPiA+ID4gCj4gPiA+IAo+ID4g Cj4gCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK