From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 5/7] drm/omap: Enable COLOR_ENCODING and COLOR_RANGE properties for planes Date: Thu, 5 Sep 2019 12:43:10 +0300 Message-ID: <20190905094310.GC5035@pendragon.ideasonboard.com> References: <20190902125359.18001-1-tomi.valkeinen@ti.com> <20190902125359.18001-6-tomi.valkeinen@ti.com> <20190903153206.GC8247@pendragon.ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id E811789EEB for ; Thu, 5 Sep 2019 09:43:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jyri Sarha Cc: Tomi Valkeinen , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgSnlyaSwKCk9uIFRodSwgU2VwIDA1LCAyMDE5IGF0IDEyOjI0OjM3UE0gKzAzMDAsIEp5cmkg U2FyaGEgd3JvdGU6Cj4gT24gMDMvMDkvMjAxOSAxODozMiwgTGF1cmVudCBQaW5jaGFydCB3cm90 ZToKPiA+IE9uIE1vbiwgU2VwIDAyLCAyMDE5IGF0IDAzOjUzOjU3UE0gKzAzMDAsIFRvbWkgVmFs a2VpbmVuIHdyb3RlOgo+ID4+IEZyb206IEp5cmkgU2FyaGEgPGpzYXJoYUB0aS5jb20+Cj4gPj4K PiA+PiBBZGRzIHN1cHBvcnQgZm9yIENPTE9SX0VOQ09ESU5HIGFuZCBDT0xPUl9SQU5HRSBwcm9w ZXJ0aWVzIHRvCj4gPj4gb21hcF9wbGFuZS5jIGFuZCBkaXNwYy5jLiBUaGUgc3VwcG9ydGVkIGVu Y29kaW5ncyBhbmQgcmFuZ2VzIGFyZToKPiA+Pgo+ID4+IEZvciBDT0xPUl9FTkNPRElORzoKPiA+ PiAtIFlDYkN0IEJULjYwMSAoZGVmYXVsdCkKPiA+IAo+ID4gRGlkIHlvdSBtZWFuIFlDYkNyID8K PiA+ID4+IC0gWUNiQ3QgQlQuNzA5Cj4gPj4KPiA+PiBGb3IgQ09MT1JfUkFOR0U6Cj4gPj4gLSBZ Q2JDdCBsaW1pdGVkIHJhbmdlCj4gPj4gLSBZQ2JDdCBmdWxsIHJhbmdlIChkZWZhdWx0KQo+ID4+ Cj4gPj4gU2lnbmVkLW9mZi1ieTogSnlyaSBTYXJoYSA8anNhcmhhQHRpLmNvbT4KPiA+PiBTaWdu ZWQtb2ZmLWJ5OiBUb21pIFZhbGtlaW5lbiA8dG9taS52YWxrZWluZW5AdGkuY29tPgo+ID4+IC0t LQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZGlzcGMuYyAgIHwgMTE5ICsrKysr KysrKysrKysrKysrKysrLS0tLS0tCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9v bWFwZHNzLmggfCAgIDQgKwo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5l LmMgIHwgIDMwICsrKysrKysKPiA+PiAgMyBmaWxlcyBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygr KSwgMjYgZGVsZXRpb25zKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vZHNzL2Rpc3BjLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZGlzcGMu Ywo+ID4+IGluZGV4IDdkODdkNjBlZGI4MC4uNDBkZGIyOGVlN2FhIDEwMDY0NAo+ID4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jCj4gPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL29tYXBkcm0vZHNzL2Rpc3BjLmMKPiA+PiBAQCAtODkyLDMyICs4OTIsOTEgQEAgc3Rh dGljIHZvaWQgZGlzcGNfd2Jfd3JpdGVfY29sb3JfY29udl9jb2VmKHN0cnVjdCBkaXNwY19kZXZp Y2UgKmRpc3BjLAo+ID4+ICAjdW5kZWYgQ1ZBTAo+ID4+ICB9Cj4gPj4gIAo+ID4+IC1zdGF0aWMg dm9pZCBkaXNwY19zZXR1cF9jb2xvcl9jb252X2NvZWYoc3RydWN0IGRpc3BjX2RldmljZSAqZGlz cGMpCj4gPj4gKy8qIFlVViAtPiBSR0IsIElUVS1SIEJULjYwMSwgZnVsbCByYW5nZSAqLwo+ID4+ ICtjb25zdCBzdGF0aWMgc3RydWN0IGNzY19jb2VmX3l1djJyZ2IgY29lZnNfeXV2MnJnYl9idDYw MV9mdWxsID0gewo+ID4gCj4gPiBzdGF0aWMgY29uc3QgaXMgdXN1YWxseSBwcmVmZXJyZWQgb3Zl ciBjb25zdCBzdGF0aWMsIGhlcmUgYW5kIGJlbG93Lgo+ID4gCj4gPj4gKwkyNTYsICAgMCwgIDM1 OCwJCS8qIHJ5LCByY2IsIHJjciB8MS4wMDAgIDAuMDAwICAxLjQwMnwqLwo+ID4+ICsJMjU2LCAt ODgsIC0xODIsCQkvKiBneSwgZ2NiLCBnY3IgfDEuMDAwIC0wLjM0NCAtMC43MTR8Ki8KPiA+PiAr CTI1NiwgNDUyLCAgICAwLAkJLyogYnksIGJjYiwgYmNyIHwxLjAwMCAgMS43NzIgIDAuMDAwfCov Cj4gPj4gKwl0cnVlLAkJCS8qIGZ1bGwgcmFuZ2UgKi8KPiA+PiArfTsKPiA+PiArCj4gPj4gKy8q IFlVViAtPiBSR0IsIElUVS1SIEJULjYwMSwgbGltaXRlZCByYW5nZSAqLwo+ID4+ICtjb25zdCBz dGF0aWMgc3RydWN0IGNzY19jb2VmX3l1djJyZ2IgY29lZnNfeXV2MnJnYl9idDYwMV9saW0gPSB7 Cj4gPj4gKwkyOTgsICAgIDAsICA0MDksCS8qIHJ5LCByY2IsIHJjciB8MS4xNjQgIDAuMDAwICAx LjU5NnwqLwo+ID4+ICsJMjk4LCAtMTAwLCAtMjA4LAkvKiBneSwgZ2NiLCBnY3IgfDEuMTY0IC0w LjM5MiAtMC44MTN8Ki8KPiA+PiArCTI5OCwgIDUxNiwgICAgMCwJLyogYnksIGJjYiwgYmNyIHwx LjE2NCAgMi4wMTcgIDAuMDAwfCovCj4gPj4gKwlmYWxzZSwJCQkvKiBsaW1pdGVkIHJhbmdlICov Cj4gPj4gK307Cj4gPj4gKwo+ID4+ICsvKiBZVVYgLT4gUkdCLCBJVFUtUiBCVC43MDksIGZ1bGwg cmFuZ2UgKi8KPiA+PiArY29uc3Qgc3RhdGljIHN0cnVjdCBjc2NfY29lZl95dXYycmdiIGNvZWZz X3l1djJyZ2JfYnQ3MDlfZnVsbCA9IHsKPiA+PiArCTI1NiwgICAgMCwgIDQwMiwgICAgICAgIC8q IHJ5LCByY2IsIHJjciB8MS4wMDAgIDAuMDAwICAxLjU3MHwqLwo+ID4+ICsJMjU2LCAgLTQ4LCAt MTIwLCAgICAgICAgLyogZ3ksIGdjYiwgZ2NyIHwxLjAwMCAtMC4xODcgLTAuNDY3fCovCj4gPj4g KwkyNTYsICA0NzUsICAgIDAsICAgICAgICAvKiBieSwgYmNiLCBiY3IgfDEuMDAwICAxLjg1NiAg MC4wMDB8Ki8KPiA+PiArCXRydWUsICAgICAgICAgICAgICAgICAgIC8qIGZ1bGwgcmFuZ2UgKi8K PiA+PiArfTsKPiA+PiArCj4gPj4gKy8qIFlVViAtPiBSR0IsIElUVS1SIEJULjcwOSwgbGltaXRl ZCByYW5nZSAqLwo+ID4+ICtjb25zdCBzdGF0aWMgc3RydWN0IGNzY19jb2VmX3l1djJyZ2IgY29l ZnNfeXV2MnJnYl9idDcwOV9saW0gPSB7Cj4gPj4gKwkyOTgsICAgIDAsICA0NTksCS8qIHJ5LCBy Y2IsIHJjciB8MS4xNjQgIDAuMDAwICAxLjc5M3wqLwo+ID4+ICsJMjk4LCAgLTU1LCAtMTM2LAkv KiBneSwgZ2NiLCBnY3IgfDEuMTY0IC0wLjIxMyAtMC41MzN8Ki8KPiA+PiArCTI5OCwgIDU0MSwg ICAgMCwJLyogYnksIGJjYiwgYmNyIHwxLjE2NCAgMi4xMTIgIDAuMDAwfCovCj4gPj4gKwlmYWxz ZSwJCQkvKiBsaW1pdGVkIHJhbmdlICovCj4gPj4gK307Cj4gPj4gKwo+ID4+ICsvKiBSR0IgLT4g WVVWLCBJVFUtUiBCVC42MDEsIGxpbWl0ZWQgcmFuZ2UgKi8KPiA+PiArY29uc3Qgc3RhdGljIHN0 cnVjdCBjc2NfY29lZl9yZ2IyeXV2IGNvZWZzX3JnYjJ5dXZfYnQ2MDFfbGltID0gewo+ID4+ICsJ IDY2LCAxMjksICAyNSwJCS8qIHlyLCAgIHlnLCAgeWIgfCAwLjI1NyAgMC41MDQgIDAuMDk4fCov Cj4gPj4gKwktMzgsIC03NCwgMTEyLAkJLyogY2JyLCBjYmcsIGNiYiB8LTAuMTQ4IC0wLjI5MSAg MC40Mzl8Ki8KPiA+PiArCTExMiwgLTk0LCAtMTgsCQkvKiBjcnIsIGNyZywgY3JiIHwgMC40Mzkg LTAuMzY4IC0wLjA3MXwqLwo+ID4+ICsJZmFsc2UsCQkJLyogbGltaXRlZCByYW5nZSAqLwo+ID4+ ICt9Owo+ID4+ICsKPiA+PiArLyogUkdCIC0+IFlVViwgSVRVLVIgQlQuNjAxLCBmdWxsIHJhbmdl ICovCj4gPj4gK2NvbnN0IHN0YXRpYyBzdHJ1Y3QgY3NjX2NvZWZfcmdiMnl1diBjb2Vmc19yZ2Iy eXV2X2J0NjAxX2Z1bGwgPSB7Cj4gPj4gKwkgNzcsICAxNTAsICAyOSwJCS8qIHlyLCAgIHlnLCAg eWIgfCAwLjI5OSAgMC41ODcgIDAuMTE0fCovCj4gPj4gKwktNDMsICAtODUsIDEyOCwJCS8qIGNi ciwgY2JnLCBjYmIgfC0wLjE3MyAtMC4zMzkgIDAuNTExfCovCj4gPj4gKwkxMjgsIC0xMDcsIC0y MSwJCS8qIGNyciwgY3JnLCBjcmIgfCAwLjUxMSAtMC40MjggLTAuMDgzfCovCj4gPj4gKwl0cnVl LAkJCS8qIGZ1bGwgcmFuZ2UgKi8KPiA+PiArfTsKPiA+PiArCj4gPj4gKy8qIFJHQiAtPiBZVVYs IElUVS1SIEJULjcwOSwgbGltaXRlZCByYW5nZSAqLwo+ID4+ICtjb25zdCBzdGF0aWMgc3RydWN0 IGNzY19jb2VmX3JnYjJ5dXYgY29lZnNfcmdiMnl1dl9idDcwMV9saW0gPSB7Cj4gPiAKPiA+IFRo YXQgc2hvdWxkIGJlIGNvZWZzX3JnYjJ5dXZfYnQ3MDlfbGltCj4gPiAKPiA+PiArCSA0NywgIDE1 NywgICAxNiwJLyogeXIsICAgeWcsICB5YiB8IDAuMTgyNiAgMC42MTQyICAwLjA2MjB8Ki8KPiA+ PiArCS0yNiwgIC04NywgIDExMiwJLyogY2JyLCBjYmcsIGNiYiB8LTAuMTAwNiAtMC4zMzg2ICAw LjQzOTJ8Ki8KPiA+PiArCTExMiwgLTEwMiwgIC0xMCwJLyogY3JyLCBjcmcsIGNyYiB8IDAuNDM5 MiAtMC4zOTg5IC0wLjA0MDN8Ki8KPiA+PiArCWZhbHNlLAkJCS8qIGxpbWl0ZWQgcmFuZ2UgKi8K PiA+PiArfTsKPiA+IAo+ID4gV2h5IGlzIGNvZWZzX3JnYjJ5dXZfYnQ3MDlfZnVsbCBub3Qgc3Vw cG9ydGVkID8gQWN0dWFsbHkKPiA+IGNvZWZzX3JnYjJ5dXZfYnQ2MDFfbGltIGFuZCBjb2Vmc19y Z2IyeXV2X2J0NzAxX2xpbSBzZWVtIHVudXNlZC4KPiA+IAo+IAo+IEkgbXVzdCBoYXZlIHNpbXBs eSBmb3Jnb3R0ZW4uIFRoaXMgaXMgYW4gb2xkIHBhdGNoIGFuZCBJIGNhbiBub3QKPiByZW1lbWJl ciBleGFjdGx5LiBCdXQgSSByZW1lbWJlciB0aGF0IEkgd2FudGVkIHRvIGFkZCBhbGwgQ1NDcyBh dCBvbmUKPiB0aW1lIHNvIHRoYXQgSSBkbyBub3QgbmVlZCBzdGFydCBmcm9tIHRoZSBiZWdpbm5p bmcgd2hlbiBldmVyIGEgbmV3Cj4gY29udmVyc2lvbiBpcyBhc2tlZC4gRm9yIHRoZSBtb21lbnQg cmdiIHRvIHl1diBjb252ZXJzaW9ucyBhcmUgb25seSB1c2VkCj4gZm9yIHdyaXRlIGJhY2sgYW5k IGl0IGN1cnJlbnRseSBvbmx5IHVzZXMgdGhlIGRlZmF1bHQgQlQuNjAxIEZ1bGwgcmFuZ2UuCj4g Cj4gSSdsbCBhZGQgcmdiMnl1dl9idDcwOV9mdWxsLiBPciBzaG91bGQgSSByZW1vdmUgYWxsIHRo ZSB1bnVzZWQgQ1NDcz8gT3IKPiBtYXliZSBwdXQgdGhlbSBiZWhpbmQgc29tZSBpZmRlZiBzbyB0 aGF0IHRoZXkgZG8gbm90IGJsb2F0IHRoZSBrZXJuZWw/CgpDb21tZW50ZWQtb3V0IGNvZGUgaXMg ZnJvd25lZCB1cG9uLiBJIHdvdWxkIGp1c3QgZHJvcCB0aGUgdW51c2VkIGRhdGEuCgo+ID4+ICsK PiA+PiArc3RhdGljIGludCBkaXNwY19vdmxfc2V0X2NzYyhzdHJ1Y3QgZGlzcGNfZGV2aWNlICpk aXNwYywKPiA+PiArCQkJICAgICBlbnVtIG9tYXBfcGxhbmVfaWQgcGxhbmUsCj4gPj4gKwkJCSAg ICAgZW51bSBkcm1fY29sb3JfZW5jb2RpbmcgY29sb3JfZW5jb2RpbmcsCj4gPj4gKwkJCSAgICAg ZW51bSBkcm1fY29sb3JfcmFuZ2UgY29sb3JfcmFuZ2UpCj4gPj4gIHsKPiA+PiAtCWludCBpOwo+ ID4+IC0JaW50IG51bV9vdmwgPSBkaXNwY19nZXRfbnVtX292bHMoZGlzcGMpOwo+ID4+IC0KPiA+ PiAtCS8qIFlVViAtPiBSR0IsIElUVS1SIEJULjYwMSwgbGltaXRlZCByYW5nZSAqLwo+ID4+IC0J Y29uc3Qgc3RydWN0IGNzY19jb2VmX3l1djJyZ2IgY29lZnNfeXV2MnJnYl9idDYwMV9saW0gPSB7 Cj4gPj4gLQkJMjk4LCAgICAwLCAgNDA5LAkvKiByeSwgcmNiLCByY3IgKi8KPiA+PiAtCQkyOTgs IC0xMDAsIC0yMDgsCS8qIGd5LCBnY2IsIGdjciAqLwo+ID4+IC0JCTI5OCwgIDUxNiwgICAgMCwJ LyogYnksIGJjYiwgYmNyICovCj4gPj4gLQkJZmFsc2UsCQkJLyogbGltaXRlZCByYW5nZSAqLwo+ ID4+IC0JfTsKPiA+PiArCWNvbnN0IHN0cnVjdCBjc2NfY29lZl95dXYycmdiICpjc2M7Cj4gPj4g IAo+ID4+IC0JLyogUkdCIC0+IFlVViwgSVRVLVIgQlQuNjAxLCBsaW1pdGVkIHJhbmdlICovCj4g Pj4gLQljb25zdCBzdHJ1Y3QgY3NjX2NvZWZfcmdiMnl1diBjb2Vmc19yZ2IyeXV2X2J0NjAxX2xp bSA9IHsKPiA+PiAtCQkgNjYsIDEyOSwgIDI1LAkJLyogeXIsICAgeWcsICB5YiAqLwo+ID4+IC0J CS0zOCwgLTc0LCAxMTIsCQkvKiBjYnIsIGNiZywgY2JiICovCj4gPj4gLQkJMTEyLCAtOTQsIC0x OCwJCS8qIGNyciwgY3JnLCBjcmIgKi8KPiA+PiAtCQlmYWxzZSwJCQkvKiBsaW1pdGVkIHJhbmdl ICovCj4gPj4gLQl9Owo+ID4+ICsJc3dpdGNoIChjb2xvcl9lbmNvZGluZykgewo+ID4+ICsJY2Fz ZSBEUk1fQ09MT1JfWUNCQ1JfQlQ2MDE6Cj4gPj4gKwkJaWYgKGNvbG9yX3JhbmdlID09IERSTV9D T0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQo+ID4+ICsJCQljc2MgPSAmY29lZnNfeXV2MnJnYl9idDYw MV9mdWxsOwo+ID4+ICsJCWVsc2UKPiA+PiArCQkJY3NjID0gJmNvZWZzX3l1djJyZ2JfYnQ2MDFf bGltOwo+ID4+ICsJCWJyZWFrOwo+ID4+ICsJY2FzZSBEUk1fQ09MT1JfWUNCQ1JfQlQ3MDk6Cj4g Pj4gKwkJaWYgKGNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQo+ID4+ ICsJCQljc2MgPSAmY29lZnNfeXV2MnJnYl9idDcwOV9mdWxsOwo+ID4+ICsJCWVsc2UKPiA+PiAr CQkJY3NjID0gJmNvZWZzX3l1djJyZ2JfYnQ3MDlfbGltOwo+ID4+ICsJCWJyZWFrOwo+ID4+ICsJ ZGVmYXVsdDoKPiA+PiArCQlEU1NFUlIoIlVuc3VwcG9ydGVkIENTQyBtb2RlICVkIGZvciBwbGFu ZSAlZFxuIiwKPiA+PiArCQkgICAgICAgY29sb3JfZW5jb2RpbmcsIHBsYW5lKTsKPiA+PiArCQly ZXR1cm4gLUVJTlZBTDsKPiA+PiArCX0KPiA+PiAgCj4gPj4gLQlmb3IgKGkgPSAxOyBpIDwgbnVt X292bDsgaSsrKQo+ID4+IC0JCWRpc3BjX292bF93cml0ZV9jb2xvcl9jb252X2NvZWYoZGlzcGMs IGksICZjb2Vmc195dXYycmdiX2J0NjAxX2xpbSk7Cj4gPj4gKwlkaXNwY19vdmxfd3JpdGVfY29s b3JfY29udl9jb2VmKGRpc3BjLCBwbGFuZSwgY3NjKTsKPiA+PiAgCj4gPj4gLQlpZiAoZGlzcGMt PmZlYXQtPmhhc193cml0ZWJhY2spCj4gPj4gLQkJZGlzcGNfd2Jfd3JpdGVfY29sb3JfY29udl9j b2VmKGRpc3BjLCAmY29lZnNfcmdiMnl1dl9idDYwMV9saW0pOwo+ID4+ICsJcmV0dXJuIDA7Cj4g Pj4gIH0KPiA+PiAgCj4gPj4gIHN0YXRpYyB2b2lkIGRpc3BjX292bF9zZXRfYmEwKHN0cnVjdCBk aXNwY19kZXZpY2UgKmRpc3BjLAo+ID4+IEBAIC0yNTk4LDcgKzI2NTcsOSBAQCBzdGF0aWMgaW50 IGRpc3BjX292bF9zZXR1cF9jb21tb24oc3RydWN0IGRpc3BjX2RldmljZSAqZGlzcGMsCj4gPj4g IAkJCQkgIHU4IHByZV9tdWx0X2FscGhhLCB1OCBnbG9iYWxfYWxwaGEsCj4gPj4gIAkJCQkgIGVu dW0gb21hcF9kc3Nfcm90YXRpb25fdHlwZSByb3RhdGlvbl90eXBlLAo+ID4+ICAJCQkJICBib29s IHJlcGxpY2F0aW9uLCBjb25zdCBzdHJ1Y3QgdmlkZW9tb2RlICp2bSwKPiA+PiAtCQkJCSAgYm9v bCBtZW1fdG9fbWVtKQo+ID4+ICsJCQkJICBib29sIG1lbV90b19tZW0sCj4gPj4gKwkJCQkgIGVu dW0gZHJtX2NvbG9yX2VuY29kaW5nIGNvbG9yX2VuY29kaW5nLAo+ID4+ICsJCQkJICBlbnVtIGRy bV9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZSkKPiA+PiAgewo+ID4+ICAJYm9vbCBmaXZlX3RhcHMg PSB0cnVlOwo+ID4+ICAJYm9vbCBmaWVsZG1vZGUgPSBmYWxzZTsKPiA+PiBAQCAtMjc0Nyw2ICsy ODA4LDkgQEAgc3RhdGljIGludCBkaXNwY19vdmxfc2V0dXBfY29tbW9uKHN0cnVjdCBkaXNwY19k ZXZpY2UgKmRpc3BjLAo+ID4+ICAJCQkJICAgICAgZmllbGRtb2RlLCBmb3VyY2MsIHJvdGF0aW9u KTsKPiA+PiAgCQlkaXNwY19vdmxfc2V0X291dHB1dF9zaXplKGRpc3BjLCBwbGFuZSwgb3V0X3dp ZHRoLCBvdXRfaGVpZ2h0KTsKPiA+PiAgCQlkaXNwY19vdmxfc2V0X3ZpZF9jb2xvcl9jb252KGRp c3BjLCBwbGFuZSwgY2NvbnYpOwo+ID4+ICsKPiA+PiArCQlpZiAocGxhbmUgIT0gT01BUF9EU1Nf V0IpCj4gPj4gKwkJCWRpc3BjX292bF9zZXRfY3NjKGRpc3BjLCBwbGFuZSwgY29sb3JfZW5jb2Rp bmcsIGNvbG9yX3JhbmdlKTsKPiA+PiAgCX0KPiA+PiAgCj4gPj4gIAlkaXNwY19vdmxfc2V0X3Jv dGF0aW9uX2F0dHJzKGRpc3BjLCBwbGFuZSwgcm90YXRpb24sIHJvdGF0aW9uX3R5cGUsCj4gPj4g QEAgLTI3ODMsNyArMjg0Nyw4IEBAIHN0YXRpYyBpbnQgZGlzcGNfb3ZsX3NldHVwKHN0cnVjdCBk aXNwY19kZXZpY2UgKmRpc3BjLAo+ID4+ICAJCW9pLT5zY3JlZW5fd2lkdGgsIG9pLT5wb3NfeCwg b2ktPnBvc195LCBvaS0+d2lkdGgsIG9pLT5oZWlnaHQsCj4gPj4gIAkJb2ktPm91dF93aWR0aCwg b2ktPm91dF9oZWlnaHQsIG9pLT5mb3VyY2MsIG9pLT5yb3RhdGlvbiwKPiA+PiAgCQlvaS0+em9y ZGVyLCBvaS0+cHJlX211bHRfYWxwaGEsIG9pLT5nbG9iYWxfYWxwaGEsCj4gPj4gLQkJb2ktPnJv dGF0aW9uX3R5cGUsIHJlcGxpY2F0aW9uLCB2bSwgbWVtX3RvX21lbSk7Cj4gPj4gKwkJb2ktPnJv dGF0aW9uX3R5cGUsIHJlcGxpY2F0aW9uLCB2bSwgbWVtX3RvX21lbSwKPiA+PiArCQlvaS0+Y29s b3JfZW5jb2RpbmcsIG9pLT5jb2xvcl9yYW5nZSk7Cj4gPj4gIAo+ID4+ICAJcmV0dXJuIHI7Cj4g Pj4gIH0KPiA+PiBAQCAtMjgxNiw3ICsyODgxLDggQEAgc3RhdGljIGludCBkaXNwY193Yl9zZXR1 cChzdHJ1Y3QgZGlzcGNfZGV2aWNlICpkaXNwYywKPiA+PiAgCQl3aS0+YnVmX3dpZHRoLCBwb3Nf eCwgcG9zX3ksIGluX3dpZHRoLCBpbl9oZWlnaHQsIHdpLT53aWR0aCwKPiA+PiAgCQl3aS0+aGVp Z2h0LCB3aS0+Zm91cmNjLCB3aS0+cm90YXRpb24sIHpvcmRlciwKPiA+PiAgCQl3aS0+cHJlX211 bHRfYWxwaGEsIGdsb2JhbF9hbHBoYSwgd2ktPnJvdGF0aW9uX3R5cGUsCj4gPj4gLQkJcmVwbGlj YXRpb24sIHZtLCBtZW1fdG9fbWVtKTsKPiA+PiArCQlyZXBsaWNhdGlvbiwgdm0sIG1lbV90b19t ZW0sIERSTV9DT0xPUl9ZQ0JDUl9CVDYwMSwKPiA+PiArCQlEUk1fQ09MT1JfWUNCQ1JfTElNSVRF RF9SQU5HRSk7Cj4gPj4gIAlpZiAocikKPiA+PiAgCQlyZXR1cm4gcjsKPiA+PiAgCj4gPj4gQEAg LTM5NDgsNyArNDAxNCw4IEBAIHN0YXRpYyB2b2lkIF9vbWFwX2Rpc3BjX2luaXRpYWxfY29uZmln KHN0cnVjdCBkaXNwY19kZXZpY2UgKmRpc3BjKQo+ID4+ICAJICAgIGRpc3BjLT5mZWF0LT5oYXNf Z2FtbWFfdGFibGUpCj4gPj4gIAkJUkVHX0ZMRF9NT0QoZGlzcGMsIERJU1BDX0NPTkZJRywgMSwg OSwgOSk7Cj4gPj4gIAo+ID4+IC0JZGlzcGNfc2V0dXBfY29sb3JfY29udl9jb2VmKGRpc3BjKTsK PiA+PiArCWlmIChkaXNwYy0+ZmVhdC0+aGFzX3dyaXRlYmFjaykKPiA+PiArCQlkaXNwY193Yl93 cml0ZV9jb2xvcl9jb252X2NvZWYoZGlzcGMsICZjb2Vmc19yZ2IyeXV2X2J0NjAxX2Z1bGwpOwo+ ID4+ICAKPiA+PiAgCWRpc3BjX3NldF9sb2FkbW9kZShkaXNwYywgT01BUF9EU1NfTE9BRF9GUkFN RV9PTkxZKTsKPiA+PiAgCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJt L2Rzcy9vbWFwZHNzLmggYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb21hcGRzcy5oCj4g Pj4gaW5kZXggNzlmNmIxOTVjN2NmLi4xNDMwY2FiNmI4NzcgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL29tYXBkc3MuaAo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLmgKPiA+PiBAQCAtMTQsNiArMTQsNyBAQAo+ID4+ICAj aW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9vbWFwZHNzLmg+Cj4gPj4gICNpbmNsdWRlIDx1 YXBpL2RybS9kcm1fbW9kZS5oPgo+ID4+ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Cj4gPj4g KyNpbmNsdWRlIDxkcm0vZHJtX2NvbG9yX21nbXQuaD4KPiA+IAo+ID4gQWxwaGFiZXRpY2FsIG9y ZGVyID8gV2hpbGUgYXQgaXMgeW91IGNvdWxkZSByZW1vdmUgdWFwaS8KPiA+IAo+ID4+ICAKPiA+ PiAgI2RlZmluZSBESVNQQ19JUlFfRlJBTUVET05FCQkoMSA8PCAwKQo+ID4+ICAjZGVmaW5lIERJ U1BDX0lSUV9WU1lOQwkJCSgxIDw8IDEpCj4gPj4gQEAgLTI0Myw2ICsyNDQsOSBAQCBzdHJ1Y3Qg b21hcF9vdmVybGF5X2luZm8gewo+ID4+ICAJdTggZ2xvYmFsX2FscGhhOwo+ID4+ICAJdTggcHJl X211bHRfYWxwaGE7Cj4gPj4gIAl1OCB6b3JkZXI7Cj4gPj4gKwo+ID4+ICsJZW51bSBkcm1fY29s b3JfZW5jb2RpbmcgY29sb3JfZW5jb2Rpbmc7Cj4gPj4gKwllbnVtIGRybV9jb2xvcl9yYW5nZSBj b2xvcl9yYW5nZTsKPiA+PiAgfTsKPiA+PiAgCj4gPj4gIHN0cnVjdCBvbWFwX292ZXJsYXlfbWFu YWdlcl9pbmZvIHsKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21h cF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9wbGFuZS5jCj4gPj4gaW5k ZXggNzNlYzk5ODE5YTNkLi5kYjhlOTE3MjYwZGYgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL29tYXBkcm0vb21hcF9wbGFuZS5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL29t YXBkcm0vb21hcF9wbGFuZS5jCj4gPj4gQEAgLTU5LDYgKzU5LDggQEAgc3RhdGljIHZvaWQgb21h cF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ICAJCWlu Zm8ucHJlX211bHRfYWxwaGEgPSAxOwo+ID4+ICAJZWxzZQo+ID4+ICAJCWluZm8ucHJlX211bHRf YWxwaGEgPSAwOwo+ID4+ICsJaW5mby5jb2xvcl9lbmNvZGluZyA9IHN0YXRlLT5jb2xvcl9lbmNv ZGluZzsKPiA+PiArCWluZm8uY29sb3JfcmFuZ2UgPSBzdGF0ZS0+Y29sb3JfcmFuZ2U7Cj4gPj4g IAo+ID4+ICAJLyogdXBkYXRlIHNjYW5vdXQ6ICovCj4gPj4gIAlvbWFwX2ZyYW1lYnVmZmVyX3Vw ZGF0ZV9zY2Fub3V0KHN0YXRlLT5mYiwgc3RhdGUsICZpbmZvKTsKPiA+PiBAQCAtMTg5LDYgKzE5 MSw4IEBAIHN0YXRpYyB2b2lkIG9tYXBfcGxhbmVfcmVzZXQoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUpCj4gPj4gIAkgKi8KPiA+PiAgCXBsYW5lLT5zdGF0ZS0+enBvcyA9IHBsYW5lLT50eXBlID09 IERSTV9QTEFORV9UWVBFX1BSSU1BUlkKPiA+PiAgCQkJICAgPyAwIDogb21hcF9wbGFuZS0+aWQ7 Cj4gPj4gKwlwbGFuZS0+c3RhdGUtPmNvbG9yX2VuY29kaW5nID0gRFJNX0NPTE9SX1lDQkNSX0JU NjAxOwo+ID4+ICsJcGxhbmUtPnN0YXRlLT5jb2xvcl9yYW5nZSA9IERSTV9DT0xPUl9ZQ0JDUl9G VUxMX1JBTkdFOwo+ID4+ICB9Cj4gPj4gIAo+ID4+ICBzdGF0aWMgaW50IG9tYXBfcGxhbmVfYXRv bWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+PiBAQCAtMjMyLDYg KzIzNiwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBvbWFwX3BsYW5l X2Z1bmNzID0gewo+ID4+ICAJLmF0b21pY19nZXRfcHJvcGVydHkgPSBvbWFwX3BsYW5lX2F0b21p Y19nZXRfcHJvcGVydHksCj4gPj4gIH07Cj4gPj4gIAo+ID4+ICtzdGF0aWMgYm9vbCBvbWFwX3Bs YW5lX3N1cHBvcnRzX3l1dihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiA+PiArewo+ID4+ICsJ c3RydWN0IG9tYXBfZHJtX3ByaXZhdGUgKnByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsK PiA+PiArCXN0cnVjdCBvbWFwX3BsYW5lICpvbWFwX3BsYW5lID0gdG9fb21hcF9wbGFuZShwbGFu ZSk7Cj4gPj4gKwljb25zdCB1MzIgKmZvcm1hdHMgPQo+ID4+ICsJCXByaXYtPmRpc3BjX29wcy0+ b3ZsX2dldF9jb2xvcl9tb2Rlcyhwcml2LT5kaXNwYywgb21hcF9wbGFuZS0+aWQpOwo+ID4+ICsJ aW50IGk7Cj4gPiAKPiA+IHVuc2lnbmVkIGludCBpID8KPiA+IAo+ID4+ICsKPiA+PiArCWZvciAo aSA9IDA7IGZvcm1hdHNbaV07IGkrKykKPiA+PiArCQlpZiAoZm9ybWF0c1tpXSA9PSBEUk1fRk9S TUFUX1lVWVYgfHwKPiA+PiArCQkgICAgZm9ybWF0c1tpXSA9PSBEUk1fRk9STUFUX1VZVlkgfHwK PiA+PiArCQkgICAgZm9ybWF0c1tpXSA9PSBEUk1fRk9STUFUX05WMTIpCj4gPj4gKwkJCXJldHVy biB0cnVlOwo+ID4+ICsKPiA+PiArCXJldHVybiBmYWxzZTsKPiA+PiArfQo+ID4+ICsKPiA+PiAg c3RhdGljIGNvbnN0IGNoYXIgKnBsYW5lX2lkX3RvX25hbWVbXSA9IHsKPiA+PiAgCVtPTUFQX0RT U19HRlhdID0gImdmeCIsCj4gPj4gIAlbT01BUF9EU1NfVklERU8xXSA9ICJ2aWQxIiwKPiA+PiBA QCAtMjkzLDYgKzMxNCwxNSBAQCBzdHJ1Y3QgZHJtX3BsYW5lICpvbWFwX3BsYW5lX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiA+PiAgCWRybV9wbGFuZV9jcmVhdGVfYmxlbmRfbW9kZV9w cm9wZXJ0eShwbGFuZSwgQklUKERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJKSB8Cj4gPj4gIAkJCQkJ ICAgICBCSVQoRFJNX01PREVfQkxFTkRfQ09WRVJBR0UpKTsKPiA+PiAgCj4gPj4gKwlpZiAob21h cF9wbGFuZV9zdXBwb3J0c195dXYocGxhbmUpKQo+ID4+ICsJCWRybV9wbGFuZV9jcmVhdGVfY29s b3JfcHJvcGVydGllcyhwbGFuZSwKPiA+PiArCQkJCQlCSVQoRFJNX0NPTE9SX1lDQkNSX0JUNjAx KSB8Cj4gPj4gKwkJCQkJQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSksCj4gPj4gKwkJCQkJQklU KERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKSB8Cj4gPj4gKwkJCQkJQklUKERSTV9DT0xPUl9Z Q0JDUl9MSU1JVEVEX1JBTkdFKSwKPiA+PiArCQkJCQlEUk1fQ09MT1JfWUNCQ1JfQlQ2MDEsCj4g Pj4gKwkJCQkJRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpOwo+ID4+ICsKPiA+PiAgCXJldHVy biBwbGFuZTsKPiA+PiAgCj4gPj4gIGVycm9yOgoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNo YXJ0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==