From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 1/8] drm: Add optional COLOR_ENCODING and COLOR_RANGE properties to drm_plane Date: Tue, 20 Feb 2018 12:24:54 +0100 Message-ID: <20180220112454.GK22199@phenom.ffwll.local> References: <20180214192327.3250-2-ville.syrjala@linux.intel.com> <20180219202823.10508-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x241.google.com (mail-wr0-x241.google.com [IPv6:2a00:1450:400c:c0c::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id B921C6E3A0 for ; Tue, 20 Feb 2018 11:24:58 +0000 (UTC) Received: by mail-wr0-x241.google.com with SMTP id 34so13287704wre.13 for ; Tue, 20 Feb 2018 03:24:58 -0800 (PST) Content-Disposition: inline In-Reply-To: <20180219202823.10508-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org, Russell King - ARM Linux , Hans Verkuil , Uma Shankar , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBGZWIgMTksIDIwMTggYXQgMTA6Mjg6MjNQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBKeXJpIFNhcmhhIDxqc2FyaGFAdGkuY29tPgo+IAo+IEFkZCBhIHN0YW5k YXJkIG9wdGlvbmFsIHByb3BlcnRpZXMgdG8gc3VwcG9ydCBkaWZmZXJlbnQgbm9uIFJHQiBjb2xv cgo+IGVuY29kaW5ncyBpbiBEUk0gcGxhbmVzLiBDT0xPUl9FTkNPRElORyBzZWxlY3QgdGhlIHN1 cHBvcnRlZCBub24gUkdCCj4gY29sb3IgZW5jb2RpbmcsIGZvciBpbnN0YW5jZSBJVFUtUiBCVC43 MDkgWUNiQ3IuIENPTE9SX1JBTkdFIHNlbGVjdHMKPiB0aGUgdmFsdWUgcmFuZ2VzIHdpdGhpbiB0 aGUgc2VsZWN0ZWQgY29sb3IgZW5jb2RpbmcuIFRoZSBwcm9wZXJ0aWVzCj4gYXJlIHN0b3JlZCB0 byBkcm1fcGxhbmUgb2JqZWN0IHRvIGFsbG93IGRpZmZlcmVudCBzZXQgb2Ygc3VwcG9ydGVkCj4g ZW5jb2RpbmcgZm9yIGRpZmZlcmVudCBwbGFuZXMgb24gdGhlIGRldmljZS4KPiAKPiB2MjogQWRk L2ZpeCBrZXJuZWxkb2NzLCB2ZXJpZnkgYml0bWFza3MgKGRhbnZldCkKPiAKPiBDYzogSGFycnkg V2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRh bmllbEBmZndsbC5jaD4KPiBDYzogRGFuaWVsIFN0b25lIDxkYW5pZWxAZm9vaXNoYmFyLm9yZz4K PiBDYzogUnVzc2VsbCBLaW5nIC0gQVJNIExpbnV4IDxsaW51eEBhcm1saW51eC5vcmcudWs+Cj4g Q2M6IElsaWEgTWlya2luIDxpbWlya2luQGFsdW0ubWl0LmVkdT4KPiBDYzogSGFucyBWZXJrdWls IDxodmVya3VpbEB4czRhbGwubmw+Cj4gQ2M6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRl bC5jb20+Cj4gQ2M6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4K PiBSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBKeXJpIFNhcmhhIDxqc2FyaGFAdGkuY29tPgo+IFt2c3ly amFsYSB2MjogQWRkL2ZpeCBrZXJuZWxkb2NzLCB2ZXJpZnkgYml0bWFza3NdCj4gU2lnbmVkLW9m Zi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClJl dmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgfCAgIDggKysrCj4gIGRyaXZlcnMv Z3B1L2RybS9kcm1fY29sb3JfbWdtdC5jIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fY29sb3JfbWdtdC5oICAgICB8ICAxOSAr KysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAgICB8ICAzMiArKysrKysr KysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNjIgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYwo+IGluZGV4IDQ2NzMzZDUzNDU4Ny4uNDUyYTBiMGJhZmJjIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCj4gQEAgLTc1OSw2ICs3NTksMTAgQEAgc3RhdGljIGludCBkcm1fYXRvbWljX3Bs YW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQlzdGF0ZS0+cm90 YXRpb24gPSB2YWw7Cj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT56cG9zX3Byb3Bl cnR5KSB7Cj4gIAkJc3RhdGUtPnpwb3MgPSB2YWw7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IHBsYW5lLT5jb2xvcl9lbmNvZGluZ19wcm9wZXJ0eSkgewo+ICsJCXN0YXRlLT5jb2xvcl9lbmNv ZGluZyA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9yX3Jhbmdl X3Byb3BlcnR5KSB7Cj4gKwkJc3RhdGUtPmNvbG9yX3JhbmdlID0gdmFsOwo+ICAJfSBlbHNlIGlm IChwbGFuZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gcGxhbmUt PmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwKPiAgCQkJCXByb3BlcnR5 LCB2YWwpOwo+IEBAIC04MTgsNiArODIyLDEwIEBAIGRybV9hdG9taWNfcGxhbmVfZ2V0X3Byb3Bl cnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCSp2YWwgPSBzdGF0ZS0+cm90YXRpb247 Cj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT56cG9zX3Byb3BlcnR5KSB7Cj4gIAkJ KnZhbCA9IHN0YXRlLT56cG9zOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29s b3JfZW5jb2RpbmdfcHJvcGVydHkpIHsKPiArCQkqdmFsID0gc3RhdGUtPmNvbG9yX2VuY29kaW5n Owo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JfcmFuZ2VfcHJvcGVydHkp IHsKPiArCQkqdmFsID0gc3RhdGUtPmNvbG9yX3JhbmdlOwo+ICAJfSBlbHNlIGlmIChwbGFuZS0+ ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5h dG9taWNfZ2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gIAl9IGVs c2Ugewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jCj4gaW5kZXggMGQwMDJiMDQ1YmQyLi40Yjgz ZTA3OGQzZTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYwo+IEBAIC04OCw2ICs4OCwy MCBAQAo+ICAgKiBkcm1fbW9kZV9jcnRjX3NldF9nYW1tYV9zaXplKCkuIERyaXZlcnMgd2hpY2gg c3VwcG9ydCBib3RoIHNob3VsZCB1c2UKPiAgICogZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dh bW1hX3NldCgpIHRvIGFsaWFzIHRoZSBsZWdhY3kgZ2FtbWEgcmFtcCB3aXRoIHRoZQo+ICAgKiAi R0FNTUFfTFVUIiBwcm9wZXJ0eSBhYm92ZS4KPiArICoKPiArICogU3VwcG9ydCBmb3IgZGlmZmVy ZW50IG5vbiBSR0IgY29sb3IgZW5jb2RpbmdzIGlzIGNvbnRyb2xsZWQgdGhyb3VnaAo+ICsgKiAm ZHJtX3BsYW5lIHNwZWNpZmljIENPTE9SX0VOQ09ESU5HIGFuZCBDT0xPUl9SQU5HRSBwcm9wZXJ0 aWVzLiBUaGV5Cj4gKyAqIGFyZSBzZXQgdXAgYnkgY2FsbGluZyBkcm1fcGxhbmVfY3JlYXRlX2Nv bG9yX3Byb3BlcnRpZXMoKS4KPiArICoKPiArICogIkNPTE9SX0VOQ09ESU5HIgo+ICsgKiAJT3B0 aW9uYWwgcGxhbmUgZW51bSBwcm9wZXJ0eSB0byBzdXBwb3J0IGRpZmZlcmVudCBub24gUkdCCj4g KyAqIAljb2xvciBlbmNvZGluZ3MuIFRoZSBkcml2ZXIgY2FuIHByb3ZpZGUgYSBzdWJzZXQgb2Yg c3RhbmRhcmQKPiArICogCWVudW0gdmFsdWVzIHN1cHBvcnRlZCBieSB0aGUgRFJNIHBsYW5lLgo+ ICsgKgo+ICsgKiAiQ09MT1JfUkFOR0UiCj4gKyAqIAlPcHRpb25hbCBwbGFuZSBlbnVtIHByb3Bl cnR5IHRvIHN1cHBvcnQgZGlmZmVyZW50IG5vbiBSR0IKPiArICogCWNvbG9yIHBhcmFtZXRlciBy YW5nZXMuIFRoZSBkcml2ZXIgY2FuIHByb3ZpZGUgYSBzdWJzZXQgb2YKPiArICogCXN0YW5kYXJk IGVudW0gdmFsdWVzIHN1cHBvcnRlZCBieSB0aGUgRFJNIHBsYW5lLgo+ICAgKi8KPiAgCj4gIC8q Kgo+IEBAIC0zMzksMyArMzUzLDkyIEBAIGludCBkcm1fbW9kZV9nYW1tYV9nZXRfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWRybV9tb2Rlc2V0X3VubG9jaygmY3J0Yy0+bXV0ZXgp Owo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICsKPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBj b2xvcl9lbmNvZGluZ19uYW1lW10gPSB7Cj4gKwlbRFJNX0NPTE9SX1lDQkNSX0JUNjAxXSA9ICJJ VFUtUiBCVC42MDEgWUNiQ3IiLAo+ICsJW0RSTV9DT0xPUl9ZQ0JDUl9CVDcwOV0gPSAiSVRVLVIg QlQuNzA5IFlDYkNyIiwKPiArCVtEUk1fQ09MT1JfWUNCQ1JfQlQyMDIwXSA9ICJJVFUtUiBCVC4y MDIwIFlDYkNyIiwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY29sb3Jf cmFuZ2VfbmFtZVtdID0gewo+ICsJW0RSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFXSA9ICJZQ2JD ciBmdWxsIHJhbmdlIiwKPiArCVtEUk1fQ09MT1JfWUNCQ1JfTElNSVRFRF9SQU5HRV0gPSAiWUNi Q3IgbGltaXRlZCByYW5nZSIsCj4gK307Cj4gKwo+ICsvKioKPiArICogZHJtX3BsYW5lX2NyZWF0 ZV9jb2xvcl9wcm9wZXJ0aWVzIC0gY29sb3IgZW5jb2RpbmcgcmVsYXRlZCBwbGFuZSBwcm9wZXJ0 aWVzCj4gKyAqIEBwbGFuZTogcGxhbmUgb2JqZWN0Cj4gKyAqIEBzdXBwb3J0ZWRfZW5jb2Rpbmdz OiBiaXRmaWVsZCBpbmRpY2F0aW5nIHN1cHBvcnRlZCBjb2xvciBlbmNvZGluZ3MKPiArICogQHN1 cHBvcnRlZF9yYW5nZXM6IGJpdGZpbGVsZCBpbmRpY2F0aW5nIHN1cHBvcnRlZCBjb2xvciByYW5n ZXMKPiArICogQGRlZmF1bHRfZW5jb2Rpbmc6IGRlZmF1bHQgY29sb3IgZW5jb2RpbmcKPiArICog QGRlZmF1bHRfcmFuZ2U6IGRlZmF1bHQgY29sb3IgcmFuZ2UKPiArICoKPiArICogQ3JlYXRlIGFu ZCBhdHRhY2ggcGxhbmUgc3BlY2lmaWMgQ09MT1JfRU5DT0RJTkcgYW5kIENPTE9SX1JBTkdFCj4g KyAqIHByb3BlcnRpZXMgdG8gQHBsYW5lLiBUaGUgc3VwcG9ydGVkIGVuY29kaW5ncyBhbmQgcmFu Z2VzIHNob3VsZAo+ICsgKiBiZSBwcm92aWRlZCBpbiBzdXBwb3J0ZWRfZW5jb2RpbmdzIGFuZCBz dXBwb3J0ZWRfcmFuZ2VzIGJpdG1hc2tzLgo+ICsgKiBFYWNoIGJpdCBzZXQgaW4gdGhlIGJpdG1h c2sgaW5kaWNhdGVzIHRoYXQgaXRzIG51bWJlciBhcyBlbnVtCj4gKyAqIHZhbHVlIGlzIHN1cHBv cnRlZC4KPiArICovCj4gK2ludCBkcm1fcGxhbmVfY3JlYXRlX2NvbG9yX3Byb3BlcnRpZXMoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJCQkgICAgICB1MzIgc3VwcG9ydGVkX2VuY29kaW5n cywKPiArCQkJCSAgICAgIHUzMiBzdXBwb3J0ZWRfcmFuZ2VzLAo+ICsJCQkJICAgICAgZW51bSBk cm1fY29sb3JfZW5jb2RpbmcgZGVmYXVsdF9lbmNvZGluZywKPiArCQkJCSAgICAgIGVudW0gZHJt X2NvbG9yX3JhbmdlIGRlZmF1bHRfcmFuZ2UpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBwbGFuZS0+ZGV2Owo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiArCXN0cnVj dCBkcm1fcHJvcF9lbnVtX2xpc3QgZW51bV9saXN0W21heChEUk1fQ09MT1JfRU5DT0RJTkdfTUFY LAo+ICsJCQkJCQlEUk1fQ09MT1JfUkFOR0VfTUFYKV07Cj4gKwlpbnQgaSwgbGVuOwo+ICsKPiAr CWlmIChXQVJOX09OKHN1cHBvcnRlZF9lbmNvZGluZ3MgPT0gMCB8fAo+ICsJCSAgICAoc3VwcG9y dGVkX2VuY29kaW5ncyAmIC1CSVQoRFJNX0NPTE9SX0VOQ09ESU5HX01BWCkpICE9IDAgfHwKPiAr CQkgICAgKHN1cHBvcnRlZF9lbmNvZGluZ3MgJiBCSVQoZGVmYXVsdF9lbmNvZGluZykpID09IDAp KQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWlmIChXQVJOX09OKHN1cHBvcnRlZF9yYW5n ZXMgPT0gMCB8fAo+ICsJCSAgICAoc3VwcG9ydGVkX3JhbmdlcyAmIC1CSVQoRFJNX0NPTE9SX1JB TkdFX01BWCkpICE9IDAgfHwKPiArCQkgICAgKHN1cHBvcnRlZF9yYW5nZXMgJiBCSVQoZGVmYXVs dF9yYW5nZSkpID09IDApKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWxlbiA9IDA7Cj4g Kwlmb3IgKGkgPSAwOyBpIDwgRFJNX0NPTE9SX0VOQ09ESU5HX01BWDsgaSsrKSB7Cj4gKwkJaWYg KChzdXBwb3J0ZWRfZW5jb2RpbmdzICYgQklUKGkpKSA9PSAwKQo+ICsJCQljb250aW51ZTsKPiAr Cj4gKwkJZW51bV9saXN0W2xlbl0udHlwZSA9IGk7Cj4gKwkJZW51bV9saXN0W2xlbl0ubmFtZSA9 IGNvbG9yX2VuY29kaW5nX25hbWVbaV07Cj4gKwkJbGVuKys7Cj4gKwl9Cj4gKwo+ICsJcHJvcCA9 IGRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bShkZXYsIDAsICJDT0xPUl9FTkNPRElORyIsCj4gKwkJ CQkJZW51bV9saXN0LCBsZW4pOwo+ICsJaWYgKCFwcm9wKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ ICsJcGxhbmUtPmNvbG9yX2VuY29kaW5nX3Byb3BlcnR5ID0gcHJvcDsKPiArCWRybV9vYmplY3Rf YXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwgZGVmYXVsdF9lbmNvZGluZyk7Cj4g KwlpZiAocGxhbmUtPnN0YXRlKQo+ICsJCXBsYW5lLT5zdGF0ZS0+Y29sb3JfZW5jb2RpbmcgPSBk ZWZhdWx0X2VuY29kaW5nOwo+ICsKPiArCWxlbiA9IDA7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgRFJN X0NPTE9SX1JBTkdFX01BWDsgaSsrKSB7Cj4gKwkJaWYgKChzdXBwb3J0ZWRfcmFuZ2VzICYgQklU KGkpKSA9PSAwKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJZW51bV9saXN0W2xlbl0udHlwZSA9 IGk7Cj4gKwkJZW51bV9saXN0W2xlbl0ubmFtZSA9IGNvbG9yX3JhbmdlX25hbWVbaV07Cj4gKwkJ bGVuKys7Cj4gKwl9Cj4gKwo+ICsJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bShkZXYs IDAsCSJDT0xPUl9SQU5HRSIsCj4gKwkJCQkJZW51bV9saXN0LCBsZW4pOwo+ICsJaWYgKCFwcm9w KQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJcGxhbmUtPmNvbG9yX3JhbmdlX3Byb3BlcnR5ID0g cHJvcDsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwg ZGVmYXVsdF9yYW5nZSk7Cj4gKwlpZiAocGxhbmUtPnN0YXRlKQo+ICsJCXBsYW5lLT5zdGF0ZS0+ Y29sb3JfcmFuZ2UgPSBkZWZhdWx0X3JhbmdlOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gK0VY UE9SVF9TWU1CT0woZHJtX3BsYW5lX2NyZWF0ZV9jb2xvcl9wcm9wZXJ0aWVzKTsKPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaCBiL2luY2x1ZGUvZHJtL2RybV9jb2xv cl9tZ210LmgKPiBpbmRleCAwM2E1OWNiY2U2MjEuLmIzYjZkMzAyY2E4YyAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL2RybS9kcm1fY29sb3JfbWdtdC5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nv bG9yX21nbXQuaAo+IEBAIC0yNiw2ICsyNiw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9jdHlwZS5o Pgo+ICAKPiAgc3RydWN0IGRybV9jcnRjOwo+ICtzdHJ1Y3QgZHJtX3BsYW5lOwo+ICAKPiAgdWlu dDMyX3QgZHJtX2NvbG9yX2x1dF9leHRyYWN0KHVpbnQzMl90IHVzZXJfaW5wdXQsIHVpbnQzMl90 IGJpdF9wcmVjaXNpb24pOwo+ICAKPiBAQCAtMzcsNCArMzgsMjIgQEAgdm9pZCBkcm1fY3J0Y19l bmFibGVfY29sb3JfbWdtdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIGludCBkcm1fbW9kZV9j cnRjX3NldF9nYW1tYV9zaXplKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCSBpbnQgZ2Ft bWFfc2l6ZSk7Cj4gIAo+ICtlbnVtIGRybV9jb2xvcl9lbmNvZGluZyB7Cj4gKwlEUk1fQ09MT1Jf WUNCQ1JfQlQ2MDEsCj4gKwlEUk1fQ09MT1JfWUNCQ1JfQlQ3MDksCj4gKwlEUk1fQ09MT1JfWUNC Q1JfQlQyMDIwLAo+ICsJRFJNX0NPTE9SX0VOQ09ESU5HX01BWCwKPiArfTsKPiArCj4gK2VudW0g ZHJtX2NvbG9yX3JhbmdlIHsKPiArCURSTV9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFLAo+ICsJ RFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UsCj4gKwlEUk1fQ09MT1JfUkFOR0VfTUFYLAo+ICt9 Owo+ICsKPiAraW50IGRybV9wbGFuZV9jcmVhdGVfY29sb3JfcHJvcGVydGllcyhzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKPiArCQkJCSAgICAgIHUzMiBzdXBwb3J0ZWRfZW5jb2RpbmdzLAo+ICsJ CQkJICAgICAgdTMyIHN1cHBvcnRlZF9yYW5nZXMsCj4gKwkJCQkgICAgICBlbnVtIGRybV9jb2xv cl9lbmNvZGluZyBkZWZhdWx0X2VuY29kaW5nLAo+ICsJCQkJICAgICAgZW51bSBkcm1fY29sb3Jf cmFuZ2UgZGVmYXVsdF9yYW5nZSk7Cj4gICNlbmRpZgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9kcm1fcGxhbmUuaCBiL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCj4gaW5kZXggODE4NWUzNDY4 YTIzLi5mN2JmNGE0OGIxYzMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgK PiArKysgYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+IEBAIC0yNiw2ICsyNiw3IEBACj4gICNp bmNsdWRlIDxsaW51eC9saXN0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgo+ICAjaW5j bHVkZSA8ZHJtL2RybV9tb2RlX29iamVjdC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9jb2xvcl9t Z210Lmg+Cj4gIAo+ICBzdHJ1Y3QgZHJtX2NydGM7Cj4gIHN0cnVjdCBkcm1fcHJpbnRlcjsKPiBA QCAtMTEyLDYgKzExMywyMCBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIHsKPiAgCXVuc2lnbmVk IGludCB6cG9zOwo+ICAJdW5zaWduZWQgaW50IG5vcm1hbGl6ZWRfenBvczsKPiAgCj4gKwkvKioK PiArCSAqIEBjb2xvcl9lbmNvZGluZzoKPiArCSAqCj4gKwkgKiBDb2xvciBlbmNvZGluZyBmb3Ig bm9uIFJHQiBmb3JtYXRzCj4gKwkgKi8KPiArCWVudW0gZHJtX2NvbG9yX2VuY29kaW5nIGNvbG9y X2VuY29kaW5nOwo+ICsKPiArCS8qKgo+ICsJICogQGNvbG9yX3JhbmdlOgo+ICsJICoKPiArCSAq IENvbG9yIHJhbmdlIGZvciBub24gUkdCIGZvcm1hdHMKPiArCSAqLwo+ICsJZW51bSBkcm1fY29s b3JfcmFuZ2UgY29sb3JfcmFuZ2U7Cj4gKwo+ICAJLyogQ2xpcHBlZCBjb29yZGluYXRlcyAqLwo+ ICAJc3RydWN0IGRybV9yZWN0IHNyYywgZHN0Owo+ICAKPiBAQCAtNTU4LDYgKzU3MywyMyBAQCBz dHJ1Y3QgZHJtX3BsYW5lIHsKPiAgCj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp6cG9zX3Byb3Bl cnR5Owo+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcm90YXRpb25fcHJvcGVydHk7Cj4gKwo+ICsJ LyoqCj4gKwkgKiBAY29sb3JfZW5jb2RpbmdfcHJvcGVydHk6Cj4gKwkgKgo+ICsJICogT3B0aW9u YWwgIkNPTE9SX0VOQ09ESU5HIiBlbnVtIHByb3BlcnR5IGZvciBzcGVjaWZ5aW5nCj4gKwkgKiBj b2xvciBlbmNvZGluZyBmb3Igbm9uIFJHQiBmb3JtYXRzLgo+ICsJICogU2VlIGRybV9wbGFuZV9j cmVhdGVfY29sb3JfcHJvcGVydGllcygpLgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpjb2xvcl9lbmNvZGluZ19wcm9wZXJ0eTsKPiArCS8qKgo+ICsJICogQGNvbG9yX3JhbmdlX3By b3BlcnR5Ogo+ICsJICoKPiArCSAqIE9wdGlvbmFsICJDT0xPUl9SQU5HRSIgZW51bSBwcm9wZXJ0 eSBmb3Igc3BlY2lmeWluZwo+ICsJICogY29sb3IgcmFuZ2UgZm9yIG5vbiBSR0IgZm9ybWF0cy4K PiArCSAqIFNlZSBkcm1fcGxhbmVfY3JlYXRlX2NvbG9yX3Byb3BlcnRpZXMoKS4KPiArCSAqLwo+ ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqY29sb3JfcmFuZ2VfcHJvcGVydHk7Cj4gIH07Cj4gIAo+ ICAjZGVmaW5lIG9ial90b19wbGFuZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGRybV9wbGFu ZSwgYmFzZSkKPiAtLSAKPiAyLjEzLjYKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK