From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/5] drm/i915: Add support for the YCbCr COLOR_ENCODING property Date: Fri, 16 Jun 2017 16:02:28 +0300 Message-ID: <20170616130228.GH12629@intel.com> References: <20170608203315.21196-1-ville.syrjala@linux.intel.com> <20170608203315.21196-4-ville.syrjala@linux.intel.com> <369c270e-d994-d3ad-824b-99333af70727@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 04A4E6E880 for ; Fri, 16 Jun 2017 13:02:32 +0000 (UTC) Content-Disposition: inline In-Reply-To: <369c270e-d994-d3ad-824b-99333af70727@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, Jyri Sarha List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdW4gMTUsIDIwMTcgYXQgMDY6NTI6NTNQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBSZWdhcmRzCj4gCj4gU2hhc2hhbmsKPiAKPiAKPiBPbiA2LzkvMjAxNyAyOjAz IEFNLCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPgo+ID4gQWRkIHN1 cHBvcnQgZm9yIHRoZSBDT0xPUl9FTkNPRElORyBwbGFuZSBwcm9wZXJ0eSB3aGljaCBzZWxlY3Rz Cj4gPiB0aGUgbWF0cml4IGNvZWZmaWNpZW50cyB1c2VkIGZvciB0aGUgWUNiQ3ItPlJHQiBjb252 ZXJzaW9uLiBPdXIKPiA+IGhhcmR3YXJlIGNhbiBnZW5lcmFsbHkgaGFuZGxlIEJULjYwMSBhbmQg QlQuNzA5Lgo+ID4KPiA+IENIViBwaXBlIEIgc3ByaXRlcyBoYXZlIGEgZnVsbHkgcHJvZ3JhbW1h YmxlIG1hdHJpeCwgc28gaW4gdGhlb3J5Cj4gPiB3ZSBjb3VsZCBoYW5kbGUgYW55dGhpbmcsIGJ1 dCBpdCBkb2Vzbid0IHNlZW0gYWxsIHRoYXQgdXNlZnVsIHRvCj4gPiBleHBvc2UgYW55dGhpbmcg YmV5b25kIEJULjYwMSBhbmQgQlQuNzA5IGF0IHRoaXMgdGltZS4KPiA+Cj4gPiBHTEsgY2FuIHN1 cHBvc2VkbHkgZG8gQlQuMjAyMCwgYnV0IGxldCdzIGxlYXZlIGVuYWJsaW5nIHRoYXQgZm9yCj4g PiB0aGUgZnV0dXJlIGFzIHdlbGwuCj4gPgo+ID4gQ2M6IEp5cmkgU2FyaGEgPGpzYXJoYUB0aS5j b20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggICAgICB8ICAzICsrCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyB8IDE5ICsrKysrKysrKy0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jICB8IDYxICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ID4gICAzIGZp bGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gaW5kZXggZjRmNTFlN2EzZTgzLi5iYWMzZWMzNzhiNmUg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBAQCAtNTYxMiw2ICs1NjEyLDcg QEAgZW51bSB7Cj4gPiAgICNkZWZpbmUgICBEVlNfUElQRV9DU0NfRU5BQkxFICAgKDE8PDI0KQo+ ID4gICAjZGVmaW5lICAgRFZTX1NPVVJDRV9LRVkJKDE8PDIyKQo+ID4gICAjZGVmaW5lICAgRFZT X1JHQl9PUkRFUl9YQkdSCSgxPDwyMCkKPiA+ICsjZGVmaW5lICAgRFZTX1lVVl9DU0NfRk9STUFU X0JUNzA5CSgxPDwxOCkKPiA+ICAgI2RlZmluZSAgIERWU19ZVVZfQllURV9PUkRFUl9NQVNLICgz PDwxNikKPiA+ICAgI2RlZmluZSAgIERWU19ZVVZfT1JERVJfWVVZVgkoMDw8MTYpCj4gPiAgICNk ZWZpbmUgICBEVlNfWVVWX09SREVSX1VZVlkJKDE8PDE2KQo+ID4gQEAgLTU3NTgsNiArNTc1OSw3 IEBAIGVudW0gewo+ID4gICAjZGVmaW5lICAgU1BfRk9STUFUX1JHQkE4ODg4CQkoMHhmPDwyNikK PiA+ICAgI2RlZmluZSAgIFNQX0FMUEhBX1BSRU1VTFRJUExZCQkoMTw8MjMpIC8qIENIViBwaXBl IEIgKi8KPiA+ICAgI2RlZmluZSAgIFNQX1NPVVJDRV9LRVkJCQkoMTw8MjIpCj4gPiArI2RlZmlu ZSAgIFNQX1lVVl9DU0NfRk9STUFUX0JUNzA5CQkoMTw8MTgpCj4gPiAgICNkZWZpbmUgICBTUF9Z VVZfQllURV9PUkRFUl9NQVNLCSgzPDwxNikKPiA+ICAgI2RlZmluZSAgIFNQX1lVVl9PUkRFUl9Z VVlWCQkoMDw8MTYpCj4gPiAgICNkZWZpbmUgICBTUF9ZVVZfT1JERVJfVVlWWQkJKDE8PDE2KQo+ ID4gQEAgLTU4NzYsNiArNTg3OCw3IEBAIGVudW0gewo+ID4gICAjZGVmaW5lICAgUExBTkVfQ1RM X0tFWV9FTkFCTEVfREVTVElOQVRJT04JKCAgMiA8PCAyMSkKPiA+ICAgI2RlZmluZSAgIFBMQU5F X0NUTF9PUkRFUl9CR1JYCQkJKDAgPDwgMjApCj4gPiAgICNkZWZpbmUgICBQTEFORV9DVExfT1JE RVJfUkdCWAkJCSgxIDw8IDIwKQo+ID4gKyNkZWZpbmUgICBQTEFORV9DVExfWVVWX0NTQ19GT1JN QVRfQlQ3MDkJKDEgPDwgMTgpCj4gU2hvdWxkIHdlIGNhbGwgaXQgUExBTkVfQ1RMX0NTQ19ZVVZf Rk9STUFUX0JUNzA5IChvciBzaW1pbGFyKSBzbyB0aGF0IGl0IAo+IHdvdWxkIGJlIGNsZWFyIHRo YXQgc291cmNlIGlzIEJUNzA5IGZvcm1hdC4KPiBSaWdodCBub3csIGl0IGZlZWxzIGxpa2UgQ1ND KGRlc3RpbmF0aW9uKSBmb3JtYXQgaXMgQlQ3MDkuCgpJIGp1c3QgY29weSBwYXN0ZWQgaXQgZnJv bSB0aGUgSVZCIHNwcml0ZSBwbGFuZSBkZWZpbml0aW9uLgoKSSBiZWxpZXZlIHRoZSBzcGVjIGNh bGxzIGl0OgpnNHgrOiAiWVVWIEZvcm1hdCIKaXZiKzogIllVViB0byBSR0IgQ1NDIEZvcm1hdCIK CkkgZ3Vlc3MgSSBjb3VsZCB0cnkgdG8gbGluZSB1cCB0aGUgZGVmaW5pdGlvbnMgdG8gbWF0Y2gg dGhlIHNwZWMgbW9yZQpjbG9zZWx5LgoKCj4gPiAgICNkZWZpbmUgICBQTEFORV9DVExfWVVWNDIy X09SREVSX01BU0sJCSgweDMgPDwgMTYpCj4gPiAgICNkZWZpbmUgICBQTEFORV9DVExfWVVWNDIy X1lVWVYJCQkoICAwIDw8IDE2KQo+ID4gICAjZGVmaW5lICAgUExBTkVfQ1RMX1lVVjQyMl9VWVZZ CQkJKCAgMSA8PCAxNikKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGlu ZGV4IGUyYWFhZjYwYTk2OS4uODEwYjUzYjAxMjhjIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC0zMzIxLDYgKzMzMjEsOSBAQCB1MzIgc2tsX3BsYW5l X2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICAgCQkJ UExBTkVfQ1RMX1BJUEVfR0FNTUFfRU5BQkxFIHwKPiA+ICAgCQkJUExBTkVfQ1RMX1BJUEVfQ1ND X0VOQUJMRSB8Cj4gPiAgIAkJCVBMQU5FX0NUTF9QTEFORV9HQU1NQV9ESVNBQkxFOwo+ID4gKwo+ ID4gKwkJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX2VuY29kaW5nID09IERSTV9DT0xPUl9Z Q0JDUl9CVDcwOSkKPiA+ICsJCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1lVVl9DU0NfRk9STUFU X0JUNzA5Owo+ID4gICAJfQo+ID4gICAKPiA+ICAgCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3Rs X2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpOwo+ID4gQEAgLTMzNDQsOCArMzM0NywxMiBAQCB1 MzIgZ2xrX2NvbG9yX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQo+ID4gICAJCVBMQU5FX0NPTE9SX1BJUEVfQ1NDX0VOQUJMRSB8Cj4gPiAgIAkJUExBTkVf Q09MT1JfUExBTkVfR0FNTUFfRElTQUJMRTsKPiA+ICAgCj4gPiAtCWlmIChpbnRlbF9mb3JtYXRf aXNfeXV2KGZiLT5mb3JtYXQtPmZvcm1hdCkpCj4gPiAtCQljb2xvcl9jdGwgfD0gUExBTkVfQ09M T1JfQ1NDX01PREVfWVVWNjAxX1RPX1JHQjcwOTsKPiA+ICsJaWYgKGludGVsX2Zvcm1hdF9pc195 dXYoZmItPmZvcm1hdC0+Zm9ybWF0KSkgewo+ID4gKwkJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNv bG9yX2VuY29kaW5nID09IERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkKPiA+ICsJCQljb2xvcl9jdGwg fD0gUExBTkVfQ09MT1JfQ1NDX01PREVfWVVWNzA5X1RPX1JHQjcwOTsKPiA+ICsJCWVsc2UKPiA+ ICsJCQljb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfQ1NDX01PREVfWVVWNjAxX1RPX1JHQjcwOTsK PiA+ICsJfQo+ID4gICAKPiA+ICAgCXJldHVybiBjb2xvcl9jdGw7Cj4gPiAgIH0KPiA+IEBAIC0x MzgxOSw2ICsxMzgyNiwxNCBAQCBpbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+ID4gICAJCQkJCQkgICBE Uk1fTU9ERV9ST1RBVEVfMCwKPiA+ICAgCQkJCQkJICAgc3VwcG9ydGVkX3JvdGF0aW9ucyk7Cj4g PiAgIAo+ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+IEkgYW0gc2VlaW5nIGZl dyBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSAgY2hlY2tzIGFib3ZlLCB3b3VsZCBpdCAK PiBtYWtlIHNlbnNlIHRvIHJldXNlIGFueSBvZiB0aG9zZSwgaW5zdGVhZCBvZiBhZGRpbmcKPiBh IG5ldyBvbmUgPwoKSSB3YW50ZWQgdG8ga2VlcCB0aGUgc3RlcHMgY2xlYXJseSBzZXBhcmF0ZS4g Rmlyc3QgaW5pdGlhbGl6ZSB0aGUgcGxhbmUsCnRoZW4gYWRkIHRoZSByb3RhdGlvbiBwcm9wZXJ0 eSwgYW5kIGZpbmFsbHkgYWRkIHRoZSBjb2xvciBwcm9wZXJ0aWVzLgoKPiAKPiAtIFNoYXNoYW5r Cj4gPiArCQlkcm1fcGxhbmVfY3JlYXRlX2NvbG9yX3Byb3BlcnRpZXMoJnByaW1hcnktPmJhc2Us Cj4gPiArCQkJCQkJICBCSVQoRFJNX0NPTE9SX1lDQkNSX0JUNjAxKSB8Cj4gPiArCQkJCQkJICBC SVQoRFJNX0NPTE9SX1lDQkNSX0JUNzA5KSwKPiA+ICsJCQkJCQkgIEJJVChEUk1fQ09MT1JfWUNC Q1JfTElNSVRFRF9SQU5HRSksCj4gPiArCQkJCQkJICBEUk1fQ09MT1JfWUNCQ1JfQlQ2MDEsCj4g PiArCQkJCQkJICBEUk1fQ09MT1JfWUNCQ1JfTElNSVRFRF9SQU5HRSk7Cj4gPiArCj4gPiAgIAlk cm1fcGxhbmVfaGVscGVyX2FkZCgmcHJpbWFyeS0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9m dW5jcyk7Cj4gPiAgIAo+ID4gICAJcmV0dXJuIHByaW1hcnk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zcHJpdGUuYwo+ID4gaW5kZXggY2MwNzE1N2YyZWI2Li5jMjFmNDNkNjRiMDAgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+IEBAIC0zMjgsMzAgKzMyOCw0 NSBAQCBjaHZfdXBkYXRlX2NzYyhjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlKQo+ID4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShwbGFuZS0+YmFzZS5kZXYpOwo+ID4gICAJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKPiA+ICAgCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQg PSBwbGFuZS0+aWQ7Cj4gPiArCS8qCj4gPiArCSAqIHxyfCAgIHwgYzAgYzEgYzIgfCAgIHxjcnwK PiA+ICsJICogfGd8ID0gfCBjMyBjNCBjNSB8IHggfHkgfAo+ID4gKwkgKiB8YnwgICB8IGM2IGM3 IGM4IHwgICB8Y2J8Cj4gPiArCSAqCj4gPiArCSAqIENvZWZmaWNpZW50cyBhcmUgczMuMTIuCj4g PiArCSAqCj4gPiArCSAqIENiIGFuZCBDciBhcHBhcmVudGx5IGNvbWUgaW4gYXMgc2lnbmVkIGFs cmVhZHksIGFuZAo+ID4gKwkgKiB3ZSBhbHdheXMgZ2V0IGZ1bGwgcmFuZ2UgZGF0YSBpbiBvbiBh Y2NvdW50IG9mIENMUkMwLzEuCj4gPiArCSAqLwo+ID4gKwlzdGF0aWMgY29uc3QgczE2IGNzY19t YXRyaXhbXVs5XSA9IHsKPiA+ICsJCS8qIEJULjYwMSBmdWxsIHJhbmdlIFlDYkNyIC0+IGZ1bGwg cmFuZ2UgUkdCICovCj4gPiArCQlbRFJNX0NPTE9SX1lDQkNSX0JUNjAxXSA9IHsKPiA+ICsJCQkg NTc0MywgNDA5NiwgICAgIDAsCj4gPiArCQkJLTI5MjUsIDQwOTYsIC0xNDEwLAo+ID4gKwkJCSAg ICAwLCA0MDk2LCAgNzI1OCwKPiA+ICsJCX0sCj4gPiArCQkvKiBCVC43MDkgZnVsbCByYW5nZSBZ Q2JDciAtPiBmdWxsIHJhbmdlIFJHQiAqLwo+ID4gKwkJW0RSTV9DT0xPUl9ZQ0JDUl9CVDcwOV0g PSB7Cj4gPiArCQkJIDY0NTAsIDQwOTYsICAgICAwLAo+ID4gKwkJCS0xOTE3LCA0MDk2LCAgLTc2 NywKPiA+ICsJCQkgICAgMCwgNDA5NiwgIDc2MDEsCj4gPiArCQl9LAo+ID4gKwl9Owo+ID4gKwlj b25zdCBzMTYgKmNzYyA9IGNzY19tYXRyaXhbcGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2Rp bmddOwo+ID4gICAKPiA+ICAgCS8qIFNlZW1zIFJHQiBkYXRhIGJ5cGFzc2VzIHRoZSBDU0MgYWx3 YXlzICovCj4gPiAgIAlpZiAoIWludGVsX2Zvcm1hdF9pc195dXYoZmItPmZvcm1hdC0+Zm9ybWF0 KSkKPiA+ICAgCQlyZXR1cm47Cj4gPiAgIAo+ID4gLQkvKgo+ID4gLQkgKiBCVC42MDEgZnVsbCBy YW5nZSBZQ2JDciAtPiBmdWxsIHJhbmdlIFJHQgo+ID4gLQkgKgo+ID4gLQkgKiB8cnwgICB8IDU3 NDMgNDA5NiAgICAgMHwgICB8Y3J8Cj4gPiAtCSAqIHxnfCA9IHwtMjkyNSA0MDk2IC0xNDEwfCB4 IHx5IHwKPiA+IC0JICogfGJ8ICAgfCAgICAwIDQwOTYgIDcyNTh8ICAgfGNifAo+ID4gLQkgKgo+ ID4gLQkgKiBDYiBhbmQgQ3IgYXBwYXJlbnRseSBjb21lIGluIGFzIHNpZ25lZCBhbHJlYWR5LAo+ ID4gLQkgKiBhbmQgd2UgZ2V0IGZ1bGwgcmFuZ2UgZGF0YSBpbiBvbiBhY2NvdW50IG9mIENMUkMw LzEKPiA+IC0JICovCj4gPiAgIAlJOTE1X1dSSVRFX0ZXKFNQQ1NDWUdPRkYocGxhbmVfaWQpLCBT UENTQ19PT0ZGKDApIHwgU1BDU0NfSU9GRigwKSk7Cj4gPiAgIAlJOTE1X1dSSVRFX0ZXKFNQQ1ND Q0JPRkYocGxhbmVfaWQpLCBTUENTQ19PT0ZGKDApIHwgU1BDU0NfSU9GRigwKSk7Cj4gPiAgIAlJ OTE1X1dSSVRFX0ZXKFNQQ1NDQ1JPRkYocGxhbmVfaWQpLCBTUENTQ19PT0ZGKDApIHwgU1BDU0Nf SU9GRigwKSk7Cj4gPiAgIAo+ID4gLQlJOTE1X1dSSVRFX0ZXKFNQQ1NDQzAxKHBsYW5lX2lkKSwg U1BDU0NfQzEoNDA5NikgfCBTUENTQ19DMCg1NzQzKSk7Cj4gPiAtCUk5MTVfV1JJVEVfRlcoU1BD U0NDMjMocGxhbmVfaWQpLCBTUENTQ19DMSgtMjkyNSkgfCBTUENTQ19DMCgwKSk7Cj4gPiAtCUk5 MTVfV1JJVEVfRlcoU1BDU0NDNDUocGxhbmVfaWQpLCBTUENTQ19DMSgtMTQxMCkgfCBTUENTQ19D MCg0MDk2KSk7Cj4gPiAtCUk5MTVfV1JJVEVfRlcoU1BDU0NDNjcocGxhbmVfaWQpLCBTUENTQ19D MSg0MDk2KSB8IFNQQ1NDX0MwKDApKTsKPiA+IC0JSTkxNV9XUklURV9GVyhTUENTQ0M4KHBsYW5l X2lkKSwgU1BDU0NfQzAoNzI1OCkpOwo+ID4gKwlJOTE1X1dSSVRFX0ZXKFNQQ1NDQzAxKHBsYW5l X2lkKSwgU1BDU0NfQzEoY3NjWzFdKSB8IFNQQ1NDX0MwKGNzY1swXSkpOwo+ID4gKwlJOTE1X1dS SVRFX0ZXKFNQQ1NDQzIzKHBsYW5lX2lkKSwgU1BDU0NfQzEoY3NjWzNdKSB8IFNQQ1NDX0MwKGNz Y1syXSkpOwo+ID4gKwlJOTE1X1dSSVRFX0ZXKFNQQ1NDQzQ1KHBsYW5lX2lkKSwgU1BDU0NfQzEo Y3NjWzVdKSB8IFNQQ1NDX0MwKGNzY1s0XSkpOwo+ID4gKwlJOTE1X1dSSVRFX0ZXKFNQQ1NDQzY3 KHBsYW5lX2lkKSwgU1BDU0NfQzEoY3NjWzddKSB8IFNQQ1NDX0MwKGNzY1s2XSkpOwo+ID4gKwlJ OTE1X1dSSVRFX0ZXKFNQQ1NDQzgocGxhbmVfaWQpLCBTUENTQ19DMChjc2NbOF0pKTsKPiA+ICAg Cj4gPiAgIAlJOTE1X1dSSVRFX0ZXKFNQQ1NDWUdJQ0xBTVAocGxhbmVfaWQpLCBTUENTQ19JTUFY KDEwMjMpIHwgU1BDU0NfSU1JTigwKSk7Cj4gPiAgIAlJOTE1X1dSSVRFX0ZXKFNQQ1NDQ0JJQ0xB TVAocGxhbmVfaWQpLCBTUENTQ19JTUFYKDUxMikgfCBTUENTQ19JTUlOKC01MTIpKTsKPiA+IEBA IC00NDUsNiArNDYwLDkgQEAgc3RhdGljIHUzMiB2bHZfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICAgCQlyZXR1cm4gMDsKPiA+ICAgCX0K PiA+ICAgCj4gPiArCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9lbmNvZGluZyA9PSBEUk1f Q09MT1JfWUNCQ1JfQlQ3MDkpCj4gPiArCQlzcHJjdGwgfD0gU1BfWVVWX0NTQ19GT1JNQVRfQlQ3 MDk7Cj4gPiArCj4gPiAgIAlpZiAoZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJ TEVEKQo+ID4gICAJCXNwcmN0bCB8PSBTUF9USUxFRDsKPiA+ICAgCj4gPiBAQCAtNTc4LDYgKzU5 Niw5IEBAIHN0YXRpYyB1MzIgaXZiX3Nwcml0ZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgIAkJcmV0dXJuIDA7Cj4gPiAgIAl9Cj4gPiAgIAo+ID4g KwlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNS X0JUNzA5KQo+ID4gKwkJc3ByY3RsIHw9IFNQUklURV9ZVVZfQ1NDX0ZPUk1BVF9CVDcwOTsKPiA+ ICsKPiA+ICAgCWlmIChmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQpCj4g PiAgIAkJc3ByY3RsIHw9IFNQUklURV9USUxFRDsKPiA+ICAgCj4gPiBAQCAtNzE1LDYgKzczNiw5 IEBAIHN0YXRpYyB1MzIgZzR4X3Nwcml0ZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4gPiAgIAkJcmV0dXJuIDA7Cj4gPiAgIAl9Cj4gPiAgIAo+ID4gKwlp ZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNSX0JU NzA5KQo+ID4gKwkJZHZzY250ciB8PSBEVlNfWVVWX0NTQ19GT1JNQVRfQlQ3MDk7Cj4gPiArCj4g PiAgIAlpZiAoZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEKQo+ID4gICAJ CWR2c2NudHIgfD0gRFZTX1RJTEVEOwo+ID4gICAKPiA+IEBAIC0xMjIxLDYgKzEyNDUsMTMgQEAg aW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiAgIAkJCQkJICAgRFJNX01PREVfUk9UQVRFXzAsCj4gPiAgIAkJCQkJICAgc3VwcG9y dGVkX3JvdGF0aW9ucyk7Cj4gPiAgIAo+ID4gKwlkcm1fcGxhbmVfY3JlYXRlX2NvbG9yX3Byb3Bl cnRpZXMoJmludGVsX3BsYW5lLT5iYXNlLAo+ID4gKwkJCQkJICBCSVQoRFJNX0NPTE9SX1lDQkNS X0JUNjAxKSB8Cj4gPiArCQkJCQkgIEJJVChEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkpLAo+ID4gKwkJ CQkJICBCSVQoRFJNX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0UpLAo+ID4gKwkJCQkJICBEUk1f Q09MT1JfWUNCQ1JfQlQ2MDEsCj4gPiArCQkJCQkgIERSTV9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JB TkdFKTsKPiA+ICsKPiA+ICAgCWRybV9wbGFuZV9oZWxwZXJfYWRkKCZpbnRlbF9wbGFuZS0+YmFz ZSwgJmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7Cj4gPiAgIAo+ID4gICAJcmV0dXJuIGludGVs X3BsYW5lOwoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==