From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH] drm/i915/dp: DP audio API changes for MST Date: Thu, 4 Aug 2016 16:44:49 +0000 Message-ID: <1470329938.10898.5.camel@dk-H97M-D3H> 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> <20160804124916.GG4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160804124916.GG4329@intel.com> Content-Language: en-US Content-ID: <8663A0C30CA6374396F96BD63E98EF66@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" Cc: "tiwai@suse.de" , "Kp, Jeeja" , "alsa-devel@alsa-project.org" , "intel-gfx@lists.freedesktop.org" , "libin.yang@linux.intel.com" List-Id: alsa-devel@alsa-project.org T24gVGh1LCAyMDE2LTA4LTA0IGF0IDE1OjQ5ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+IE9uIFdlZCwgQXVnIDAzLCAyMDE2IGF0IDA5OjQyOjUzUE0gKzAwMDAsIFBhbmRpeWFuLCBE aGluYWthcmFuIHdyb3RlOg0KPiA+IE9uIFdlZCwgMjAxNi0wOC0wMyBhdCAyMzoyOCArMDMwMCwg VmlsbGUgU3lyasOkbMOkIHdyb3RlOg0KPiA+ID4gT24gV2VkLCBBdWcgMDMsIDIwMTYgYXQgMDc6 NDM6MDZQTSArMDAwMCwgUGFuZGl5YW4sIERoaW5ha2FyYW4gd3JvdGU6DQo+ID4gPiA+IE9uIFdl ZCwgMjAxNi0wOC0wMyBhdCAyMjowOCArMDMwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOg0KPiA+ ID4gPiA+IE9uIFR1ZSwgQXVnIDAyLCAyMDE2IGF0IDA3OjE0OjMwUE0gLTA3MDAsIERoaW5ha2Fy YW4gUGFuZGl5YW4gd3JvdGU6DQo+ID4gPiA+ID4gPiBEUCBNU1QgcHJvdmlkZXMgdGhlIGNhcGFi aWxpdHkgdG8gc2VuZCBtdWx0aXBsZSB2aWRlbyBhbmQgYXVkaW8gc3RyZWFtcyB2aWENCj4gPiA+ ID4gPiA+IG9uZSBzaW5nbGUgcG9ydC4gVGhpcyByZXF1aXJlcyB0aGUgQVBJJ3MgYmV0d2VlbiBp OTE1IGFuZCBhdWRpbyBkcml2ZXJzIHRvDQo+ID4gPiA+ID4gPiBkaXN0aW5ndWlzaCBiZXR3ZWVu IGF1ZGlvIGNhcGFibGUgZGlzcGxheXMgY29ubmVjdGVkIHRvIGEgcG9ydC4gVGhpcyBwYXRjaA0K PiA+ID4gPiA+ID4gYWRkcyB0aGlzIHN1cHBvcnQgdmlhIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVy ICdpbnQgZGV2X2lkJy4gVGhlIGV4aXN0aW5nDQo+ID4gPiA+ID4gPiBwYXJhbWV0ZXIgJ3BvcnQn IGRvZXMgbm90IGNoYW5nZSBpdCdzIG1lYW5pbmcuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ IGRldl9pZCA9DQo+ID4gPiA+ID4gPiAJTVNUCTogcGlwZSB0aGF0IHRoZSBzdHJlYW0gb3JpZ2lu YXRlcyBmcm9tDQo+ID4gPiA+ID4gPiAJTm9uLU1TVAk6IC0xDQo+ID4gPiA+ID4gPiANCj4gPiA+ ID4gPiA+IEFmZmVjdGVkIEFQSXM6DQo+ID4gPiA+ID4gPiBzdHJ1Y3QgaTkxNV9hdWRpb19jb21w b25lbnRfb3BzDQo+ID4gPiA+ID4gPiAtICAgICAgIGludCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3Ry dWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHJhdGUpOw0KPiA+ID4gPiA+ID4gKwlpbnQgKCpz eW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBkZXZfaWQsDQo+ ID4gPiA+ID4gDQo+ID4gPiA+ID4gRG9lcyB0aGUgdGVybSAnZGV2X2lkJyBoYXZlIHNvbWUgc3Bl Y2lhbCBtZWFuaW5nIG9uIHRoZSBhdWRpbyBzaWRlPyBPbg0KPiA+ID4gPiA+IHRoZSBpOTE1IHNp ZGUgdGhpbmdzIHdvdWxkIGJlIGxlc3MgY29uZnVzaW5nIGlmIHdlIGp1c3QgY2FsbGVkIGl0DQo+ ID4gPiA+ID4gJ3BpcGUnLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gVGhlcmUgd2Fz IHF1aXRlIGEgYml0IG9mIGJhY2sgYW5kIGZvcnRoIG9uIHRoaXMuICJwaXBlIiBzZWVtZWQgdG8g dGllIHVzDQo+ID4gPiA+IHRvIHRoZSBnZnggaGFyZHdhcmUgYXJjaGl0ZWN0dXJlLiBJbiBjYXNl LCB0aGVyZSBpcyBubyAxOjEgbWFwcGluZyBmcm9tDQo+ID4gPiA+IHBpcGVzIHRvIGVuY29kZXJz LCB0aGlzIHdpbGwgZ2V0IGNvbmZ1c2luZyBhcyBpOTE1IGF1ZGlvIHJlZ2lzdGVycw0KPiA+ID4g PiAoRS5nLkhTV19BVURfUElOX0VMRF9DUF9WTEQpIGFyZSBlbmNvZGVyIGJhc2VkLg0KPiA+ID4g DQo+ID4gPiBJJ20gbm90IGZvbGxvd2luZy4gTG9va2luZyBhdCB0aGUgY3VycmVudCBpOTE1IGF1 ZGlvIGNvZGUsIG9uIEhTVysNCj4gPiA+IGV2ZXJ5dGhpbmcgaXMgcGlwZSBiYXNlZC4NCj4gPiA+ IA0KPiA+IEFsdGhvdWdoIHdlIHBhc3MgInBpcGUiIHRvIHRoZXNlIG1hY3JvcywgdGhlIGRlZmlu aXRpb24gaGVyZSBhbmQgaW4gdGhlDQo+ID4gQlNwZWMgc2VlbSB0byBpbmRpY2F0ZSB0aGV5IGFy ZSBiYXNlZCBvbiB0aGUgZW5jb2Rlci4NCj4gPiANCj4gPiBFZzogI2RlZmluZSBIU1dfQVVEX1BJ Tl9FTERfQ1BfVkxEICAgICAgICAgIF9NTUlPKDB4NjUwYzApDQo+ID4gI2RlZmluZSAgIEFVRElP X0lOQUNUSVZFKHRyYW5zKSAgICAgICAgICgoMSA8PCAzKSA8PCAoKHRyYW5zKSAqIDQpKQ0KPiA+ ICNkZWZpbmUgICBBVURJT19PVVRQVVRfRU5BQkxFKHRyYW5zKSAgICAoKDEgPDwgMikgPDwgKCh0 cmFucykgKiA0KSkNCj4gPiAjZGVmaW5lICAgQVVESU9fQ1BfUkVBRFkodHJhbnMpICAgICAgICAg KCgxIDw8IDEpIDw8ICgodHJhbnMpICogNCkpDQo+ID4gI2RlZmluZSAgIEFVRElPX0VMRF9WQUxJ RCh0cmFucykgICAgICAgICgoMSA8PCAwKSA8PCAoKHRyYW5zKSAqIDQpKQ0KPiANCj4gVGhhdCdz IHRyYW5zY29kZXIsIG5vdCBlbmNvZGVyLiB0cmFuc2NvZGVyIGlzIHRoZSB0YWlsIGVuZCBvZiB0 aGUgcGlwZS4NCj4gRm9yIGFsbCB0aGUgZXh0ZXJuYWwgcG9ydHMgdHJhbnNjb2Rlcj09cGlwZSwg YW5kIGZvciBwb3J0IEEgdGhlcmUgaXMgdGhlDQo+IHNwZWNpYWwgZWRwIHRyYW5zY29kZXIgd2hp Y2ggY2FuIGJlIGZlZCBieSBhbnkgcGlwZS4gVGhlIGVkcCB0cmFuc2NvZGVyDQo+IGRvZXNuJ3Qg c3VwcG9ydCBhdWRpbyB0aG91Z2gsIGFuZCBJIGNhbid0IHNlZSBhbnl0aGluZyBpbiB0aGUgc3Bl YyB0bw0KPiBzdWdnZXN0IHRoYXQgaXQgd291bGQgZ2FpbiBhdWRpbyBjYXBhYmlsaXRpZXMsIGlu IHRoZSBuZWFyIGZ1dHVyZSBhdA0KPiBsZWFzdC4gU28gZnJvbSB0aGF0IHBvaW50IG9mIHZpZXcg cGFzc2luZyBhcm91bmQgdGhlIHBpcGUgd291bGQgc2VlbQ0KPiBsaWtlIGEgc2FmZSBhcHByb2Fj aC4NCj4gDQo+IFdlIGNvdWxkIG9mIGNvdXJzZSBwYXNzIGFyb3VuZCB0cmFuc2NvZGVyIGluc3Rl YWQgb2YgcGlwZS4gU2luY2Ugd2UNCj4gZG9uJ3QgZXZlciBuZWVkIHRvIGVuYWJsZSBhdWRpbyBv biB0aGUgZWRwIHRyYW5zY29kZXIsIHdlIGRvbid0IGV2ZW4NCj4gaGF2ZSB0byB3b3JyeSBhYm91 dCB3aGF0IG51bWJlciB3ZSBhc3NpZ24gdG8gaXQuIEFuZCBoZW5jZSBpdCBpcw0KPiBhY3R1YWxs eSB0aGUgc2FtZSBhcyBwYXNzaW5nIHRoZSBwaXBlLCBleGNlcHQgaW4gbmFtZS4NCj4gDQoNClRo YW5rcyBmb3IgdGhlIGRldGFpbGVkIGV4cGxhbmF0aW9uLCBtYWtlcyBzZW5zZSB0byBjaGFuZ2Ug aXQgdG8gInBpcGUiLg0KSSB3aWxsIHNlbmQgb3V0IGEgbmV3IHZlcnNpb24uIERvIHlvdSByZWNv bW1lbmQgSSBzZW5kIHRoaXMgcGF0Y2ggd2l0aCANCiJQcmVwLiBmb3IgRFAgYXVkaW8gTVNUIHN1 cHBvcnQiIHNlcmllcw0KKGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lu dGVsLWdmeC8yMDE2LUF1Z3VzdC8xMDIzOTkuaHRtbCk/IFRoaXMgcGF0Y2ggZGVwZW5kcyBvbiB0 aGUgc29tZSBvZiB0aGUgcGF0Y2hlcyBpbiB0aGF0LiBJIGhhZCBzZXBhcmF0ZWQgdGhpcyBwYXRj aCBvdXQgYmVjYXVzZSBvZiB0aGUgYXVkaW8gZHJpdmVyIGNoYW5nZXMgaW4gdGhpcy4NCj4gPiAN Cj4gPiANCj4gPiA+ID4gV2hlcmVhcywgZGV2X2lkIGlzDQo+ID4gPiA+IGdlbmVyaWMgLSBIREEg c3BlYyBjYWxscyB0aGVtICJkZXZpY2VzIiBvciAiZGV2aWNlIGVudHJ5Ig0KPiA+ID4gDQo+ID4g PiBHZW5lcmljIGFuZCB0b3RhbGx5IHVuY2xlYXIgd2hhdCBpdCBtZWFucyBmcm9tIGdyYXBoaWNz IHNpZGUuDQo+ID4gPiANCj4gPiA+IHBpcGUgYW5kIHBvcnQgYXJlIHRoZSBvbmx5IHRoaW5ncyB3 ZSByZWFsbHkgaGF2ZSBpbiBpOTE1LiBJZiB0aG9zZSBhcmVuJ3QNCj4gPiA+IGdvb2QgZW5vdWdo IGZvciB0aGUgYXVkaW8gc2lkZSwgdGhlbiBJIHRoaW5rIHdlIHNob3VsZCBoYXZlIHNvbWUgZGVj ZW50DQo+ID4gPiBjb2RlIHRvIHJlbWFwIGJldHdlZW4gdGhlIHBpcGUrcG9ydCB2cy4gd2hhdGV2 ZXIgYXVkaW8gc2lkZSBpZCBpcyBuZWVkZWQuDQo+ID4gPiBJIGRvbid0IHJlYWxseSBjYXJlIG9u IHdoaWNoIHNpZGUgb2YgdGhlIGJvcmRlciBzdWNoIGNvZGUgd291bGQgbGl2ZSwgYXMNCj4gPiA+ IGxvbmcgYXMgaXQncyBjbGVhciB3aGF0IGl0J3MgZG9pbmcuDQo+ID4gPiANCj4gPiANCj4gPiBJ IGFncmVlLCBkZXZfaWQgY2FuIGJlIG1pc2xlYWRpbmcgd2l0aGluIGk5MTUuDQo+ID4gPiA+IA0K PiA+ID4gPiA+ID4gKwkgICAgIGludCByYXRlKTsNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g LSAgICAgICBpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBib29sICpl bmFibGVkLA0KPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hh ciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsNCj4gPiA+ID4gPiA+ICsgICAgICAgaW50ICgqZ2V0X2Vs ZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9pZCwNCj4gPiA+ID4gPiA+ICsJ CSAgICAgICBib29sICplbmFibGVkLCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMp Ow0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRf YXVkaW9fb3BzDQo+ID4gPiA+ID4gPiAtICAgICAgIHZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9p ZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCk7DQo+ID4gPiA+ID4gPiArICAgICAgIHZvaWQgKCpwaW5f ZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCwgaW50IGRldl9pZCk7DQo+ID4g PiA+ID4gPiANCj4gPiA+ID4gPiA+IFRoaXMgcGF0Y2ggbWFrZXMgZHVtbXkgY2hhbmdlcyBpbiB0 aGUgYXVkaW8gZHJpdmVycyBmb3IgYnVpbGQgdG8gc3VjY2VlZC4NCj4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5w YW5kaXlhbkBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgIHwgIDIgKy0NCj4gPiA+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0NCj4gPiA+ID4gPiA+ICBpbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5o ICAgICAgIHwgIDYgKy0tDQo+ID4gPiA+ID4gPiAgaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oICAg ICAgICAgICB8IDExICsrLS0tDQo+ID4gPiA+ID4gPiAgc291bmQvaGRhL2hkYWNfaTkxNS5jICAg ICAgICAgICAgICB8ICA5ICsrKy0tDQo+ID4gPiA+ID4gPiAgc291bmQvcGNpL2hkYS9wYXRjaF9o ZG1pLmMgICAgICAgICB8ICA3ICsrLS0NCj4gPiA+ID4gPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDgy IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiA+ID4gPiA+IGluZGV4IDY1YWRhNWQuLjhlNGM4 YzggMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oDQo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ ID4gPiA+ID4gPiBAQCAtMjA1NCw3ICsyMDU0LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg ew0KPiA+ID4gPiA+ID4gIAkvKiBwZXJmb3JtIFBIWSBzdGF0ZSBzYW5pdHkgY2hlY2tzPyAqLw0K PiA+ID4gPiA+ID4gIAlib29sIGNodl9waHlfYXNzZXJ0WzJdOw0KPiA+ID4gPiA+ID4gIA0KPiA+ ID4gPiA+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5MTVfTUFYX1BP UlRTXTsNCj4gPiA+ID4gPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbSTkx NV9NQVhfUElQRVNdOw0KPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gIAkvKg0KPiA+ID4gPiA+ ID4gIAkgKiBOT1RFOiBUaGlzIGlzIHRoZSBkcmkxL3VtcyBkdW5nZW9uLCBkb24ndCBhZGQgc3R1 ZmYgaGVyZS4gWW91ciBwYXRjaA0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRp by5jDQo+ID4gPiA+ID4gPiBpbmRleCA4YzQ5M2RlLi5jYmU0NGM4IDEwMDY0NA0KPiA+ID4gPiA+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYw0KPiA+ID4gPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYw0KPiA+ID4gPiA+ID4gQEAg LTUwMCw2ICs1MDAsOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikNCj4gPiA+ID4gPiA+ICAJc3RydWN0IGk5MTVfYXVk aW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7DQo+ID4gPiA+ ID4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3Rv X2RpZ19wb3J0KGVuY29kZXIpOw0KPiA+ID4gPiA+ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVs X2RpZ19wb3J0LT5wb3J0Ow0KPiA+ID4gPiA+ID4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBp cGU7DQo+ID4gPiA+ID4gPiArCWludCBkZXZfaWQgPSAtMTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ICANCj4gPiA+ID4gPiA+ICAJY29ubmVjdG9yID0gZHJtX3NlbGVjdF9lbGQoZW5jb2Rl cik7DQo+ID4gPiA+ID4gPiAgCWlmICghY29ubmVjdG9yKQ0KPiA+ID4gPiA+ID4gQEAgLTUyMiwx NCArNTI1LDE5IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyKQ0KPiA+ID4gPiA+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXku YXVkaW9fY29kZWNfZW5hYmxlKGNvbm5lY3RvciwgaW50ZWxfZW5jb2RlciwNCj4gPiA+ID4gPiA+ ICAJCQkJCQkgICAgIGFkanVzdGVkX21vZGUpOw0KPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4g KwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKQ0KPiA+ID4g PiA+ID4gKwkJZGV2X2lkID0gcGlwZTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICAJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsNCj4gPiA+ID4gPiA+ICAJaW50ZWxfZW5jb2Rl ci0+YXVkaW9fY29ubmVjdG9yID0gY29ubmVjdG9yOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gIAkvKiByZWZlcnJlZCBpbiBhdWRpbyBjYWxsYmFja3MgKi8NCj4gPiA+ID4gPiA+IC0JZGV2 X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IGludGVsX2VuY29kZXI7DQo+ID4gPiA+ID4gPiAr CWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gaW50ZWxfZW5jb2RlcjsNCj4gPiA+ID4gPiA+ ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+ID4gPiA+ID4gIA0KPiA+ ID4gPiA+ID4gIAlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9f b3BzLT5waW5fZWxkX25vdGlmeSkNCj4gPiA+ID4gPiA+IC0JCWFjb21wLT5hdWRpb19vcHMtPnBp bl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwgKGludCkgcG9ydCk7DQo+ ID4gPiA+ID4gPiArCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVk aW9fb3BzLT5hdWRpb19wdHIsDQo+ID4gPiA+ID4gPiArCQkJCQkJIChpbnQpIHBvcnQsIGRldl9p ZCk7DQo+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gIC8qKg0KPiA+ ID4gPiA+ID4gQEAgLTU0MiwyMiArNTUwLDI5IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5h YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQ0KPiA+ID4gPiA+ID4gIHZv aWQgaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZW5jb2RlcikNCj4gPiA+ID4gPiA+ICB7DQo+ID4gPiA+ID4gPiAgCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOw0KPiA+ID4gPiA+ID4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7DQo+ID4gPiA+ ID4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7DQo+ID4gPiA+ID4g PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4g PiA+ID4gPiA+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2 LT5hdWRpb19jb21wb25lbnQ7DQo+ID4gPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOw0KPiA+ID4gPiA+ ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Ow0KPiA+ID4gPiA+ID4g KwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7DQo+ID4gPiA+ID4gPiArCWludCBkZXZfaWQg PSAtMTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJaWYgKGludGVsX2VuY29kZXItPnR5 cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCkNCj4gPiA+ID4gPiA+ICsJCWRldl9pZCA9IHBpcGU7 DQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdWRp b19jb2RlY19kaXNhYmxlKQ0KPiA+ID4gPiA+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9f Y29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVyKTsNCj4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsNCj4gPiA+ID4gPiA+ICAJaW50ZWxf ZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0gTlVMTDsNCj4gPiA+ID4gPiA+IC0JZGV2X3ByaXYt PmRpZ19wb3J0X21hcFtwb3J0XSA9IE5VTEw7DQo+ID4gPiA+ID4gPiArCWRldl9wcml2LT5hdl9l bmNfbWFwW3BpcGVdID0gTlVMTDsNCj4gPiA+ID4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+YXZfbXV0ZXgpOw0KPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gIAlpZiAoYWNvbXAgJiYg YWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkNCj4g PiA+ID4gPiA+IC0JCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRp b19vcHMtPmF1ZGlvX3B0ciwgKGludCkgcG9ydCk7DQo+ID4gPiA+ID4gPiArCQlhY29tcC0+YXVk aW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsDQo+ID4g PiA+ID4gPiArCQkJCQkJIChpbnQpIHBvcnQsIGRldl9pZCk7DQo+ID4gPiA+ID4gPiAgfQ0KPiA+ ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gIC8qKg0KPiA+ID4gPiA+ID4gQEAgLTYyOCw4ICs2NDMs MzIgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfY2RjbGtfZnJlcShzdHJ1 Y3QgZGV2aWNlICpkZXYpDQo+ID4gPiA+ID4gPiAgCXJldHVybiBkZXZfcHJpdi0+Y2RjbGtfZnJl cTsNCj4gPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiAtc3RhdGljIGlu dCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2 LA0KPiA+ID4gPiA+ID4gLQkJCQkJCWludCBwb3J0LCBpbnQgcmF0ZSkNCj4gPiA+ID4gPiA+ICtz dGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKmdldF9zYXZlZF9lbmNvZGVyKHN0cnVjdCBpbnRl bF9lbmNvZGVyICphdl9lbmNfbWFwW10sDQo+ID4gPiA+ID4gPiArCQkJCQkgICAgICAgaW50IHBv cnQsIGludCBkZXZfaWQpDQo+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gKwllbnVtIHBpcGUgcGlwZTsNCj4gPiA+ID4gPiA+ICsJc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlpZiAoZGV2X2lkID49IDAgJiYg ZGV2X2lkIDwgSTkxNV9NQVhfUElQRVMpDQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gYXZfZW5jX21h cFtkZXZfaWRdOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlmb3IgKHBpcGUgPSBQSVBF X0E7IHBpcGUgPCBJOTE1X01BWF9QSVBFUzsgcGlwZSsrKSB7DQo+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiArCQlpZiAoIWF2X2VuY19tYXBbcGlwZV0pDQo+ID4gPiA+ID4gPiArCQkJY29udGlu dWU7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCQllbmNvZGVyID0gJmF2X2VuY19tYXBb cGlwZV0tPmJhc2U7DQo+ID4gPiA+ID4gPiArCQlpZiAocG9ydCA9PSBlbmNfdG9fZGlnX3BvcnQo ZW5jb2RlciktPnBvcnQpDQo+ID4gPiA+ID4gPiArCQkJcmV0dXJuIGF2X2VuY19tYXBbcGlwZV07 DQo+ID4gPiA+ID4gPiArCX0NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJcmV0dXJuIE5V TEw7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gK3N0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0 cnVjdCBkZXZpY2UgKmRldiwgaW50IHBvcnQsDQo+ID4gPiA+ID4gPiArCQkJCQkJaW50IGRldl9p ZCwgaW50IHJhdGUpDQo+ID4gPiA+ID4gPiAgew0KPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShkZXYpOw0KPiA+ID4gPiA+ID4gIAlz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsNCj4gPiA+ID4gPiA+IEBAIC02NDks MTUgKzY4OCwxNiBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9f cmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ID4gPiA+ID4gPiAgCQlyZXR1cm4gMDsNCj4gPiA+ ID4gPiA+ICANCj4gPiA+ID4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsN Cj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICAJLyogMS4gZ2V0IHRoZSBwaXBlICovDQo+ID4g PiA+ID4gPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOw0K PiA+ID4gPiA+ID4gLQkvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0IGJlIE5VTEwgZm9yIERQIE1TVCAq Lw0KPiA+ID4gPiA+ID4gKwlpbnRlbF9lbmNvZGVyID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2X3By aXYtPmF2X2VuY19tYXAsIHBvcnQsIGRldl9pZCk7DQo+ID4gPiA+ID4gPiAgCWlmICghaW50ZWxf ZW5jb2RlciB8fCAhaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjIHx8DQo+ID4gPiA+ID4gPiAgCSAg ICBpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9IRE1JKSB7DQo+ID4gPiA+ID4g PiAgCQlEUk1fREVCVUdfS01TKCJubyB2YWxpZCBwb3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkp Ow0KPiA+ID4gPiA+ID4gIAkJZXJyID0gLUVOT0RFVjsNCj4gPiA+ID4gPiA+ICAJCWdvdG8gdW5s b2NrOw0KPiA+ID4gPiA+ID4gIAl9DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAgCWNydGMg PSB0b19pbnRlbF9jcnRjKGludGVsX2VuY29kZXItPmJhc2UuY3J0Yyk7DQo+ID4gPiA+ID4gPiAg CXBpcGUgPSBjcnRjLT5waXBlOw0KPiA+ID4gPiA+ID4gIAlpZiAocGlwZSA9PSBJTlZBTElEX1BJ UEUpIHsNCj4gPiA+ID4gPiA+IEBAIC03MDIsNyArNzQyLDcgQEAgc3RhdGljIGludCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LA0KPiA+ID4g PiA+ID4gIH0NCj4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ICBzdGF0aWMgaW50IGk5MTVfYXVk aW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcG9ydCwNCj4gPiA+ ID4gPiA+IC0JCQkJCWJvb2wgKmVuYWJsZWQsDQo+ID4gPiA+ID4gPiArCQkJCQlpbnQgZGV2X2lk LCBib29sICplbmFibGVkLA0KPiA+ID4gPiA+ID4gIAkJCQkJdW5zaWduZWQgY2hhciAqYnVmLCBp bnQgbWF4X2J5dGVzKQ0KPiA+ID4gPiA+ID4gIHsNCj4gPiA+ID4gPiA+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUoZGV2KTsNCj4gPiA+ID4gPiA+IEBA IC03MTAsMTcgKzc1MCwyMSBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9l bGQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcG9ydCwNCj4gPiA+ID4gPiA+ICAJY29uc3QgdTgg KmVsZDsNCj4gPiA+ID4gPiA+ICAJaW50IHJldCA9IC1FSU5WQUw7DQo+ID4gPiA+ID4gPiAgDQo+ ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRl eCk7DQo+ID4gPiA+ID4gPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFw W3BvcnRdOw0KPiA+ID4gPiA+ID4gLQkvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0IGJlIE5VTEwgZm9y IERQIE1TVCAqLw0KPiA+ID4gPiA+ID4gLQlpZiAoaW50ZWxfZW5jb2Rlcikgew0KPiA+ID4gPiA+ ID4gLQkJcmV0ID0gMDsNCj4gPiA+ID4gPiA+IC0JCSplbmFibGVkID0gaW50ZWxfZW5jb2Rlci0+ YXVkaW9fY29ubmVjdG9yICE9IE5VTEw7DQo+ID4gPiA+ID4gPiAtCQlpZiAoKmVuYWJsZWQpIHsN Cj4gPiA+ID4gPiA+IC0JCQllbGQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVs ZDsNCj4gPiA+ID4gPiA+IC0JCQlyZXQgPSBkcm1fZWxkX3NpemUoZWxkKTsNCj4gPiA+ID4gPiA+ IC0JCQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOw0KPiA+ID4gPiA+ID4g LQkJfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlpbnRlbF9lbmNvZGVyID0gZ2V0X3Nh dmVkX2VuY29kZXIoZGV2X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIGRldl9pZCk7DQo+ID4gPiA+ ID4gPiArCWlmICghaW50ZWxfZW5jb2Rlcikgew0KPiA+ID4gPiA+ID4gKwkJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiA+ ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlyZXQgPSAwOw0KPiA+ID4g PiA+ID4gKwkqZW5hYmxlZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciAhPSBOVUxM Ow0KPiA+ID4gPiA+ID4gKwlpZiAoKmVuYWJsZWQpIHsNCj4gPiA+ID4gPiA+ICsJCWVsZCA9IGlu dGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxkOw0KPiA+ID4gPiA+ID4gKwkJcmV0ID0g ZHJtX2VsZF9zaXplKGVsZCk7DQo+ID4gPiA+ID4gPiArCQltZW1jcHkoYnVmLCBlbGQsIG1pbiht YXhfYnl0ZXMsIHJldCkpOw0KPiA+ID4gPiA+ID4gIAl9DQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ ID4gPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsNCj4gPiA+ID4gPiA+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oIGIvaW5jbHVkZS9kcm0vaTkx NV9jb21wb25lbnQuaA0KPiA+ID4gPiA+ID4gaW5kZXggYjQ2ZmEwZS4uMTQxOWM5OCAxMDA2NDQN Cj4gPiA+ID4gPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgNCj4gPiA+ID4g PiA+ICsrKyBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgNCj4gPiA+ID4gPiA+IEBAIC02 NCw3ICs2NCw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgew0KPiA+ID4gPiA+ ID4gIAkgKiBDYWxsZWQgZnJvbSBhdWRpbyBkcml2ZXIuIEFmdGVyIGF1ZGlvIGRyaXZlciBzZXRz IHRoZQ0KPiA+ID4gPiA+ID4gIAkgKiBzYW1wbGUgcmF0ZSwgaXQgd2lsbCBjYWxsIHRoaXMgZnVu Y3Rpb24gdG8gc2V0IG4vY3RzDQo+ID4gPiA+ID4gPiAgCSAqLw0KPiA+ID4gPiA+ID4gLQlpbnQg KCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCByYXRlKTsN Cj4gPiA+ID4gPiA+ICsJaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGlu dCBwb3J0LCBpbnQgZGV2X2lkLCBpbnQgcmF0ZSk7DQo+ID4gPiA+ID4gPiAgCS8qKg0KPiA+ID4g PiA+ID4gIAkgKiBAZ2V0X2VsZDogZmlsbCB0aGUgYXVkaW8gc3RhdGUgYW5kIEVMRCBieXRlcyBm b3IgdGhlIGdpdmVuIHBvcnQNCj4gPiA+ID4gPiA+ICAJICoNCj4gPiA+ID4gPiA+IEBAIC03Nyw3 ICs3Nyw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgew0KPiA+ID4gPiA+ID4g IAkgKiBOb3RlIHRoYXQgdGhlIHJldHVybmVkIHNpemUgbWF5IGJlIG92ZXIgQG1heF9ieXRlcy4g IFRoZW4gaXQNCj4gPiA+ID4gPiA+ICAJICogaW1wbGllcyB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVM RCBoYXMgYmVlbiBjb3BpZWQgdG8gdGhlIGJ1ZmZlci4NCj4gPiA+ID4gPiA+ICAJICovDQo+ID4g PiA+ID4gPiAtCWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGJvb2wg KmVuYWJsZWQsDQo+ID4gPiA+ID4gPiArCWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwg aW50IHBvcnQsIGludCBkZXZfaWQsIGJvb2wgKmVuYWJsZWQsDQo+ID4gPiA+ID4gPiAgCQkgICAg ICAgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsNCj4gPiA+ID4gPiA+ICB9Ow0K PiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gQEAgLTk3LDcgKzk3LDcgQEAgc3RydWN0IGk5MTVf YXVkaW9fY29tcG9uZW50X2F1ZGlvX29wcyB7DQo+ID4gPiA+ID4gPiAgCSAqIHN0YXR1cyBhY2Nv cmRpbmdseSAoZXZlbiB3aGVuIHRoZSBIREEgY29udHJvbGxlciBpcyBpbiBwb3dlciBzYXZlDQo+ ID4gPiA+ID4gPiAgCSAqIG1vZGUpLg0KPiA+ID4gPiA+ID4gIAkgKi8NCj4gPiA+ID4gPiA+IC0J dm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0KTsNCj4gPiA+ ID4gPiA+ICsJdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0 LCBpbnQgZGV2X2lkKTsNCj4gPiA+ID4gPiA+ICB9Ow0KPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ ID4gIC8qKg0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvaGRhX2k5MTUu aCBiL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaA0KPiA+ID4gPiA+ID4gaW5kZXggNzk2Y2FiZi4u NWFiOTcyZSAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLSBhL2luY2x1ZGUvc291bmQvaGRhX2k5MTUu aA0KPiA+ID4gPiA+ID4gKysrIGIvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oDQo+ID4gPiA+ID4g PiBAQCAtMTAsOCArMTAsOSBAQA0KPiA+ID4gPiA+ID4gIGludCBzbmRfaGRhY19zZXRfY29kZWNf d2FrZXVwKHN0cnVjdCBoZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSk7DQo+ID4gPiA+ID4gPiAg aW50IHNuZF9oZGFjX2Rpc3BsYXlfcG93ZXIoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5h YmxlKTsNCj4gPiA+ID4gPiA+ICB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2JjbGsoc3RydWN0IGhk YWNfYnVzICpidXMpOw0KPiA+ID4gPiA+ID4gLWludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUo c3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpOw0KPiA+ ID4gPiA+ID4gLWludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAq Y29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4gPiA+ID4gPiAraW50IHNuZF9oZGFjX3N5bmNfYXVk aW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLA0KPiA+ID4g PiA+ID4gKwkJCSAgICAgaW50IGRldl9pZCwgaW50IHJhdGUpOw0KPiA+ID4gPiA+ID4gK2ludCBz bmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRf dCBuaWQsIGludCBkZXZfaWQsDQo+ID4gPiA+ID4gPiAgCQkJICAgYm9vbCAqYXVkaW9fZW5hYmxl ZCwgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKTsNCj4gPiA+ID4gPiA+ICBpbnQgc25kX2hk YWNfaTkxNV9pbml0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsNCj4gPiA+ID4gPiA+ICBpbnQgc25k X2hkYWNfaTkxNV9leGl0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsNCj4gPiA+ID4gPiA+IEBAIC0y OSwxMyArMzAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2JjbGso c3RydWN0IGhkYWNfYnVzICpidXMpDQo+ID4gPiA+ID4gPiAgew0KPiA+ID4gPiA+ID4gIH0NCj4g PiA+ID4gPiA+ICBzdGF0aWMgaW5saW5lIGludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3Ry dWN0IGhkYWNfZGV2aWNlICpjb2RlYywNCj4gPiA+ID4gPiA+IC0JCQkJCSAgIGhkYV9uaWRfdCBu aWQsIGludCByYXRlKQ0KPiA+ID4gPiA+ID4gKwkJCQkJICAgaGRhX25pZF90IG5pZCwgaW50IGRl dl9pZCwgaW50IHJhdGUpDQo+ID4gPiA+ID4gPiAgew0KPiA+ID4gPiA+ID4gIAlyZXR1cm4gMDsN Cj4gPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gPiAgc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNf YWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLA0K PiA+ID4gPiA+ID4gLQkJCQkJIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwNCj4g PiA+ID4gPiA+IC0JCQkJCSBpbnQgbWF4X2J5dGVzKQ0KPiA+ID4gPiA+ID4gKwkJCQkJIGludCBk ZXZfaWQsIGJvb2wgKmF1ZGlvX2VuYWJsZWQsDQo+ID4gPiA+ID4gPiArCQkJCQkgY2hhciAqYnVm ZmVyLCBpbnQgbWF4X2J5dGVzKQ0KPiA+ID4gPiA+ID4gIHsNCj4gPiA+ID4gPiA+ICAJcmV0dXJu IC1FTk9ERVY7DQo+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL3NvdW5k L2hkYS9oZGFjX2k5MTUuYyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYw0KPiA+ID4gPiA+ID4gaW5k ZXggYzlhZjAyMi4uNmVhNjNhYyAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLSBhL3NvdW5kL2hkYS9o ZGFjX2k5MTUuYw0KPiA+ID4gPiA+ID4gKysrIGIvc291bmQvaGRhL2hkYWNfaTkxNS5jDQo+ID4g PiA+ID4gPiBAQCAtMjAxLDcgKzIwMSw4IEBAIHN0YXRpYyBpbnQgcGluMnBvcnQoc3RydWN0IGhk YWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IHBpbl9uaWQpDQo+ID4gPiA+ID4gPiAgICogVGhp cyBmdW5jdGlvbiBzZXRzIE4vQ1RTIHZhbHVlIGJhc2VkIG9uIHRoZSBnaXZlbiBzYW1wbGUgcmF0 ZS4NCj4gPiA+ID4gPiA+ICAgKiBSZXR1cm5zIHplcm8gZm9yIHN1Y2Nlc3MsIG9yIGEgbmVnYXRp dmUgZXJyb3IgY29kZS4NCj4gPiA+ID4gPiA+ICAgKi8NCj4gPiA+ID4gPiA+IC1pbnQgc25kX2hk YWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBu aWQsIGludCByYXRlKQ0KPiA+ID4gPiA+ID4gK2ludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUo c3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwNCj4gPiA+ID4gPiA+ICsJ CQkgICAgIGludCBkZXZfaWQsIGludCByYXRlKQ0KPiA+ID4gPiA+ID4gIHsNCj4gPiA+ID4gPiA+ ICAJc3RydWN0IGhkYWNfYnVzICpidXMgPSBjb2RlYy0+YnVzOw0KPiA+ID4gPiA+ID4gIAlzdHJ1 Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19jb21wb25lbnQ7DQo+ ID4gPiA+ID4gPiBAQCAtMjEyLDcgKzIxMyw3IEBAIGludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3Jh dGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpDQo+ ID4gPiA+ID4gPiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsNCj4gPiA+ID4gPiA+ICAJ aWYgKHBvcnQgPCAwKQ0KPiA+ID4gPiA+ID4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+ID4g PiAtCXJldHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlvX3JhdGUoYWNvbXAtPmRldiwgcG9ydCwg cmF0ZSk7DQo+ID4gPiA+ID4gPiArCXJldHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlvX3JhdGUo YWNvbXAtPmRldiwgcG9ydCwgZGV2X2lkLCByYXRlKTsNCj4gPiA+ID4gPiA+ICB9DQo+ID4gPiA+ ID4gPiAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRpb19yYXRlKTsNCj4gPiA+ ID4gPiA+ICANCj4gPiA+ID4gPiA+IEBAIC0yMzYsNyArMjM3LDcgQEAgRVhQT1JUX1NZTUJPTF9H UEwoc25kX2hkYWNfc3luY19hdWRpb19yYXRlKTsNCj4gPiA+ID4gPiA+ICAgKiB0aHVzIGl0IG1h eSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBJZiBpdCdzIG92ZXIgQG1heF9ieXRlcywgaXQgaW1wbGll cw0KPiA+ID4gPiA+ID4gICAqIHRoYXQgb25seSBhIHBhcnQgb2YgRUxEIGJ5dGVzIGhhdmUgYmVl biBmZXRjaGVkLg0KPiA+ID4gPiA+ID4gICAqLw0KPiA+ID4gPiA+ID4gLWludCBzbmRfaGRhY19h Y29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ ID4gPiA+ID4gPiAraW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNl ICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IGRldl9pZCwNCj4gPiA+ID4gPiA+ICAJCQkgICBi b29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpDQo+ID4gPiA+ ID4gPiAgew0KPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgaGRhY19idXMgKmJ1cyA9IGNvZGVjLT5idXM7 DQo+ID4gPiA+ID4gPiBAQCAtMjQ5LDcgKzI1MCw3IEBAIGludCBzbmRfaGRhY19hY29tcF9nZXRf ZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4gPiA+ID4g PiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsNCj4gPiA+ID4gPiA+ICAJaWYgKHBvcnQg PCAwKQ0KPiA+ID4gPiA+ID4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+ID4gPiAtCXJldHVy biBhY29tcC0+b3BzLT5nZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIGF1ZGlvX2VuYWJsZWQsDQo+ ID4gPiA+ID4gPiArCXJldHVybiBhY29tcC0+b3BzLT5nZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQs IGRldl9pZCwgYXVkaW9fZW5hYmxlZCwNCj4gPiA+ID4gPiA+ICAJCQkJICAgYnVmZmVyLCBtYXhf Ynl0ZXMpOw0KPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+ICBFWFBPUlRfU1lNQk9MX0dQTChz bmRfaGRhY19hY29tcF9nZXRfZWxkKTsNCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9zb3VuZC9w Y2kvaGRhL3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jDQo+ID4gPiA+ ID4gPiBpbmRleCBkMGQ1YWQ4Li4wNzdkNDhhIDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvc291 bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMNCj4gPiA+ID4gPiA+ICsrKyBiL3NvdW5kL3BjaS9oZGEv cGF0Y2hfaGRtaS5jDQo+ID4gPiA+ID4gPiBAQCAtMTQ4NSw3ICsxNDg1LDcgQEAgc3RhdGljIHZv aWQgc3luY19lbGRfdmlhX2Fjb21wKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLA0KPiA+ID4gPiA+ ID4gIA0KPiA+ID4gPiA+ID4gIAltdXRleF9sb2NrKCZwZXJfcGluLT5sb2NrKTsNCj4gPiA+ID4g PiA+ICAJZWxkLT5tb25pdG9yX3ByZXNlbnQgPSBmYWxzZTsNCj4gPiA+ID4gPiA+IC0Jc2l6ZSA9 IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoJmNvZGVjLT5jb3JlLCBwZXJfcGluLT5waW5fbmlkLA0K PiA+ID4gPiA+ID4gKwlzaXplID0gc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCgmY29kZWMtPmNvcmUs IHBlcl9waW4tPnBpbl9uaWQsIC0xLA0KPiA+ID4gPiA+ID4gIAkJCQkgICAgICAmZWxkLT5tb25p dG9yX3ByZXNlbnQsIGVsZC0+ZWxkX2J1ZmZlciwNCj4gPiA+ID4gPiA+ICAJCQkJICAgICAgRUxE X01BWF9TSVpFKTsNCj4gPiA+ID4gPiA+ICAJaWYgKHNpemUgPiAwKSB7DQo+ID4gPiA+ID4gPiBA QCAtMTczOSw3ICsxNzM5LDggQEAgc3RhdGljIGludCBnZW5lcmljX2hkbWlfcGxheWJhY2tfcGNt X3ByZXBhcmUoc3RydWN0IGhkYV9wY21fc3RyZWFtICpoaW5mbywNCj4gPiA+ID4gPiA+ICAJLyog Q2FsbCBzeW5jX2F1ZGlvX3JhdGUgdG8gc2V0IHRoZSBOL0NUUy9NIG1hbnVhbGx5IGlmIG5lY2Vz c2FyeSAqLw0KPiA+ID4gPiA+ID4gIAkvKiBUb2RvOiBhZGQgRFAxLjIgTVNUIGF1ZGlvIHN1cHBv cnQgbGF0ZXIgKi8NCj4gPiA+ID4gPiA+ICAJaWYgKGNvZGVjX2hhc19hY29tcChjb2RlYykpDQo+ ID4gPiA+ID4gPiAtCQlzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoJmNvZGVjLT5jb3JlLCBwaW5f bmlkLCBydW50aW1lLT5yYXRlKTsNCj4gPiA+ID4gPiA+ICsJCXNuZF9oZGFjX3N5bmNfYXVkaW9f cmF0ZSgmY29kZWMtPmNvcmUsIHBpbl9uaWQsIC0xLA0KPiA+ID4gPiA+ID4gKwkJCQkJIHJ1bnRp bWUtPnJhdGUpOw0KPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gIAlub25fcGNtID0gY2hlY2tf bm9uX3BjbV9wZXJfY3Z0KGNvZGVjLCBjdnRfbmlkKTsNCj4gPiA+ID4gPiA+ICAJbXV0ZXhfbG9j aygmcGVyX3Bpbi0+bG9jayk7DQo+ID4gPiA+ID4gPiBAQCAtMjI4NSw3ICsyMjg2LDcgQEAgc3Rh dGljIHZvaWQgaGFzd2VsbF9zZXRfcG93ZXJfc3RhdGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMs IGhkYV9uaWRfdCBmZywNCj4gPiA+ID4gPiA+ICAJc25kX2hkYV9jb2RlY19zZXRfcG93ZXJfdG9f YWxsKGNvZGVjLCBmZywgcG93ZXJfc3RhdGUpOw0KPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+ ICANCj4gPiA+ID4gPiA+IC1zdGF0aWMgdm9pZCBpbnRlbF9waW5fZWxkX25vdGlmeSh2b2lkICph dWRpb19wdHIsIGludCBwb3J0KQ0KPiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGludGVsX3Bpbl9l bGRfbm90aWZ5KHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQsIGludCBkZXZfaWQpDQo+ID4gPiA+ ID4gPiAgew0KPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYyA9IGF1ZGlvX3B0 cjsNCj4gPiA+ID4gPiA+ICAJaW50IHBpbl9uaWQ7DQo+ID4gPiA+ID4gPiAtLSANCj4gPiA+ID4g PiA+IDIuNS4wDQo+ID4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gDQo+ID4gDQo+IA0KDQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK