From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v8 2/2] drm/i915/icl: Enable Plane Input CSC for YUV to RGB Conversion Date: Thu, 1 Nov 2018 20:29:36 +0200 Message-ID: <20181101182936.GL9144@intel.com> References: <1541097192-12300-1-git-send-email-uma.shankar@intel.com> <1541097192-12300-3-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id A6D936E468 for ; Thu, 1 Nov 2018 18:29:40 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1541097192-12300-3-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Uma Shankar Cc: intel-gfx@lists.freedesktop.org, ville.syrjala@intel.com, maarten.lankhorst@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMDIsIDIwMTggYXQgMTI6MDM6MTJBTSArMDUzMCwgVW1hIFNoYW5rYXIgd3Jv dGU6Cj4gUGxhbmUgaW5wdXQgQ1NDIG5lZWRzIHRvIGJlIGVuYWJsZWQgdG8gY29udmVydCBmcmFt YnVmZmVycyBmcm9tCj4gWVVWIHRvIFJHQi4gVGhpcyBpcyBuZWVkZWQgZm9yIGJvdHRvbSAzIHBs YW5lcyBvbiBJQ0wsIHJlc3Qgb2YKPiB0aGUgcGxhbmVzIGhhdmUgaGFyZGNvZGVkIGNvbnZlcnNp b24gYW5kIHRha2VuIGNhcmUgYnkgdGhlIGxlZ2FjeQo+IGNvZGUuCj4gCj4gVGhpcyBwYXRjaCBk ZWZpbmVzIHRoZSBjby1lZmZpY2llbnQgdmFsdWVzIGZvciBZVVYgdG8gUkdCIGNvbnZlcnNpb24K PiBpbiBCVDcwOSBhbmQgQlQ2MDEgZm9ybWF0cy4gSXQgcHJvZ3JhbXMgdGhlIGNvZWZmaWNpZW50 cyBhbmQgZW5hYmxlcwo+IHRoZSBwbGFuZSBpbnB1dCBjc2MgdW5pdCBpbiBoYXJkd2FyZS4KPiAK PiBUaGlzIGhhcyBiZWVuIHZlcmlmaWVkIGFuZCB0ZXN0ZWQgYnkgTWFhcnRlbiBhbmQgdGhlIGNo YW5nZSBpcyB3b3JraW5nCj4gYXMgZXhwZWNwdGVkLgo+IAo+IHYyOiBBZGRyZXNzZWQgTWFhcnRl bidzIGFuZCBWaWxsZSdzIHJldmlldyBjb21tZW50cyBhbmQgYWRkZWQgdGhlCj4gY29lZmZpY2ll bnRzIGluIGEgMkQgYXJyYXkgaW5zdGVhZCBvZiBpbmRlcGVuZGVudCBNYWNyb3MuCj4gCj4gdjM6 IEFkZGVkIGluZGl2aWR1YWwgY29lZmZpY2llbnQgbWF0cml4ICg5IHZhbHVlcykgaW5zdGVhZCBv ZiA2Cj4gcmVnaXN0ZXIgdmFsdWVzIGFzIHBlciBNYWFydGVuJ3MgY29tbWVudC4gQWxzbyBhZGRy ZXNlZCBhIHNoaWZ0Cj4gaXNzdWUgd2l0aCBCIGNoYW5uZWwgY29lZmZpY2llbnQuCj4gCj4gdjQ6 IEFkZGVkIHN1cHBvcnQgZm9yIExpbWl0ZWQgUmFuZ2UgQ29sb3IgSGFuZGxpbmcKPiAKPiB2NTog Rml4ZWQgTWF0dCBhbmQgTWFhcnRlbidzIHJldmlldyBjb21tZW50cy4KPiAKPiB2NjogQWRkZWQg aHVtYW4gcmVhZGFibGUgbWF0cml4IHZhbHVlcyBmb3IgWVVWIHRvIFJHQiBDb252ZXJzaW9uIGFs b25nCj4gd2l0aCBqdXN0IHRoZSBic3BlYyByZWdpc3RlciB2YWx1ZXMsIGFzIHBlciBNYXR0J3Mg c3VnZ2VzdGlvbi4KPiAKPiB2NzogUmVmYWN0b3JlZCB0aGUgY29kZSwgbW92ZSBjc2MgY29lZmZp Y2llbnQgcHJvZ3JhbW1pbmcgZnVuY3Rpb24gdG8KPiBpbnRlbF9zcHJpdGUuYyBhbmQgbWFkZSBp dCBzdGF0aWMgYXMgcGVyIFZpbGxlJ3MgcmV2aWV3IGNvbW1lbnQuCj4gCj4gdjg6IEFkZHJlc3Nl ZCBWaWxsZSdzIHJldmlldyBjb21tZW50LiBDYWxsZWQgdGhlIGNvZWZmaWNpZW50IHByb2dyYW1t aW5nCj4gZnJvbSB3aXRoaW4gdGhlIHNrbF9wcm9ncmFtX3BsYW5lIGFuZCB1c2VkIEk5MTVfV1JJ VEVfRlcgaW5zdGVhZCBvZgo+IEk5MTVfV1JJVEUuCj4gCj4gU2lnbmVkLW9mZi1ieTogVW1hIFNo YW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogTWF0dCBSb3BlciA8 bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9y c3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAKPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDE3ICsrKystLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAxMDggKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggZmUw NDVhYi4uZGFlYzFmZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBA QCAtMzY2Niw2ICszNjY2LDcgQEAgdTMyIGdsa19wbGFuZV9jb2xvcl9jdGwoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPQo+ICAJCXRvX2k5MTUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUtPmRldik7 Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNl LmZiOwo+ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5l X3N0YXRlLT5iYXNlLnBsYW5lKTsKPiAgCXUzMiBwbGFuZV9jb2xvcl9jdGwgPSAwOwo+ICAKPiAg CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpIHsKPiBAQCAtMzY3NSwxNCArMzY3NiwyMCBA QCB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKPiAgCXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9DT0xPUl9QTEFORV9HQU1N QV9ESVNBQkxFOwo+ICAJcGxhbmVfY29sb3JfY3RsIHw9IGdsa19wbGFuZV9jb2xvcl9jdGxfYWxw aGEocGxhbmVfc3RhdGUpOwo+ICAKPiAtCWlmIChmYi0+Zm9ybWF0LT5pc195dXYpIHsKPiAtCQlp ZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNSX0JU NzA5KQo+IC0JCQlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfQ1NDX01PREVfWVVWNzA5 X1RPX1JHQjcwOTsKPiArCWlmIChmYi0+Zm9ybWF0LT5pc195dXYgJiYgIWljbF9pc19oZHJfcGxh bmUocGxhbmUpKSB7Cj4gKwkJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX2VuY29kaW5nID09 Cj4gKwkJCQlEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkpCj4gKwkJCXBsYW5lX2NvbG9yX2N0bCB8PQo+ ICsJCQkJUExBTkVfQ09MT1JfQ1NDX01PREVfWVVWNzA5X1RPX1JHQjcwOTsKPiAgCQllbHNlCj4g LQkJCXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9DT0xPUl9DU0NfTU9ERV9ZVVY2MDFfVE9fUkdC NzA5Owo+ICsJCQlwbGFuZV9jb2xvcl9jdGwgfD0KPiArCQkJCVBMQU5FX0NPTE9SX0NTQ19NT0RF X1lVVjYwMV9UT19SR0I3MDk7Cj4gIAo+ICAJCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9y YW5nZSA9PSBEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRSkKPiAtCQkJcGxhbmVfY29sb3JfY3Rs IHw9IFBMQU5FX0NPTE9SX1lVVl9SQU5HRV9DT1JSRUNUSU9OX0RJU0FCTEU7Cj4gKwkJCXBsYW5l X2NvbG9yX2N0bCB8PQo+ICsJCQlQTEFORV9DT0xPUl9ZVVZfUkFOR0VfQ09SUkVDVElPTl9ESVNB QkxFOwoKVGhlc2UgZm9ybWF0dGluZyBjaGFuZ2VzIHRvIHRoZSBTRFIgcGxhbmUgcGF0aCBkb24n dCBzZWVtIHRvIGJlbG9uZwppbiB0aGlzIHBhdGNoLiBKdXN0IGFkZHMgbm9pc2UgbWFraW5nIGl0 IGhhcmQgdG8gc2VlIHdoYXQgaXMgYWN0dWFsbHkKY2hhbmdlZC4KCj4gKwl9IGVsc2UgaWYgKGZi LT5mb3JtYXQtPmlzX3l1dikgewo+ICsJCXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9DT0xPUl9J TlBVVF9DU0NfRU5BQkxFOwo+ICAJfQo+ICAKPiAgCXJldHVybiBwbGFuZV9jb2xvcl9jdGw7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCBjNjA0ZjZiLi4wYjljZjI5IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtNDAsNiArNDAsNyBAQAo+ ICAjaW5jbHVkZSAiaW50ZWxfZnJvbnRidWZmZXIuaCIKPiAgI2luY2x1ZGUgPGRybS9pOTE1X2Ry bS5oPgo+ICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiArI2luY2x1ZGUgPGRybS9kcm1fY29sb3Jf bWdtdC5oPgo+ICAKPiAgaW50IGludGVsX3VzZWNzX3RvX3NjYW5saW5lcyhjb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSwKPiAgCQkJICAgICBpbnQgdXNlY3MpCj4g QEAgLTM2MSw2ICszNjIsMTA5IEBAIGludCBpbnRlbF9wbGFuZV9jaGVja19zcmNfY29vcmRpbmF0 ZXMoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiAgCQkgICAgICAoKGNy dGNfdyArIDEpIDw8IDE2KXwoY3J0Y19oICsgMSkpOwo+ICB9Cj4gIAo+ICsvKiBQcmVvZmZzZXQg dmFsdWVzIGZvciBZVVYgdG8gUkdCIENvbnZlcnNpb24gKi8KPiArI2RlZmluZSBQUkVPRkZfWVVW X1RPX1JHQl9ISQkJMHgxODAwCj4gKyNkZWZpbmUgUFJFT0ZGX1lVVl9UT19SR0JfTUUJCTB4MUYw MAo+ICsjZGVmaW5lIFBSRU9GRl9ZVVZfVE9fUkdCX0xPCQkweDE4MDAKPiArCj4gKyNkZWZpbmUg IFJPRkYoeCkgICAgICAgICAgKCgoeCkgJiAweGZmZmYpIDw8IDE2KQo+ICsjZGVmaW5lICBHT0ZG KHgpICAgICAgICAgICgoKHgpICYgMHhmZmZmKSA8PCAwKQo+ICsjZGVmaW5lICBCT0ZGKHgpICAg ICAgICAgICgoKHgpICYgMHhmZmZmKSA8PCAxNikKPiArCj4gK3N0YXRpYyB2b2lkCj4gK2ljbF9w cm9ncmFtX2lucHV0X2NzY19jb2VmZihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiArCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gKwkJ dG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZS0+ZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICsJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9w bGFuZSA9Cj4gKwkJdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwoKcy9p bnRlbF9wbGFuZS9wbGFuZS8KCj4gKwllbnVtIHBsYW5lX2lkIHBsYW5lID0gaW50ZWxfcGxhbmUt PmlkOwoKcy9wbGFuZS9wbGFuZV9pZC8KCkkgYW0gdHJ5aW5nIHRvIG1ha2UgdGhlIGRyaXZlciB1 c2UgY29uc2lzdG5ldCBuYW1lcyBmb3IgdGhpbmdzLgpMZXQncyBub3QgZ28gYWdhaW5zdCB0aGF0 IHByb2Nlc3Mgd2hlbiBhZGRpbmcgbmV3IGNvZGUuCgo+ICsKPiArCXN0YXRpYyBjb25zdCB1MTYg aW5wdXRfY3NjX21hdHJpeFtdWzldID0gewo+ICsJCS8qCj4gKwkJICogQlQuNjAxIGZ1bGwgcmFu Z2UgWUNiQ3IgLT4gZnVsbCByYW5nZSBSR0IKPiArCQkgKiBUaGUgbWF0cml4IHJlcXVpcmVkIGlz IDoKPiArCQkgKiBbMS4wMDAsIDAuMDAwLCAxLjM3MSwKPiArCQkgKiAgMS4wMDAsIC0wLjMzNiwg LTAuNjk4LAo+ICsJCSAqICAxLjAwMCwgMS43MzIsIDAuMDAwMF0KPiArCQkgKi8KPiArCQlbRFJN X0NPTE9SX1lDQkNSX0JUNjAxXSA9IHsKPiArCQkJMHg3QUY4LCAweDc4MDAsIDB4MCwKPiArCQkJ MHg4QjI4LCAweDc4MDAsIDB4OUFDMCwKPiArCQkJMHgwLCAweDc4MDAsIDB4N0REOCwKPiArCQl9 LAo+ICsJCS8qCj4gKwkJICogQlQuNzA5IGZ1bGwgcmFuZ2UgWUNiQ3IgLT4gZnVsbCByYW5nZSBS R0IKPiArCQkgKiBUaGUgbWF0cml4IHJlcXVpcmVkIGlzIDoKPiArCQkgKiBbMS4wMDAsIDAuMDAw LCAxLjU3NCwKPiArCQkgKiAgMS4wMDAsIC0wLjE4NywgLTAuNDY4LAo+ICsJCSAqICAxLjAwMCwg MS44NTUsIDAuMDAwMF0KPiArCQkgKi8KPiArCQlbRFJNX0NPTE9SX1lDQkNSX0JUNzA5XSA9IHsK PiArCQkJMHg3Qzk4LCAweDc4MDAsIDB4MCwKPiArCQkJMHg5RUY4LCAweDc4MDAsIDB4QUJGOCwK PiArCQkJMHgwLCAweDc4MDAsICAweDdFRDgsCj4gKwkJfSwKPiArCX07Cj4gKwo+ICsJLyogTWF0 cml4IGZvciBMaW1pdGVkIFJhbmdlIHRvIEZ1bGwgUmFuZ2UgQ29udmVyc2lvbiAqLwo+ICsJc3Rh dGljIGNvbnN0IHUxNiBpbnB1dF9jc2NfbWF0cml4X2xyW11bOV0gPSB7Cj4gKwkJLyoKPiArCQkg KiBCVC42MDEgTGltdGVkIHJhbmdlIFlDYkNyIC0+IGZ1bGwgcmFuZ2UgUkdCCj4gKwkJICogVGhl IG1hdHJpeCByZXF1aXJlZCBpcyA6Cj4gKwkJICogWzEuMTY0Mzg0LCAwLjAwMCwgMS41OTYzNzAs Cj4gKwkJICogIDEuMTM4MzkzLCAtMC4zODI1MDAsIC0wLjc5NDU5OCwKPiArCQkgKiAgMS4xMzgz OTMsIDEuOTcxNjk2LCAwLjAwMDBdCj4gKwkJICovCj4gKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDYw MV0gPSB7Cj4gKwkJCTB4N0NDOCwgMHg3OTUwLCAweDAsCj4gKwkJCTB4OENCOCwgMHg3OTE4LCAw eDlDNDAsCj4gKwkJCTB4MCwgMHg3OTE4LCAweDdGQzgsCj4gKwkJfSwKPiArCQkvKgo+ICsJCSAq IEJULjcwOSBMaW1pdGVkIHJhbmdlIFlDYkNyIC0+IGZ1bGwgcmFuZ2UgUkdCCj4gKwkJICogVGhl IG1hdHJpeCByZXF1aXJlZCBpcyA6Cj4gKwkJICogWzEuMTY0LCAwLjAwMCwgMS44MzM2NzEsCj4g KwkJICogIDEuMTM4MzkzLCAtMC4yMTMyNDksIC0wLjUzMjkwOSwKPiArCQkgKiAgMS4xMzgzOTMs IDIuMTEyNDAyLCAwLjAwMDBdCj4gKwkJICovCj4gKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDcwOV0g PSB7Cj4gKwkJCTB4N0VBOCwgMHg3OTUwLCAweDAsCj4gKwkJCTB4ODg4OCwgMHg3OTE4LCAweEFE QTgsCj4gKwkJCTB4MCwgMHg3OTE4LCAgMHg2ODcwLAo+ICsJCX0sCj4gKwl9Owo+ICsJY29uc3Qg dTE2ICpjc2M7Cj4gKwo+ICsJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX3JhbmdlID09IERS TV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQo+ICsJCWNzYyA9IGlucHV0X2NzY19tYXRyaXhbcGxh bmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmddOwo+ICsJZWxzZQo+ICsJCWNzYyA9IGlucHV0 X2NzY19tYXRyaXhfbHJbcGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmddOwo+ICsKPiAr CUk5MTVfV1JJVEVfRlcoUExBTkVfSU5QVVRfQ1NDX0NPRUZGKHBpcGUsIHBsYW5lLCAwKSwgUk9G Rihjc2NbMF0pIHwKPiArCQkgICBHT0ZGKGNzY1sxXSkpOwoKU29tZSBhbGlnbm1lbnQgaXNzdWVz IGhlcmUuIEkgZ3Vlc3MgbWlzc2luZyBhIHJlaW5kZW50IGFmdGVyCmFkZGluZyB0aGUgX0ZXKCku Cgo+ICsJSTkxNV9XUklURV9GVyhQTEFORV9JTlBVVF9DU0NfQ09FRkYocGlwZSwgcGxhbmUsIDEp LCBCT0ZGKGNzY1syXSkpOwo+ICsJSTkxNV9XUklURV9GVyhQTEFORV9JTlBVVF9DU0NfQ09FRkYo cGlwZSwgcGxhbmUsIDIpLCBST0ZGKGNzY1szXSkgfAo+ICsJCSAgIEdPRkYoY3NjWzRdKSk7Cj4g KwlJOTE1X1dSSVRFX0ZXKFBMQU5FX0lOUFVUX0NTQ19DT0VGRihwaXBlLCBwbGFuZSwgMyksIEJP RkYoY3NjWzVdKSk7Cj4gKwlJOTE1X1dSSVRFX0ZXKFBMQU5FX0lOUFVUX0NTQ19DT0VGRihwaXBl LCBwbGFuZSwgNCksIFJPRkYoY3NjWzZdKSB8Cj4gKwkJICAgR09GRihjc2NbN10pKTsKPiArCUk5 MTVfV1JJVEVfRlcoUExBTkVfSU5QVVRfQ1NDX0NPRUZGKHBpcGUsIHBsYW5lLCA1KSwgQk9GRihj c2NbOF0pKTsKPiArCj4gKwlJOTE1X1dSSVRFX0ZXKFBMQU5FX0lOUFVUX0NTQ19QUkVPRkYocGlw ZSwgcGxhbmUsIDApLAo+ICsJCSAgIFBSRU9GRl9ZVVZfVE9fUkdCX0hJKTsKPiArCUk5MTVfV1JJ VEVfRlcoUExBTkVfSU5QVVRfQ1NDX1BSRU9GRihwaXBlLCBwbGFuZSwgMSksCj4gKwkJICAgUFJF T0ZGX1lVVl9UT19SR0JfTUUpOwo+ICsJSTkxNV9XUklURV9GVyhQTEFORV9JTlBVVF9DU0NfUFJF T0ZGKHBpcGUsIHBsYW5lLCAyKSwKPiArCQkgICBQUkVPRkZfWVVWX1RPX1JHQl9MTyk7Cj4gKwlJ OTE1X1dSSVRFX0ZXKFBMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGKHBpcGUsIHBsYW5lLCAwKSwgMHgw KTsKPiArCUk5MTVfV1JJVEVfRlcoUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkYocGlwZSwgcGxhbmUs IDEpLCAweDApOwo+ICsJSTkxNV9XUklURV9GVyhQTEFORV9JTlBVVF9DU0NfUE9TVE9GRihwaXBl LCBwbGFuZSwgMiksIDB4MCk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkCj4gIHNrbF9wcm9ncmFt X3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAkJICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiBAQCAtMzgxLDYgKzQ4NSw3IEBAIGludCBpbnRl bF9wbGFuZV9jaGVja19zcmNfY29vcmRpbmF0ZXMoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKPiAgCXVpbnQzMl90IHNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0 YXRlLT5iYXNlLnNyYykgPj4gMTY7Cj4gIAl1aW50MzJfdCBzcmNfaCA9IGRybV9yZWN0X2hlaWdo dCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAq bGlua2VkID0gcGxhbmVfc3RhdGUtPmxpbmtlZF9wbGFuZTsKPiArCWNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Cj4gIAl1bnNpZ25lZCBsb25n IGlycWZsYWdzOwo+ICAJdTMyIGtleW1zayA9IDAsIGtleW1heCA9IDA7Cj4gIAo+IEBAIC0zOTQs NiArNDk5LDkgQEAgaW50IGludGVsX3BsYW5lX2NoZWNrX3NyY19jb29yZGluYXRlcyhzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICAJCUk5MTVfV1JJVEVfRlcoUExBTkVf Q09MT1JfQ1RMKHBpcGUsIHBsYW5lX2lkKSwKPiAgCQkJICAgICAgcGxhbmVfc3RhdGUtPmNvbG9y X2N0bCk7Cj4gIAo+ICsJaWYgKGZiLT5mb3JtYXQtPmlzX3l1diAmJiBpY2xfaXNfaGRyX3BsYW5l KHBsYW5lKSkKPiArCQlpY2xfcHJvZ3JhbV9pbnB1dF9jc2NfY29lZmYoY3J0Y19zdGF0ZSwgcGxh bmVfc3RhdGUpOwo+ICsKPiAgCWlmIChrZXktPmZsYWdzKSB7Cj4gIAkJSTkxNV9XUklURV9GVyhQ TEFORV9LRVlWQUwocGlwZSwgcGxhbmVfaWQpLCBrZXktPm1pbl92YWx1ZSk7Cj4gIAo+IC0tIAo+ IDEuOS4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=