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: Tue, 3 Sep 2019 18:32:06 +0300 Message-ID: <20190903153206.GC8247@pendragon.ideasonboard.com> References: <20190902125359.18001-1-tomi.valkeinen@ti.com> <20190902125359.18001-6-tomi.valkeinen@ti.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 D999A89617 for ; Tue, 3 Sep 2019 15:32:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190902125359.18001-6-tomi.valkeinen@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Tomi Valkeinen Cc: Jyri Sarha , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgVG9taSwKClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgoKT24gTW9uLCBTZXAgMDIsIDIwMTkg YXQgMDM6NTM6NTdQTSArMDMwMCwgVG9taSBWYWxrZWluZW4gd3JvdGU6Cj4gRnJvbTogSnlyaSBT YXJoYSA8anNhcmhhQHRpLmNvbT4KPiAKPiBBZGRzIHN1cHBvcnQgZm9yIENPTE9SX0VOQ09ESU5H IGFuZCBDT0xPUl9SQU5HRSBwcm9wZXJ0aWVzIHRvCj4gb21hcF9wbGFuZS5jIGFuZCBkaXNwYy5j LiBUaGUgc3VwcG9ydGVkIGVuY29kaW5ncyBhbmQgcmFuZ2VzIGFyZToKPiAKPiBGb3IgQ09MT1Jf RU5DT0RJTkc6Cj4gLSBZQ2JDdCBCVC42MDEgKGRlZmF1bHQpCgpEaWQgeW91IG1lYW4gWUNiQ3Ig PwoKPiAtIFlDYkN0IEJULjcwOQo+IAo+IEZvciBDT0xPUl9SQU5HRToKPiAtIFlDYkN0IGxpbWl0 ZWQgcmFuZ2UKPiAtIFlDYkN0IGZ1bGwgcmFuZ2UgKGRlZmF1bHQpCj4gCj4gU2lnbmVkLW9mZi1i eTogSnlyaSBTYXJoYSA8anNhcmhhQHRpLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBUb21pIFZhbGtl aW5lbiA8dG9taS52YWxrZWluZW5AdGkuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vb21h cGRybS9kc3MvZGlzcGMuYyAgIHwgMTE5ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLmggfCAgIDQgKwo+ICBkcml2ZXJzL2dw dS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMgIHwgIDMwICsrKysrKysKPiAgMyBmaWxlcyBjaGFu Z2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jIGIvZHJpdmVycy9ncHUvZHJtL29t YXBkcm0vZHNzL2Rpc3BjLmMKPiBpbmRleCA3ZDg3ZDYwZWRiODAuLjQwZGRiMjhlZTdhYSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZGlzcGMuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jCj4gQEAgLTg5MiwzMiArODkyLDkxIEBA IHN0YXRpYyB2b2lkIGRpc3BjX3diX3dyaXRlX2NvbG9yX2NvbnZfY29lZihzdHJ1Y3QgZGlzcGNf ZGV2aWNlICpkaXNwYywKPiAgI3VuZGVmIENWQUwKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZGlz cGNfc2V0dXBfY29sb3JfY29udl9jb2VmKHN0cnVjdCBkaXNwY19kZXZpY2UgKmRpc3BjKQo+ICsv KiBZVVYgLT4gUkdCLCBJVFUtUiBCVC42MDEsIGZ1bGwgcmFuZ2UgKi8KPiArY29uc3Qgc3RhdGlj IHN0cnVjdCBjc2NfY29lZl95dXYycmdiIGNvZWZzX3l1djJyZ2JfYnQ2MDFfZnVsbCA9IHsKCnN0 YXRpYyBjb25zdCBpcyB1c3VhbGx5IHByZWZlcnJlZCBvdmVyIGNvbnN0IHN0YXRpYywgaGVyZSBh bmQgYmVsb3cuCgo+ICsJMjU2LCAgIDAsICAzNTgsCQkvKiByeSwgcmNiLCByY3IgfDEuMDAwICAw LjAwMCAgMS40MDJ8Ki8KPiArCTI1NiwgLTg4LCAtMTgyLAkJLyogZ3ksIGdjYiwgZ2NyIHwxLjAw MCAtMC4zNDQgLTAuNzE0fCovCj4gKwkyNTYsIDQ1MiwgICAgMCwJCS8qIGJ5LCBiY2IsIGJjciB8 MS4wMDAgIDEuNzcyICAwLjAwMHwqLwo+ICsJdHJ1ZSwJCQkvKiBmdWxsIHJhbmdlICovCj4gK307 Cj4gKwo+ICsvKiBZVVYgLT4gUkdCLCBJVFUtUiBCVC42MDEsIGxpbWl0ZWQgcmFuZ2UgKi8KPiAr Y29uc3Qgc3RhdGljIHN0cnVjdCBjc2NfY29lZl95dXYycmdiIGNvZWZzX3l1djJyZ2JfYnQ2MDFf bGltID0gewo+ICsJMjk4LCAgICAwLCAgNDA5LAkvKiByeSwgcmNiLCByY3IgfDEuMTY0ICAwLjAw MCAgMS41OTZ8Ki8KPiArCTI5OCwgLTEwMCwgLTIwOCwJLyogZ3ksIGdjYiwgZ2NyIHwxLjE2NCAt MC4zOTIgLTAuODEzfCovCj4gKwkyOTgsICA1MTYsICAgIDAsCS8qIGJ5LCBiY2IsIGJjciB8MS4x NjQgIDIuMDE3ICAwLjAwMHwqLwo+ICsJZmFsc2UsCQkJLyogbGltaXRlZCByYW5nZSAqLwo+ICt9 Owo+ICsKPiArLyogWVVWIC0+IFJHQiwgSVRVLVIgQlQuNzA5LCBmdWxsIHJhbmdlICovCj4gK2Nv bnN0IHN0YXRpYyBzdHJ1Y3QgY3NjX2NvZWZfeXV2MnJnYiBjb2Vmc195dXYycmdiX2J0NzA5X2Z1 bGwgPSB7Cj4gKwkyNTYsICAgIDAsICA0MDIsICAgICAgICAvKiByeSwgcmNiLCByY3IgfDEuMDAw ICAwLjAwMCAgMS41NzB8Ki8KPiArCTI1NiwgIC00OCwgLTEyMCwgICAgICAgIC8qIGd5LCBnY2Is IGdjciB8MS4wMDAgLTAuMTg3IC0wLjQ2N3wqLwo+ICsJMjU2LCAgNDc1LCAgICAwLCAgICAgICAg LyogYnksIGJjYiwgYmNyIHwxLjAwMCAgMS44NTYgIDAuMDAwfCovCj4gKwl0cnVlLCAgICAgICAg ICAgICAgICAgICAvKiBmdWxsIHJhbmdlICovCj4gK307Cj4gKwo+ICsvKiBZVVYgLT4gUkdCLCBJ VFUtUiBCVC43MDksIGxpbWl0ZWQgcmFuZ2UgKi8KPiArY29uc3Qgc3RhdGljIHN0cnVjdCBjc2Nf Y29lZl95dXYycmdiIGNvZWZzX3l1djJyZ2JfYnQ3MDlfbGltID0gewo+ICsJMjk4LCAgICAwLCAg NDU5LAkvKiByeSwgcmNiLCByY3IgfDEuMTY0ICAwLjAwMCAgMS43OTN8Ki8KPiArCTI5OCwgIC01 NSwgLTEzNiwJLyogZ3ksIGdjYiwgZ2NyIHwxLjE2NCAtMC4yMTMgLTAuNTMzfCovCj4gKwkyOTgs ICA1NDEsICAgIDAsCS8qIGJ5LCBiY2IsIGJjciB8MS4xNjQgIDIuMTEyICAwLjAwMHwqLwo+ICsJ ZmFsc2UsCQkJLyogbGltaXRlZCByYW5nZSAqLwo+ICt9Owo+ICsKPiArLyogUkdCIC0+IFlVViwg SVRVLVIgQlQuNjAxLCBsaW1pdGVkIHJhbmdlICovCj4gK2NvbnN0IHN0YXRpYyBzdHJ1Y3QgY3Nj X2NvZWZfcmdiMnl1diBjb2Vmc19yZ2IyeXV2X2J0NjAxX2xpbSA9IHsKPiArCSA2NiwgMTI5LCAg MjUsCQkvKiB5ciwgICB5ZywgIHliIHwgMC4yNTcgIDAuNTA0ICAwLjA5OHwqLwo+ICsJLTM4LCAt NzQsIDExMiwJCS8qIGNiciwgY2JnLCBjYmIgfC0wLjE0OCAtMC4yOTEgIDAuNDM5fCovCj4gKwkx MTIsIC05NCwgLTE4LAkJLyogY3JyLCBjcmcsIGNyYiB8IDAuNDM5IC0wLjM2OCAtMC4wNzF8Ki8K PiArCWZhbHNlLAkJCS8qIGxpbWl0ZWQgcmFuZ2UgKi8KPiArfTsKPiArCj4gKy8qIFJHQiAtPiBZ VVYsIElUVS1SIEJULjYwMSwgZnVsbCByYW5nZSAqLwo+ICtjb25zdCBzdGF0aWMgc3RydWN0IGNz Y19jb2VmX3JnYjJ5dXYgY29lZnNfcmdiMnl1dl9idDYwMV9mdWxsID0gewo+ICsJIDc3LCAgMTUw LCAgMjksCQkvKiB5ciwgICB5ZywgIHliIHwgMC4yOTkgIDAuNTg3ICAwLjExNHwqLwo+ICsJLTQz LCAgLTg1LCAxMjgsCQkvKiBjYnIsIGNiZywgY2JiIHwtMC4xNzMgLTAuMzM5ICAwLjUxMXwqLwo+ ICsJMTI4LCAtMTA3LCAtMjEsCQkvKiBjcnIsIGNyZywgY3JiIHwgMC41MTEgLTAuNDI4IC0wLjA4 M3wqLwo+ICsJdHJ1ZSwJCQkvKiBmdWxsIHJhbmdlICovCj4gK307Cj4gKwo+ICsvKiBSR0IgLT4g WVVWLCBJVFUtUiBCVC43MDksIGxpbWl0ZWQgcmFuZ2UgKi8KPiArY29uc3Qgc3RhdGljIHN0cnVj dCBjc2NfY29lZl9yZ2IyeXV2IGNvZWZzX3JnYjJ5dXZfYnQ3MDFfbGltID0gewoKVGhhdCBzaG91 bGQgYmUgY29lZnNfcmdiMnl1dl9idDcwOV9saW0KCj4gKwkgNDcsICAxNTcsICAgMTYsCS8qIHly LCAgIHlnLCAgeWIgfCAwLjE4MjYgIDAuNjE0MiAgMC4wNjIwfCovCj4gKwktMjYsICAtODcsICAx MTIsCS8qIGNiciwgY2JnLCBjYmIgfC0wLjEwMDYgLTAuMzM4NiAgMC40MzkyfCovCj4gKwkxMTIs IC0xMDIsICAtMTAsCS8qIGNyciwgY3JnLCBjcmIgfCAwLjQzOTIgLTAuMzk4OSAtMC4wNDAzfCov Cj4gKwlmYWxzZSwJCQkvKiBsaW1pdGVkIHJhbmdlICovCj4gK307CgpXaHkgaXMgY29lZnNfcmdi Mnl1dl9idDcwOV9mdWxsIG5vdCBzdXBwb3J0ZWQgPyBBY3R1YWxseQpjb2Vmc19yZ2IyeXV2X2J0 NjAxX2xpbSBhbmQgY29lZnNfcmdiMnl1dl9idDcwMV9saW0gc2VlbSB1bnVzZWQuCgo+ICsKPiAr c3RhdGljIGludCBkaXNwY19vdmxfc2V0X2NzYyhzdHJ1Y3QgZGlzcGNfZGV2aWNlICpkaXNwYywK PiArCQkJICAgICBlbnVtIG9tYXBfcGxhbmVfaWQgcGxhbmUsCj4gKwkJCSAgICAgZW51bSBkcm1f Y29sb3JfZW5jb2RpbmcgY29sb3JfZW5jb2RpbmcsCj4gKwkJCSAgICAgZW51bSBkcm1fY29sb3Jf cmFuZ2UgY29sb3JfcmFuZ2UpCj4gIHsKPiAtCWludCBpOwo+IC0JaW50IG51bV9vdmwgPSBkaXNw Y19nZXRfbnVtX292bHMoZGlzcGMpOwo+IC0KPiAtCS8qIFlVViAtPiBSR0IsIElUVS1SIEJULjYw MSwgbGltaXRlZCByYW5nZSAqLwo+IC0JY29uc3Qgc3RydWN0IGNzY19jb2VmX3l1djJyZ2IgY29l ZnNfeXV2MnJnYl9idDYwMV9saW0gPSB7Cj4gLQkJMjk4LCAgICAwLCAgNDA5LAkvKiByeSwgcmNi LCByY3IgKi8KPiAtCQkyOTgsIC0xMDAsIC0yMDgsCS8qIGd5LCBnY2IsIGdjciAqLwo+IC0JCTI5 OCwgIDUxNiwgICAgMCwJLyogYnksIGJjYiwgYmNyICovCj4gLQkJZmFsc2UsCQkJLyogbGltaXRl ZCByYW5nZSAqLwo+IC0JfTsKPiArCWNvbnN0IHN0cnVjdCBjc2NfY29lZl95dXYycmdiICpjc2M7 Cj4gIAo+IC0JLyogUkdCIC0+IFlVViwgSVRVLVIgQlQuNjAxLCBsaW1pdGVkIHJhbmdlICovCj4g LQljb25zdCBzdHJ1Y3QgY3NjX2NvZWZfcmdiMnl1diBjb2Vmc19yZ2IyeXV2X2J0NjAxX2xpbSA9 IHsKPiAtCQkgNjYsIDEyOSwgIDI1LAkJLyogeXIsICAgeWcsICB5YiAqLwo+IC0JCS0zOCwgLTc0 LCAxMTIsCQkvKiBjYnIsIGNiZywgY2JiICovCj4gLQkJMTEyLCAtOTQsIC0xOCwJCS8qIGNyciwg Y3JnLCBjcmIgKi8KPiAtCQlmYWxzZSwJCQkvKiBsaW1pdGVkIHJhbmdlICovCj4gLQl9Owo+ICsJ c3dpdGNoIChjb2xvcl9lbmNvZGluZykgewo+ICsJY2FzZSBEUk1fQ09MT1JfWUNCQ1JfQlQ2MDE6 Cj4gKwkJaWYgKGNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQo+ICsJ CQljc2MgPSAmY29lZnNfeXV2MnJnYl9idDYwMV9mdWxsOwo+ICsJCWVsc2UKPiArCQkJY3NjID0g JmNvZWZzX3l1djJyZ2JfYnQ2MDFfbGltOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBEUk1fQ09MT1Jf WUNCQ1JfQlQ3MDk6Cj4gKwkJaWYgKGNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxM X1JBTkdFKQo+ICsJCQljc2MgPSAmY29lZnNfeXV2MnJnYl9idDcwOV9mdWxsOwo+ICsJCWVsc2UK PiArCQkJY3NjID0gJmNvZWZzX3l1djJyZ2JfYnQ3MDlfbGltOwo+ICsJCWJyZWFrOwo+ICsJZGVm YXVsdDoKPiArCQlEU1NFUlIoIlVuc3VwcG9ydGVkIENTQyBtb2RlICVkIGZvciBwbGFuZSAlZFxu IiwKPiArCQkgICAgICAgY29sb3JfZW5jb2RpbmcsIHBsYW5lKTsKPiArCQlyZXR1cm4gLUVJTlZB TDsKPiArCX0KPiAgCj4gLQlmb3IgKGkgPSAxOyBpIDwgbnVtX292bDsgaSsrKQo+IC0JCWRpc3Bj X292bF93cml0ZV9jb2xvcl9jb252X2NvZWYoZGlzcGMsIGksICZjb2Vmc195dXYycmdiX2J0NjAx X2xpbSk7Cj4gKwlkaXNwY19vdmxfd3JpdGVfY29sb3JfY29udl9jb2VmKGRpc3BjLCBwbGFuZSwg Y3NjKTsKPiAgCj4gLQlpZiAoZGlzcGMtPmZlYXQtPmhhc193cml0ZWJhY2spCj4gLQkJZGlzcGNf d2Jfd3JpdGVfY29sb3JfY29udl9jb2VmKGRpc3BjLCAmY29lZnNfcmdiMnl1dl9idDYwMV9saW0p Owo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGRpc3BjX292bF9zZXRfYmEw KHN0cnVjdCBkaXNwY19kZXZpY2UgKmRpc3BjLAo+IEBAIC0yNTk4LDcgKzI2NTcsOSBAQCBzdGF0 aWMgaW50IGRpc3BjX292bF9zZXR1cF9jb21tb24oc3RydWN0IGRpc3BjX2RldmljZSAqZGlzcGMs Cj4gIAkJCQkgIHU4IHByZV9tdWx0X2FscGhhLCB1OCBnbG9iYWxfYWxwaGEsCj4gIAkJCQkgIGVu dW0gb21hcF9kc3Nfcm90YXRpb25fdHlwZSByb3RhdGlvbl90eXBlLAo+ICAJCQkJICBib29sIHJl cGxpY2F0aW9uLCBjb25zdCBzdHJ1Y3QgdmlkZW9tb2RlICp2bSwKPiAtCQkJCSAgYm9vbCBtZW1f dG9fbWVtKQo+ICsJCQkJICBib29sIG1lbV90b19tZW0sCj4gKwkJCQkgIGVudW0gZHJtX2NvbG9y X2VuY29kaW5nIGNvbG9yX2VuY29kaW5nLAo+ICsJCQkJICBlbnVtIGRybV9jb2xvcl9yYW5nZSBj b2xvcl9yYW5nZSkKPiAgewo+ICAJYm9vbCBmaXZlX3RhcHMgPSB0cnVlOwo+ICAJYm9vbCBmaWVs ZG1vZGUgPSBmYWxzZTsKPiBAQCAtMjc0Nyw2ICsyODA4LDkgQEAgc3RhdGljIGludCBkaXNwY19v dmxfc2V0dXBfY29tbW9uKHN0cnVjdCBkaXNwY19kZXZpY2UgKmRpc3BjLAo+ICAJCQkJICAgICAg ZmllbGRtb2RlLCBmb3VyY2MsIHJvdGF0aW9uKTsKPiAgCQlkaXNwY19vdmxfc2V0X291dHB1dF9z aXplKGRpc3BjLCBwbGFuZSwgb3V0X3dpZHRoLCBvdXRfaGVpZ2h0KTsKPiAgCQlkaXNwY19vdmxf c2V0X3ZpZF9jb2xvcl9jb252KGRpc3BjLCBwbGFuZSwgY2NvbnYpOwo+ICsKPiArCQlpZiAocGxh bmUgIT0gT01BUF9EU1NfV0IpCj4gKwkJCWRpc3BjX292bF9zZXRfY3NjKGRpc3BjLCBwbGFuZSwg Y29sb3JfZW5jb2RpbmcsIGNvbG9yX3JhbmdlKTsKPiAgCX0KPiAgCj4gIAlkaXNwY19vdmxfc2V0 X3JvdGF0aW9uX2F0dHJzKGRpc3BjLCBwbGFuZSwgcm90YXRpb24sIHJvdGF0aW9uX3R5cGUsCj4g QEAgLTI3ODMsNyArMjg0Nyw4IEBAIHN0YXRpYyBpbnQgZGlzcGNfb3ZsX3NldHVwKHN0cnVjdCBk aXNwY19kZXZpY2UgKmRpc3BjLAo+ICAJCW9pLT5zY3JlZW5fd2lkdGgsIG9pLT5wb3NfeCwgb2kt PnBvc195LCBvaS0+d2lkdGgsIG9pLT5oZWlnaHQsCj4gIAkJb2ktPm91dF93aWR0aCwgb2ktPm91 dF9oZWlnaHQsIG9pLT5mb3VyY2MsIG9pLT5yb3RhdGlvbiwKPiAgCQlvaS0+em9yZGVyLCBvaS0+ cHJlX211bHRfYWxwaGEsIG9pLT5nbG9iYWxfYWxwaGEsCj4gLQkJb2ktPnJvdGF0aW9uX3R5cGUs IHJlcGxpY2F0aW9uLCB2bSwgbWVtX3RvX21lbSk7Cj4gKwkJb2ktPnJvdGF0aW9uX3R5cGUsIHJl cGxpY2F0aW9uLCB2bSwgbWVtX3RvX21lbSwKPiArCQlvaS0+Y29sb3JfZW5jb2RpbmcsIG9pLT5j b2xvcl9yYW5nZSk7Cj4gIAo+ICAJcmV0dXJuIHI7Cj4gIH0KPiBAQCAtMjgxNiw3ICsyODgxLDgg QEAgc3RhdGljIGludCBkaXNwY193Yl9zZXR1cChzdHJ1Y3QgZGlzcGNfZGV2aWNlICpkaXNwYywK PiAgCQl3aS0+YnVmX3dpZHRoLCBwb3NfeCwgcG9zX3ksIGluX3dpZHRoLCBpbl9oZWlnaHQsIHdp LT53aWR0aCwKPiAgCQl3aS0+aGVpZ2h0LCB3aS0+Zm91cmNjLCB3aS0+cm90YXRpb24sIHpvcmRl ciwKPiAgCQl3aS0+cHJlX211bHRfYWxwaGEsIGdsb2JhbF9hbHBoYSwgd2ktPnJvdGF0aW9uX3R5 cGUsCj4gLQkJcmVwbGljYXRpb24sIHZtLCBtZW1fdG9fbWVtKTsKPiArCQlyZXBsaWNhdGlvbiwg dm0sIG1lbV90b19tZW0sIERSTV9DT0xPUl9ZQ0JDUl9CVDYwMSwKPiArCQlEUk1fQ09MT1JfWUNC Q1JfTElNSVRFRF9SQU5HRSk7Cj4gIAlpZiAocikKPiAgCQlyZXR1cm4gcjsKPiAgCj4gQEAgLTM5 NDgsNyArNDAxNCw4IEBAIHN0YXRpYyB2b2lkIF9vbWFwX2Rpc3BjX2luaXRpYWxfY29uZmlnKHN0 cnVjdCBkaXNwY19kZXZpY2UgKmRpc3BjKQo+ICAJICAgIGRpc3BjLT5mZWF0LT5oYXNfZ2FtbWFf dGFibGUpCj4gIAkJUkVHX0ZMRF9NT0QoZGlzcGMsIERJU1BDX0NPTkZJRywgMSwgOSwgOSk7Cj4g IAo+IC0JZGlzcGNfc2V0dXBfY29sb3JfY29udl9jb2VmKGRpc3BjKTsKPiArCWlmIChkaXNwYy0+ ZmVhdC0+aGFzX3dyaXRlYmFjaykKPiArCQlkaXNwY193Yl93cml0ZV9jb2xvcl9jb252X2NvZWYo ZGlzcGMsICZjb2Vmc19yZ2IyeXV2X2J0NjAxX2Z1bGwpOwo+ICAKPiAgCWRpc3BjX3NldF9sb2Fk bW9kZShkaXNwYywgT01BUF9EU1NfTE9BRF9GUkFNRV9PTkxZKTsKPiAgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLmggYi9kcml2ZXJzL2dwdS9kcm0v b21hcGRybS9kc3Mvb21hcGRzcy5oCj4gaW5kZXggNzlmNmIxOTVjN2NmLi4xNDMwY2FiNmI4Nzcg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL29tYXBkc3MuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLmgKPiBAQCAtMTQsNiArMTQs NyBAQAo+ICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9vbWFwZHNzLmg+Cj4gICNpbmNs dWRlIDx1YXBpL2RybS9kcm1fbW9kZS5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Cj4g KyNpbmNsdWRlIDxkcm0vZHJtX2NvbG9yX21nbXQuaD4KCkFscGhhYmV0aWNhbCBvcmRlciA/IFdo aWxlIGF0IGlzIHlvdSBjb3VsZGUgcmVtb3ZlIHVhcGkvCgo+ICAKPiAgI2RlZmluZSBESVNQQ19J UlFfRlJBTUVET05FCQkoMSA8PCAwKQo+ICAjZGVmaW5lIERJU1BDX0lSUV9WU1lOQwkJCSgxIDw8 IDEpCj4gQEAgLTI0Myw2ICsyNDQsOSBAQCBzdHJ1Y3Qgb21hcF9vdmVybGF5X2luZm8gewo+ICAJ dTggZ2xvYmFsX2FscGhhOwo+ICAJdTggcHJlX211bHRfYWxwaGE7Cj4gIAl1OCB6b3JkZXI7Cj4g Kwo+ICsJZW51bSBkcm1fY29sb3JfZW5jb2RpbmcgY29sb3JfZW5jb2Rpbmc7Cj4gKwllbnVtIGRy bV9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZTsKPiAgfTsKPiAgCj4gIHN0cnVjdCBvbWFwX292ZXJs YXlfbWFuYWdlcl9pbmZvIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0v b21hcF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9wbGFuZS5jCj4gaW5k ZXggNzNlYzk5ODE5YTNkLi5kYjhlOTE3MjYwZGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL29tYXBkcm0vb21hcF9wbGFuZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0v b21hcF9wbGFuZS5jCj4gQEAgLTU5LDYgKzU5LDggQEAgc3RhdGljIHZvaWQgb21hcF9wbGFuZV9h dG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCWluZm8ucHJlX211bHRf YWxwaGEgPSAxOwo+ICAJZWxzZQo+ICAJCWluZm8ucHJlX211bHRfYWxwaGEgPSAwOwo+ICsJaW5m by5jb2xvcl9lbmNvZGluZyA9IHN0YXRlLT5jb2xvcl9lbmNvZGluZzsKPiArCWluZm8uY29sb3Jf cmFuZ2UgPSBzdGF0ZS0+Y29sb3JfcmFuZ2U7Cj4gIAo+ICAJLyogdXBkYXRlIHNjYW5vdXQ6ICov Cj4gIAlvbWFwX2ZyYW1lYnVmZmVyX3VwZGF0ZV9zY2Fub3V0KHN0YXRlLT5mYiwgc3RhdGUsICZp bmZvKTsKPiBAQCAtMTg5LDYgKzE5MSw4IEBAIHN0YXRpYyB2b2lkIG9tYXBfcGxhbmVfcmVzZXQo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gIAkgKi8KPiAgCXBsYW5lLT5zdGF0ZS0+enBvcyA9 IHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkKPiAgCQkJICAgPyAwIDogb21h cF9wbGFuZS0+aWQ7Cj4gKwlwbGFuZS0+c3RhdGUtPmNvbG9yX2VuY29kaW5nID0gRFJNX0NPTE9S X1lDQkNSX0JUNjAxOwo+ICsJcGxhbmUtPnN0YXRlLT5jb2xvcl9yYW5nZSA9IERSTV9DT0xPUl9Z Q0JDUl9GVUxMX1JBTkdFOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IG9tYXBfcGxhbmVfYXRvbWlj X3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiBAQCAtMjMyLDYgKzIzNiwy MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBvbWFwX3BsYW5lX2Z1bmNz ID0gewo+ICAJLmF0b21pY19nZXRfcHJvcGVydHkgPSBvbWFwX3BsYW5lX2F0b21pY19nZXRfcHJv cGVydHksCj4gIH07Cj4gIAo+ICtzdGF0aWMgYm9vbCBvbWFwX3BsYW5lX3N1cHBvcnRzX3l1dihz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiArewo+ICsJc3RydWN0IG9tYXBfZHJtX3ByaXZhdGUg KnByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBvbWFwX3BsYW5lICpv bWFwX3BsYW5lID0gdG9fb21hcF9wbGFuZShwbGFuZSk7Cj4gKwljb25zdCB1MzIgKmZvcm1hdHMg PQo+ICsJCXByaXYtPmRpc3BjX29wcy0+b3ZsX2dldF9jb2xvcl9tb2Rlcyhwcml2LT5kaXNwYywg b21hcF9wbGFuZS0+aWQpOwo+ICsJaW50IGk7Cgp1bnNpZ25lZCBpbnQgaSA/Cgo+ICsKPiArCWZv ciAoaSA9IDA7IGZvcm1hdHNbaV07IGkrKykKPiArCQlpZiAoZm9ybWF0c1tpXSA9PSBEUk1fRk9S TUFUX1lVWVYgfHwKPiArCQkgICAgZm9ybWF0c1tpXSA9PSBEUk1fRk9STUFUX1VZVlkgfHwKPiAr CQkgICAgZm9ybWF0c1tpXSA9PSBEUk1fRk9STUFUX05WMTIpCj4gKwkJCXJldHVybiB0cnVlOwo+ ICsKPiArCXJldHVybiBmYWxzZTsKPiArfQo+ICsKPiAgc3RhdGljIGNvbnN0IGNoYXIgKnBsYW5l X2lkX3RvX25hbWVbXSA9IHsKPiAgCVtPTUFQX0RTU19HRlhdID0gImdmeCIsCj4gIAlbT01BUF9E U1NfVklERU8xXSA9ICJ2aWQxIiwKPiBAQCAtMjkzLDYgKzMxNCwxNSBAQCBzdHJ1Y3QgZHJtX3Bs YW5lICpvbWFwX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWRybV9wbGFu ZV9jcmVhdGVfYmxlbmRfbW9kZV9wcm9wZXJ0eShwbGFuZSwgQklUKERSTV9NT0RFX0JMRU5EX1BS RU1VTFRJKSB8Cj4gIAkJCQkJICAgICBCSVQoRFJNX01PREVfQkxFTkRfQ09WRVJBR0UpKTsKPiAg Cj4gKwlpZiAob21hcF9wbGFuZV9zdXBwb3J0c195dXYocGxhbmUpKQo+ICsJCWRybV9wbGFuZV9j cmVhdGVfY29sb3JfcHJvcGVydGllcyhwbGFuZSwKPiArCQkJCQlCSVQoRFJNX0NPTE9SX1lDQkNS X0JUNjAxKSB8Cj4gKwkJCQkJQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSksCj4gKwkJCQkJQklU KERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKSB8Cj4gKwkJCQkJQklUKERSTV9DT0xPUl9ZQ0JD Ul9MSU1JVEVEX1JBTkdFKSwKPiArCQkJCQlEUk1fQ09MT1JfWUNCQ1JfQlQ2MDEsCj4gKwkJCQkJ RFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpOwo+ICsKPiAgCXJldHVybiBwbGFuZTsKPiAgCj4g IGVycm9yOgoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==