From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm: Add optional COLOR_ENCODING and COLOR_RANGE properties to drm_plane Date: Tue, 6 Feb 2018 20:45:51 +0200 Message-ID: <20180206184551.GS5453@intel.com> References: <20180206175857.GP5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id F096F6E0E9 for ; Tue, 6 Feb 2018 18:45:55 +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: Hans Verkuil Cc: airlied@linux.ie, Liviu.Dudau@arm.com, dri-devel@lists.freedesktop.org, tomi.valkeinen@ti.com, Jyri Sarha , laurent.pinchart@ideasonboard.com List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBGZWIgMDYsIDIwMTggYXQgMDc6MDg6MzRQTSArMDEwMCwgSGFucyBWZXJrdWlsIHdy b3RlOgo+IE9uIDAyLzA2LzIwMTggMDY6NTggUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+ IE9uIE1vbiwgSnVuIDEyLCAyMDE3IGF0IDEyOjEwOjA0QU0gKzAzMDAsIEp5cmkgU2FyaGEgd3Jv dGU6Cj4gPj4gQWRkIGEgc3RhbmRhcmQgb3B0aW9uYWwgcHJvcGVydGllcyB0byBzdXBwb3J0IGRp ZmZlcmVudCBub24gUkdCIGNvbG9yCj4gPj4gZW5jb2RpbmdzIGluIERSTSBwbGFuZXMuIENPTE9S X0VOQ09ESU5HIHNlbGVjdCB0aGUgc3VwcG9ydGVkIG5vbiBSR0IKPiA+PiBjb2xvciBlbmNvZGlu ZywgZm9yIGluc3RhbmNlIElUVS1SIEJULjcwOSBZQ2JDci4gQ09MT1JfUkFOR0Ugc2VsZWN0cwo+ ID4+IHRoZSB2YWx1ZSByYW5nZXMgd2l0aGluIHRoZSBzZWxlY3RlZCBjb2xvciBlbmNvZGluZy4g VGhlIHByb3BlcnRpZXMKPiA+PiBhcmUgc3RvcmVkIHRvIGRybV9wbGFuZSBvYmplY3QgdG8gYWxs b3cgZGlmZmVyZW50IHNldCBvZiBzdXBwb3J0ZWQKPiA+PiBlbmNvZGluZyBmb3IgZGlmZmVyZW50 IHBsYW5lcyBvbiB0aGUgZGV2aWNlLgo+ID4+Cj4gPj4gU2lnbmVkLW9mZi1ieTogSnlyaSBTYXJo YSA8anNhcmhhQHRpLmNvbT4KPiA+PiAtLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYyAgICAgfCAgOCArKysrCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5j IHwgOTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4+ICBpbmNs dWRlL2RybS9kcm1fY29sb3JfbWdtdC5oICAgICB8IDE5ICsrKysrKysrKwo+ID4+ICBpbmNsdWRl L2RybS9kcm1fcGxhbmUuaCAgICAgICAgICB8ICA4ICsrKysKPiA+PiAgNCBmaWxlcyBjaGFuZ2Vk LCAxMjYgaW5zZXJ0aW9ucygrKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPj4gaW5kZXgg NzdkY2VmMC4uODA2NzY4MSAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4+IEBAIC03 ODYsNiArNzg2LDEwIEBAIGludCBkcm1fYXRvbWljX3BsYW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiA+PiAgCQlzdGF0ZS0+cm90YXRpb24gPSB2YWw7Cj4gPj4gIAl9 IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT56cG9zX3Byb3BlcnR5KSB7Cj4gPj4gIAkJc3Rh dGUtPnpwb3MgPSB2YWw7Cj4gPj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xv cl9lbmNvZGluZ19wcm9wZXJ0eSkgewo+ID4+ICsJCXN0YXRlLT5jb2xvcl9lbmNvZGluZyA9IHZh bDsKPiA+PiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9yX3JhbmdlX3Byb3Bl cnR5KSB7Cj4gPj4gKwkJc3RhdGUtPmNvbG9yX3JhbmdlID0gdmFsOwo+ID4+ICAJfSBlbHNlIGlm IChwbGFuZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKPiA+PiAgCQlyZXR1cm4gcGxh bmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwKPiA+PiAgCQkJCXBy b3BlcnR5LCB2YWwpOwo+ID4+IEBAIC04NDYsNiArODUwLDEwIEBAIGludCBkcm1fYXRvbWljX3Bs YW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+PiAgCQkqdmFsID0g c3RhdGUtPnJvdGF0aW9uOwo+ID4+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+enBv c19wcm9wZXJ0eSkgewo+ID4+ICAJCSp2YWwgPSBzdGF0ZS0+enBvczsKPiA+PiArCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9yX2VuY29kaW5nX3Byb3BlcnR5KSB7Cj4gPj4gKwkJ KnZhbCA9IHN0YXRlLT5jb2xvcl9lbmNvZGluZzsKPiA+PiArCX0gZWxzZSBpZiAocHJvcGVydHkg PT0gcGxhbmUtPmNvbG9yX3JhbmdlX3Byb3BlcnR5KSB7Cj4gPj4gKwkJKnZhbCA9IHN0YXRlLT5j b2xvcl9yYW5nZTsKPiA+PiAgCX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfZ2V0X3By b3BlcnR5KSB7Cj4gPj4gIAkJcmV0dXJuIHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0 eShwbGFuZSwgc3RhdGUsIHByb3BlcnR5LCB2YWwpOwo+ID4+ICAJfSBlbHNlIHsKPiA+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2NvbG9yX21nbXQuYwo+ID4+IGluZGV4IDNlZGE1MDAuLjkwNzdiZjYgMTAwNjQ0Cj4g Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMKPiA+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYwo+ID4+IEBAIC04OCw2ICs4OCwxOSBAQAo+ID4+ ICAgKiBkcm1fbW9kZV9jcnRjX3NldF9nYW1tYV9zaXplKCkuIERyaXZlcnMgd2hpY2ggc3VwcG9y dCBib3RoIHNob3VsZCB1c2UKPiA+PiAgICogZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dhbW1h X3NldCgpIHRvIGFsaWFzIHRoZSBsZWdhY3kgZ2FtbWEgcmFtcCB3aXRoIHRoZQo+ID4+ICAgKiAi R0FNTUFfTFVUIiBwcm9wZXJ0eSBhYm92ZS4KPiA+PiArICoKPiA+PiArICogU3VwcG9ydCBmb3Ig ZGlmZmVyZW50IG5vbiBSR0IgY29sb3IgZW5jb2RpbmdzIGlzIGNvbnRyb2xsZWQgdGhyb3VnaAo+ ID4+ICsgKiAmZHJtX3BsYW5lIHNwZWNpZmljIENPTE9SX0VOQ09ESU5HIGFuZCBDT0xPUl9SQU5H RSBwcm9wZXJ0aWVzOgo+ID4+ICsgKgo+ID4+ICsgKiAiQ09MT1JfRU5DT0RJTkciCj4gPj4gKyAq IAlPcHRpb25hbCBwbGFuZSBlbnVtIHByb3BlcnR5IHRvIHN1cHBvcnQgZGlmZmVyZW50IG5vbiBS R0IKPiA+PiArICogCWNvbG9yIGVuY29kaW5ncy4gVGhlIGRyaXZlciBjYW4gcHJvdmlkZSBhIHN1 YnNldCBvZiBzdGFuZGFyZAo+ID4+ICsgKiAJZW51bSB2YWx1ZXMgc3VwcG9ydGVkIGJ5IHRoZSBE Uk0gcGxhbmUuCj4gPj4gKyAqCj4gPj4gKyAqICJDT0xPUl9SQU5HRSIKPiA+PiArICogCU9wdGlv bmFsIHBsYW5lIGVudW0gcHJvcGVydHkgdG8gc3VwcG9ydCBkaWZmZXJlbnQgbm9uIFJHQgo+ID4+ ICsgKiAJY29sb3IgcGFyYW1ldGVyIHJhbmdlcy4gVGhlIGRyaXZlciBjYW4gcHJvdmlkZSBhIHN1 YnNldCBvZgo+ID4+ICsgKiAJc3RhbmRhcmQgZW51bSB2YWx1ZXMgc3VwcG9ydGVkIGJ5IHRoZSBE Uk0gcGxhbmUuCj4gPj4gICAqLwo+ID4+ICAKPiA+PiAgLyoqCj4gPj4gQEAgLTMzNiwzICszNDks ODEgQEAgaW50IGRybV9tb2RlX2dhbW1hX2dldF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ID4+ICAJZHJtX21vZGVzZXRfdW5sb2NrKCZjcnRjLT5tdXRleCk7Cj4gPj4gIAlyZXR1cm4g cmV0Owo+ID4+ICB9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNvbG9y X2VuY29kaW5nX25hbWVbXSA9IHsKPiA+PiArCVtEUk1fQ09MT1JfWUNCQ1JfQlQ2MDFdID0gIklU VS1SIEJULjYwMSBZQ2JDciIsCj4gPj4gKwlbRFJNX0NPTE9SX1lDQkNSX0JUNzA5XSA9ICJJVFUt UiBCVC43MDkgWUNiQ3IiLAo+ID4+ICsJW0RSTV9DT0xPUl9ZQ0JDUl9CVDIwMjBdID0gIklUVS1S IEJULjIwMjAgWUNiQ3IiLAo+ID4gCj4gPiBJIHdhcyBqdXN0IGxvb2tpbmcgYXQgdGhpcyBhZ2Fp biAoaW4gdGhlIGhvcGVzIG9mIGxhbmRpbmcgaXQgZmluYWxseSksCj4gPiBhbmQgdGhlbiBJIHJl YWxpemVkIHdlIHByb2JhYmx5IG5lZWQgdG8gc3BsaXQgdGhpcyBCVC4yMDIwIGludG8KPiA+IGNv bnN0YW50IGFuZCBub24tY29uc3RhbnQgbHVtaW5hbmNlIHZhcmlhbnRzLgo+ID4gCj4gPiAuLi5f QlQyMDIwX0NMIGFuZCAuLi5fQlQyMDIwX05DTCBtYXliZT8KPiAKPiBUaGlzIGlzIHdoYXQgVjRM MiB1c2VzOgo+IAo+IGh0dHBzOi8vaHZlcmt1aWwuaG9tZS54czRhbGwubmwvc3BlYy91YXBpL3Y0 bC9jb2xvcnNwYWNlcy1kZWZzLmh0bWwKPiAKPiBWNEwyX1lDQkNSX0VOQ19CVDIwMjAgYW5kIFY0 TDJfWUNCQ1JfRU5DX0JUMjAyMF9DT05TVF9MVU0uCj4gCj4gSSd2ZSBuZXZlciBzZWVuIFY0TDJf WUNCQ1JfRU5DX0JUMjAyMF9DT05TVF9MVU0gaW4gdGhlIHdpbGQuIE5vbi1jb25zdGFudAo+IEJ0 LjIwMjAgaXMgd2hhdCBpcyBub3JtYWxseSB1c2VkLCBzbyBJJ2Qga2VlcCB0aGUgZGVmaW5lIGp1 c3QgYXMtaXM6Cj4gRFJNX0NPTE9SX1lDQkNSX0JUMjAyMC4gQW5kIGFkZCBhIERSTV9DT0xPUl9Z Q0JDUl9CVDIwMjBfQ09OU1RfTFVNIGlmCj4geW91IHRoaW5rIHlvdSBuZWVkIGl0LiBJJ3ZlIG5l dmVyIHNlZW4gYW55b25lIHVzZSB0aGlzLgoKSG1tLiBJIHN1cHBvc2UgdGhhdCdzIGEgcmVhc29u YWJsZSBhcHBvcmFjaC4gQXMgbG9uZyBhcyB3ZSBkb2N1bWVudCB0aGF0CnRoZSB0aGUgcGxhaW4g QlQyMDIwIGVudW0gdmFsdWUgaXMgaW4gZmFjdCB0aGUgbm9uLWNvbnN0IGx1bWluYW5jZQp2YXJp YW50LgoKPiAKPiBBbmQgaW4gY2FzZSB5b3Ugd29uZGVyIHdoeTogdGhpcyBpcyB0aGUgQlQuMjAy MCBPcGVuR0wgWSdDYkNyIHRvIFInRydCJwo+IGNvbnZlcnNpb246Cj4gCj4gCWZsb2F0IHIgPSB5 ICsgMS40NzE5ICogdjsKPiAgICAgICAgIGZsb2F0IGcgPSB5IC0gMC4xNjQ2ICogdSAtIDAuNTcw MyAqIHY7Cj4gICAgICAgICBmbG9hdCBiID0geSArIDEuODgxNCAqIHU7Cj4gCj4gQW5kIHRoaXMg Zm9yIEJULjIwMjAgY29uc3RhbnQgbHVtaW5hbmNlOgo+IAo+IAlmbG9hdCBiID0gdSA8PSAwLjAg PyB5ICsgMS45NDA0ICogdSA6IHkgKyAxLjU4MTYgKiB1Owo+IAlmbG9hdCByID0gdiA8PSAwLjAg PyB5ICsgMS43MTg0ICogdiA6IHkgKyAwLjk5MzYgKiB2Owo+IAlmbG9hdCBsaW5fciA9IChyIDwg MC4wODEpID8gciAvIDQuNSA6IHBvdygociArIDAuMDk5KSAvIDEuMDk5LCAxLjAgLyAwLjQ1KTsK PiAJZmxvYXQgbGluX2IgPSAoYiA8IDAuMDgxKSA/IGIgLyA0LjUgOiBwb3coKGIgKyAwLjA5OSkg LyAxLjA5OSwgMS4wIC8gMC40NSk7Cj4gCWZsb2F0IGxpbl95ID0gKHkgPCAwLjA4MSkgPyB5IC8g NC41IDogcG93KCh5ICsgMC4wOTkpIC8gMS4wOTksIDEuMCAvIDAuNDUpOwo+IAlmbG9hdCBsaW5f ZyA9IGxpbl95IC8gMC42NzgwIC0gbGluX3IgKiAwLjI2MjcgLyAwLjY3ODAgLSBsaW5fYiAqIDAu MDU5MyAvIDAuNjc4MDsKPiAJZmxvYXQgZyA9IChsaW5fZyA8IDAuMDE4KSA/IGxpbl9nICogNC41 IDogMS4wOTkgKiBwb3cobGluX2csIDAuNDUpIC0gMC4wOTk7Cj4gCj4gQnJyIDotKQoKWWVhaC4g SW4gbXkgSERSIFdlc3RvbiBmb3JrIEkgd2FzIGRvaW5nIHRoZSBub24tY29uc3QgbHVtaW5hY2Ug d2l0aAphIGdlbmVyaWMgNHg0IG1hdHJpeCAoY291bGQgYmUgNHgzIGJ1dCB0aGF0IHdvdWxkIGhh dmUgcmVxdWlyZWQKc29tZSBleHRlbnNpb24gSSBkaWRuJ3Qgd2FudCB0byBsb29rIHVwKS4KClRo ZW4gSSBsb29rZWQgYXQgYWRkaW5nIHRoZSBub24tY29uc3QgbHVtaW5hbmNlIHZhcmlhbnQsIGFu ZCBpbgp0aGUgZW5kIGRlY2lkZWQgdGhhdCBJIGRpZG4ndCB3YW50IHRvIHVnbGlmeSB0aGUgc2hh ZGVyIGNvZGUgd2l0aAp0aGF0IDopIElmIGl0IHdhc24ndCBmb3IgdGhvc2UgZGFybmVkIGRpZmZl cmVudCBzY2FsaW5nIGZhY3RvcnMKZm9yIHRoZSA8MC4wIHZzLiA+MC4wIGNhc2VzLi4uCgo+IAo+ IFJlZ2FyZHMsCj4gCj4gCUhhbnMKPiAKPiA+IAo+ID4+ICt9Owo+ID4+ICsKPiA+PiArc3RhdGlj IGNvbnN0IGNoYXIgKiBjb25zdCBjb2xvcl9yYW5nZV9uYW1lW10gPSB7Cj4gPj4gKwlbRFJNX0NP TE9SX1lDQkNSX0ZVTExfUkFOR0VdID0gIllDYkNyIGZ1bGwgcmFuZ2UiLAo+ID4+ICsJW0RSTV9D T0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFXSA9ICJZQ2JDciBsaW1pdGVkIHJhbmdlIiwKPiA+PiAr fTsKPiA+PiArCj4gPj4gKy8qKgo+ID4+ICsgKiBkcm1fcGxhbmVfY3JlYXRlX2NvbG9yX3Byb3Bl cnRpZXMgLSBjb2xvciBlbmNvZGluZyByZWxhdGVkIHBsYW5lIHByb3BlcnRpZXMKPiA+PiArICog QHN1cHBvcnRlZF9lbmNvZGluZ3M6IGJpdGZpZWxkIGluZGljYXRpbmcgc3VwcG9ydGVkIGNvbG9y IGVuY29kaW5ncwo+ID4+ICsgKiBAc3VwcG9ydGVkX3JhbmdlczogYml0ZmlsZWxkIGluZGljYXRp bmcgc3VwcG9ydGVkIGNvbG9yIHJhbmdlcwo+ID4+ICsgKiBAZGVmYXVsdF9lbmNvZGluZzogZGVm YXVsdCBjb2xvciBlbmNvZGluZwo+ID4+ICsgKiBAZGVmYXVsdF9yYW5nZTogZGVmYXVsdCBjb2xv ciByYW5nZQo+ID4+ICsgKgo+ID4+ICsgKiBDcmVhdGUgYW5kIGF0dGFjaCBwbGFuZSBzcGVjaWZp YyBDT0xPUl9FTkNPRElORyBhbmQgQ09MT1JfUkFOR0UKPiA+PiArICogcHJvcGVydGllcyB0byB0 byB0aGUgZHJtX3BsYW5lIG9iamVjdC4gVGhlIHN1cHBvcnRlZCBlbmNvZGluZ3MgYW5kCj4gPj4g KyAqIHJhbmdlcyBzaG91bGQgYmUgcHJvdmlkZWQgaW4gc3VwcG9ydGVkX2VuY29kaW5ncyBhbmQK PiA+PiArICogc3VwcG9ydGVkX3JhbmdlcyBiaXRtYXNrcy4gRWFjaCBiaXQgc2V0IGluIHRoZSBi aXRtYXNrIGluZGljYXRlcwo+ID4+ICsgKiB0aGUgaXRzIG51bWJlciBhcyBlbnVtIHZhbHVlIGJl aW5nIHN1cHBvcnRlZC4KPiA+PiArICovCj4gPj4gK2ludCBkcm1fcGxhbmVfY3JlYXRlX2NvbG9y X3Byb3BlcnRpZXMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPj4gKwkJCQkgICAgICB1MzIg c3VwcG9ydGVkX2VuY29kaW5ncywKPiA+PiArCQkJCSAgICAgIHUzMiBzdXBwb3J0ZWRfcmFuZ2Vz LAo+ID4+ICsJCQkJICAgICAgZW51bSBkcm1fY29sb3JfZW5jb2RpbmcgZGVmYXVsdF9lbmNvZGlu ZywKPiA+PiArCQkJCSAgICAgIGVudW0gZHJtX2NvbG9yX3JhbmdlIGRlZmF1bHRfcmFuZ2UpCj4g Pj4gK3sKPiA+PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owo+ID4+ICsJ c3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiA+PiArCXN0cnVjdCBkcm1fcHJvcF9lbnVtX2xp c3QgZW51bV9saXN0W21heChEUk1fQ09MT1JfRU5DT0RJTkdfTUFYLAo+ID4+ICsJCQkJCQlEUk1f Q09MT1JfUkFOR0VfTUFYKV07Cj4gPj4gKwlpbnQgaSwgbGVuOwo+ID4+ICsKPiA+PiArCWxlbiA9 IDA7Cj4gPj4gKwlmb3IgKGkgPSAwOyBpIDwgRFJNX0NPTE9SX0VOQ09ESU5HX01BWDsgaSsrKSB7 Cj4gPj4gKwkJaWYgKChzdXBwb3J0ZWRfZW5jb2RpbmdzICYgQklUKGkpKSA9PSAwKQo+ID4+ICsJ CQljb250aW51ZTsKPiA+PiArCj4gPj4gKwkJZW51bV9saXN0W2xlbl0udHlwZSA9IGk7Cj4gPj4g KwkJZW51bV9saXN0W2xlbl0ubmFtZSA9IGNvbG9yX2VuY29kaW5nX25hbWVbaV07Cj4gPj4gKwkJ bGVuKys7Cj4gPj4gKwl9Cj4gPj4gKwo+ID4+ICsJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVf ZW51bShkZXYsIDAsICJDT0xPUl9FTkNPRElORyIsCj4gPj4gKwkJCQkJZW51bV9saXN0LCBsZW4p Owo+ID4+ICsJaWYgKCFwcm9wKQo+ID4+ICsJCXJldHVybiAtRU5PTUVNOwo+ID4+ICsJcGxhbmUt PmNvbG9yX2VuY29kaW5nX3Byb3BlcnR5ID0gcHJvcDsKPiA+PiArCWRybV9vYmplY3RfYXR0YWNo X3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwgZGVmYXVsdF9lbmNvZGluZyk7Cj4gPj4gKwlp ZiAocGxhbmUtPnN0YXRlKQo+ID4+ICsJCXBsYW5lLT5zdGF0ZS0+Y29sb3JfZW5jb2RpbmcgPSBk ZWZhdWx0X2VuY29kaW5nOwo+ID4+ICsKPiA+PiArCWxlbiA9IDA7Cj4gPj4gKwlmb3IgKGkgPSAw OyBpIDwgRFJNX0NPTE9SX1JBTkdFX01BWDsgaSsrKSB7Cj4gPj4gKwkJaWYgKChzdXBwb3J0ZWRf cmFuZ2VzICYgQklUKGkpKSA9PSAwKQo+ID4+ICsJCQljb250aW51ZTsKPiA+PiArCj4gPj4gKwkJ ZW51bV9saXN0W2xlbl0udHlwZSA9IGk7Cj4gPj4gKwkJZW51bV9saXN0W2xlbl0ubmFtZSA9IGNv bG9yX3JhbmdlX25hbWVbaV07Cj4gPj4gKwkJbGVuKys7Cj4gPj4gKwl9Cj4gPj4gKwo+ID4+ICsJ cHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bShkZXYsIDAsCSJDT0xPUl9SQU5HRSIsCj4g Pj4gKwkJCQkJZW51bV9saXN0LCBsZW4pOwo+ID4+ICsJaWYgKCFwcm9wKQo+ID4+ICsJCXJldHVy biAtRU5PTUVNOwo+ID4+ICsJcGxhbmUtPmNvbG9yX3JhbmdlX3Byb3BlcnR5ID0gcHJvcDsKPiA+ PiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwgZGVmYXVs dF9yYW5nZSk7Cj4gPj4gKwlpZiAocGxhbmUtPnN0YXRlKQo+ID4+ICsJCXBsYW5lLT5zdGF0ZS0+ Y29sb3JfcmFuZ2UgPSBkZWZhdWx0X3JhbmdlOwo+ID4+ICsKPiA+PiArCXJldHVybiAwOwo+ID4+ ICt9Cj4gPj4gK0VYUE9SVF9TWU1CT0woZHJtX3BsYW5lX2NyZWF0ZV9jb2xvcl9wcm9wZXJ0aWVz KTsKPiA+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaCBiL2luY2x1 ZGUvZHJtL2RybV9jb2xvcl9tZ210LmgKPiA+PiBpbmRleCAwM2E1OWNiLi5iM2I2ZDMwIDEwMDY0 NAo+ID4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb2xvcl9tZ210LmgKPiA+PiArKysgYi9pbmNs dWRlL2RybS9kcm1fY29sb3JfbWdtdC5oCj4gPj4gQEAgLTI2LDYgKzI2LDcgQEAKPiA+PiAgI2lu Y2x1ZGUgPGxpbnV4L2N0eXBlLmg+Cj4gPj4gIAo+ID4+ICBzdHJ1Y3QgZHJtX2NydGM7Cj4gPj4g K3N0cnVjdCBkcm1fcGxhbmU7Cj4gPj4gIAo+ID4+ICB1aW50MzJfdCBkcm1fY29sb3JfbHV0X2V4 dHJhY3QodWludDMyX3QgdXNlcl9pbnB1dCwgdWludDMyX3QgYml0X3ByZWNpc2lvbik7Cj4gPj4g IAo+ID4+IEBAIC0zNyw0ICszOCwyMiBAQCB2b2lkIGRybV9jcnRjX2VuYWJsZV9jb2xvcl9tZ210 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+PiAgaW50IGRybV9tb2RlX2NydGNfc2V0X2dhbW1h X3NpemUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4+ICAJCQkJIGludCBnYW1tYV9zaXplKTsK PiA+PiAgCj4gPj4gK2VudW0gZHJtX2NvbG9yX2VuY29kaW5nIHsKPiA+PiArCURSTV9DT0xPUl9Z Q0JDUl9CVDYwMSwKPiA+PiArCURSTV9DT0xPUl9ZQ0JDUl9CVDcwOSwKPiA+PiArCURSTV9DT0xP Ul9ZQ0JDUl9CVDIwMjAsCj4gPj4gKwlEUk1fQ09MT1JfRU5DT0RJTkdfTUFYLAo+ID4+ICt9Owo+ ID4+ICsKPiA+PiArZW51bSBkcm1fY29sb3JfcmFuZ2Ugewo+ID4+ICsJRFJNX0NPTE9SX1lDQkNS X0xJTUlURURfUkFOR0UsCj4gPj4gKwlEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRSwKPiA+PiAr CURSTV9DT0xPUl9SQU5HRV9NQVgsCj4gPj4gK307Cj4gPj4gKwo+ID4+ICtpbnQgZHJtX3BsYW5l X2NyZWF0ZV9jb2xvcl9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ICsJ CQkJICAgICAgdTMyIHN1cHBvcnRlZF9lbmNvZGluZ3MsCj4gPj4gKwkJCQkgICAgICB1MzIgc3Vw cG9ydGVkX3JhbmdlcywKPiA+PiArCQkJCSAgICAgIGVudW0gZHJtX2NvbG9yX2VuY29kaW5nIGRl ZmF1bHRfZW5jb2RpbmcsCj4gPj4gKwkJCQkgICAgICBlbnVtIGRybV9jb2xvcl9yYW5nZSBkZWZh dWx0X3JhbmdlKTsKPiA+PiAgI2VuZGlmCj4gPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9wbGFuZS5oIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiA+PiBpbmRleCA5YWIzZTcwLi5m NGRlNWY5IDEwMDY0NAo+ID4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCj4gPj4gKysr IGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiA+PiBAQCAtMjYsNiArMjYsNyBAQAo+ID4+ICAj aW5jbHVkZSA8bGludXgvbGlzdC5oPgo+ID4+ICAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KPiA+ PiAgI2luY2x1ZGUgPGRybS9kcm1fbW9kZV9vYmplY3QuaD4KPiA+PiArI2luY2x1ZGUgPGRybS9k cm1fY29sb3JfbWdtdC5oPgo+ID4+ICAKPiA+PiAgc3RydWN0IGRybV9jcnRjOwo+ID4+ICBzdHJ1 Y3QgZHJtX3ByaW50ZXI7Cj4gPj4gQEAgLTExMiw2ICsxMTMsMTAgQEAgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSB7Cj4gPj4gIAl1bnNpZ25lZCBpbnQgenBvczsKPiA+PiAgCXVuc2lnbmVkIGludCBu b3JtYWxpemVkX3pwb3M7Cj4gPj4gIAo+ID4+ICsJLyogQ29sb3IgZW5jb2RpbmcgZm9yIG5vbiBS R0IgZm9ybWF0cyAqLwo+ID4+ICsJZW51bSBkcm1fY29sb3JfZW5jb2RpbmcgY29sb3JfZW5jb2Rp bmc7Cj4gPj4gKwllbnVtIGRybV9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZTsKPiA+PiArCj4gPj4g IAkvKiBDbGlwcGVkIGNvb3JkaW5hdGVzICovCj4gPj4gIAlzdHJ1Y3QgZHJtX3JlY3Qgc3JjLCBk c3Q7Cj4gPj4gIAo+ID4+IEBAIC01MjMsNiArNTI4LDkgQEAgc3RydWN0IGRybV9wbGFuZSB7Cj4g Pj4gIAo+ID4+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqenBvc19wcm9wZXJ0eTsKPiA+PiAgCXN0 cnVjdCBkcm1fcHJvcGVydHkgKnJvdGF0aW9uX3Byb3BlcnR5Owo+ID4+ICsKPiA+PiArCXN0cnVj dCBkcm1fcHJvcGVydHkgKmNvbG9yX2VuY29kaW5nX3Byb3BlcnR5Owo+ID4+ICsJc3RydWN0IGRy bV9wcm9wZXJ0eSAqY29sb3JfcmFuZ2VfcHJvcGVydHk7Cj4gPj4gIH07Cj4gPj4gIAo+ID4+ICAj ZGVmaW5lIG9ial90b19wbGFuZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGRybV9wbGFuZSwg YmFzZSkKPiA+PiAtLSAKPiA+PiAxLjkuMQo+ID4gCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVs IE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK