From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2] drm/i915/dp: DP audio API changes for MST Date: Wed, 10 Aug 2016 17:21:18 +0300 Message-ID: <20160810142118.GT4329@intel.com> References: <1470776313-15416-1-git-send-email-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470776313-15416-1-git-send-email-dhinakaran.pandiyan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dhinakaran Pandiyan Cc: alsa-devel@alsa-project.org, tiwai@suse.de, intel-gfx@lists.freedesktop.org, jeeja.kp@intel.com, libin.yang@linux.intel.com List-Id: alsa-devel@alsa-project.org T24gVHVlLCBBdWcgMDksIDIwMTYgYXQgMDE6NTg6MzNQTSAtMDcwMCwgRGhpbmFrYXJhbiBQYW5k aXlhbiB3cm90ZToKPiBEUCBNU1QgcHJvdmlkZXMgdGhlIGNhcGFiaWxpdHkgdG8gc2VuZCBtdWx0 aXBsZSB2aWRlbyBhbmQgYXVkaW8gc3RyZWFtcwo+IHRocm91Z2ggYSBzaW5nbGUgcG9ydC4gVGhp cyByZXF1aXJlcyB0aGUgQVBJJ3MgYmV0d2VlbiBpOTE1IGFuZCBhdWRpbwo+IGRyaXZlcnMgdG8g ZGlzdGluZ3Vpc2ggYmV0d2VlbiBtdWx0aXBsZSBhdWRpbyBjYXBhYmxlIGRpc3BsYXlzIHRoYXQg Y2FuIGJlCj4gY29ubmVjdGVkIHRvIGEgcG9ydC4gQ3VycmVudGx5IG9ubHkgdGhlIHBvcnQgaWRl bnRpdHkgaXMgc2hhcmVkIGluIHRoZQo+IEFQSXMuIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZv ciBNU1Qgd2l0aCBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlcgo+ICdpbnQgcGlwZScuICBUaGUgZXhp c3RpbmcgcGFyYW1ldGVyICdwb3J0JyBkb2VzIG5vdCBjaGFuZ2UgaXQncyBtZWFuaW5nLgo+IAo+ IHBpcGUgPQo+IAlNU1QJOiBkaXNwbGF5IHBpcGUgdGhhdCB0aGUgc3RyZWFtIG9yaWdpbmF0ZXMg ZnJvbQo+IAlOb24tTVNUCTogLTEKPiAKPiBBZmZlY3RlZCBBUElzOgo+IHN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9vcHMKPiAtICAgICAgIGludCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0 IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHJhdGUpOwo+ICsJaW50ICgqc3luY19hdWRpb19yYXRl KShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgcGlwZSwKPiArCSAgICAgaW50IHJhdGUp Owo+IAo+IC0gICAgICAgaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwg Ym9vbCAqZW5hYmxlZCwKPiAtICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpi dWYsIGludCBtYXhfYnl0ZXMpOwo+ICsgICAgICAgaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmlj ZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsCj4gKwkJICAgICAgIGJvb2wgKmVuYWJsZWQsIHVuc2ln bmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7Cj4gCj4gc3RydWN0IGk5MTVfYXVkaW9fY29t cG9uZW50X2F1ZGlvX29wcwo+IC0gICAgICAgdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICph dWRpb19wdHIsIGludCBwb3J0KTsKPiArICAgICAgIHZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9p ZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCwgaW50IHBpcGUpOwo+IAo+IFRoaXMgcGF0Y2ggbWFrZXMg ZHVtbXkgY2hhbmdlcyBpbiB0aGUgYXVkaW8gZHJpdmVycyAoTGliaW4pIGZvciBidWlsZCB0bwo+ IHN1Y2NlZWQuIFRoZSBhdWRpbyBzaWRlIGRyaXZlcnMgd2lsbCBzZW5kIHRoZSByaWdodCAncGlw ZScgdmFsdWVzIGluCj4gcGF0Y2hlcyB0aGF0IHdpbGwgZm9sbG93Lgo+IAo+IHYyOgo+IFJlbmFt ZWQgdGhlIG5ldyBBUEkgcGFyYW1ldGVyIGZyb20gJ2Rldl9pZCcgdG8gJ3BpcGUnLiAoSmltLCBW aWxsZSkKPiBJbmNsdWRlZCBBc29jIGRyaXZlciBBUEkgY29tcGF0aWJpbGl0eSBjaGFuZ2VzIGZy b20gSmVlamEuCj4gQWRkZWQgV0FSTl9PTigpIGZvciBpbnZhbGlkIHBpcGUgaW4gZ2V0X3NhdmVk X2VuY29kZXIoKS4gKFRha2FzaGkpCj4gQWRkZWQgY29tbWVudCBmb3IgYXZfZW5jX21hcFtdIGRl ZmluaXRpb24uIChUYWthc2hpKQo+IAo+IFNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5 YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXVkaW8uYyB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4g IGluY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmggICAgICAgfCAgNiArLS0KPiAgaW5jbHVkZS9z b3VuZC9oZGFfaTkxNS5oICAgICAgICAgICB8IDExICsrLS0tCj4gIHNvdW5kL2hkYS9oZGFjX2k5 MTUuYyAgICAgICAgICAgICAgfCAgOSArKy0tCj4gIHNvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5j ICAgICAgICAgfCAgNyArLS0KPiAgc291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYyAgICAgICB8 ICAyICstCj4gIDcgZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggYzM2ZDE3Ni4uOGU0YTg4ZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yMDM2LDcgKzIwMzYsOCBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAkvKiBwZXJmb3JtIFBIWSBzdGF0ZSBzYW5pdHkgY2hl Y2tzPyAqLwo+ICAJYm9vbCBjaHZfcGh5X2Fzc2VydFsyXTsKPiAgCj4gLQlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5MTVfTUFYX1BPUlRTXTsKPiArCS8qIFVzZWQgdG8gc2F2 ZSB0aGUgcGlwZS10by1lbmNvZGVyIG1hcHBpbmcgZm9yIGF1ZGlvICovCj4gKwlzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqYXZfZW5jX21hcFtJOTE1X01BWF9QSVBFU107Cj4gIAo+ICAJLyoKPiAgCSAq IE5PVEU6IFRoaXMgaXMgdGhlIGRyaTEvdW1zIGR1bmdlb24sIGRvbid0IGFkZCBzdHVmZiBoZXJl LiBZb3VyIHBhdGNoCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gaW5kZXggZWYyMDg3 NS4uMjQwZGFkMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRp by5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+IEBAIC01MDAs NiArNTAwLDcgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIpCj4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFj b21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICAJZW51 bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKPiArCWVudW0gcGlwZSBwaXBlID0g LTE7Cj4gIAo+ICAJY29ubmVjdG9yID0gZHJtX3NlbGVjdF9lbGQoZW5jb2Rlcik7Cj4gIAlpZiAo IWNvbm5lY3RvcikKPiBAQCAtNTI0LDEyICs1MjUsMTggQEAgdm9pZCBpbnRlbF9hdWRpb19jb2Rl Y19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gIAo+ICAJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiAgCWludGVsX2VuY29kZXItPmF1ZGlvX2Nv bm5lY3RvciA9IGNvbm5lY3RvcjsKPiArCj4gIAkvKiByZWZlcnJlZCBpbiBhdWRpbyBjYWxsYmFj a3MgKi8KPiAtCWRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF0gPSBpbnRlbF9lbmNvZGVyOwo+ ICsJZGV2X3ByaXYtPmF2X2VuY19tYXBbcGlwZV0gPSBpbnRlbF9lbmNvZGVyOwoKWy0xXSBkb2Vz bid0IGxvb2sgcmlnaHQuCgo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ ICAKPiArCj4gKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNU KQo+ICsJCXBpcGUgPSBjcnRjLT5waXBlOwo+ICsKPiAgCWlmIChhY29tcCAmJiBhY29tcC0+YXVk aW9fb3BzICYmIGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KQo+IC0JCWFjb21wLT5h dWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwgKGlu dCkgcG9ydCk7Cj4gKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1 ZGlvX29wcy0+YXVkaW9fcHRyLAo+ICsJCQkJCQkgKGludCkgcG9ydCwgKGludCkgcGlwZSk7Cj4g IH0KPiAgCj4gIC8qKgo+IEBAIC01NDIsMjIgKzU0OSwyOCBAQCB2b2lkIGludGVsX2F1ZGlvX2Nv ZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgdm9pZCBp bnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rl ci0+YmFzZTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNv ZGVyLT5jcnRjKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlz dHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBv bmVudDsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5j X3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9y dC0+cG9ydDsKPiArCWVudW0gcGlwZSBwaXBlID0gLTE7Cj4gIAo+ICAJaWYgKGRldl9wcml2LT5k aXNwbGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUpCj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9f Y29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVyKTsKPiAgCj4gIAltdXRleF9sb2NrKCZkZXZfcHJp di0+YXZfbXV0ZXgpOwo+ICAJaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0gTlVMTDsK PiAtCWRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF0gPSBOVUxMOwo+ICsJZGV2X3ByaXYtPmF2 X2VuY19tYXBbcGlwZV0gPSBOVUxMOwoKc2FtZQoKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmF2X211dGV4KTsKPiAgCj4gKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQ VVRfRFBfTVNUKQo+ICsJCXBpcGUgPSBjcnRjLT5waXBlOwo+ICsKPiAgCWlmIChhY29tcCAmJiBh Y29tcC0+YXVkaW9fb3BzICYmIGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KQo+IC0J CWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlv X3B0ciwgKGludCkgcG9ydCk7Cj4gKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnko YWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLAo+ICsJCQkJCQkgKGludCkgcG9ydCwgKGludCkg cGlwZSk7Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC02MzIsMTUgKzY0NSwzOSBAQCBzdGF0aWMgaW50 IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9jZGNsa19mcmVxKHN0cnVjdCBkZXZpY2UgKmRldikK PiAgCXJldHVybiBkZXZfcHJpdi0+Y2RjbGtfZnJlcTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBp OTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ IC0JCQkJCQlpbnQgcG9ydCwgaW50IHJhdGUpCj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZ2V0X3NhdmVkX2VuY29kZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbXSwK PiArCQkJCQkgICAgICAgaW50IHBvcnQsIGludCBwaXBlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXI7Cj4gKwo+ICsJaWYgKFdBUk5fT04ocGlwZSA+PSBJOTE1X01BWF9QSVBF UykpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJLyogTVNUICovCj4gKwlpZiAocGlwZSAhPSAt MSkKPiArCQlyZXR1cm4gYXZfZW5jX21hcFtwaXBlXTsKPiArCj4gKwkvKiBOb24tTVNUICovCj4g Kwlmb3IgKHBpcGUgPSBQSVBFX0E7IHBpcGUgPCBJOTE1X01BWF9QSVBFUzsgcGlwZSsrKSB7Cj4g KwkJaWYgKCFhdl9lbmNfbWFwW3BpcGVdKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJZW5jb2Rl ciA9ICZhdl9lbmNfbWFwW3BpcGVdLT5iYXNlOwo+ICsJCWlmIChwb3J0ID09IGVuY190b19kaWdf cG9ydChlbmNvZGVyKS0+cG9ydCkKPiArCQkJcmV0dXJuIGF2X2VuY19tYXBbcGlwZV07Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIE5VTEw7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaTkxNV9hdWRpb19j b21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBvcnQsCj4g KwkJCQkJCWludCBwaXBlLCBpbnQgcmF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4gIAlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAq YWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Owo+IC0JZW51bSBwaXBlIHBpcGUgPSBJ TlZBTElEX1BJUEU7Cj4gIAl1MzIgdG1wOwo+ICAJaW50IG47Cj4gIAlpbnQgZXJyID0gMDsKPiBA QCAtNjU0LDI1ICs2OTEsMjAgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5j X2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ICAKPiAgCWk5MTVfYXVkaW9fY29tcG9u ZW50X2dldF9wb3dlcihkZXYpOwo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsK PiArCj4gIAkvKiAxLiBnZXQgdGhlIHBpcGUgKi8KPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJp di0+ZGlnX3BvcnRfbWFwW3BvcnRdOwo+IC0JLyogaW50ZWxfZW5jb2RlciBtaWdodCBiZSBOVUxM IGZvciBEUCBNU1QgKi8KPiArCWludGVsX2VuY29kZXIgPSBnZXRfc2F2ZWRfZW5jb2RlcihkZXZf cHJpdi0+YXZfZW5jX21hcCwgcG9ydCwgcGlwZSk7Cj4gIAlpZiAoIWludGVsX2VuY29kZXIgfHwg IWludGVsX2VuY29kZXItPmJhc2UuY3J0YyB8fAo+ICAJICAgIGludGVsX2VuY29kZXItPnR5cGUg IT0gSU5URUxfT1VUUFVUX0hETUkpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJubyB2YWxpZCBwb3J0 ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOwo+ICsJCURSTV9ERUJVR19LTVMoIk5vdCB2YWxpZCBm b3IgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsKPiAgCQllcnIgPSAtRU5PREVWOwo+ICAJ CWdvdG8gdW5sb2NrOwo+ICAJfQo+ICsKPiArCS8qIHBpcGUgcGFzc2VkIGZyb20gdGhlIGF1ZGlv IGRyaXZlciB3aWxsIGJlIC0xIGZvciBub24tbXN0IGNhc2UgICovCj4gIAljcnRjID0gdG9faW50 ZWxfY3J0YyhpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpOwo+ICAJcGlwZSA9IGNydGMtPnBpcGU7 Cj4gLQlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJubyBw aXBlIGZvciB0aGUgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsKPiAtCQllcnIgPSAtRU5P REVWOwo+IC0JCWdvdG8gdW5sb2NrOwo+IC0JfQo+ICAKPiAtCURSTV9ERUJVR19LTVMoInBpcGUg JWMgY29ubmVjdHMgcG9ydCAlY1xuIiwKPiAtCQkJCSAgcGlwZV9uYW1lKHBpcGUpLCBwb3J0X25h bWUocG9ydCkpOwo+ICAJbW9kZSA9ICZjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsK PiAgCj4gIAkvKiBwb3J0IG11c3QgYmUgdmFsaWQgbm93LCBvdGhlcndpc2UgdGhlIHBpcGUgd2ls bCBiZSBpbnZhbGlkICovCj4gQEAgLTcwOCw3ICs3NDAsNyBAQCBzdGF0aWMgaW50IGk5MTVfYXVk aW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIH0KPiAg Cj4gIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNl ICpkZXYsIGludCBwb3J0LAo+IC0JCQkJCWJvb2wgKmVuYWJsZWQsCj4gKwkJCQkJaW50IHBpcGUs IGJvb2wgKmVuYWJsZWQsCj4gIAkJCQkJdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVz KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkx NShkZXYpOwo+IEBAIC03MTcsMTYgKzc0OSwyMCBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29t cG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcG9ydCwKPiAgCWludCByZXQg PSAtRUlOVkFMOwo+ICAKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gLQlp bnRlbF9lbmNvZGVyID0gZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XTsKPiAtCS8qIGludGVs X2VuY29kZXIgbWlnaHQgYmUgTlVMTCBmb3IgRFAgTVNUICovCj4gLQlpZiAoaW50ZWxfZW5jb2Rl cikgewo+IC0JCXJldCA9IDA7Cj4gLQkJKmVuYWJsZWQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19j b25uZWN0b3IgIT0gTlVMTDsKPiAtCQlpZiAoKmVuYWJsZWQpIHsKPiAtCQkJZWxkID0gaW50ZWxf ZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yLT5lbGQ7Cj4gLQkJCXJldCA9IGRybV9lbGRfc2l6ZShl bGQpOwo+IC0JCQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwo+IC0JCX0K PiArCj4gKwlpbnRlbF9lbmNvZGVyID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2X3ByaXYtPmF2X2Vu Y19tYXAsIHBvcnQsIHBpcGUpOwo+ICsJaWYgKCFpbnRlbF9lbmNvZGVyKSB7Cj4gKwkJRFJNX0RF QlVHX0tNUygiTm90IHZhbGlkIGZvciBwb3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOwo+ICsJ CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJ fQo+ICsKPiArCXJldCA9IDA7Cj4gKwkqZW5hYmxlZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nv bm5lY3RvciAhPSBOVUxMOwo+ICsJaWYgKCplbmFibGVkKSB7Cj4gKwkJZWxkID0gaW50ZWxfZW5j b2Rlci0+YXVkaW9fY29ubmVjdG9yLT5lbGQ7Cj4gKwkJcmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7 Cj4gKwkJbWVtY3B5KGJ1ZiwgZWxkLCBtaW4obWF4X2J5dGVzLCByZXQpKTsKPiAgCX0KPiAgCj4g IAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2k5MTVfY29tcG9uZW50LmggYi9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4g aW5kZXggYjQ2ZmEwZS4uNTQ1YzZlMCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9pOTE1X2Nv bXBvbmVudC5oCj4gKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAo+IEBAIC02NCw3 ICs2NCw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgewo+ICAJICogQ2FsbGVk IGZyb20gYXVkaW8gZHJpdmVyLiBBZnRlciBhdWRpbyBkcml2ZXIgc2V0cyB0aGUKPiAgCSAqIHNh bXBsZSByYXRlLCBpdCB3aWxsIGNhbGwgdGhpcyBmdW5jdGlvbiB0byBzZXQgbi9jdHMKPiAgCSAq Lwo+IC0JaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBp bnQgcmF0ZSk7Cj4gKwlpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50 IHBvcnQsIGludCBwaXBlLCBpbnQgcmF0ZSk7Cj4gIAkvKioKPiAgCSAqIEBnZXRfZWxkOiBmaWxs IHRoZSBhdWRpbyBzdGF0ZSBhbmQgRUxEIGJ5dGVzIGZvciB0aGUgZ2l2ZW4gcG9ydAo+ICAJICoK PiBAQCAtNzcsNyArNzcsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzIHsKPiAg CSAqIE5vdGUgdGhhdCB0aGUgcmV0dXJuZWQgc2l6ZSBtYXkgYmUgb3ZlciBAbWF4X2J5dGVzLiAg VGhlbiBpdAo+ICAJICogaW1wbGllcyB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVMRCBoYXMgYmVlbiBj b3BpZWQgdG8gdGhlIGJ1ZmZlci4KPiAgCSAqLwoKUGxlYXMgdXBkYXRlIHRoZSBkb2NzIHRvIGlu Y2x1ZGUgd2hhdCB0aGUgcGlwZSBwYXJhbWV0ZXIgbWVhbnMuCkxvb2tzIGxpa2UgbW9zdCBvZiB0 aGVzZSBkb2NzIGNvdWxkIHVzZSBhIGxpdHRsZSBiZWVmaW5nIHVwIHRvIG1ha2UKc3VyZSBib3Ro IHNpZGVzIGZvbGxvdyB0aGUgc2FtZSBjb250cmFjdC4gUmlnaHQgbm93IHRoZXJlIGFyZSBhIGxv dApvZiBncmV5IGFyZWFzLgoKPiAtCWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50 IHBvcnQsIGJvb2wgKmVuYWJsZWQsCj4gKwlpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICos IGludCBwb3J0LCBpbnQgcGlwZSwgYm9vbCAqZW5hYmxlZCwKPiAgCQkgICAgICAgdW5zaWduZWQg Y2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKPiAgfTsKPiAgCj4gQEAgLTk3LDcgKzk3LDcgQEAg c3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X2F1ZGlvX29wcyB7Cj4gIAkgKiBzdGF0dXMgYWNj b3JkaW5nbHkgKGV2ZW4gd2hlbiB0aGUgSERBIGNvbnRyb2xsZXIgaXMgaW4gcG93ZXIgc2F2ZQo+ ICAJICogbW9kZSkuCj4gIAkgKi8KPiAtCXZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAqYXVk aW9fcHRyLCBpbnQgcG9ydCk7Cj4gKwl2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlv X3B0ciwgaW50IHBvcnQsIGludCBwaXBlKTsKPiAgfTsKPiAgCj4gIC8qKgo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmggYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgKPiBp bmRleCA3OTZjYWJmLi4wN2ZkNjRlIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvc291bmQvaGRhX2k5 MTUuaAo+ICsrKyBiL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaAo+IEBAIC0xMCw4ICsxMCw5IEBA Cj4gIGludCBzbmRfaGRhY19zZXRfY29kZWNfd2FrZXVwKHN0cnVjdCBoZGFjX2J1cyAqYnVzLCBi b29sIGVuYWJsZSk7Cj4gIGludCBzbmRfaGRhY19kaXNwbGF5X3Bvd2VyKHN0cnVjdCBoZGFjX2J1 cyAqYnVzLCBib29sIGVuYWJsZSk7Cj4gIHZvaWQgc25kX2hkYWNfaTkxNV9zZXRfYmNsayhzdHJ1 Y3QgaGRhY19idXMgKmJ1cyk7Cj4gLWludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0 IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpOwo+IC1pbnQgc25k X2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3Qg bmlkLAo+ICtpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAq Y29kZWMsIGhkYV9uaWRfdCBuaWQsCj4gKwkJCSAgICAgaW50IHBpcGUsIGludCByYXRlKTsKPiAr aW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRh X25pZF90IG5pZCwgaW50IHBpcGUsCj4gIAkJCSAgIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIg KmJ1ZmZlciwgaW50IG1heF9ieXRlcyk7Cj4gIGludCBzbmRfaGRhY19pOTE1X2luaXQoc3RydWN0 IGhkYWNfYnVzICpidXMpOwo+ICBpbnQgc25kX2hkYWNfaTkxNV9leGl0KHN0cnVjdCBoZGFjX2J1 cyAqYnVzKTsKPiBAQCAtMjksMTMgKzMwLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzbmRfaGRh Y19pOTE1X3NldF9iY2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVzKQo+ICB7Cj4gIH0KPiAgc3RhdGlj IGlubGluZSBpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAq Y29kZWMsCj4gLQkJCQkJICAgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpCj4gKwkJCQkJICAgaGRh X25pZF90IG5pZCwgaW50IHBpcGUsIGludCByYXRlKQo+ICB7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICBzdGF0aWMgaW5saW5lIGludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2Rl dmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCj4gLQkJCQkJIGJvb2wgKmF1ZGlvX2VuYWJsZWQs IGNoYXIgKmJ1ZmZlciwKPiAtCQkJCQkgaW50IG1heF9ieXRlcykKPiArCQkJCQkgaW50IHBpcGUs IGJvb2wgKmF1ZGlvX2VuYWJsZWQsCj4gKwkJCQkJIGNoYXIgKmJ1ZmZlciwgaW50IG1heF9ieXRl cykKPiAgewo+ICAJcmV0dXJuIC1FTk9ERVY7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvc291bmQvaGRh L2hkYWNfaTkxNS5jIGIvc291bmQvaGRhL2hkYWNfaTkxNS5jCj4gaW5kZXggYzlhZjAyMi4uYjk5 OTk0YiAxMDA2NDQKPiAtLS0gYS9zb3VuZC9oZGEvaGRhY19pOTE1LmMKPiArKysgYi9zb3VuZC9o ZGEvaGRhY19pOTE1LmMKPiBAQCAtMjAxLDcgKzIwMSw4IEBAIHN0YXRpYyBpbnQgcGluMnBvcnQo c3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IHBpbl9uaWQpCj4gICAqIFRoaXMg ZnVuY3Rpb24gc2V0cyBOL0NUUyB2YWx1ZSBiYXNlZCBvbiB0aGUgZ2l2ZW4gc2FtcGxlIHJhdGUu Cj4gICAqIFJldHVybnMgemVybyBmb3Igc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2Rl Lgo+ICAgKi8KPiAtaW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZp Y2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcmF0ZSkKPiAraW50IHNuZF9oZGFjX3N5bmNf YXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ICsJ CQkgICAgIGludCBwaXBlLCBpbnQgcmF0ZSkKPiAgewo+ICAJc3RydWN0IGhkYWNfYnVzICpidXMg PSBjb2RlYy0+YnVzOwo+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGJ1 cy0+YXVkaW9fY29tcG9uZW50Owo+IEBAIC0yMTIsNyArMjEzLDcgQEAgaW50IHNuZF9oZGFjX3N5 bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBp bnQgcmF0ZSkKPiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsKPiAgCWlmIChwb3J0IDwg MCkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAtCXJldHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlv X3JhdGUoYWNvbXAtPmRldiwgcG9ydCwgcmF0ZSk7Cj4gKwlyZXR1cm4gYWNvbXAtPm9wcy0+c3lu Y19hdWRpb19yYXRlKGFjb21wLT5kZXYsIHBvcnQsIHBpcGUsIHJhdGUpOwo+ICB9Cj4gIEVYUE9S VF9TWU1CT0xfR1BMKHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSk7Cj4gIAo+IEBAIC0yMzYsNyAr MjM3LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRpb19yYXRlKTsKPiAg ICogdGh1cyBpdCBtYXkgYmUgb3ZlciBAbWF4X2J5dGVzLiAgSWYgaXQncyBvdmVyIEBtYXhfYnl0 ZXMsIGl0IGltcGxpZXMKPiAgICogdGhhdCBvbmx5IGEgcGFydCBvZiBFTEQgYnl0ZXMgaGF2ZSBi ZWVuIGZldGNoZWQuCj4gICAqLwo+IC1pbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3Qg aGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ICtpbnQgc25kX2hkYWNfYWNvbXBf Z2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcGlw ZSwKPiAgCQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5 dGVzKQo+ICB7Cj4gIAlzdHJ1Y3QgaGRhY19idXMgKmJ1cyA9IGNvZGVjLT5idXM7Cj4gQEAgLTI0 OSw3ICsyNTAsNyBAQCBpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZp Y2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ICAJcG9ydCA9IHBpbjJwb3J0KGNvZGVjLCBuaWQp Owo+ICAJaWYgKHBvcnQgPCAwKQo+ICAJCXJldHVybiAtRUlOVkFMOwo+IC0JcmV0dXJuIGFjb21w LT5vcHMtPmdldF9lbGQoYWNvbXAtPmRldiwgcG9ydCwgYXVkaW9fZW5hYmxlZCwKPiArCXJldHVy biBhY29tcC0+b3BzLT5nZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIHBpcGUsIGF1ZGlvX2VuYWJs ZWQsCj4gIAkJCQkgICBidWZmZXIsIG1heF9ieXRlcyk7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9H UEwoc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCk7Cj4gZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEv cGF0Y2hfaGRtaS5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiBpbmRleCBkMGQ1YWQ4 Li42Nzg5MGRmIDEwMDY0NAo+IC0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCj4gKysr IGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiBAQCAtMTQ4NSw3ICsxNDg1LDcgQEAgc3Rh dGljIHZvaWQgc3luY19lbGRfdmlhX2Fjb21wKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLAo+ICAK PiAgCW11dGV4X2xvY2soJnBlcl9waW4tPmxvY2spOwo+ICAJZWxkLT5tb25pdG9yX3ByZXNlbnQg PSBmYWxzZTsKPiAtCXNpemUgPSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2RlYy0+Y29yZSwg cGVyX3Bpbi0+cGluX25pZCwKPiArCXNpemUgPSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2Rl Yy0+Y29yZSwgcGVyX3Bpbi0+cGluX25pZCwgLTEsCj4gIAkJCQkgICAgICAmZWxkLT5tb25pdG9y X3ByZXNlbnQsIGVsZC0+ZWxkX2J1ZmZlciwKPiAgCQkJCSAgICAgIEVMRF9NQVhfU0laRSk7Cj4g IAlpZiAoc2l6ZSA+IDApIHsKPiBAQCAtMTczOSw3ICsxNzM5LDggQEAgc3RhdGljIGludCBnZW5l cmljX2hkbWlfcGxheWJhY2tfcGNtX3ByZXBhcmUoc3RydWN0IGhkYV9wY21fc3RyZWFtICpoaW5m bywKPiAgCS8qIENhbGwgc3luY19hdWRpb19yYXRlIHRvIHNldCB0aGUgTi9DVFMvTSBtYW51YWxs eSBpZiBuZWNlc3NhcnkgKi8KPiAgCS8qIFRvZG86IGFkZCBEUDEuMiBNU1QgYXVkaW8gc3VwcG9y dCBsYXRlciAqLwo+ICAJaWYgKGNvZGVjX2hhc19hY29tcChjb2RlYykpCj4gLQkJc25kX2hkYWNf c3luY19hdWRpb19yYXRlKCZjb2RlYy0+Y29yZSwgcGluX25pZCwgcnVudGltZS0+cmF0ZSk7Cj4g KwkJc25kX2hkYWNfc3luY19hdWRpb19yYXRlKCZjb2RlYy0+Y29yZSwgcGluX25pZCwgLTEsCj4g KwkJCQkJIHJ1bnRpbWUtPnJhdGUpOwo+ICAKPiAgCW5vbl9wY20gPSBjaGVja19ub25fcGNtX3Bl cl9jdnQoY29kZWMsIGN2dF9uaWQpOwo+ICAJbXV0ZXhfbG9jaygmcGVyX3Bpbi0+bG9jayk7Cj4g QEAgLTIyODUsNyArMjI4Niw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3Bvd2VyX3N0YXRl KHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLCBoZGFfbmlkX3QgZmcsCj4gIAlzbmRfaGRhX2NvZGVj X3NldF9wb3dlcl90b19hbGwoY29kZWMsIGZnLCBwb3dlcl9zdGF0ZSk7Cj4gIH0KPiAgCj4gLXN0 YXRpYyB2b2lkIGludGVsX3Bpbl9lbGRfbm90aWZ5KHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQp Cj4gK3N0YXRpYyB2b2lkIGludGVsX3Bpbl9lbGRfbm90aWZ5KHZvaWQgKmF1ZGlvX3B0ciwgaW50 IHBvcnQsIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYyA9IGF1ZGlv X3B0cjsKPiAgCWludCBwaW5fbmlkOwo+IGRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL2hk YWNfaGRtaS5jIGIvc291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYwo+IGluZGV4IDJhYmI3NDIu LmNmNTdhYjMgMTAwNjQ0Cj4gLS0tIGEvc291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYwo+ICsr KyBiL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMKPiBAQCAtMTM2Niw3ICsxMzY2LDcgQEAg c3RhdGljIGludCBoZGFjX2hkbWlfcGFyc2VfYW5kX21hcF9uaWQoc3RydWN0IGhkYWNfZXh0X2Rl dmljZSAqZWRldiwKPiAgCXJldHVybiBoZGFjX2hkbWlfaW5pdF9kYWlfbWFwKGVkZXYpOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZCBoZGFjX2hkbWlfZWxkX25vdGlmeV9jYih2b2lkICphcHRyLCBp bnQgcG9ydCkKPiArc3RhdGljIHZvaWQgaGRhY19oZG1pX2VsZF9ub3RpZnlfY2Iodm9pZCAqYXB0 ciwgaW50IHBvcnQsIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgaGRhY19leHRfZGV2aWNlICpl ZGV2ID0gYXB0cjsKPiAgCXN0cnVjdCBoZGFjX2hkbWlfcHJpdiAqaGRtaSA9IGVkZXYtPnByaXZh dGVfZGF0YTsKPiAtLSAKPiAyLjUuMAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==