From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v2, 1/8] drm: Add optional COLOR_ENCODING and COLOR_RANGE properties to drm_plane Date: Fri, 30 Nov 2018 15:25:12 +0200 Message-ID: <20181130132512.GR9144@intel.com> References: <20180219202823.10508-1-ville.syrjala@linux.intel.com> <2a1074ba-e2a7-83fc-8a13-c785dc8da2f9@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <2a1074ba-e2a7-83fc-8a13-c785dc8da2f9@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Christoph Manszewski Cc: intel-gfx@lists.freedesktop.org, Russell King - ARM Linux , dri-devel@lists.freedesktop.org, Hans Verkuil , Harry Wentland , Ilia Mirkin List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMzAsIDIwMTggYXQgMDI6MDg6MTFQTSArMDEwMCwgQ2hyaXN0b3BoIE1hbnN6 ZXdza2kgd3JvdGU6Cj4gSGksCj4gCj4gSSBhbSBsb29raW5nIGZvciBhIHdheSB0byBleHBvcnQg dGhlIGNvbG9yIGVuY29kaW5nIGFuZCByYW5nZSBzZWxlY3Rpb24KPiB0byB1c2VyIHNwYWNlLiBJ IGNhbWUgYWNyb3NzIHRob3NlIHByb3BlcnRpZXMgYW5kIGFtIHdvbmRlcmluZywgd2h5Cj4gdGhl eSBhcmUgbWVhbnQgb25seSBmb3Igbm9uIFJHQiBjb2xvciBlbmNvZGluZ3MuIFdvdWxkIGl0IGJl IG9rYXksIHRvCj4gbW9kaWZ5IHRoZW0gYW5kIHVzZSB3aXRoIFJHQiBmb3JtYXRzIGFzIHdlbGw/ CgpXaGF0IHlvdSB0cnlpbmcgdG8gZG8/IElucHV0IGxpbWl0ZWQgcmFuZ2UgUkdCIGRhdGEgYW5k IGV4cGFuZCB0byBmdWxsCnJhbmdlPwoKPiAKPiBSZWdhcmRzLAo+IENocmlzCj4gCj4gCj4gT24g MDIvMTkvMjAxOCAwOToyOCBQTSwgVmlsbGUgU3lyamFsYSB3cm90ZToKPiA+IEZyb206IEp5cmkg U2FyaGEgPGpzYXJoYUB0aS5jb20+Cj4gPgo+ID4gQWRkIGEgc3RhbmRhcmQgb3B0aW9uYWwgcHJv cGVydGllcyB0byBzdXBwb3J0IGRpZmZlcmVudCBub24gUkdCIGNvbG9yCj4gPiBlbmNvZGluZ3Mg aW4gRFJNIHBsYW5lcy4gQ09MT1JfRU5DT0RJTkcgc2VsZWN0IHRoZSBzdXBwb3J0ZWQgbm9uIFJH Qgo+ID4gY29sb3IgZW5jb2RpbmcsIGZvciBpbnN0YW5jZSBJVFUtUiBCVC43MDkgWUNiQ3IuIENP TE9SX1JBTkdFIHNlbGVjdHMKPiA+IHRoZSB2YWx1ZSByYW5nZXMgd2l0aGluIHRoZSBzZWxlY3Rl ZCBjb2xvciBlbmNvZGluZy4gVGhlIHByb3BlcnRpZXMKPiA+IGFyZSBzdG9yZWQgdG8gZHJtX3Bs YW5lIG9iamVjdCB0byBhbGxvdyBkaWZmZXJlbnQgc2V0IG9mIHN1cHBvcnRlZAo+ID4gZW5jb2Rp bmcgZm9yIGRpZmZlcmVudCBwbGFuZXMgb24gdGhlIGRldmljZS4KPiA+Cj4gPiB2MjogQWRkL2Zp eCBrZXJuZWxkb2NzLCB2ZXJpZnkgYml0bWFza3MgKGRhbnZldCkKPiA+Cj4gPiBDYzogSGFycnkg V2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+Cj4gPiBDYzogRGFuaWVsIFZldHRlciA8 ZGFuaWVsQGZmd2xsLmNoPgo+ID4gQ2M6IERhbmllbCBTdG9uZSA8ZGFuaWVsQGZvb2lzaGJhci5v cmc+Cj4gPiBDYzogUnVzc2VsbCBLaW5nIC0gQVJNIExpbnV4IDxsaW51eEBhcm1saW51eC5vcmcu dWs+Cj4gPiBDYzogSWxpYSBNaXJraW4gPGltaXJraW5AYWx1bS5taXQuZWR1Pgo+ID4gQ2M6IEhh bnMgVmVya3VpbCA8aHZlcmt1aWxAeHM0YWxsLm5sPgo+ID4gQ2M6IFVtYSBTaGFua2FyIDx1bWEu c2hhbmthckBpbnRlbC5jb20+Cj4gPiBDYzogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFy bWFAaW50ZWwuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBKeXJpIFNhcmhhIDxqc2Fy aGFAdGkuY29tPgo+ID4gW3ZzeXJqYWxhIHYyOiBBZGQvZml4IGtlcm5lbGRvY3MsIHZlcmlmeSBi aXRtYXNrc10KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+Cj4gPiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBmZndsbC5jaD4KPiA+IC0tLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Yy5jICAgICB8ICAgOCArKysKPiA+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMg fCAxMDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgIGluY2x1 ZGUvZHJtL2RybV9jb2xvcl9tZ210LmggICAgIHwgIDE5ICsrKysrKysrCj4gPiAgIGluY2x1ZGUv ZHJtL2RybV9wbGFuZS5oICAgICAgICAgIHwgIDMyICsrKysrKysrKysrKwo+ID4gICA0IGZpbGVz IGNoYW5nZWQsIDE2MiBpbnNlcnRpb25zKCspCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPiBp bmRleCA0NjczM2Q1MzQ1ODcuLjQ1MmEwYjBiYWZiYyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj LmMKPiA+IEBAIC03NTksNiArNzU5LDEwIEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19wbGFuZV9z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAgIAkJc3RhdGUtPnJvdGF0 aW9uID0gdmFsOwo+ID4gICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+enBvc19wcm9w ZXJ0eSkgewo+ID4gICAJCXN0YXRlLT56cG9zID0gdmFsOwo+ID4gKwl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IHBsYW5lLT5jb2xvcl9lbmNvZGluZ19wcm9wZXJ0eSkgewo+ID4gKwkJc3RhdGUtPmNv bG9yX2VuY29kaW5nID0gdmFsOwo+ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5j b2xvcl9yYW5nZV9wcm9wZXJ0eSkgewo+ID4gKwkJc3RhdGUtPmNvbG9yX3JhbmdlID0gdmFsOwo+ ID4gICAJfSBlbHNlIGlmIChwbGFuZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKPiA+ ICAgCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0 ZSwKPiA+ICAgCQkJCXByb3BlcnR5LCB2YWwpOwo+ID4gQEAgLTgxOCw2ICs4MjIsMTAgQEAgZHJt X2F0b21pY19wbGFuZV9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAg IAkJKnZhbCA9IHN0YXRlLT5yb3RhdGlvbjsKPiA+ICAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g cGxhbmUtPnpwb3NfcHJvcGVydHkpIHsKPiA+ICAgCQkqdmFsID0gc3RhdGUtPnpwb3M7Cj4gPiAr CX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9yX2VuY29kaW5nX3Byb3BlcnR5KSB7 Cj4gPiArCQkqdmFsID0gc3RhdGUtPmNvbG9yX2VuY29kaW5nOwo+ID4gKwl9IGVsc2UgaWYgKHBy b3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5nZV9wcm9wZXJ0eSkgewo+ID4gKwkJKnZhbCA9IHN0 YXRlLT5jb2xvcl9yYW5nZTsKPiA+ICAgCX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNf Z2V0X3Byb3BlcnR5KSB7Cj4gPiAgIAkJcmV0dXJuIHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9w cm9wZXJ0eShwbGFuZSwgc3RhdGUsIHByb3BlcnR5LCB2YWwpOwo+ID4gICAJfSBlbHNlIHsKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fY29sb3JfbWdtdC5jCj4gPiBpbmRleCAwZDAwMmIwNDViZDIuLjRiODNlMDc4 ZDNlOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYwo+ID4gQEAgLTg4LDYgKzg4 LDIwIEBACj4gPiAgICAqIGRybV9tb2RlX2NydGNfc2V0X2dhbW1hX3NpemUoKS4gRHJpdmVycyB3 aGljaCBzdXBwb3J0IGJvdGggc2hvdWxkIHVzZQo+ID4gICAgKiBkcm1fYXRvbWljX2hlbHBlcl9s ZWdhY3lfZ2FtbWFfc2V0KCkgdG8gYWxpYXMgdGhlIGxlZ2FjeSBnYW1tYSByYW1wIHdpdGggdGhl Cj4gPiAgICAqICJHQU1NQV9MVVQiIHByb3BlcnR5IGFib3ZlLgo+ID4gKyAqCj4gPiArICogU3Vw cG9ydCBmb3IgZGlmZmVyZW50IG5vbiBSR0IgY29sb3IgZW5jb2RpbmdzIGlzIGNvbnRyb2xsZWQg dGhyb3VnaAo+ID4gKyAqICZkcm1fcGxhbmUgc3BlY2lmaWMgQ09MT1JfRU5DT0RJTkcgYW5kIENP TE9SX1JBTkdFIHByb3BlcnRpZXMuIFRoZXkKPiA+ICsgKiBhcmUgc2V0IHVwIGJ5IGNhbGxpbmcg ZHJtX3BsYW5lX2NyZWF0ZV9jb2xvcl9wcm9wZXJ0aWVzKCkuCj4gPiArICoKPiA+ICsgKiAiQ09M T1JfRU5DT0RJTkciCj4gPiArICogCU9wdGlvbmFsIHBsYW5lIGVudW0gcHJvcGVydHkgdG8gc3Vw cG9ydCBkaWZmZXJlbnQgbm9uIFJHQgo+ID4gKyAqIAljb2xvciBlbmNvZGluZ3MuIFRoZSBkcml2 ZXIgY2FuIHByb3ZpZGUgYSBzdWJzZXQgb2Ygc3RhbmRhcmQKPiA+ICsgKiAJZW51bSB2YWx1ZXMg c3VwcG9ydGVkIGJ5IHRoZSBEUk0gcGxhbmUuCj4gPiArICoKPiA+ICsgKiAiQ09MT1JfUkFOR0Ui Cj4gPiArICogCU9wdGlvbmFsIHBsYW5lIGVudW0gcHJvcGVydHkgdG8gc3VwcG9ydCBkaWZmZXJl bnQgbm9uIFJHQgo+ID4gKyAqIAljb2xvciBwYXJhbWV0ZXIgcmFuZ2VzLiBUaGUgZHJpdmVyIGNh biBwcm92aWRlIGEgc3Vic2V0IG9mCj4gPiArICogCXN0YW5kYXJkIGVudW0gdmFsdWVzIHN1cHBv cnRlZCBieSB0aGUgRFJNIHBsYW5lLgo+ID4gICAgKi8KPiA+ICAgCj4gPiAgIC8qKgo+ID4gQEAg LTMzOSwzICszNTMsOTIgQEAgaW50IGRybV9tb2RlX2dhbW1hX2dldF9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ID4gICAJZHJtX21vZGVzZXRfdW5sb2NrKCZjcnRjLT5tdXRleCk7Cj4g PiAgIAlyZXR1cm4gcmV0Owo+ID4gICB9Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKiBj b25zdCBjb2xvcl9lbmNvZGluZ19uYW1lW10gPSB7Cj4gPiArCVtEUk1fQ09MT1JfWUNCQ1JfQlQ2 MDFdID0gIklUVS1SIEJULjYwMSBZQ2JDciIsCj4gPiArCVtEUk1fQ09MT1JfWUNCQ1JfQlQ3MDld ID0gIklUVS1SIEJULjcwOSBZQ2JDciIsCj4gPiArCVtEUk1fQ09MT1JfWUNCQ1JfQlQyMDIwXSA9 ICJJVFUtUiBCVC4yMDIwIFlDYkNyIiwKPiA+ICt9Owo+ID4gKwo+ID4gK3N0YXRpYyBjb25zdCBj aGFyICogY29uc3QgY29sb3JfcmFuZ2VfbmFtZVtdID0gewo+ID4gKwlbRFJNX0NPTE9SX1lDQkNS X0ZVTExfUkFOR0VdID0gIllDYkNyIGZ1bGwgcmFuZ2UiLAo+ID4gKwlbRFJNX0NPTE9SX1lDQkNS X0xJTUlURURfUkFOR0VdID0gIllDYkNyIGxpbWl0ZWQgcmFuZ2UiLAo+ID4gK307Cj4gPiArCj4g PiArLyoqCj4gPiArICogZHJtX3BsYW5lX2NyZWF0ZV9jb2xvcl9wcm9wZXJ0aWVzIC0gY29sb3Ig ZW5jb2RpbmcgcmVsYXRlZCBwbGFuZSBwcm9wZXJ0aWVzCj4gPiArICogQHBsYW5lOiBwbGFuZSBv YmplY3QKPiA+ICsgKiBAc3VwcG9ydGVkX2VuY29kaW5nczogYml0ZmllbGQgaW5kaWNhdGluZyBz dXBwb3J0ZWQgY29sb3IgZW5jb2RpbmdzCj4gPiArICogQHN1cHBvcnRlZF9yYW5nZXM6IGJpdGZp bGVsZCBpbmRpY2F0aW5nIHN1cHBvcnRlZCBjb2xvciByYW5nZXMKPiA+ICsgKiBAZGVmYXVsdF9l bmNvZGluZzogZGVmYXVsdCBjb2xvciBlbmNvZGluZwo+ID4gKyAqIEBkZWZhdWx0X3JhbmdlOiBk ZWZhdWx0IGNvbG9yIHJhbmdlCj4gPiArICoKPiA+ICsgKiBDcmVhdGUgYW5kIGF0dGFjaCBwbGFu ZSBzcGVjaWZpYyBDT0xPUl9FTkNPRElORyBhbmQgQ09MT1JfUkFOR0UKPiA+ICsgKiBwcm9wZXJ0 aWVzIHRvIEBwbGFuZS4gVGhlIHN1cHBvcnRlZCBlbmNvZGluZ3MgYW5kIHJhbmdlcyBzaG91bGQK PiA+ICsgKiBiZSBwcm92aWRlZCBpbiBzdXBwb3J0ZWRfZW5jb2RpbmdzIGFuZCBzdXBwb3J0ZWRf cmFuZ2VzIGJpdG1hc2tzLgo+ID4gKyAqIEVhY2ggYml0IHNldCBpbiB0aGUgYml0bWFzayBpbmRp Y2F0ZXMgdGhhdCBpdHMgbnVtYmVyIGFzIGVudW0KPiA+ICsgKiB2YWx1ZSBpcyBzdXBwb3J0ZWQu Cj4gPiArICovCj4gPiAraW50IGRybV9wbGFuZV9jcmVhdGVfY29sb3JfcHJvcGVydGllcyhzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ICsJCQkJICAgICAgdTMyIHN1cHBvcnRlZF9lbmNvZGlu Z3MsCj4gPiArCQkJCSAgICAgIHUzMiBzdXBwb3J0ZWRfcmFuZ2VzLAo+ID4gKwkJCQkgICAgICBl bnVtIGRybV9jb2xvcl9lbmNvZGluZyBkZWZhdWx0X2VuY29kaW5nLAo+ID4gKwkJCQkgICAgICBl bnVtIGRybV9jb2xvcl9yYW5nZSBkZWZhdWx0X3JhbmdlKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Cj4gPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnBy b3A7Cj4gPiArCXN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgZW51bV9saXN0W21heChEUk1fQ09M T1JfRU5DT0RJTkdfTUFYLAo+ID4gKwkJCQkJCURSTV9DT0xPUl9SQU5HRV9NQVgpXTsKPiA+ICsJ aW50IGksIGxlbjsKPiA+ICsKPiA+ICsJaWYgKFdBUk5fT04oc3VwcG9ydGVkX2VuY29kaW5ncyA9 PSAwIHx8Cj4gPiArCQkgICAgKHN1cHBvcnRlZF9lbmNvZGluZ3MgJiAtQklUKERSTV9DT0xPUl9F TkNPRElOR19NQVgpKSAhPSAwIHx8Cj4gPiArCQkgICAgKHN1cHBvcnRlZF9lbmNvZGluZ3MgJiBC SVQoZGVmYXVsdF9lbmNvZGluZykpID09IDApKQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiAr Cj4gPiArCWlmIChXQVJOX09OKHN1cHBvcnRlZF9yYW5nZXMgPT0gMCB8fAo+ID4gKwkJICAgIChz dXBwb3J0ZWRfcmFuZ2VzICYgLUJJVChEUk1fQ09MT1JfUkFOR0VfTUFYKSkgIT0gMCB8fAo+ID4g KwkJICAgIChzdXBwb3J0ZWRfcmFuZ2VzICYgQklUKGRlZmF1bHRfcmFuZ2UpKSA9PSAwKSkKPiA+ ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gKwlsZW4gPSAwOwo+ID4gKwlmb3IgKGkgPSAw OyBpIDwgRFJNX0NPTE9SX0VOQ09ESU5HX01BWDsgaSsrKSB7Cj4gPiArCQlpZiAoKHN1cHBvcnRl ZF9lbmNvZGluZ3MgJiBCSVQoaSkpID09IDApCj4gPiArCQkJY29udGludWU7Cj4gPiArCj4gPiAr CQllbnVtX2xpc3RbbGVuXS50eXBlID0gaTsKPiA+ICsJCWVudW1fbGlzdFtsZW5dLm5hbWUgPSBj b2xvcl9lbmNvZGluZ19uYW1lW2ldOwo+ID4gKwkJbGVuKys7Cj4gPiArCX0KPiA+ICsKPiA+ICsJ cHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bShkZXYsIDAsICJDT0xPUl9FTkNPRElORyIs Cj4gPiArCQkJCQllbnVtX2xpc3QsIGxlbik7Cj4gPiArCWlmICghcHJvcCkKPiA+ICsJCXJldHVy biAtRU5PTUVNOwo+ID4gKwlwbGFuZS0+Y29sb3JfZW5jb2RpbmdfcHJvcGVydHkgPSBwcm9wOwo+ ID4gKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIHByb3AsIGRlZmF1 bHRfZW5jb2RpbmcpOwo+ID4gKwlpZiAocGxhbmUtPnN0YXRlKQo+ID4gKwkJcGxhbmUtPnN0YXRl LT5jb2xvcl9lbmNvZGluZyA9IGRlZmF1bHRfZW5jb2Rpbmc7Cj4gPiArCj4gPiArCWxlbiA9IDA7 Cj4gPiArCWZvciAoaSA9IDA7IGkgPCBEUk1fQ09MT1JfUkFOR0VfTUFYOyBpKyspIHsKPiA+ICsJ CWlmICgoc3VwcG9ydGVkX3JhbmdlcyAmIEJJVChpKSkgPT0gMCkKPiA+ICsJCQljb250aW51ZTsK PiA+ICsKPiA+ICsJCWVudW1fbGlzdFtsZW5dLnR5cGUgPSBpOwo+ID4gKwkJZW51bV9saXN0W2xl bl0ubmFtZSA9IGNvbG9yX3JhbmdlX25hbWVbaV07Cj4gPiArCQlsZW4rKzsKPiA+ICsJfQo+ID4g Kwo+ID4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwgMCwJIkNPTE9SX1JB TkdFIiwKPiA+ICsJCQkJCWVudW1fbGlzdCwgbGVuKTsKPiA+ICsJaWYgKCFwcm9wKQo+ID4gKwkJ cmV0dXJuIC1FTk9NRU07Cj4gPiArCXBsYW5lLT5jb2xvcl9yYW5nZV9wcm9wZXJ0eSA9IHByb3A7 Cj4gPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwgZGVm YXVsdF9yYW5nZSk7Cj4gPiArCWlmIChwbGFuZS0+c3RhdGUpCj4gPiArCQlwbGFuZS0+c3RhdGUt PmNvbG9yX3JhbmdlID0gZGVmYXVsdF9yYW5nZTsKPiA+ICsKPiA+ICsJcmV0dXJuIDA7Cj4gPiAr fQo+ID4gK0VYUE9SVF9TWU1CT0woZHJtX3BsYW5lX2NyZWF0ZV9jb2xvcl9wcm9wZXJ0aWVzKTsK PiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29sb3JfbWdtdC5oIGIvaW5jbHVkZS9k cm0vZHJtX2NvbG9yX21nbXQuaAo+ID4gaW5kZXggMDNhNTljYmNlNjIxLi5iM2I2ZDMwMmNhOGMg MTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY29sb3JfbWdtdC5oCj4gPiArKysgYi9p bmNsdWRlL2RybS9kcm1fY29sb3JfbWdtdC5oCj4gPiBAQCAtMjYsNiArMjYsNyBAQAo+ID4gICAj aW5jbHVkZSA8bGludXgvY3R5cGUuaD4KPiA+ICAgCj4gPiAgIHN0cnVjdCBkcm1fY3J0YzsKPiA+ ICtzdHJ1Y3QgZHJtX3BsYW5lOwo+ID4gICAKPiA+ICAgdWludDMyX3QgZHJtX2NvbG9yX2x1dF9l eHRyYWN0KHVpbnQzMl90IHVzZXJfaW5wdXQsIHVpbnQzMl90IGJpdF9wcmVjaXNpb24pOwo+ID4g ICAKPiA+IEBAIC0zNyw0ICszOCwyMiBAQCB2b2lkIGRybV9jcnRjX2VuYWJsZV9jb2xvcl9tZ210 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAgaW50IGRybV9tb2RlX2NydGNfc2V0X2dhbW1h X3NpemUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gICAJCQkJIGludCBnYW1tYV9zaXplKTsK PiA+ICAgCj4gPiArZW51bSBkcm1fY29sb3JfZW5jb2Rpbmcgewo+ID4gKwlEUk1fQ09MT1JfWUNC Q1JfQlQ2MDEsCj4gPiArCURSTV9DT0xPUl9ZQ0JDUl9CVDcwOSwKPiA+ICsJRFJNX0NPTE9SX1lD QkNSX0JUMjAyMCwKPiA+ICsJRFJNX0NPTE9SX0VOQ09ESU5HX01BWCwKPiA+ICt9Owo+ID4gKwo+ ID4gK2VudW0gZHJtX2NvbG9yX3JhbmdlIHsKPiA+ICsJRFJNX0NPTE9SX1lDQkNSX0xJTUlURURf UkFOR0UsCj4gPiArCURSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFLAo+ID4gKwlEUk1fQ09MT1Jf UkFOR0VfTUFYLAo+ID4gK307Cj4gPiArCj4gPiAraW50IGRybV9wbGFuZV9jcmVhdGVfY29sb3Jf cHJvcGVydGllcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ICsJCQkJICAgICAgdTMyIHN1 cHBvcnRlZF9lbmNvZGluZ3MsCj4gPiArCQkJCSAgICAgIHUzMiBzdXBwb3J0ZWRfcmFuZ2VzLAo+ ID4gKwkJCQkgICAgICBlbnVtIGRybV9jb2xvcl9lbmNvZGluZyBkZWZhdWx0X2VuY29kaW5nLAo+ ID4gKwkJCQkgICAgICBlbnVtIGRybV9jb2xvcl9yYW5nZSBkZWZhdWx0X3JhbmdlKTsKPiA+ICAg I2VuZGlmCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRl L2RybS9kcm1fcGxhbmUuaAo+ID4gaW5kZXggODE4NWUzNDY4YTIzLi5mN2JmNGE0OGIxYzMgMTAw NjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+ID4gKysrIGIvaW5jbHVkZS9k cm0vZHJtX3BsYW5lLmgKPiA+IEBAIC0yNiw2ICsyNiw3IEBACj4gPiAgICNpbmNsdWRlIDxsaW51 eC9saXN0Lmg+Cj4gPiAgICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgo+ID4gICAjaW5jbHVkZSA8 ZHJtL2RybV9tb2RlX29iamVjdC5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2NvbG9yX21nbXQu aD4KPiA+ICAgCj4gPiAgIHN0cnVjdCBkcm1fY3J0YzsKPiA+ICAgc3RydWN0IGRybV9wcmludGVy Owo+ID4gQEAgLTExMiw2ICsxMTMsMjAgQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSB7Cj4gPiAg IAl1bnNpZ25lZCBpbnQgenBvczsKPiA+ICAgCXVuc2lnbmVkIGludCBub3JtYWxpemVkX3pwb3M7 Cj4gPiAgIAo+ID4gKwkvKioKPiA+ICsJICogQGNvbG9yX2VuY29kaW5nOgo+ID4gKwkgKgo+ID4g KwkgKiBDb2xvciBlbmNvZGluZyBmb3Igbm9uIFJHQiBmb3JtYXRzCj4gPiArCSAqLwo+ID4gKwll bnVtIGRybV9jb2xvcl9lbmNvZGluZyBjb2xvcl9lbmNvZGluZzsKPiA+ICsKPiA+ICsJLyoqCj4g PiArCSAqIEBjb2xvcl9yYW5nZToKPiA+ICsJICoKPiA+ICsJICogQ29sb3IgcmFuZ2UgZm9yIG5v biBSR0IgZm9ybWF0cwo+ID4gKwkgKi8KPiA+ICsJZW51bSBkcm1fY29sb3JfcmFuZ2UgY29sb3Jf cmFuZ2U7Cj4gPiArCj4gPiAgIAkvKiBDbGlwcGVkIGNvb3JkaW5hdGVzICovCj4gPiAgIAlzdHJ1 Y3QgZHJtX3JlY3Qgc3JjLCBkc3Q7Cj4gPiAgIAo+ID4gQEAgLTU1OCw2ICs1NzMsMjMgQEAgc3Ry dWN0IGRybV9wbGFuZSB7Cj4gPiAgIAo+ID4gICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqenBvc19w cm9wZXJ0eTsKPiA+ICAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnJvdGF0aW9uX3Byb3BlcnR5Owo+ ID4gKwo+ID4gKwkvKioKPiA+ICsJICogQGNvbG9yX2VuY29kaW5nX3Byb3BlcnR5Ogo+ID4gKwkg Kgo+ID4gKwkgKiBPcHRpb25hbCAiQ09MT1JfRU5DT0RJTkciIGVudW0gcHJvcGVydHkgZm9yIHNw ZWNpZnlpbmcKPiA+ICsJICogY29sb3IgZW5jb2RpbmcgZm9yIG5vbiBSR0IgZm9ybWF0cy4KPiA+ ICsJICogU2VlIGRybV9wbGFuZV9jcmVhdGVfY29sb3JfcHJvcGVydGllcygpLgo+ID4gKwkgKi8K PiA+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqY29sb3JfZW5jb2RpbmdfcHJvcGVydHk7Cj4gPiAr CS8qKgo+ID4gKwkgKiBAY29sb3JfcmFuZ2VfcHJvcGVydHk6Cj4gPiArCSAqCj4gPiArCSAqIE9w dGlvbmFsICJDT0xPUl9SQU5HRSIgZW51bSBwcm9wZXJ0eSBmb3Igc3BlY2lmeWluZwo+ID4gKwkg KiBjb2xvciByYW5nZSBmb3Igbm9uIFJHQiBmb3JtYXRzLgo+ID4gKwkgKiBTZWUgZHJtX3BsYW5l X2NyZWF0ZV9jb2xvcl9wcm9wZXJ0aWVzKCkuCj4gPiArCSAqLwo+ID4gKwlzdHJ1Y3QgZHJtX3By b3BlcnR5ICpjb2xvcl9yYW5nZV9wcm9wZXJ0eTsKPiA+ICAgfTsKPiA+ICAgCj4gPiAgICNkZWZp bmUgb2JqX3RvX3BsYW5lKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgZHJtX3BsYW5lLCBiYXNl KQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK