From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v12 8/8] drm/i915: Add YCBCR 4:2:0/4:4:4 support for LSPCON Date: Fri, 12 Oct 2018 21:09:56 +0300 Message-ID: <20181012180956.GT9144@intel.com> References: <1539325394-20788-1-git-send-email-shashank.sharma@intel.com> <1539325394-20788-8-git-send-email-shashank.sharma@intel.com> <20181012135845.GQ9144@intel.com> <62df36f5-6d79-f46f-da37-20972380f791@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 55D746E001 for ; Fri, 12 Oct 2018 18:10:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: <62df36f5-6d79-f46f-da37-20972380f791@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMTIsIDIwMTggYXQgMTE6MjE6NTZQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBSZWdhcmRzCj4gCj4gU2hhc2hhbmsKPiAKPiAKPiBPbiAxMC8xMi8yMDE4IDc6 MjggUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+IE9uIEZyaSwgT2N0IDEyLCAyMDE4IGF0 IDExOjUzOjE0QU0gKzA1MzAsIFNoYXNoYW5rIFNoYXJtYSB3cm90ZToKPiA+PiBGcm9tOiBTaGFz aGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4KPiA+PiBM U1BDT04gY2hpcHMgY2FuIGdlbmVyYXRlIFlDQkNSIG91dHB1dHMsIGlmIGFza2VkIG5pY2VseSA6 KS4KPiA+Pgo+ID4+IEluIG9yZGVyIHRvIGdlbmVyYXRlIFlDQkNSIDQ6MjowIG91dHB1dHMsIGEg c291cmNlIG11c3Q6Cj4gPj4gLSBzZW5kIFlDQkNSIDQ6NDo0IHNpZ25hbHMgdG8gTFNQQ09OCj4g Pj4gLSBwcm9ncmFtIGNvbG9yIHNwYWNlIGFzIDQ6MjowIGluIEFWSSBpbmZvZnJhbWVzCj4gPj4K PiA+PiBXaGVyZWFzIGZvciBZQ0JDUiA0OjQ6NCBvdXRwdXRzLCB0aGUgc291cmNlIG11c3Q6Cj4g Pj4gLSBzZW5kIFlDQkNSIDQ6NDo0IHNpZ25hbHMgdG8gTFNQQ09OCj4gPj4gLSBwcm9ncmFtIGNv bG9yIHNwYWNlIGFzIDQ6NDo0IGluIEFWSSBpbmZvZnJhbWVzCj4gPj4KPiA+PiBTbyBmb3IgYm90 aCA0OjI6MCBhcyB3ZWxsIGFzIDQ6NDo0IG91dHB1dHMsIHdlIGFyZSBkcml2aW5nIHRoZQo+ID4+ IHBpcGUgZm9yIFlDQkNSIDQ6NDo0IG91dHB1dCwgYnV0IEFWSSBpbmZvZnJhbWUncyBjb2xvciBz cGFjZQo+ID4+IGluZm9ybWF0aW9uIGluZGljYXRlcyBMU1BDT04gRlcgdG8gc3RhcnQgc2NhbGlu ZyBkb3duIGZyb20gWUNCQ1IKPiA+PiA0OjQ6NCBhbmQgZ2VuZXJhdGUgWUNCQ1IgNDoyOjAgb3V0 cHV0LiBBcyB0aGUgc2NhbGluZyBpcyBkb25lIGJ5Cj4gPj4gTFNQQ09OIGRldmljZSwgd2UgbmVl ZCBub3QgdG8gcmVzZXJ2ZSBhIHNjYWxlciBmb3IgNDoyOjAgb3V0cHV0cy4KPiA+Pgo+ID4+IFYy OiByZWJhc2UKPiA+PiBWMzogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9tIFZpbGxlCj4g Pj4gICAgICAtIGFkZCBlbnVtIGNydGNfb3V0cHV0X2Zvcm1hdCBpbnN0ZWFkIG9mIGJvb2wgeWNi Y3I0MjAKPiA+PiAgICAgIC0gdXNlIGNydGNfb3V0cHV0X2Zvcm1hdD00OjQ6NCBmb3IgbW9kZXNl dCBvZiBMU1BDT04gNDoyOjAgb3V0cHV0Cj4gPj4gICAgICAgIGNhc2VzIGluIHRoaXMgd2F5IHdl IHdpbGwgaGF2ZSBZQ0JDUiA0OjQ6NCBmcmFtZXdvcmsgcmVhZHkgKGV4Y2VwdAo+ID4+ICAgICAg ICB0aGUgQUJJIHBhcnQpCj4gPj4gVjQ6IEFkZGVkIHItYiBmcm9tIE1hYXJ0ZW4gKGZvciB2MykK PiA+PiAgICAgIEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMgZnJvbSBWaWxsZToKPiA+PiAgICAg IC0gRG8gbm90IGFkZCBhIG5vbi1hdG9taWMgc3RhdGUgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIGxz cGNvbiBvdXRwdXQuCj4gPj4gICAgICAgIEluc3RlYWQgYWRkIGJvb2wgaW4gQ1JUQyBzdGF0ZSB0 byBpbmRpY2F0ZSBsc3Bjb24gYmFzZWQgc2NhbGluZy4KPiA+PiBWNTogQWRkcmVzc2VkIHJldmll dyBjb21tZW50cyBmcm9tIFZpbGxlOgo+ID4+ICAgICAgLSBDaGFuZ2UgdGhlIHN0YXRlIGJvb2wg bmFtZSBmcm9tIGV4dGVybmFsIHNjYWxpbmcgdG8gc29tZXRoaW5nIG1vcmUKPiA+PiAgICAgICAg cmVsYXZlbnQuCj4gPj4gICAgICAtIEtlZXAgdGhlIGluZm8gYW5kIGFkanVzdGVkX21vZGUgc3Ry dWN0dXJlcyBjb25zdC4KPiA+PiAgICAgIC0gdXNlIGNydGNfc3RhdGUgaW5zdGVhZCBvZiBwaXBl X2NvbmZpZy4KPiA+PiAgICAgIC0gUHVzaCBhbGwgdGhlIGNvbmZpZyBjaGFuZ2UgaW50byBsc3Bj b25feWNiY3I0MjBfY29uZmlnIGZ1bmN0aW9uLgo+ID4+IFY2OiBSZWJhc2UsIHNtYWxsIGNoYW5n ZXMgdG8gYWNjb21tb2RhdGUgY2hhbmdlcyBpbiBwYXRjaCAyLgo+ID4+IFY3OiBGaXhlZCBjaGVj a3BhdGNoIHdhcm5pbmdzIGZvciBhbGlnbm1lbnQKPiA+PiBWODogUmViYXNlCj4gPj4KPiA+PiAg ICAgIFBTOiBJZ25vcmVkIGZvbGxvd2luZyB3YXJuaW5ncyB0byBtYXRjaCB0aGUgY3VycmVudCBm b3JtYXR0aW5nOgo+ID4+ICAgICAgZHJtL2k5MTU6IEFkZCBZQ0JDUiA0OjI6MC80OjQ6NCBzdXBw b3J0IGZvciBMU1BDT04KPiA+PiAgICAgICAtOjUzOiBDSEVDSzpTUEFDSU5HOiBzcGFjZXMgcHJl ZmVycmVkIGFyb3VuZCB0aGF0ICc8PCcgKGN0eDpWeFYpCj4gPj4gICAgICAjNTM6IEZJTEU6IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmg6ODcyMToKPiA+PiAgICAgICsjZGVmaW5lICBU UkFOU19NU0FfU0FNUExJTkdfNDQ0ICAgICAgICAoMjw8MSkKPiA+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgo+ID4+ICAgICAgLTo1NDogQ0hFQ0s6U1BBQ0lO Rzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnPDwnIChjdHg6VnhWKQo+ID4+ICAgICAg IzU0OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oOjg3MjI6Cj4gPj4gICAg ICArI2RlZmluZSAgVFJBTlNfTVNBX0NMUlNQX1lDQkNSICAgICAgICAgKDI8PDMpCj4gPj4gVjk6 IFJlYmFzZQo+ID4+IFYxMDogUmViYXNlCj4gPj4gVjExOiBSZWJhc2UKPiA+Pgo+ID4+IENjOiBW aWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+PiBDYzogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+PiBS ZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4Lmlu dGVsLmNvbT4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNo YXJtYUBpbnRlbC5jb20+Cj4gPj4gLS0tCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oICAgICAgfCAgMiArKwo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMgICAgIHwgIDcgKysrKysrKwo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgMTIgKysrKysrKysrKysrCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jICAgICAgfCAgNCArKysrCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgfCAgNSArKysrKwo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNw Y29uLmMgIHwgMjYgKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+PiAgIDYgZmlsZXMgY2hh bmdlZCwgNTYgaW5zZXJ0aW9ucygrKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4g Pj4gaW5kZXggMjA3ODU0MS4uMWUxM2U1MSAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+ID4+IEBAIC05MjI5LDYgKzkyMjksOCBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPiA+ PiAgICNkZWZpbmUgVFJBTlNfTVNBX01JU0ModHJhbikgX01NSU9fVFJBTlMyKHRyYW4sIF9UUkFO U0FfTVNBX01JU0MpCj4gPj4gICAKPiA+PiAgICNkZWZpbmUgIFRSQU5TX01TQV9TWU5DX0NMSwkJ KDEgPDwgMCkKPiA+PiArI2RlZmluZSAgVFJBTlNfTVNBX1NBTVBMSU5HXzQ0NAkJKDIgPDwgMSkK PiA+PiArI2RlZmluZSAgVFJBTlNfTVNBX0NMUlNQX1lDQkNSCQkoMiA8PCAzKQo+ID4+ICAgI2Rl ZmluZSAgVFJBTlNfTVNBXzZfQlBDCQkoMCA8PCA1KQo+ID4+ICAgI2RlZmluZSAgVFJBTlNfTVNB XzhfQlBDCQkoMSA8PCA1KQo+ID4+ICAgI2RlZmluZSAgVFJBTlNfTVNBXzEwX0JQQwkJKDIgPDwg NSkKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4+IGluZGV4IGJlMjExMzEuLjE4NjEx MWEgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4+IEBAIC0xNzg0LDYg KzE3ODQsMTMgQEAgdm9pZCBpbnRlbF9kZGlfc2V0X3BpcGVfc2V0dGluZ3MoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPj4gICAJCWJyZWFrOwo+ID4+ICAgCX0K PiA+PiAgIAo+ID4+ICsJLyoKPiA+PiArCSAqIEFzIHBlciBEUCAxLjIgc3BlYyBzZWN0aW9uIDIu My40LjMgd2hpbGUgc2VuZGluZwo+ID4+ICsJICogWUNCQ1IgNDQ0IHNpZ25hbHMgd2Ugc2hvdWxk IHByb2dyYW0gTVNBIE1JU0MxLzAgZmllbGRzIHdpdGgKPiA+PiArCSAqIGNvbG9yc3BhY2UgaW5m b3JtYXRpb24uIFRoZSBvdXRwdXQgY29sb3JzcGFjZSBlbmNvZGluZyBpcyBCVDYwMS4KPiA+PiAr CSAqLwo+ID4+ICsJaWYgKGNydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVU X0ZPUk1BVF9ZQ0JDUjQ0NCkKPiA+PiArCQl0ZW1wIHw9IFRSQU5TX01TQV9TQU1QTElOR180NDQg fCBUUkFOU19NU0FfQ0xSU1BfWUNCQ1I7Cj4gPj4gICAJSTkxNV9XUklURShUUkFOU19NU0FfTUlT QyhjcHVfdHJhbnNjb2RlciksIHRlbXApOwo+ID4+ICAgfQo+ID4+ICAgCj4gPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+IGluZGV4IDMzMTdjNmMuLjQxYWJkMDMgMTAwNjQ0 Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4gQEAgLTc3OTcsNiAr Nzc5Nyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2dldF9jcnRjX3ljYmNyX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKPiA+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiA+PiAgIAllbnVtIGludGVsX291dHB1dF9m b3JtYXQgb3V0cHV0ID0gSU5URUxfT1VUUFVUX0ZPUk1BVF9SR0I7Cj4gPj4gICAKPiA+PiArCXBp cGVfY29uZmlnLT5sc3Bjb25fZG93bnNhbXBsaW5nID0gZmFsc2U7Cj4gPj4gKwo+ID4+ICAgCWlm IChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ ID4+ICAgCQl1MzIgdG1wID0gSTkxNV9SRUFEKFBJUEVNSVNDKGNydGMtPnBpcGUpKTsKPiA+PiAg IAo+ID4+IEBAIC03ODE0LDYgKzc4MTYsMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZ2V0X2NydGNf eWNiY3JfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4+ICAgCQkJCWVsc2UKPiA+ PiAgIAkJCQkJb3V0cHV0ID0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMDsKPiA+PiAgIAkJ CX0gZWxzZSB7Cj4gPj4gKwkJCQkvKgo+ID4+ICsJCQkJICogQ3VycmVudGx5IHRoZXJlIGlzIG5v IGludGVyZmFjZSBkZWZpbmVkIHRvCj4gPj4gKwkJCQkgKiBjaGVjayB1c2VyIHByZWZlcmVuY2Ug YmV0d2VlbiBSR0IvWUNCQ1I0NDQKPiA+PiArCQkJCSAqIG9yIFlDQkNSNDIwLiBTbyB0aGUgb25s eSBwb3NzaWJsZSBjYXNlIGZvcgo+ID4+ICsJCQkJICogWUNCQ1I0NDQgdXNhZ2UgaXMgZHJpdmlu ZyBZQ0JDUjQyMCBvdXRwdXQKPiA+PiArCQkJCSAqIHdpdGggTFNQQ09OLCB3aGVuIHBpcGUgaXMg Y29uZmlndXJlZCBmb3IKPiA+PiArCQkJCSAqIFlDQkNSNDQ0IG91dHB1dCBhbmQgTFNQQ09OIHRh a2VzIGNhcmUgb2YKPiA+PiArCQkJCSAqIGRvd25zYW1wbGluZyBpdC4KPiA+PiArCQkJCSAqLwo+ ID4+ICsJCQkJcGlwZV9jb25maWctPmxzcGNvbl9kb3duc2FtcGxpbmcgPSB0cnVlOwo+ID4+ICAg CQkJCW91dHB1dCA9IElOVEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0NDQ7Cj4gPj4gICAJCQl9Cj4g Pj4gICAJCX0KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+PiBpbmRleCBjM2Y2MzMwLi4x MTU2ZDU5IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMK PiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPj4gQEAgLTIwNzQs NiArMjA3NCw3IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ID4+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4+ICAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gPj4g ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+ YmFzZSk7Cj4gPj4gKwlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSBlbmNfdG9faW50ZWxf bHNwY29uKCZlbmNvZGVyLT5iYXNlKTsKPiA+PiAgIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXIt PnBvcnQ7Cj4gPj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwo+ID4+ICAgCXN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gPj4g QEAgLTIwODYsNiArMjA4Nyw5IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ID4+ICAgCQlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVy ID0gdHJ1ZTsKPiA+PiAgIAo+ID4+ICAgCXBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gSU5U RUxfT1VUUFVUX0ZPUk1BVF9SR0I7Cj4gPj4gKwlpZiAobHNwY29uLT5hY3RpdmUpCj4gPj4gKwkJ bHNwY29uX3ljYmNyNDIwX2NvbmZpZygmaW50ZWxfY29ubmVjdG9yLT5iYXNlLCBwaXBlX2NvbmZp Zyk7Cj4gPj4gKwo+ID4+ICAgCXBpcGVfY29uZmlnLT5oYXNfZHJycyA9IGZhbHNlOwo+ID4+ICAg CWlmIChJU19HNFgoZGV2X3ByaXYpIHx8IHBvcnQgPT0gUE9SVF9BKQo+ID4+ICAgCQlwaXBlX2Nv bmZpZy0+aGFzX2F1ZGlvID0gZmFsc2U7Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ PiBpbmRleCBiOGU1Zjk1Li45NWUyNTJlIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+PiBAQCAtOTA4LDYgKzkwOCw5IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsK PiA+PiAgIAo+ID4+ICAgCS8qIE91dHB1dCBmb3JtYXQgUkdCL1lDQkNSIGV0YyAqLwo+ID4+ICAg CWVudW0gaW50ZWxfb3V0cHV0X2Zvcm1hdCBvdXRwdXRfZm9ybWF0Owo+ID4+ICsKPiA+PiArCS8q IE91dHB1dCBkb3duIHNjYWxpbmcgaXMgZG9uZSBpbiBMU1BDT04gZGV2aWNlICovCj4gPj4gKwli b29sIGxzcGNvbl9kb3duc2FtcGxpbmc7Cj4gPj4gICB9Owo+ID4+ICAgCj4gPj4gICBzdHJ1Y3Qg aW50ZWxfY3J0YyB7Cj4gPj4gQEAgLTIyMjUsNiArMjIyOCw4IEBAIHZvaWQgbHNwY29uX3NldF9p bmZvZnJhbWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4+ICAgCQkJICAgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOwo+ID4+ICAgYm9vbCBs c3Bjb25faW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g Pj4gICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcp Owo+ID4+ICt2b2lkIGxzcGNvbl95Y2JjcjQyMF9jb25maWcoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPiA+PiArCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKTsKPiA+PiAgIAo+ID4+ICAgLyogaW50ZWxfcGlwZV9jcmMuYyAqLwo+ID4+ICAgI2lmZGVm IENPTkZJR19ERUJVR19GUwo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9sc3Bjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCj4gPj4g aW5kZXggODI5YzQwYS4uZmZmMzJiMyAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9sc3Bjb24uYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xzcGNvbi5jCj4gPj4gQEAgLTE4MCw2ICsxODAsMjEgQEAgc3RhdGljIGJvb2wgbHNwY29uX3dh a2VfbmF0aXZlX2F1eF9jaChzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24pCj4gPj4gICAJcmV0 dXJuIHRydWU7Cj4gPj4gICB9Cj4gPj4gICAKPiA+PiArdm9pZCBsc3Bjb25feWNiY3I0MjBfY29u ZmlnKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPj4gKwkJCSAgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiArewo+ID4+ICsJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4gPj4g Kwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gPj4gKwkJ CQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+PiArCj4gPj4gKwlpZiAoZHJt X21vZGVfaXNfNDIwX29ubHkoaW5mbywgYWRqdXN0ZWRfbW9kZSkgJiYKPiA+PiArCSAgICBjb25u ZWN0b3ItPnljYmNyXzQyMF9hbGxvd2VkKSB7Cj4gPj4gKwkJY3J0Y19zdGF0ZS0+cG9ydF9jbG9j ayAvPSAyOwo+ID4gVGhpcyBsb29rcyBib2d1cy4gV2UncmUgdGFsa2luZyBhYm91dCBEUCBoZXJl IHNvIHdlIHNob3VsZCBub3QgYmUKPiA+IGZyb2JiaW5nIHBvcnRfY2xvY2suIEFuZCBzaW5jZSB3 ZSBvdXRwdXQgNDo0OjQgZnJvbSB0aGUgcG9ydAo+ID4gYW55d2F5IHdlIGRvbid0IGV2ZW4gaGF2 ZSB0byB0YWtlIDQ6MjowIGludG8gY29uc2lkZXJhdGlvbgo+ID4gd2hlbiBjYWxjdWxhdGluZyBw b3J0X2Nsb2NrLgo+IEkgYWdyZWUgb24gdGhpcy4KPiA+IEFoLCB0aGlzIGd1eSBpcyBjYWxsZWQg YmVmb3JlIHdlIGV2ZW4gY2FsY3VsYXRlIHBvcnRfY2xvY2suCj4gPiBUaGF0IGV4cGxhaW5zIHdo eSB0aGlzIGRpZG4ndCBjYXVzZSBhbnkgcHJvYmxlbXMuIFNvIHRoaXMgaXMKPiA+IGp1c3QgZGVh ZCBjb2RlIGhlcmUuCj4gPgo+ID4gQW5kIGxvb2tzIGxpa2UgdGhlIHBvcnRfY2xvY2sgYWRqdXN0 bWVudCBpbiBpbnRlbF9oZG1pX3ljYmNyNDIwX2NvbmZpZygpCj4gPiBhbHNvIGRlYWQgY29kZSBz aW5jZSB0aGUgY2FsbGVyIG92ZXJ3cml0ZXMgaXQgdGhlcmUgYXMgd2VsbC4KPiBJIGFtIG5vdCBz dXJlIGlmIHRoYXQncyB0aGUgY2FzZSBmb3IgTmF0aXZlIEhETUkgMi4wLgo+IEluIGludGVsX2hk bWlfNDIwX2NvbmZpZyB3ZSBhcmUgdXBkYXRpbmcgdGhlIGNvbmZpZy0+cG9ydF9jbG9jaywgd2hp Y2ggCj4gaXMgdGhlIHNhbWUgdGhpbmcgYmVpbmcgdXBkYXRlZCBmb3IgOC8xMi8xNiBCUEMgZGVl cCBjb2xvciB0b28sIGp1c3QgCj4gYWZ0ZXIgdGhpcyBmdW5jdGlvbi4KPiBJIGhhdmUgdGVzdGVk IHRoZSBvdXRwdXQgd2l0aCBIRE1JIDIuMCBhbmFseXplciwgd2hpY2ggcmVwb3J0ZWQgcmlnaHQg Cj4gcGl4ZWwgY2xvY2sgKDI5N01oeikuIE5vdywgYXMgYW55IG9mIHRoZSBwb3J0IGNsb2NrIGNh bGN1bGF0aW9ucyBkbyBub3QgCj4gZ2V0IGluZm9ybWF0aW9uCj4gYWJvdXQgSERNSSBvdXRwdXQg dHlwZSwgdGhlcmUgaXMgbm8gb3RoZXIgd2F5IHRoZXkgd2lsbCBjYWxjdWxhdGUgdGhlIAo+IHJp Z2h0IHBpeGVsIGNsb2NrICg1OTQvMikgZm9yIDQ6MjowIG91dHB1dHMuIFNvIEkgYmVsaWV2ZSB0 aGF0IGNvZGUgaXMgCj4gYWN0aXZlLgoKSXQgZWZmZWN0aXZlbHkgZG9lcyB0aGlzOgoKMS4gcG9y dF9jbG9jayA9IHdobyBrbm93cwoyLiBwb3J0X2Nsb2NrIC89IDI7CjMuIGlmICgxMmJwYykKICAg CXBvcnRfY2xvY2sgPSBjbG9ja18xMmJwYzsKICAgZWxzZSBpZiAoMTBicGMpCiAgIAlwb3J0X2Ns b2NrID0gY2xvY2tfMTBicGM7CiAgIGVsc2UKICAgCXBvcnRfY2xvY2sgPSBjbG9ja184YnBjOwoK SWUuIHN0ZXAgMi4gaXMgZGVhZCBjb2RlLgoKPiAKPiAtIFNoYXNoYW5rCj4gPj4gKwkJY3J0Y19z dGF0ZS0+b3V0cHV0X2Zvcm1hdCA9IElOVEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0NDQ7Cj4gPj4g KwkJY3J0Y19zdGF0ZS0+bHNwY29uX2Rvd25zYW1wbGluZyA9IHRydWU7Cj4gPj4gKwl9Cj4gPj4g K30KPiA+PiArCj4gPj4gICBzdGF0aWMgYm9vbCBsc3Bjb25fcHJvYmUoc3RydWN0IGludGVsX2xz cGNvbiAqbHNwY29uKQo+ID4+ICAgewo+ID4+ICAgCWludCByZXRyeTsKPiA+PiBAQCAtNDY0LDYg KzQ3OSwxNSBAQCB2b2lkIGxzcGNvbl9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiA+PiAgIAkJcmV0dXJuOwo+ID4+ICAgCX0KPiA+PiAgIAo+ID4+ICsJaWYg KGNydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQ0 NCkgewo+ID4+ICsJCWlmIChjcnRjX3N0YXRlLT5sc3Bjb25fZG93bnNhbXBsaW5nKQo+ID4+ICsJ CQlmcmFtZS5hdmkuY29sb3JzcGFjZSA9IEhETUlfQ09MT1JTUEFDRV9ZVVY0MjA7Cj4gPj4gKwkJ ZWxzZQo+ID4+ICsJCQlmcmFtZS5hdmkuY29sb3JzcGFjZSA9IEhETUlfQ09MT1JTUEFDRV9ZVVY0 NDQ7Cj4gPj4gKwl9IGVsc2Ugewo+ID4+ICsJCWZyYW1lLmF2aS5jb2xvcnNwYWNlID0gSERNSV9D T0xPUlNQQUNFX1JHQjsKPiA+PiArCX0KPiA+PiArCj4gPj4gICAJZHJtX2hkbWlfYXZpX2luZm9m cmFtZV9xdWFudF9yYW5nZSgmZnJhbWUuYXZpLCBtb2RlLAo+ID4+ICAgCQkJCQkgICBjcnRjX3N0 YXRlLT5saW1pdGVkX2NvbG9yX3JhbmdlID8KPiA+PiAgIAkJCQkJICAgSERNSV9RVUFOVElaQVRJ T05fUkFOR0VfTElNSVRFRCA6Cj4gPj4gQEAgLTUxNyw2ICs1NDEsNyBAQCBib29sIGxzcGNvbl9p bml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQo+ID4+ICAgCXN0 cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiA9ICZpbnRlbF9kaWdfcG9ydC0+bHNwY29uOwo+ID4+ ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRl djsKPiA+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7Cj4gPj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmRwLT5hdHRhY2hl ZF9jb25uZWN0b3ItPmJhc2U7Cj4gPj4gICAKPiA+PiAgIAlpZiAoIUhBU19MU1BDT04oZGV2X3By aXYpKSB7Cj4gPj4gICAJCURSTV9FUlJPUigiTFNQQ09OIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhp cyBwbGF0Zm9ybVxuIik7Cj4gPj4gQEAgLTU0MSw2ICs1NjYsNyBAQCBib29sIGxzcGNvbl9pbml0 KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQo+ID4+ICAgCQlyZXR1 cm4gZmFsc2U7Cj4gPj4gICAJfQo+ID4+ICAgCj4gPj4gKwljb25uZWN0b3ItPnljYmNyXzQyMF9h bGxvd2VkID0gdHJ1ZTsKPiA+PiAgIAlsc3Bjb24tPmFjdGl2ZSA9IHRydWU7Cj4gPj4gICAJRFJN X0RFQlVHX0tNUygiU3VjY2VzczogTFNQQ09OIGluaXRcbiIpOwo+ID4+ICAgCXJldHVybiB0cnVl Owo+ID4+IC0tIAo+ID4+IDIuNy40CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=