From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/6] drm: Create Color Management DRM properties Date: Mon, 21 Dec 2015 13:43:18 +0100 Message-ID: <20151221124318.GS30437@phenom.ffwll.local> References: <1450378678-24296-1-git-send-email-lionel.g.landwerlin@intel.com> <1450378678-24296-2-git-send-email-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f45.google.com (mail-wm0-f45.google.com [74.125.82.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id 379CF6E182 for ; Mon, 21 Dec 2015 04:43:18 -0800 (PST) Received: by mail-wm0-f45.google.com with SMTP id l126so67047029wml.1 for ; Mon, 21 Dec 2015 04:43:18 -0800 (PST) Content-Disposition: inline In-Reply-To: <1450378678-24296-2-git-send-email-lionel.g.landwerlin@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lionel Landwerlin Cc: intel-gfx@lists.freedesktop.org, Kausal Malladi List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBEZWMgMTcsIDIwMTUgYXQgMDY6NTc6NTNQTSArMDAwMCwgTGlvbmVsIExhbmR3ZXJs aW4gd3JvdGU6Cj4gRnJvbTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwu Y29tPgo+IAo+IENvbG9yIE1hbmFnZW1lbnQgaXMgYW4gZXh0ZW5zaW9uIHRvIERSTSBmcmFtZXdv cmsgdG8gYWxsb3cgaGFyZHdhcmUgY29sb3IKPiBjb3JyZWN0aW9uIGFuZCBlbmhhbmNlbWVudCBj YXBhYmlsaXRpZXMuCj4gCj4gRFJNIGNvbG9yIG1hbmFnZXIgc3VwcG9ydHMgdGhlc2UgY29sb3Ig cHJvcGVydGllczoKPiAxLiAiY3RtIjogQ29sb3IgdHJhbnNmb3JtYXRpb24gbWF0cml4IHByb3Bl cnR5LCB3aGVyZSBhCj4gICAgY29sb3IgdHJhbnNmb3JtYXRpb24gbWF0cml4IG9mIDkgY29ycmVj dGlvbiB2YWx1ZXMgZ2V0cwo+ICAgIGFwcGxpZWQgYXMgY29ycmVjdGlvbi4KPiAyLiAicGFsZXR0 ZV9iZWZvcmVfY3RtIjogZm9yIGNvcnJlY3Rpb25zIHdoaWNoIGdldCBhcHBsaWVkCj4gICAgYmVv cmUgY29sb3IgdHJhbnNmb3JtYXRpb24gbWF0cml4IGNvcnJlY3Rpb24uCj4gMy4gInBhbGV0dGVf YWZ0ZXJfY3RtIjogZm9yIGNvcnJlY3Rpb25zIHdoaWNoIGdldCBhcHBsaWVkCj4gICAgYWZ0ZXIg Y29sb3IgdHJhbnNmb3JtYXRpb24gbWF0cml4IGNvcnJlY3Rpb24uCj4gCj4gVGhlc2UgY29sb3Ig Y29ycmVjdGlvbiBjYXBhYmlsaXRpZXMgbWF5IGRpZmZlciBwZXIgcGxhdGZvcm0sIHN1cHBvcnRp bmcKPiB2YXJpb3VzIGRpZmZlcmVudCBuby4gb2YgY29ycmVjdGlvbiBjb2VmZmljaWVudHMuIFNv IERSTSBjb2xvciBtYW5hZ2VyCj4gc3VwcG9ydCBmZXcgcHJvcGVydGllcyB1c2luZyB3aGljaCBh IHVzZXIgc3BhY2UgY2FuIHF1ZXJ5IHRoZSBwbGF0Zm9ybSdzCj4gY2FwYWJpbGl0eSwgYW5kIHBy ZXBhcmUgY29sb3IgY29ycmVjdGlvbiBhY2NvcmRpbmdseS4KPiBUaGVzZSBxdWVyeSBwcm9wZXJ0 aWVzIGFyZToKPiAxLiBjbV9jb2VmZl9hZnRlcl9jdG1fcHJvcGVydHkKPiAyLiBjbV9jb2VmZl9i ZWZvcmVfY3RtX3Byb3BlcnR5Cj4gICAoQ1RNIGlzIGZpeCB0byA5IGNvZWZmaWNpZW50cyBhY3Jv c3MgaW5kdXN0cnkpCj4gCj4gU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFu ay5zaGFybWFAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEthdXNhbCBNYWxsYWRpIDxrYXVz YWxtYWxsYWRpQGdtYWlsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YyAgICAgICAgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgIDkgKysrKysKPiAgZHJpdmVycy9n cHUvZHJtL2RybV9jcnRjLmMgICAgICAgICAgfCAzMiArKysrKysrKysrKysrKysrKysKPiAgaW5j bHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAgICAgICAgfCAyNCArKysrKysrKysrKysrCj4gIGlu Y2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAgICAgICAgIHwgMzAgKysrKysrKysrKysrKysrKysK PiAgNSBmaWxlcyBjaGFuZ2VkLCAxNjAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKPiBpbmRleCA2YTIxZTVjLi5lYmRiOThkIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCj4gQEAgLTM4OCw2ICszODgsMzggQEAgaW50IGRybV9hdG9taWNfc2V0X21vZGVf cHJvcF9mb3JfY3J0YyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLAo+ICBFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfc2V0X21vZGVfcHJvcF9mb3JfY3J0Yyk7Cj4gIAo+ICAvKioKPiArICog ZHJtX2F0b21pY19jcnRjX3NldF9ibG9iIC0gZmluZCBhbmQgc2V0IGEgYmxvYgo+ICsgKiBAc3Rh dGVfYmxvYjogcmVmZXJlbmNlIHBvaW50ZXIgdG8gdGhlIGNvbG9yIGJsb2IgaW4gdGhlIGNydGNf c3RhdGUKPiArICogQGJsb2JfaWQ6IGJsb2JfaWQgY29taW5nIGZyb20gc2V0X3Byb3BlcnR5KCkg Y2FsbAo+ICsgKgo+ICsgKiBTZXQgYSBjb2xvciBjb3JyZWN0aW9uIGJsb2IgKG9yaWdpbmF0aW5n IGZyb20gYSBzZXQgYmxvYiBwcm9wZXJ0eSkgb24gdGhlCj4gKyAqIGRlc2lyZWQgQ1JUQyBzdGF0 ZS4gVGhpcyBmdW5jdGlvbiB3aWxsIHRha2UgcmVmZXJlbmNlIG9mIHRoZSBibG9iIHByb3BlcnR5 Cj4gKyAqIGluIHRoZSBDUlRDIHN0YXRlLCBmaW5kcyB0aGUgYmxvYiBiYXNlZCBvbiBibG9iX2lk ICh3aGljaCBjb21lcyBmcm9tCj4gKyAqIHNldF9wcm9wZXJ0eSBjYWxsKSBhbmQgc2V0IHRoZSBi bG9iIGF0IHRoZSBwcm9wZXIgcGxhY2UuCj4gKyAqCj4gKyAqIFJFVFVSTlM6Cj4gKyAqIFplcm8g b24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8KPiArc3RhdGljIGludCBk cm1fYXRvbWljX2NydGNfc2V0X2Jsb2Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCXN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqKnN0YXRlX2Jsb2IsIHVpbnQzMl90IGJsb2JfaWQpCgpJIHRo aW5rIHdlIG5lZWQgdG8gYXQgbGVhc3Qgc3BsaXQgdGhpcyBpbnRvIGEgY3RtIGFuZCBnYW1tYSB0 YWJsZSB2YXJpYW50CnRvIGJlIGFibGUgdG8gaGF2ZSBhIHNpemUgY2hlY2sgZm9yIHRoZSBwYXNz ZWQtaW4gYmxvYjoKLSBjdG0gbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBzaXplIHdlIGV4cGVjdAot IGdhbW1hIHRhYmxlIG11c3QgYmUgYW4gaW50ZWdlciBtdWx0aXBsZSBvZiB0aGUgZHJtX3IzMmcz MmIzMiBzdHJ1Y3QuCiAgQWxzbyB3ZSBzaG91bGQgcHJvYmFibHkgaGF2ZSBhIGxpdHRsZSBoZWxw ZXIgdG8gY29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUKICBnYW1tYSBsdXQgaW4gZW50cmllcyAoanVz dCB0aGUgc2l6ZS9zaXplb2YoZHJtX3IzMmczMmIzMikgZGl2aXNpb24KICByZWFsbHkpLgoKClRo ZSBvdGhlciBiaXRzIHRoYXQncyBtaXNzaW5nIGhlcmUgaXMgYSBkcm0gY29yZSBmdW5jdGlvbiB0 byBhdHRhY2ggdGhlc2UKcHJvcGVydGllcyB0byBwbGFuZXMvY3J0Yy4gV2UgZG9uJ3Qgd2FudCBl dmVyeSBkcml2ZXIgdG8gcm9sbCB0aGVpciBvd24KaW1wbGVtZW50YXRpb24sIHNpbmNlIGl0J2xs IGxlYWQgdG8gZnVuIGRpdmVyZ2VuY2UgYmV0d2VlbiBkaWZmZXJlbnQKaW1wbGVtZW50YXRpb25z LiBBbHNvLCB0aGF0IG1haW4gZnVuY3Rpb24gY291bGQgYmUgdXNlZCB0byBwbGFjZSB0aGUgQUJJ CnJ1bGVzIHNvbWVwbGFjZSBuaWNlIChsaWtlIGhvdyBnZW5lcmljIHVzZXJzcGFjZSBpcyBzdXBw b3NlZCB0byBpbnRlcmFjdAp3aXRoIGNvbG9yIG1hbmFnZXIgcHJvcHMpLgotRGFuaWVsCgo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2I7Cj4gKwo+ICsJYmxvYiA9IGRybV9w cm9wZXJ0eV9sb29rdXBfYmxvYihkZXYsIGJsb2JfaWQpOwo+ICsJaWYgKCFibG9iKSB7Cj4gKwkJ RFJNX0RFQlVHX0tNUygiSW52YWxpZCBCbG9iIElEXG4iKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsK PiArCX0KPiArCj4gKwlpZiAoKnN0YXRlX2Jsb2IpCj4gKwkJZHJtX3Byb3BlcnR5X3VucmVmZXJl bmNlX2Jsb2IoKnN0YXRlX2Jsb2IpOwo+ICsKPiArCS8qIEF0dGFjaCB0aGUgYmxvYiB0byBiZSBj b21taXR0ZWQgaW4gc3RhdGUgKi8KPiArCSpzdGF0ZV9ibG9iID0gYmxvYjsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwo+ICsvKioKPiAgICogZHJtX2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eSAtIHNl dCBwcm9wZXJ0eSBvbiBDUlRDCj4gICAqIEBjcnRjOiB0aGUgZHJtIENSVEMgdG8gc2V0IGEgcHJv cGVydHkgb24KPiAgICogQHN0YXRlOiB0aGUgc3RhdGUgb2JqZWN0IHRvIHVwZGF0ZSB3aXRoIHRo ZSBuZXcgcHJvcGVydHkgdmFsdWUKPiBAQCAtNDE5LDggKzQ1MSwzMSBAQCBpbnQgZHJtX2F0b21p Y19jcnRjX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJcmV0ID0gZHJt X2F0b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKHN0YXRlLCBtb2RlKTsKPiAgCQlkcm1fcHJv cGVydHlfdW5yZWZlcmVuY2VfYmxvYihtb2RlKTsKPiAgCQlyZXR1cm4gcmV0Owo+IC0JfQo+IC0J ZWxzZSBpZiAoY3J0Yy0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpCj4gKwl9IGVsc2UgaWYg KHByb3BlcnR5ID09IGNvbmZpZy0+Y21fcGFsZXR0ZV9hZnRlcl9jdG1fcHJvcGVydHkpIHsKPiAr CQlyZXQgPSBkcm1fYXRvbWljX2NydGNfc2V0X2Jsb2IoZGV2LAo+ICsJCQkJJnN0YXRlLT5wYWxl dHRlX2FmdGVyX2N0bV9ibG9iLCB2YWwpOwo+ICsJCWlmIChyZXQpCj4gKwkJCURSTV9ERUJVR19L TVMoIkZhaWxlZCB0byBsb2FkIGJsb2IgcGFsZXR0ZV9hZnRlcl9jdG1cbiIpOwo+ICsJCWVsc2UK PiArCQkJc3RhdGUtPmNvbG9yX2NvcnJlY3Rpb25fY2hhbmdlZCA9IHRydWU7Cj4gKwkJcmV0dXJu IHJldDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5jbV9wYWxldHRlX2JlZm9y ZV9jdG1fcHJvcGVydHkpIHsKPiArCQlyZXQgPSBkcm1fYXRvbWljX2NydGNfc2V0X2Jsb2IoZGV2 LAo+ICsJCQkJJnN0YXRlLT5wYWxldHRlX2JlZm9yZV9jdG1fYmxvYiwgdmFsKTsKPiArCQlpZiAo cmV0KQo+ICsJCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gbG9hZCBibG9iIHBhbGV0dGVfYmVm b3JlX2N0bVxuIik7Cj4gKwkJZWxzZQo+ICsJCQlzdGF0ZS0+Y29sb3JfY29ycmVjdGlvbl9jaGFu Z2VkID0gdHJ1ZTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBj b25maWctPmNtX2N0bV9wcm9wZXJ0eSkgewo+ICsJCXJldCA9IGRybV9hdG9taWNfY3J0Y19zZXRf YmxvYihkZXYsCj4gKwkJCQkmc3RhdGUtPmN0bV9ibG9iLCB2YWwpOwo+ICsJCWlmIChyZXQpCj4g KwkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBsb2FkIGJsb2IgY3RtXG4iKTsKPiArCQllbHNl Cj4gKwkJCXN0YXRlLT5jb2xvcl9jb3JyZWN0aW9uX2NoYW5nZWQgPSB0cnVlOwo+ICsJCXJldHVy biByZXQ7Cj4gKwl9IGVsc2UgaWYgKGNydGMtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KQo+ ICAJCXJldHVybiBjcnRjLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eShjcnRjLCBzdGF0ZSwg cHJvcGVydHksIHZhbCk7Cj4gIAllbHNlCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTQ1Niw2 ICs1MTEsMTQgQEAgZHJtX2F0b21pY19jcnRjX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCj4gIAkJKnZhbCA9IHN0YXRlLT5hY3RpdmU7Cj4gIAllbHNlIGlmIChwcm9wZXJ0eSA9 PSBjb25maWctPnByb3BfbW9kZV9pZCkKPiAgCQkqdmFsID0gKHN0YXRlLT5tb2RlX2Jsb2IpID8g c3RhdGUtPm1vZGVfYmxvYi0+YmFzZS5pZCA6IDA7Cj4gKwllbHNlIGlmIChwcm9wZXJ0eSA9PSBj b25maWctPmNtX3BhbGV0dGVfYWZ0ZXJfY3RtX3Byb3BlcnR5KQo+ICsJCSp2YWwgPSAoc3RhdGUt PnBhbGV0dGVfYWZ0ZXJfY3RtX2Jsb2IpID8KPiArCQkJc3RhdGUtPnBhbGV0dGVfYWZ0ZXJfY3Rt X2Jsb2ItPmJhc2UuaWQgOiAwOwo+ICsJZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5jbV9w YWxldHRlX2JlZm9yZV9jdG1fcHJvcGVydHkpCj4gKwkJKnZhbCA9IChzdGF0ZS0+cGFsZXR0ZV9i ZWZvcmVfY3RtX2Jsb2IpID8KPiArCQkJc3RhdGUtPnBhbGV0dGVfYmVmb3JlX2N0bV9ibG9iLT5i YXNlLmlkIDogMDsKPiArCWVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+Y21fY3RtX3Byb3Bl cnR5KQo+ICsJCSp2YWwgPSAoc3RhdGUtPmN0bV9ibG9iKSA/IHN0YXRlLT5jdG1fYmxvYi0+YmFz ZS5pZCA6IDA7Cj4gIAllbHNlIGlmIChjcnRjLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkK PiAgCQlyZXR1cm4gY3J0Yy0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkoY3J0Yywgc3RhdGUs IHByb3BlcnR5LCB2YWwpOwo+ICAJZWxzZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j Cj4gaW5kZXggMjY4ZDM3Zi4uYmQzMjVkYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCj4gQEAgLTI0NDgsNiArMjQ0OCwxMiBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJf Y3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAKPiAgCWlmIChz dGF0ZS0+bW9kZV9ibG9iKQo+ICAJCWRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYihzdGF0ZS0+ bW9kZV9ibG9iKTsKPiArCWlmIChzdGF0ZS0+Y3RtX2Jsb2IpCj4gKwkJZHJtX3Byb3BlcnR5X3Jl ZmVyZW5jZV9ibG9iKHN0YXRlLT5jdG1fYmxvYik7Cj4gKwlpZiAoc3RhdGUtPnBhbGV0dGVfYWZ0 ZXJfY3RtX2Jsb2IpCj4gKwkJZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKHN0YXRlLT5wYWxl dHRlX2FmdGVyX2N0bV9ibG9iKTsKPiArCWlmIChzdGF0ZS0+cGFsZXR0ZV9iZWZvcmVfY3RtX2Js b2IpCj4gKwkJZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKHN0YXRlLT5wYWxldHRlX2JlZm9y ZV9jdG1fYmxvYik7Cj4gIAlzdGF0ZS0+bW9kZV9jaGFuZ2VkID0gZmFsc2U7Cj4gIAlzdGF0ZS0+ YWN0aXZlX2NoYW5nZWQgPSBmYWxzZTsKPiAgCXN0YXRlLT5wbGFuZXNfY2hhbmdlZCA9IGZhbHNl Owo+IEBAIC0yNDkyLDYgKzI0OTgsOSBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19k ZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCQkgICAgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Js b2Ioc3RhdGUtPm1vZGVfYmxvYik7Cj4gKwlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihz dGF0ZS0+Y3RtX2Jsb2IpOwo+ICsJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ioc3RhdGUt PnBhbGV0dGVfYWZ0ZXJfY3RtX2Jsb2IpOwo+ICsJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Js b2Ioc3RhdGUtPnBhbGV0dGVfYmVmb3JlX2N0bV9ibG9iKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9M KF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKTsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRj LmMKPiBpbmRleCA2MmZhOTVmLi4yZTAyZDBmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiBAQCAtMTU0 Miw2ICsxNTQyLDM4IEBAIHN0YXRpYyBpbnQgZHJtX21vZGVfY3JlYXRlX3N0YW5kYXJkX3Byb3Bl cnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiAgCWRl di0+bW9kZV9jb25maWcucHJvcF9tb2RlX2lkID0gcHJvcDsKPiAgCj4gKwkvKiBDb2xvciBNYW5h Z2VtZW50IHByb3BlcnRpZXMgKi8KPiArCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlKGRldiwK PiArCQkJRFJNX01PREVfUFJPUF9CTE9CLCAiUEFMRVRURV9BRlRFUl9DVE0iLCAwKTsKPiArCWlm ICghcHJvcCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCWRldi0+bW9kZV9jb25maWcuY21fcGFs ZXR0ZV9hZnRlcl9jdG1fcHJvcGVydHkgPSBwcm9wOwo+ICsKPiArCXByb3AgPSBkcm1fcHJvcGVy dHlfY3JlYXRlKGRldiwKPiArCQkJRFJNX01PREVfUFJPUF9CTE9CLCAiUEFMRVRURV9CRUZPUkVf Q1RNIiwgMCk7Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwlkZXYtPm1v ZGVfY29uZmlnLmNtX3BhbGV0dGVfYmVmb3JlX2N0bV9wcm9wZXJ0eSA9IHByb3A7Cj4gKwo+ICsJ cHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZGV2LAo+ICsJCQlEUk1fTU9ERV9QUk9QX0JMT0Is ICJDVE0iLCAwKTsKPiArCWlmICghcHJvcCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCWRldi0+ bW9kZV9jb25maWcuY21fY3RtX3Byb3BlcnR5ID0gcHJvcDsKPiArCj4gKwkvKiBEUk0gcHJvcGVy dGllcyB0byBxdWVyeSBjb2xvciBjYXBhYmlsaXRpZXMgKi8KPiArCXByb3AgPSBkcm1fcHJvcGVy dHlfY3JlYXRlKGRldiwgRFJNX01PREVfUFJPUF9JTU1VVEFCTEUsCj4gKwkJCSJDT0VGRklDSUVO VFNfQkVGT1JFX0NUTSIsIDApOwo+ICsJaWYgKCFwcm9wKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ ICsJZGV2LT5tb2RlX2NvbmZpZy5jbV9jb2VmZl9iZWZvcmVfY3RtX3Byb3BlcnR5ID0gcHJvcDsK PiArCj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZShkZXYsIERSTV9NT0RFX1BST1BfSU1N VVRBQkxFLAo+ICsJCQkiQ09FRkZJQ0lFTlRTX0FGVEVSX0NUTSIsIDApOwo+ICsJaWYgKCFwcm9w KQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJZGV2LT5tb2RlX2NvbmZpZy5jbV9jb2VmZl9hZnRl cl9jdG1fcHJvcGVydHkgPSBwcm9wOwo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IGRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ IGluZGV4IDNiMDQwYjMuLjgzMjY3NjUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Ny dGMuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBAQCAtMzA1LDExICszMDUsMTUg QEAgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3M7Cj4gICAqIEBtb2RlX2NoYW5nZWQ6IGNy dGNfc3RhdGUtPm1vZGUgb3IgY3J0Y19zdGF0ZS0+ZW5hYmxlIGhhcyBiZWVuIGNoYW5nZWQKPiAg ICogQGFjdGl2ZV9jaGFuZ2VkOiBjcnRjX3N0YXRlLT5hY3RpdmUgaGFzIGJlZW4gdG9nZ2xlZC4K PiAgICogQGNvbm5lY3RvcnNfY2hhbmdlZDogY29ubmVjdG9ycyB0byB0aGlzIGNydGMgaGF2ZSBi ZWVuIHVwZGF0ZWQKPiArICogQGNvbG9yX2NvcnJlY3Rpb25fY2hhbmdlZDogY29sb3IgY29ycmVj dGlvbiBibG9iIGluIHRoaXMgY3J0YyBnb3QgdXBkYXRlZAo+ICAgKiBAcGxhbmVfbWFzazogYml0 bWFzayBvZiAoMSA8PCBkcm1fcGxhbmVfaW5kZXgocGxhbmUpKSBvZiBhdHRhY2hlZCBwbGFuZXMK PiAgICogQGxhc3RfdmJsYW5rX2NvdW50OiBmb3IgaGVscGVycyBhbmQgZHJpdmVycyB0byBjYXB0 dXJlIHRoZSB2Ymxhbmsgb2YgdGhlCj4gICAqIAl1cGRhdGUgdG8gZW5zdXJlIGZyYW1lYnVmZmVy IGNsZWFudXAgaXNuJ3QgZG9uZSB0b28gZWFybHkKPiAgICogQGFkanVzdGVkX21vZGU6IGZvciB1 c2UgYnkgaGVscGVycyBhbmQgZHJpdmVycyB0byBjb21wdXRlIGFkanVzdGVkIG1vZGUgdGltaW5n cwo+ICAgKiBAbW9kZTogY3VycmVudCBtb2RlIHRpbWluZ3MKPiArICogQHBhbGV0dGVfYmVmb3Jl X2N0bV9ibG9iOiBibG9iIGZvciBjb2xvciBjb3JyZWN0aW9ucyB0byBiZSBhcHBsaWVkIGFmdGVy IENUTQo+ICsgKiBAcGFsZXR0ZV9hZnRlcl9jdG1fYmxvYjogYmxvYiBmb3IgY29sb3IgY29ycmVj dGlvbnMgdG8gYmUgYXBwbGllZCBiZWZvcmUgQ1RNCj4gKyAqIEBjdG1fYmxvYjogYmxvYiBmb3Ig Q1RNIGNvbG9yIGNvcnJlY3Rpb24KPiAgICogQGV2ZW50OiBvcHRpb25hbCBwb2ludGVyIHRvIGEg RFJNIGV2ZW50IHRvIHNpZ25hbCB1cG9uIGNvbXBsZXRpb24gb2YgdGhlCj4gICAqIAlzdGF0ZSB1 cGRhdGUKPiAgICogQHN0YXRlOiBiYWNrcG9pbnRlciB0byBnbG9iYWwgZHJtX2F0b21pY19zdGF0 ZQo+IEBAIC0zMzEsNiArMzM1LDcgQEAgc3RydWN0IGRybV9jcnRjX3N0YXRlIHsKPiAgCWJvb2wg bW9kZV9jaGFuZ2VkIDogMTsKPiAgCWJvb2wgYWN0aXZlX2NoYW5nZWQgOiAxOwo+ICAJYm9vbCBj b25uZWN0b3JzX2NoYW5nZWQgOiAxOwo+ICsJYm9vbCBjb2xvcl9jb3JyZWN0aW9uX2NoYW5nZWQg OiAxOwo+ICAKPiAgCS8qIGF0dGFjaGVkIHBsYW5lcyBiaXRtYXNrOgo+ICAJICogV0FSTklORzog dHJhbnNpdGlvbmFsIGhlbHBlcnMgZG8gbm90IG1haW50YWluIHBsYW5lX21hc2sgc28KPiBAQCAt MzUwLDYgKzM1NSwxMSBAQCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgewo+ICAJLyogYmxvYiBwcm9w ZXJ0eSB0byBleHBvc2UgY3VycmVudCBtb2RlIHRvIGF0b21pYyB1c2Vyc3BhY2UgKi8KPiAgCXN0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqbW9kZV9ibG9iOwo+ICAKPiArCS8qIENvbG9yIG1hbmFn ZW1lbnQgYmxvYnMgKi8KPiArCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqcGFsZXR0ZV9iZWZv cmVfY3RtX2Jsb2I7Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKnBhbGV0dGVfYWZ0ZXJf Y3RtX2Jsb2I7Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmN0bV9ibG9iOwo+ICsKPiAg CXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50Owo+ICAKPiAgCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiBAQCAtMjAxOSw2ICsyMDI5LDExIEBAIHN0cnVjdCBk cm1fbW9kZV9jb25maWdfZnVuY3Mgewo+ICAgKiBAcHJvcGVydHlfYmxvYl9saXN0OiBsaXN0IG9m IGFsbCB0aGUgYmxvYiBwcm9wZXJ0eSBvYmplY3RzCj4gICAqIEBibG9iX2xvY2s6IG11dGV4IGZv ciBibG9iIHByb3BlcnR5IGFsbG9jYXRpb24gYW5kIG1hbmFnZW1lbnQKPiAgICogQCpfcHJvcGVy dHk6IGNvcmUgcHJvcGVydHkgdHJhY2tpbmcKPiArICogQGNtX3BhbGV0dGVfYmVmb3JlX2N0bV9w cm9wZXJ0eTogY29sb3IgY29ycmVjdGlvbnMgYmVmb3JlIENUTSBibG9jawo+ICsgKiBAY21fcGFs ZXR0ZV9hZnRlcl9jdG1fcHJvcGVydHk6IGNvbG9yIGNvcnJlY3Rpb25zIGFmdGVyIENUTSBibG9j awo+ICsgKiBAY21fY3RtX3Byb3BlcnR5OiBjb2xvciB0cmFuc2Zvcm1hdGlvbiBtYXRyaXggY29y cmVjdGlvbgo+ICsgKiBAY21fY29lZmZfYmVmb3JlX2N0bV9wcm9wZXJ0eTogcXVlcnkgbm8gb2Yg Y29ycmVjdGlvbiBjb2VmZmkgYmVmb3JlIENUTQo+ICsgKiBAY21fY29lZmZfYWZ0ZXJfY3RtX3By b3BlcnR5OiBxdWVyeSBubyBvZiBjb3JyZWN0aW9uIGNvZWZmaSBhZnRlciBDVE0KPiAgICogQHBy ZWZlcnJlZF9kZXB0aDogcHJlZmVycmVkIFJCRyBwaXhlbCBkZXB0aCwgdXNlZCBieSBmYiBoZWxw ZXJzCj4gICAqIEBwcmVmZXJfc2hhZG93OiBoaW50IHRvIHVzZXJzcGFjZSB0byBwcmVmZXIgc2hh ZG93LWZiIHJlbmRlcmluZwo+ICAgKiBAYXN5bmNfcGFnZV9mbGlwOiBkb2VzIHRoaXMgZGV2aWNl IHN1cHBvcnQgYXN5bmMgZmxpcHMgb24gdGhlIHByaW1hcnkgcGxhbmU/Cj4gQEAgLTIxMjQsNiAr MjEzOSwxNSBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPiAgCXN0cnVjdCBkcm1fcHJvcGVy dHkgKnN1Z2dlc3RlZF94X3Byb3BlcnR5Owo+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqc3VnZ2Vz dGVkX3lfcHJvcGVydHk7Cj4gIAo+ICsJLyogQ29sb3IgY29ycmVjdGlvbiBwcm9wZXJ0aWVzICov Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpjbV9wYWxldHRlX2JlZm9yZV9jdG1fcHJvcGVydHk7 Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpjbV9wYWxldHRlX2FmdGVyX2N0bV9wcm9wZXJ0eTsK PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNtX2N0bV9wcm9wZXJ0eTsKPiArCj4gKwkvKiBDb2xv ciBjb3JyZWN0aW9uIHF1ZXJ5ICovCj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpjbV9jb2VmZl9i ZWZvcmVfY3RtX3Byb3BlcnR5Owo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqY21fY29lZmZfYWZ0 ZXJfY3RtX3Byb3BlcnR5Owo+ICsKPiAgCS8qIGR1bWIgaW9jdGwgcGFyYW1ldGVycyAqLwo+ICAJ dWludDMyX3QgcHJlZmVycmVkX2RlcHRoLCBwcmVmZXJfc2hhZG93Owo+ICAKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPiBpbmRl eCBiNGU5MmViLi4yNGU0NTIwIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgK PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCj4gQEAgLTgzMCw2ICs4MzAsMzYgQEAgc3Ry dWN0IGRybV9ldmVudF92Ymxhbmsgewo+ICAJX191MzIgcmVzZXJ2ZWQ7Cj4gIH07Cj4gIAo+ICtz dHJ1Y3QgZHJtX3IzMmczMmIzMiB7Cj4gKwkvKgo+ICsJICogRGF0YSBpcyBpbiBVOC4yNCBmaXhl ZCBwb2ludCBmb3JtYXQuCj4gKwkgKiBBbGwgcGxhdGZvcm1zIHN1cHBvcnQgdmFsdWVzIHdpdGhp biBbMCwgMS4wXSByYW5nZSwKPiArCSAqIGZvciBSZWQsIEdyZWVuIGFuZCBCbHVlIGNvbG9ycy4K PiArCSAqLwo+ICsJX191MzIgcjMyOwo+ICsJX191MzIgZzMyOwo+ICsJX191MzIgYjMyOwo+ICsJ X191MzIgcmVzZXJ2ZWQ7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgZHJtX3BhbGV0dGUgewo+ICsJLyoK PiArCSAqIFN0YXJ0aW5nIG9mIHBhbGV0dGUgTFVUIGluIFIzMkczMkIzMiBmb3JtYXQuCj4gKwkg KiBFYWNoIG9mIFJHQiB2YWx1ZSBpcyBpbiBVOC4yNCBmaXhlZCBwb2ludCBmb3JtYXQuCj4gKwkg Ki8KPiArCXN0cnVjdCBkcm1fcjMyZzMyYjMyIGx1dFswXTsKPiArfTsKPiArCj4gK3N0cnVjdCBk cm1fY3RtIHsKPiArCS8qCj4gKwkgKiBFYWNoIHZhbHVlIGlzIGluIFMzMS4zMiBmb3JtYXQuCj4g KwkgKiBUaGlzIGlzIDN4MyBtYXRyaXggaW4gcm93IG1ham9yIGZvcm1hdC4KPiArCSAqIEludGVn ZXIgcGFydCB3aWxsIGJlIGNsaXBwZWQgdG8gbmVhcmVzdAo+ICsJICogbWF4L21pbiBib3VuZGFy eSBhcyBzdXBwb3J0ZWQgYnkgdGhlIEhXIHBsYXRmb3JtLgo+ICsJICovCj4gKwlfX3M2NCBjdG1f Y29lZmZbOV07Cj4gK307Cj4gKwo+ICAvKiB0eXBlZGVmIGFyZWEgKi8KPiAgI2lmbmRlZiBfX0tF Uk5FTF9fCj4gIHR5cGVkZWYgc3RydWN0IGRybV9jbGlwX3JlY3QgZHJtX2NsaXBfcmVjdF90Owo+ IC0tIAo+IDIuNi4zCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=