From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH v4 7/7] drm/i915: Add YCBCR 4:2:0/4:4:4 support for LSPCON Date: Tue, 6 Feb 2018 14:47:18 +0530 Message-ID: <14901c90-7ddf-4fc4-fe05-2293c6780039@intel.com> References: <1517304963-27932-1-git-send-email-shashank.sharma@intel.com> <1517304963-27932-8-git-send-email-shashank.sharma@intel.com> <20180201190944.GU5453@intel.com> <20180202135242.GV5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 350C56E1CF for ; Tue, 6 Feb 2018 09:17:22 +0000 (UTC) In-Reply-To: <20180202135242.GV5453@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCgpPbiAyLzIvMjAxOCA3OjIyIFBNLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6Cj4gT24gRnJpLCBGZWIgMDIsIDIwMTggYXQgMTE6NDQ6MDFBTSArMDUzMCwgU2hhcm1h LCBTaGFzaGFuayB3cm90ZToKPj4gUmVnYXJkcwo+Pgo+PiBTaGFzaGFuawo+Pgo+Pgo+PiBPbiAy LzIvMjAxOCAxMjozOSBBTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+Pj4gT24gVHVlLCBKYW4g MzAsIDIwMTggYXQgMDM6MDY6MDNQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1hIHdyb3RlOgo+Pj4+ IEZyb206ICJTaGFybWEsIFNoYXNoYW5rIiA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPj4+ Pgo+Pj4+IExTUENPTiBjaGlwcyBjYW4gZ2VuZXJhdGUgWUNCQ1Igb3V0cHV0cywgaWYgYXNrZWQg bmljZWx5IDopLgo+Pj4+Cj4+Pj4gSW4gb3JkZXIgdG8gZ2VuZXJhdGUgWUNCQ1IgNDoyOjAgb3V0 cHV0cywgYSBzb3VyY2UgbXVzdDoKPj4+PiAtIHNlbmQgWUNCQ1IgNDo0OjQgc2lnbmFscyB0byBM U1BDT04KPj4+PiAtIHByb2dyYW0gY29sb3Igc3BhY2UgYXMgNDoyOjAgaW4gQVZJIGluZm9mcmFt ZXMKPj4+Pgo+Pj4+IFdoZXJlYXMgZm9yIFlDQkNSIDQ6NDo0IG91dHB1dHMsIHRoZSBzb3VyY2Ug bXVzdDoKPj4+PiAtIHNlbmQgWUNCQ1IgNDo0OjQgc2lnbmFscyB0byBMU1BDT04KPj4+PiAtIHBy b2dyYW0gY29sb3Igc3BhY2UgYXMgNDo0OjQgaW4gQVZJIGluZm9mcmFtZXMKPj4+Pgo+Pj4+IFNv IGZvciBib3RoIDQ6MjowIGFzIHdlbGwgYXMgNDo0OjQgb3V0cHV0cywgd2UgYXJlIGRyaXZpbmcg dGhlCj4+Pj4gcGlwZSBmb3IgWUNCQ1IgNDo0OjQgb3V0cHV0LCBidXQgQVZJIGluZm9mcmFtZSdz IGNvbG9yIHNwYWNlCj4+Pj4gaW5mb3JtYXRpb24gaW5kaWNhdGVzIExTUENPTiBGVyB0byBzdGFy dCBzY2FsaW5nIGRvd24gZnJvbSBZQ0JDUgo+Pj4+IDQ6NDo0IGFuZCBnZW5lcmF0ZSBZQ0JDUiA0 OjI6MCBvdXRwdXQuIEFzIHRoZSBzY2FsaW5nIGlzIGRvbmUgYnkKPj4+PiBMU1BDT04gZGV2aWNl LCB3ZSBuZWVkIG5vdCB0byByZXNlcnZlIGEgc2NhbGVyIGZvciA0OjI6MCBvdXRwdXRzLgo+Pj4+ Cj4+Pj4gVjI6IHJlYmFzZQo+Pj4+IFYzOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20g VmlsbGUKPj4+PiAgICAgICAtIGFkZCBlbnVtIGNydGNfb3V0cHV0X2Zvcm1hdCBpbnN0ZWFkIG9m IGJvb2wgeWNiY3I0MjAKPj4+PiAgICAgICAtIHVzZSBjcnRjX291dHB1dF9mb3JtYXQ9NDo0OjQg Zm9yIG1vZGVzZXQgb2YgTFNQQ09OIDQ6MjowIG91dHB1dAo+Pj4+ICAgICAgICAgY2FzZXMgaW4g dGhpcyB3YXkgd2Ugd2lsbCBoYXZlIFlDQkNSIDQ6NDo0IGZyYW1ld29yayByZWFkeSAoZXhjZXB0 Cj4+Pj4gICAgICAgICB0aGUgQUJJIHBhcnQpCj4+Pj4gVjQ6IEFkZGVkIHItYiBmcm9tIE1hYXJ0 ZW4gKGZvciB2MykKPj4+PiAgICAgICBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gVmls bGU6Cj4+Pj4gICAgICAgLSBEbyBub3QgYWRkIGEgbm9uLWF0b21pYyBzdGF0ZSB2YXJpYWJsZSB0 byBkZXRlcm1pbmUgbHNwY29uIG91dHB1dC4KPj4+PiAgICAgICAgIEluc3RlYWQgYWRkIGJvb2wg aW4gQ1JUQyBzdGF0ZSB0byBpbmRpY2F0ZSBsc3Bjb24gYmFzZWQgc2NhbGluZy4KPj4+Pgo+Pj4+ IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4+PiBD YzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K Pj4+PiBSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNo YW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4+Pj4gLS0tCj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCAgICAgIHwgIDIgKysKPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYyAgICAgfCAgNyArKysrKysrCj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgMTEgKysrKysrKysrKy0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jICAgICAgfCAxMCArKysrKysrKysrCj4+Pj4gICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDUgKysrKysKPj4+PiAgICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9sc3Bjb24uYyAgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPj4+PiAgICA2IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4+IGluZGV4IDY0OTMzZmQuLmUz ODNiMDUgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4+PiBAQCAtODcyMSw2 ICs4NzIxLDggQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7Cj4+Pj4gICAgI2RlZmluZSBUUkFOU19N U0FfTUlTQyh0cmFuKSBfTU1JT19UUkFOUzIodHJhbiwgX1RSQU5TQV9NU0FfTUlTQykKPj4+PiAg ICAKPj4+PiAgICAjZGVmaW5lICBUUkFOU19NU0FfU1lOQ19DTEsJCSgxPDwwKQo+Pj4+ICsjZGVm aW5lICBUUkFOU19NU0FfU0FNUExJTkdfNDQ0ICAgICAgICAoMjw8MSkKPj4+PiArI2RlZmluZSAg VFJBTlNfTVNBX0NMUlNQX1lDQkNSCQkoMjw8MykKPj4+PiAgICAjZGVmaW5lICBUUkFOU19NU0Ff Nl9CUEMJCSgwPDw1KQo+Pj4+ICAgICNkZWZpbmUgIFRSQU5TX01TQV84X0JQQwkJKDE8PDUpCj4+ Pj4gICAgI2RlZmluZSAgVFJBTlNfTVNBXzEwX0JQQwkJKDI8PDUpCj4+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGRpLmMKPj4+PiBpbmRleCA1MTBiYjc3Li5kYjdkOTQwIDEwMDY0NAo+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4+PiBAQCAtMTQ5OSw2ICsxNDk5LDEzIEBAIHZvaWQgaW50 ZWxfZGRpX3NldF9waXBlX3NldHRpbmdzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+Pj4+ICAgIAkJYnJlYWs7Cj4+Pj4gICAgCX0KPj4+PiAgICAKPj4+PiArCS8q Cj4+Pj4gKwkgKiBBcyBwZXIgRFAgMS4yIHNwZWMgc2VjdGlvbiAyLjMuNC4zIHdoaWxlIHNlbmRp bmcKPj4+PiArCSAqIFlDQkNSIDQ0NCBzaWduYWxzIHdlIHNob3VsZCBwcm9ncmFtIE1TQSBNSVND MS8wIGZpZWxkcyB3aXRoCj4+Pj4gKwkgKiBjb2xvcnNwYWNlIGluZm9ybWF0aW9uLiBUaGUgb3V0 cHV0IGNvbG9yc3BhY2UgZW5jb2RpbmcgaXMgQlQ2MDEuCj4+Pj4gKwkgKi8KPj4+PiArCWlmIChj cnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ID09IENSVENfT1VUUFVUX1lDQkNSNDQ0KQo+Pj4+ICsJ CXRlbXAgfD0gVFJBTlNfTVNBX1NBTVBMSU5HXzQ0NCB8IFRSQU5TX01TQV9DTFJTUF9ZQ0JDUjsK Pj4+PiAgICAJSTkxNV9XUklURShUUkFOU19NU0FfTUlTQyhjcHVfdHJhbnNjb2RlciksIHRlbXAp Owo+Pj4+ICAgIH0KPj4+PiAgICAKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4+Pj4gaW5kZXggNGE0MGRlOS4uYjI2ZjRhOSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPj4+PiBAQCAtOTIyOCw2ICs5MjI4LDcgQEAgc3RhdGljIGJvb2wg aGFzd2VsbF9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+Pj4gICAg CXBpcGVfY29uZmlnLT5nYW1tYV9tb2RlID0KPj4+PiAgICAJCUk5MTVfUkVBRChHQU1NQV9NT0RF KGNydGMtPnBpcGUpKSAmIEdBTU1BX01PREVfTU9ERV9NQVNLOwo+Pj4+ICAgIAo+Pj4+ICsJcGlw ZV9jb25maWctPmV4dGVybmFsX3NjYWxpbmcgPSBmYWxzZTsKPj4+IEkgcmVhbGx5IGRvbid0IGxp a2UgdGhlIG5hbWUgb2YgdGhhdC4gTWFrZXMgbWUgdGhpbmsgd2UncmUgYWN0dWFsbHkKPj4+IHNj YWxpbmcgdGhlIGVudGlyZSBvdXRwdXQgb3Igc29tZXRoaW5nLiAnZXh0ZXJuYWxfeWNiY3JfNDIw X2Rvd25zYW1wbGUnCj4+PiBvciBzb21ldGhpbmcgbGlrZSB0aGF0IHdvdWxkIGJlIGJldHRlci4K Pj4gb2ssIGxldCBtZSByZW5hbWUgdGhpcyB0byBzb21ldGhpbmcgaW4gdGhvc2UgbGluZXMuCj4+ Pj4gICAgCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElOVEVMX0dFTihkZXZfcHJpdikg Pj0gOSkgewo+Pj4+ICAgIAkJdTMyIHRtcCA9IEk5MTVfUkVBRChQSVBFTUlTQyhjcnRjLT5waXBl KSk7Cj4+Pj4gICAgCQllbnVtIGludGVsX291dHB1dF9mb3JtYXQgb3V0cHV0X2Zvcm1hdCA9IENS VENfT1VUUFVUX1JHQjsKPj4+PiBAQCAtOTI0Nyw4ICs5MjQ4LDE2IEBAIHN0YXRpYyBib29sIGhh c3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+Pj4+ICAgIAkJ CQkJb3V0cHV0X2Zvcm1hdCA9IENSVENfT1VUUFVUX1lDQkNSNDIwOwo+Pj4+ICAgIAkJCX0gZWxz ZSB7Cj4+Pj4gICAgCQkJCW91dHB1dF9mb3JtYXQgPSBDUlRDX09VVFBVVF9ZQ0JDUjQ0NDsKPj4+ PiAtCQkJfQo+Pj4+ICAgIAo+Pj4+ICsJCQkJLyoKPj4+PiArCQkJCSAqIEFzIHRoZXJlIGlzIG5v IGludGVyZmFjZSBkZWZpbmVkICh5ZXQpCj4+Pj4gKwkJCQkgKiB0byBnZXQgdGhlIHVzZXIncyBw cmVmZXJlbmNlIGZvciBvdXRwdXQKPj4+PiArCQkJCSAqIGZvcm1hdCwgWUNCQ1I0NDQgb3V0cHV0 IGZvcm1hdCBpcyBvbmx5Cj4+Pj4gKwkJCQkgKiBwb3NzaWJsZSB3aXRoIExTUENPTiBZQ0JDUjQy MCBvdXRwdXQsCj4+Pj4gKwkJCQkgKiB3aGljaCB1c2VzIExTUENPTidzIChleHRlcm5hbCApc2Nh bGVyLgo+Pj4+ICsJCQkJICovCj4+Pj4gKwkJCQlwaXBlX2NvbmZpZy0+ZXh0ZXJuYWxfc2NhbGlu ZyA9IHRydWU7Cj4+Pj4gKwkJCX0KPj4+PiAgICAJCX0KPj4+PiAgICAKPj4+PiAgICAJCXBpcGVf Y29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gb3V0cHV0X2Zvcm1hdDsKPj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPj4+PiBpbmRleCBhMmU4ODc5Li5iZTE5NTc5IDEwMDY0NAo+Pj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jCj4+Pj4gQEAgLTE2NDAsNiArMTY0MCw3IEBAIGludGVsX2RwX2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+Pj4+ICAgIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK Pj4+PiAgICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPj4+PiAgICAJc3RydWN0IGludGVsX2RwICppbnRl bF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4+Pj4gKwlzdHJ1Y3QgaW50 ZWxfbHNwY29uICpsc3Bjb24gPSBlbmNfdG9faW50ZWxfbHNwY29uKCZlbmNvZGVyLT5iYXNlKTsK Pj4+PiAgICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+Pj4+ICAgIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2Uu Y3J0Yyk7Cj4+Pj4gICAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9 IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4+Pj4gQEAgLTE2NjksNiArMTY3MCwxNSBA QCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK Pj4+PiAgICAJaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpICYmICFIQVNfRERJKGRldl9wcml2 KSAmJiBwb3J0ICE9IFBPUlRfQSkKPj4+PiAgICAJCXBpcGVfY29uZmlnLT5oYXNfcGNoX2VuY29k ZXIgPSB0cnVlOwo+Pj4+ICAgIAo+Pj4+ICsJaWYgKGxzcGNvbi0+YWN0aXZlKSB7Cj4+Pj4gKwkJ c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7 Cj4+Pj4gKwo+Pj4+ICsJCWlmIChsc3Bjb25feWNiY3I0MjBfY29uZmlnKGNvbm5lY3RvciwgcGlw ZV9jb25maWcpKSB7Cj4+Pj4gKwkJCXBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gQ1JUQ19P VVRQVVRfWUNCQ1I0NDQ7Cj4+Pj4gKwkJCXBpcGVfY29uZmlnLT5leHRlcm5hbF9zY2FsaW5nID0g dHJ1ZTsKPj4+IFdoeSBzcGxpdCB0aGUgd29yayBiZXR3ZWVuIHR3byBmdW5jdGlvbnMgbGlrZSB0 aGlzPyBJIHRoaW5rIGl0IHdvdWxkIGJlCj4+PiBjbGVhbmVyIHRvIGVpdGhlciBpbmxpbmUgYWxs IHRoZSBjb2RlIGhlcmUsIG9yIG1vdmUgaXQgYWxsIGludG8KPj4+IGxzcGNvbl95Y2JjcjQyMF9j b25maWcoKS4KPj4gU3VyZSwgbWFrZXMgc2Vuc2UuCj4+Pj4gKwkJfQo+Pj4+ICsJfQo+Pj4+ICsK Pj4+PiAgICAJcGlwZV9jb25maWctPmhhc19kcnJzID0gZmFsc2U7Cj4+Pj4gICAgCWlmIChJU19H NFgoZGV2X3ByaXYpIHx8IHBvcnQgPT0gUE9SVF9BKQo+Pj4+ICAgIAkJcGlwZV9jb25maWctPmhh c19hdWRpbyA9IGZhbHNlOwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+Pj4gaW5kZXgg ZWZhYTMzMS4uZjIzMTI5YiAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ Pj4gQEAgLTg4Miw2ICs4ODIsOSBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4+Pj4gICAg Cj4+Pj4gICAgCS8qIE91dHB1dCBmb3JtYXQgUkdCL1lDQkNSIGV0YyAqLwo+Pj4+ICAgIAllbnVt IGludGVsX291dHB1dF9mb3JtYXQgb3V0cHV0X2Zvcm1hdDsKPj4+PiArCj4+Pj4gKwkvKiBPdXRw dXQgdXAvZG93biBzY2FsaW5nIGlzIGRvbmUgaW4gZXh0ZXJuYWwgZGV2aWNlICovCj4+Pj4gKwli b29sIGV4dGVybmFsX3NjYWxpbmc7Cj4+Pj4gICAgfTsKPj4+PiAgICAKPj4+PiAgICBzdHJ1Y3Qg aW50ZWxfY3J0YyB7Cj4+Pj4gQEAgLTIxMzksNiArMjE0Miw4IEBAIHZvaWQgbHNwY29uX3NldF9p bmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPj4+PiAgICAJCQkgICBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Cj4+Pj4gICAgYm9vbCBs c3Bjb25faW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+Pj4+ ICAgIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7 Cj4+Pj4gK2Jvb2wgbHNwY29uX3ljYmNyNDIwX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAo+Pj4+ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcp Owo+Pj4+ICAgIAo+Pj4+ICAgIC8qIGludGVsX3BpcGVfY3JjLmMgKi8KPj4+PiAgICBpbnQgaW50 ZWxfcGlwZV9jcmNfY3JlYXRlKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKTsKPj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+Pj4+IGluZGV4IDA2NmVhOTEuLjhkNmE5YjIgMTAwNjQ0 Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+Pj4+IEBAIC0xODAsNiArMTgw LDI1IEBAIHN0YXRpYyBib29sIGxzcGNvbl93YWtlX25hdGl2ZV9hdXhfY2goc3RydWN0IGludGVs X2xzcGNvbiAqbHNwY29uKQo+Pj4+ICAgIAlyZXR1cm4gdHJ1ZTsKPj4+PiAgICB9Cj4+Pj4gICAg Cj4+Pj4gK2Jvb2wgbHNwY29uX3ljYmNyNDIwX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAo+Pj4+ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcp Cj4+PiBjcnRjX3N0YXRlCj4+IG9rCj4+Pj4gK3sKPj4+PiArCXN0cnVjdCBkcm1fZGlzcGxheV9p bmZvICppbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+Pj4gY29uc3QKPj4gb2sKPj4+ PiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOwo+Pj4gY29uc3QgLi4uIGFkanVzdGVkX21vZGU7Cj4+IG9rCj4+Pj4gKwo+Pj4+ICsJ aWYgKGRybV9tb2RlX2lzXzQyMF9vbmx5KGluZm8sIG1vZGUpKSB7Cj4+Pj4gKwkJaWYgKCFjb25u ZWN0b3ItPnljYmNyXzQyMF9hbGxvd2VkKSB7Cj4+Pj4gKwkJCURSTV9FUlJPUigiUGxhdGZvcm0g ZG9lc24ndCBzdXBwb3J0IFlDQkNSNDIwIG91dHB1dFxuIik7Cj4+Pj4gKwkJCXJldHVybiBmYWxz ZTsKPj4+IEhvdyBjYW4gd2UgZXZlbiBnZXQgaGVyZT8KPj4gVGhpcyBjb2RlIGZsb3cgaXMgY29t aW5nIGZyb20gQ1JUQy9lbmNvZGVyIHNpZGUsIHdoZXJlYXMgNDIwIGNhcGFiaWxpdHkKPj4gaXMg c2V0IGluIGNvbm5lY3Rvcl9pbml0LCB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHdlIGFyZSBjaGVj a2luZwo+PiBjb25uZWN0b3IncyBjYXBhYmlsaXRpZXMuIFNvIHllcywgaXRzIHBvc3NpYmxlIHRv IHJlYWNoIGhlcmUuCj4gT2ggcmlnaHQsIHdlIGRvbid0IHlldCB1c2UgdGhlIC5tb2RlX3ZhbGlk KCkgc3R1ZmYgZm9yIG1vZGVzZXRzLgo+Cj4gT25lIHRoaW5nIHRoYXQgYm90aGVycyBtZSBpcyB0 aGF0IHRoZSBjb2RlIGhlcmUgaXMgc3RydWN0dXJlZCBzbGlnaHRseQo+IGRpZmZlcmVudGx5IHRo YW4gdGhlIG5hdGl2ZSBIRE1JIGNhc2UuIFdvdWxkIGJlIG5pY2UgaWYgd2UgY291bGQgbWFrZQo+ IHRoZSB0d28gY29kZXBhdGhzIGF0IGxlYXN0IGZvbGxvdyB0aGUgc2FtZSBnZW5lcmFsIGZsb3cu ClZlcnkgdmFsaWQgcG9pbnQsIGJ1dCB0aGUgZGlmZmVyZW5jZSBtb3N0bHkgaXMgZHVlIHRvIExT UENPTiBzdGlsbCAKcnVubmluZyBsaWtlIGEgRFAgZW5jb2Rlciwgd2hlcmVhcyBuYXRpdmUgSERN SSBjYXNlIGlzIGluIHRoZSBIRE1JIHNpZGUuCj4KPiBPaCBhbmQgdGhlIERSTV9FUlJPUigpIGhh cyB0byBnbyBzaW5jZSBpdCdzIHBvc3NpYmx5IHVzZXIgdHJpZ2dlcmFibGUuCj4gTG9va3MgbGlr ZSBvbmUgc251Y2sgaW50byB0aGUgbmF0aXZlIEhETUkgY29kZSBhcyB3ZWxsLiBUaGF0IHRvbyBz aG91bGQKPiBiZSBraWxsZWQgb2ZmLgpBZ3JlZSwgd2lsbCBwcnVuZSBpdCAhCi0gU2hhc2hhbmsK Pgo+PiAtIFNoYXNoYW5rCj4+Pj4gKwkJfQo+Pj4+ICsKPj4+PiArCQljb25maWctPnBvcnRfY2xv Y2sgLz0gMjsKPj4+PiArCQlyZXR1cm4gdHJ1ZTsKPj4+PiArCX0KPj4+PiArCj4+Pj4gKwlyZXR1 cm4gZmFsc2U7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gICAgc3RhdGljIGJvb2wgbHNwY29uX3Byb2Jl KHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbikKPj4+PiAgICB7Cj4+Pj4gICAgCWludCByZXRy eTsKPj4+PiBAQCAtNDU5LDYgKzQ3OCwxNSBAQCB2b2lkIGxzcGNvbl9zZXRfaW5mb2ZyYW1lcyhz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+Pj4gICAgCQlyZXR1cm47Cj4+Pj4gICAgCX0K Pj4+PiAgICAKPj4+PiArCWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ID09IENSVENfT1VU UFVUX1lDQkNSNDQ0KSB7Cj4+Pj4gKwkJaWYgKGNydGNfc3RhdGUtPmV4dGVybmFsX3NjYWxpbmcp Cj4+Pj4gKwkJCWZyYW1lLmF2aS5jb2xvcnNwYWNlID0gSERNSV9DT0xPUlNQQUNFX1lVVjQyMDsK Pj4+PiArCQllbHNlCj4+Pj4gKwkJCWZyYW1lLmF2aS5jb2xvcnNwYWNlID0gSERNSV9DT0xPUlNQ QUNFX1lVVjQ0NDsKPj4+PiArCX0gZWxzZSB7Cj4+Pj4gKwkJZnJhbWUuYXZpLmNvbG9yc3BhY2Ug PSBIRE1JX0NPTE9SU1BBQ0VfUkdCOwo+Pj4+ICsJfQo+Pj4+ICsKPj4+PiAgICAJZHJtX2hkbWlf YXZpX2luZm9mcmFtZV9xdWFudF9yYW5nZSgmZnJhbWUuYXZpLCBtb2RlLAo+Pj4+ICAgIAkJCQkJ ICAgY3J0Y19zdGF0ZS0+bGltaXRlZF9jb2xvcl9yYW5nZSA/Cj4+Pj4gICAgCQkJCQkgICBIRE1J X1FVQU5USVpBVElPTl9SQU5HRV9MSU1JVEVEIDoKPj4+PiBAQCAtNTEyLDYgKzU0MCw3IEBAIGJv b2wgbHNwY29uX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQp Cj4+Pj4gICAgCXN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiA9ICZpbnRlbF9kaWdfcG9ydC0+ bHNwY29uOwo+Pj4+ICAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQt PmJhc2UuYmFzZS5kZXY7Cj4+Pj4gICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKPj4+PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ig PSAmZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvci0+YmFzZTsKPj4+PiAgICAKPj4+PiAgICAJaWYgKCFI QVNfTFNQQ09OKGRldl9wcml2KSkgewo+Pj4+ICAgIAkJRFJNX0VSUk9SKCJMU1BDT04gaXMgbm90 IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtXG4iKTsKPj4+PiBAQCAtNTM2LDYgKzU2NSw3IEBA IGJvb2wgbHNwY29uX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQpCj4+Pj4gICAgCQlyZXR1cm4gZmFsc2U7Cj4+Pj4gICAgCX0KPj4+PiAgICAKPj4+PiArCWNv bm5lY3Rvci0+eWNiY3JfNDIwX2FsbG93ZWQgPSB0cnVlOwo+Pj4+ICAgIAlsc3Bjb24tPmFjdGl2 ZSA9IHRydWU7Cj4+Pj4gICAgCURSTV9ERUJVR19LTVMoIlN1Y2Nlc3M6IExTUENPTiBpbml0XG4i KTsKPj4+PiAgICAJcmV0dXJuIHRydWU7Cj4+Pj4gLS0gCj4+Pj4gMi43LjQKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=