From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v6 2/2] drm/i915/icl: Enable Plane Input CSC for YUV to RGB Conversion Date: Thu, 1 Nov 2018 11:44:15 +0200 Message-ID: <20181101094415.GZ9144@intel.com> References: <1540992931-26022-1-git-send-email-uma.shankar@intel.com> <1540992931-26022-3-git-send-email-uma.shankar@intel.com> <20181031140612.GR9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4FB5B891AA for ; Thu, 1 Nov 2018 09:44:19 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "Lankhorst, Maarten" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMDEsIDIwMTggYXQgMDY6MjI6MDhBTSArMDAwMCwgU2hhbmthciwgVW1hIHdy b3RlOgo+IAo+IAo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID5Gcm9tOiBWaWxsZSBT eXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+U2VudDog V2VkbmVzZGF5LCBPY3RvYmVyIDMxLCAyMDE4IDc6MzYgUE0KPiA+VG86IFNoYW5rYXIsIFVtYSA8 dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+ID5DYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZzsgU3lyamFsYSwgVmlsbGUgPHZpbGxlLnN5cmphbGFAaW50ZWwuY29tPjsKPiA+TGFua2hv cnN0LCBNYWFydGVuIDxtYWFydGVuLmxhbmtob3JzdEBpbnRlbC5jb20+Cj4gPlN1YmplY3Q6IFJl OiBbSW50ZWwtZ2Z4XSBbdjYgMi8yXSBkcm0vaTkxNS9pY2w6IEVuYWJsZSBQbGFuZSBJbnB1dCBD U0MgZm9yIFlVViB0bwo+ID5SR0IgQ29udmVyc2lvbgo+ID4KPiA+T24gV2VkLCBPY3QgMzEsIDIw MTggYXQgMDc6MDU6MzFQTSArMDUzMCwgVW1hIFNoYW5rYXIgd3JvdGU6Cj4gPj4gUGxhbmUgaW5w dXQgQ1NDIG5lZWRzIHRvIGJlIGVuYWJsZWQgdG8gY29udmVydCBmcmFtYnVmZmVycyBmcm9tIFlV ViB0bwo+ID4+IFJHQi4gVGhpcyBpcyBuZWVkZWQgZm9yIGJvdHRvbSAzIHBsYW5lcyBvbiBJQ0ws IHJlc3Qgb2YgdGhlIHBsYW5lcwo+ID4+IGhhdmUgaGFyZGNvZGVkIGNvbnZlcnNpb24gYW5kIHRh a2VuIGNhcmUgYnkgdGhlIGxlZ2FjeSBjb2RlLgo+ID4+Cj4gPj4gVGhpcyBwYXRjaCBkZWZpbmVz IHRoZSBjby1lZmZpY2llbnQgdmFsdWVzIGZvciBZVVYgdG8gUkdCIGNvbnZlcnNpb24KPiA+PiBp biBCVDcwOSBhbmQgQlQ2MDEgZm9ybWF0cy4gSXQgcHJvZ3JhbXMgdGhlIGNvZWZmaWNpZW50cyBh bmQgZW5hYmxlcwo+ID4+IHRoZSBwbGFuZSBpbnB1dCBjc2MgdW5pdCBpbiBoYXJkd2FyZS4KPiA+ Pgo+ID4+IFRoaXMgaGFzIGJlZW4gdmVyaWZpZWQgYW5kIHRlc3RlZCBieSBNYWFydGVuIGFuZCB0 aGUgY2hhbmdlIGlzIHdvcmtpbmcKPiA+PiBhcyBleHBlY3RlZC4KPiA+Pgo+ID4+IHYyOiBBZGRy ZXNzZWQgTWFhcnRlbidzIGFuZCBWaWxsZSdzIHJldmlldyBjb21tZW50cyBhbmQgYWRkZWQgdGhl Cj4gPj4gY29lZmZpY2llbnRzIGluIGEgMkQgYXJyYXkgaW5zdGVhZCBvZiBpbmRlcGVuZGVudCBN YWNyb3MuCj4gPj4KPiA+PiB2MzogQWRkZWQgaW5kaXZpZHVhbCBjb2VmZmljaWVudCBtYXRyaXgg KDkgdmFsdWVzKSBpbnN0ZWFkIG9mIDYKPiA+PiByZWdpc3RlciB2YWx1ZXMgYXMgcGVyIE1hYXJ0 ZW4ncyBjb21tZW50LiBBbHNvIGFkZHJlc2VkIGEgc2hpZnQgaXNzdWUKPiA+PiB3aXRoIEIgY2hh bm5lbCBjb2VmZmljaWVudC4KPiA+Pgo+ID4+IHY0OiBBZGRlZCBzdXBwb3J0IGZvciBMaW1pdGVk IFJhbmdlIENvbG9yIEhhbmRsaW5nCj4gPj4KPiA+PiB2NTogRml4ZWQgTWF0dCBhbmQgTWFhcnRl bidzIHJldmlldyBjb21tZW50cy4KPiA+Pgo+ID4+IHY2OiBBZGRlZCBodW1hbiByZWFkYWJsZSBt YXRyaXggdmFsdWVzIGZvciBZVVYgdG8gUkdCIENvbnZlcnNpb24gYWxvbmcKPiA+PiB3aXRoIGp1 c3QgdGhlIGJzcGVjIHJlZ2lzdGVyIHZhbHVlcywgYXMgcGVyIE1hdHQncyBzdWdnZXN0aW9uLgo+ ID4+Cj4gPj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNv bT4KPiA+PiAtLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyAgIHwg MTAzCj4gPisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAyMyArKysrKystLQo+ID4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDIgKwo+ID4+ICAzIGZpbGVzIGNoYW5n ZWQsIDEyMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+ID4+Cj4gPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+PiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+PiBpbmRleCA1MTI3ZGEyLi42ZGM5MDc1IDEwMDY0 NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gPj4gQEAgLTU3LDYgKzU3LDE1 IEBACj4gPj4gICNkZWZpbmUgQ1NDX1JHQl9UT19ZVVZfUlZfR1YgMHhiY2U4OWFkOCAgI2RlZmlu ZQo+ID5DU0NfUkdCX1RPX1lVVl9CVgo+ID4+IDB4MWUwODAwMDAKPiA+Pgo+ID4+ICsjZGVmaW5l ICBST0ZGKHgpICAgICAgICAgICgoKHgpICYgMHhmZmZmKSA8PCAxNikKPiA+PiArI2RlZmluZSAg R09GRih4KSAgICAgICAgICAoKCh4KSAmIDB4ZmZmZikgPDwgMCkKPiA+PiArI2RlZmluZSAgQk9G Rih4KSAgICAgICAgICAoKCh4KSAmIDB4ZmZmZikgPDwgMTYpCj4gPj4gKwo+ID4+ICsvKiBQcmVv ZmZzZXQgdmFsdWVzIGZvciBZVVYgdG8gUkdCIENvbnZlcnNpb24gKi8KPiA+PiArI2RlZmluZSBQ UkVPRkZfWVVWX1RPX1JHQl9ISQkJMHgxODAwCj4gPj4gKyNkZWZpbmUgUFJFT0ZGX1lVVl9UT19S R0JfTUUJCTB4MUYwMAo+ID4+ICsjZGVmaW5lIFBSRU9GRl9ZVVZfVE9fUkdCX0xPCQkweDE4MDAK PiA+PiArCj4gPj4gIC8qCj4gPj4gICAqIEV4dHJhY3QgdGhlIENTQyBjb2VmZmljaWVudCBmcm9t IGEgQ1RNIGNvZWZmaWNpZW50IChpbiBVMzIuMzIgZml4ZWQgcG9pbnQKPiA+PiAgICogZm9ybWF0 KS4gVGhpcyBtYWNybyB0YWtlcyB0aGUgY29lZmZpY2llbnQgd2Ugd2FudCB0cmFuc2Zvcm1lZCBh bmQKPiA+PiB0aGUgQEAgLTY0Myw2ICs2NTIsMTAwIEBAIGludCBpbnRlbF9jb2xvcl9jaGVjayhz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPj4gIAlyZXR1cm4gLUVJTlZBTDsKPiA+PiAgfQo+ID4+ Cj4gPj4gK3ZvaWQgaWNsX3Byb2dyYW1faW5wdXRfY3NjX2NvZWZmKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4+ICsJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpIHsKPiA+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9Cj4gPj4gKwkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZS0+ZGV2 KTsKPiA+PiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOwo+ID4+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4+ ICsJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9Cj4gPj4gKwkJdG9faW50ZWxfcGxh bmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwo+ID4+ICsJZW51bSBwbGFuZV9pZCBwbGFuZSA9 IGludGVsX3BsYW5lLT5pZDsKPiA+PiArCj4gPj4gKwlzdGF0aWMgY29uc3QgdTE2IGlucHV0X2Nz Y19tYXRyaXhbXVs5XSA9IHsKPiA+PiArCQkvKgo+ID4+ICsJCSAqIEJULjYwMSBmdWxsIHJhbmdl IFlDYkNyIC0+IGZ1bGwgcmFuZ2UgUkdCCj4gPj4gKwkJICogVGhlIG1hdHJpeCByZXF1aXJlZCBp cyA6Cj4gPj4gKwkJICogWzEuMDAwLCAwLjAwMCwgMS4zNzEsCj4gPj4gKwkJICogIDEuMDAwLCAt MC4zMzYsIC0wLjY5OCwKPiA+PiArCQkgKiAgMS4wMDAsIDEuNzMyLCAwLjAwMDBdCj4gPj4gKwkJ ICovCj4gPj4gKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDYwMV0gPSB7Cj4gPj4gKwkJCTB4N0FGOCwg MHg3ODAwLCAweDAsCj4gPj4gKwkJCTB4OEIyOCwgMHg3ODAwLCAweDlBQzAsCj4gPj4gKwkJCTB4 MCwgMHg3ODAwLCAweDdERDgsCj4gPj4gKwkJfSwKPiA+PiArCQkvKgo+ID4+ICsJCSAqIEJULjcw OSBmdWxsIHJhbmdlIFlDYkNyIC0+IGZ1bGwgcmFuZ2UgUkdCCj4gPj4gKwkJICogVGhlIG1hdHJp eCByZXF1aXJlZCBpcyA6Cj4gPj4gKwkJICogWzEuMDAwLCAwLjAwMCwgMS41NzQsCj4gPj4gKwkJ ICogIDEuMDAwLCAtMC4xODcsIC0wLjQ2OCwKPiA+PiArCQkgKiAgMS4wMDAsIDEuODU1LCAwLjAw MDBdCj4gPj4gKwkJICovCj4gPj4gKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDcwOV0gPSB7Cj4gPj4g KwkJCTB4N0M5OCwgMHg3ODAwLCAweDAsCj4gPj4gKwkJCTB4OUVGOCwgMHg3ODAwLCAweEFCRjgs Cj4gPj4gKwkJCTB4MCwgMHg3ODAwLCAgMHg3RUQ4LAo+ID4+ICsJCX0sCj4gPj4gKwl9Owo+ID4+ ICsKPiA+PiArCS8qIE1hdHJpeCBmb3IgTGltaXRlZCBSYW5nZSB0byBGdWxsIFJhbmdlIENvbnZl cnNpb24gKi8KPiA+PiArCXN0YXRpYyBjb25zdCB1MTYgaW5wdXRfY3NjX21hdHJpeF9scltdWzld ID0gewo+ID4+ICsJCS8qCj4gPj4gKwkJICogQlQuNjAxIExpbXRlZCByYW5nZSBZQ2JDciAtPiBm dWxsIHJhbmdlIFJHQgo+ID4+ICsJCSAqIFRoZSBtYXRyaXggcmVxdWlyZWQgaXMgOgo+ID4+ICsJ CSAqIFsxLjE2NDM4NCwgMC4wMDAsIDEuNTk2MzcwLAo+ID4+ICsJCSAqICAxLjEzODM5MywgLTAu MzgyNTAwLCAtMC43OTQ1OTgsCj4gPj4gKwkJICogIDEuMTM4MzkzLCAxLjk3MTY5NiwgMC4wMDAw XQo+ID4+ICsJCSAqLwo+ID4+ICsJCVtEUk1fQ09MT1JfWUNCQ1JfQlQ2MDFdID0gewo+ID4+ICsJ CQkweDdDQzgsIDB4Nzk1MCwgMHgwLAo+ID4+ICsJCQkweDhDQjgsIDB4NzkxOCwgMHg5QzQwLAo+ ID4+ICsJCQkweDAsIDB4NzkxOCwgMHg3RkM4LAo+ID4+ICsJCX0sCj4gPj4gKwkJLyoKPiA+PiAr CQkgKiBCVC43MDkgTGltaXRlZCByYW5nZSBZQ2JDciAtPiBmdWxsIHJhbmdlIFJHQgo+ID4+ICsJ CSAqIFRoZSBtYXRyaXggcmVxdWlyZWQgaXMgOgo+ID4+ICsJCSAqIFsxLjE2NCwgMC4wMDAsIDEu ODMzNjcxLAo+ID4+ICsJCSAqICAxLjEzODM5MywgLTAuMjEzMjQ5LCAtMC41MzI5MDksCj4gPj4g KwkJICogIDEuMTM4MzkzLCAyLjExMjQwMiwgMC4wMDAwXQo+ID4+ICsJCSAqLwo+ID4+ICsJCVtE Uk1fQ09MT1JfWUNCQ1JfQlQ3MDldID0gewo+ID4+ICsJCQkweDdFQTgsIDB4Nzk1MCwgMHgwLAo+ ID4+ICsJCQkweDg4ODgsIDB4NzkxOCwgMHhBREE4LAo+ID4+ICsJCQkweDAsIDB4NzkxOCwgIDB4 Njg3MCwKPiA+PiArCQl9LAo+ID4+ICsJfTsKPiA+PiArCWNvbnN0IHUxNiAqY3NjOwo+ID4+ICsK PiA+PiArCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9yYW5nZSA9PQo+ID5EUk1fQ09MT1Jf WUNCQ1JfRlVMTF9SQU5HRSkKPiA+PiArCQljc2MgPSBpbnB1dF9jc2NfbWF0cml4W3BsYW5lX3N0 YXRlLT5iYXNlLmNvbG9yX2VuY29kaW5nXTsKPiA+PiArCWVsc2UKPiA+PiArCQljc2MgPSBpbnB1 dF9jc2NfbWF0cml4X2xyW3BsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX2VuY29kaW5nXTsKPiA+PiAr Cj4gPj4gKwlJOTE1X1dSSVRFKFBMQU5FX0lOUFVUX0NTQ19DT0VGRihwaXBlLCBwbGFuZSwgMCks IFJPRkYoY3NjWzBdKSB8Cj4gPj4gKwkJICAgR09GRihjc2NbMV0pKTsKPiA+PiArCUk5MTVfV1JJ VEUoUExBTkVfSU5QVVRfQ1NDX0NPRUZGKHBpcGUsIHBsYW5lLCAxKSwgQk9GRihjc2NbMl0pKTsK PiA+PiArCUk5MTVfV1JJVEUoUExBTkVfSU5QVVRfQ1NDX0NPRUZGKHBpcGUsIHBsYW5lLCAyKSwg Uk9GRihjc2NbM10pIHwKPiA+PiArCQkgICBHT0ZGKGNzY1s0XSkpOwo+ID4+ICsJSTkxNV9XUklU RShQTEFORV9JTlBVVF9DU0NfQ09FRkYocGlwZSwgcGxhbmUsIDMpLCBCT0ZGKGNzY1s1XSkpOwo+ ID4+ICsJSTkxNV9XUklURShQTEFORV9JTlBVVF9DU0NfQ09FRkYocGlwZSwgcGxhbmUsIDQpLCBS T0ZGKGNzY1s2XSkgfAo+ID4+ICsJCSAgIEdPRkYoY3NjWzddKSk7Cj4gPj4gKwlJOTE1X1dSSVRF KFBMQU5FX0lOUFVUX0NTQ19DT0VGRihwaXBlLCBwbGFuZSwgNSksIEJPRkYoY3NjWzhdKSk7Cj4g Pj4gKwo+ID4+ICsJSTkxNV9XUklURShQTEFORV9JTlBVVF9DU0NfUFJFT0ZGKHBpcGUsIHBsYW5l LCAwKSwKPiA+PiArCQkgICBQUkVPRkZfWVVWX1RPX1JHQl9ISSk7Cj4gPj4gKwlJOTE1X1dSSVRF KFBMQU5FX0lOUFVUX0NTQ19QUkVPRkYocGlwZSwgcGxhbmUsIDEpLAo+ID4+ICsJCSAgIFBSRU9G Rl9ZVVZfVE9fUkdCX01FKTsKPiA+PiArCUk5MTVfV1JJVEUoUExBTkVfSU5QVVRfQ1NDX1BSRU9G RihwaXBlLCBwbGFuZSwgMiksCj4gPj4gKwkJICAgUFJFT0ZGX1lVVl9UT19SR0JfTE8pOwo+ID4+ ICsKPiA+PiArCUk5MTVfV1JJVEUoUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkYocGlwZSwgcGxhbmUs IDApLCAweDApOwo+ID4+ICsJSTkxNV9XUklURShQTEFORV9JTlBVVF9DU0NfUE9TVE9GRihwaXBl LCBwbGFuZSwgMSksIDB4MCk7Cj4gPj4gKwlJOTE1X1dSSVRFKFBMQU5FX0lOUFVUX0NTQ19QT1NU T0ZGKHBpcGUsIHBsYW5lLCAyKSwgMHgwKTsgfQo+ID4KPiA+T2ggYW5kIHBsZWFzZSBtb3ZlIHRo aXMgZnVuY3Rpb24gaW50byBpbnRlbF9zcHJpdGUuYy4gVGhhdCB3YXkgaXQgY2FuIGJlIHN0YXRp Yy4KPiAKPiBXZSB3ZXJlIHRyeWluZyB0byBjb25zb2xpZGF0ZSBhbGwgdGhlIGNvbG9yIHN0dWZm IGFuZCB0aGUgaGVscGVyIGZ1bmN0aW9ucyBpbiAKPiBpbnRlbF9jb2xvci5jLgoKSSBwcmVmZXIg b3JnYW5pemluZyBiYXNlZCBvbiBoYXJkd2FyZSBibG9jay4gSWYgdGhlcmUgaXMgb3RoZXIgdXNl IGZvcgp0aGUgc2FtZSBtYXRyaWNlcyBhbmQgd2hhdG5vdCB0aG9zZSBjYW4gb2YgY291cnNlIGJl IHB1dCBpbnRvCmludGVsX2NvbG9yLmMsIGJ1dCB0aGUgcGxhbmUgcHJvZ3JhbW1pbmcgc3R1ZmYg c2hvdWxkIGJlIGluIHRoZSBwbGFuZQpjb2RlIElNTy4KCj4gU2luY2UgaXRzIGN1cnJlbnRseSBj YWxsZWQgZnJvbSBvbmUgcGxhY2UsIGl0IGNhbiBiZSBtYWRlIHN0YXRpYy4KPiBXaWxsIHVwZGF0 ZSB0aGUgcGF0Y2guIFRoYW5rcy4KPiAKPiA+PiArCj4gPj4gIHZvaWQgaW50ZWxfY29sb3JfaW5p dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpICB7Cj4gPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7IGRpZmYgLS1naXQKPiA+PiBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4gaW5kZXggZmUwNDVhYi4uZDE2YTA2NCAxMDA2NDQKPiA+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiBAQCAtMzY2Niw2ICszNjY2 LDcgQEAgdTMyIGdsa19wbGFuZV9jb2xvcl9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUKPiA+KmNydGNfc3RhdGUsCj4gPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPQo+ID4+ICAJCXRvX2k5MTUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUtPmRldik7Cj4gPj4g IAljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZi Owo+ID4+ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5l X3N0YXRlLT5iYXNlLnBsYW5lKTsKPiA+PiAgCXUzMiBwbGFuZV9jb2xvcl9jdGwgPSAwOwo+ID4+ Cj4gPj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKSB7Cj4gPj4gQEAgLTM2NzYsMTMg KzM2NzcsMjMgQEAgdTMyIGdsa19wbGFuZV9jb2xvcl9jdGwoY29uc3Qgc3RydWN0Cj4gPmludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPj4gIAlwbGFuZV9jb2xvcl9jdGwgfD0gZ2xrX3Bs YW5lX2NvbG9yX2N0bF9hbHBoYShwbGFuZV9zdGF0ZSk7Cj4gPj4KPiA+PiAgCWlmIChmYi0+Zm9y bWF0LT5pc195dXYpIHsKPiA+PiAtCQlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2Rp bmcgPT0KPiA+RFJNX0NPTE9SX1lDQkNSX0JUNzA5KQo+ID4+IC0JCQlwbGFuZV9jb2xvcl9jdGwg fD0KPiA+UExBTkVfQ09MT1JfQ1NDX01PREVfWVVWNzA5X1RPX1JHQjcwOTsKPiA+PiAtCQllbHNl Cj4gPj4gLQkJCXBsYW5lX2NvbG9yX2N0bCB8PQo+ID5QTEFORV9DT0xPUl9DU0NfTU9ERV9ZVVY2 MDFfVE9fUkdCNzA5Owo+ID4+ICsJCWlmICghaWNsX2lzX2hkcl9wbGFuZShwbGFuZSkpIHsKPiA+ PiArCQkJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX2VuY29kaW5nID09Cj4gPj4gKwkJCQkJ RFJNX0NPTE9SX1lDQkNSX0JUNzA5KQo+ID4+ICsJCQkJcGxhbmVfY29sb3JfY3RsIHw9Cj4gPj4g Kwo+ID4JUExBTkVfQ09MT1JfQ1NDX01PREVfWVVWNzA5X1RPX1JHQjcwOTsKPiA+PiArCQkJZWxz ZQo+ID4+ICsJCQkJcGxhbmVfY29sb3JfY3RsIHw9Cj4gPj4gKwo+ID4JUExBTkVfQ09MT1JfQ1ND X01PREVfWVVWNjAxX1RPX1JHQjcwOTsKPiA+Pgo+ID4+IC0JCWlmIChwbGFuZV9zdGF0ZS0+YmFz ZS5jb2xvcl9yYW5nZSA9PQo+ID5EUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRSkKPiA+PiAtCQkJ cGxhbmVfY29sb3JfY3RsIHw9Cj4gPlBMQU5FX0NPTE9SX1lVVl9SQU5HRV9DT1JSRUNUSU9OX0RJ U0FCTEU7Cj4gPj4gKwkJCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9yYW5nZSA9PQo+ID4+ ICsJCQkJCURSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQo+ID4+ICsJCQkJcGxhbmVfY29sb3Jf Y3RsIHw9Cj4gPj4gKwo+ID4JUExBTkVfQ09MT1JfWVVWX1JBTkdFX0NPUlJFQ1RJT05fRElTQUJM RTsKPiA+PiArCQl9IGVsc2Ugewo+ID4+ICsJCQlpY2xfcHJvZ3JhbV9pbnB1dF9jc2NfY29lZmYo Y3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+ID4+ICsJCQlwbGFuZV9jb2xvcl9jdGwgfD0gUExB TkVfQ09MT1JfSU5QVVRfQ1NDX0VOQUJMRTsKPiA+PiArCQl9Cj4gPj4gIAl9Cj4gPj4KPiA+PiAg CXJldHVybiBwbGFuZV9jb2xvcl9jdGw7Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+ID4+IGluZGV4IGRiMjQzMDguLmJkOWU5NDYgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4+IEBAIC0yMjg1LDYgKzIyODUsOCBAQCBpbnQgaW50ZWxfcGxhbmVfYXRv bWljX2NoZWNrX3dpdGhfc3RhdGUoY29uc3QKPiA+PiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq b2xkX2NydGNfICBpbnQgaW50ZWxfY29sb3JfY2hlY2soc3RydWN0Cj4gPj4gZHJtX2NydGMgKmNy dGMsIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOyAgdm9pZAo+ID4+IGludGVsX2NvbG9y X3NldF9jc2Moc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsgIHZvaWQKPiA+PiBp bnRlbF9jb2xvcl9sb2FkX2x1dHMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsK PiA+PiArdm9pZCBpY2xfcHJvZ3JhbV9pbnB1dF9jc2NfY29lZmYoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPj4gKwkJCQkgY29uc3Qgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4gPj4KPiA+PiAgLyogaW50ZWxfbHNwY29uLmMgKi8K PiA+PiAgYm9vbCBsc3Bjb25faW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCk7Cj4gPj4gLS0KPiA+PiAxLjkuMQo+ID4+Cj4gPj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4gPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPgo+ID4tLQo+ID5W aWxsZSBTeXJqw6Rsw6QKPiA+SW50ZWwKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==