From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC PATCH v3 1/2] drm: Add generic colorkey properties for DRM planes Date: Fri, 6 Jul 2018 15:23:18 +0300 Message-ID: <20180706122318.GI5565@intel.com> References: <20180603220059.17670-1-digetx@gmail.com> <20180603220059.17670-2-digetx@gmail.com> <8b80e766-be05-b5be-5a0f-102a5135d230@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1E92B6EFF8 for ; Fri, 6 Jul 2018 12:23:35 +0000 (UTC) Content-Disposition: inline In-Reply-To: <8b80e766-be05-b5be-5a0f-102a5135d230@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: Maarten Lankhorst Cc: linux-renesas-soc@vger.kernel.org, Thomas Hellstrom , Laurent Pinchart , Neil Armstrong , Russell King , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Paul Kocialkowski , Thierry Reding , Ben Skeggs , Rodrigo Vivi , linux-tegra@vger.kernel.org, Dmitry Osipenko , Maxime Ripard , linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBKdWwgMDYsIDIwMTggYXQgMDI6MTE6NDRQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gSGV5LAo+IAo+IE9wIDA0LTA2LTE4IG9tIDAwOjAwIHNjaHJlZWYgRG1pdHJ5 IE9zaXBlbmtvOgo+ID4gRnJvbTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydCty ZW5lc2FzQGlkZWFzb25ib2FyZC5jb20+Cj4gPgo+ID4gQ29sb3Iga2V5aW5nIGlzIHRoZSBhY3Rp b24gb2YgcmVwbGFjaW5nIHBpeGVscyBtYXRjaGluZyBhIGdpdmVuIGNvbG9yCj4gPiAob3IgcmFu Z2Ugb2YgY29sb3JzKSB3aXRoIHRyYW5zcGFyZW50IHBpeGVscyBpbiBhbiBvdmVybGF5IHdoZW4K PiA+IHBlcmZvcm1pbmcgYmxpdHRpbmcuIERlcGVuZGluZyBvbiB0aGUgaGFyZHdhcmUgY2FwYWJp bGl0aWVzLCB0aGUKPiA+IG1hdGNoaW5nIHBpeGVsIGNhbiBlaXRoZXIgYmVjb21lIGZ1bGx5IHRy YW5zcGFyZW50IG9yIGdhaW4gYWRqdXN0bWVudAo+ID4gb2YgdGhlIHBpeGVscyBjb21wb25lbnQg dmFsdWVzLgo+ID4KPiA+IENvbG9yIGtleWluZyBpcyBmb3VuZCBpbiBhIGxhcmdlIG51bWJlciBv ZiBkZXZpY2VzIHdob3NlIGNhcGFiaWxpdGllcwo+ID4gb2Z0ZW4gZGlmZmVyLCBidXQgdGhleSBz dGlsbCBoYXZlIGVub3VnaCBjb21tb24gZmVhdHVyZXMgaW4gcmFuZ2UgdG8KPiA+IHN0YW5kYXJk aXplIGNvbG9yIGtleSBwcm9wZXJ0aWVzLiBUaGlzIGNvbW1pdCBhZGRzIHRocmVlIGdlbmVyaWMg RFJNIHBsYW5lCj4gPiBwcm9wZXJ0aWVzIHJlbGF0ZWQgdG8gdGhlIGNvbG9yIGtleWluZywgcHJv dmlkaW5nIGluaXRpYWwgY29sb3Iga2V5aW5nCj4gPiBzdXBwb3J0Lgo+ID4KPiA+IFNpZ25lZC1v ZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnQrcmVuZXNhc0BpZGVhc29u Ym9hcmQuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogRG1pdHJ5IE9zaXBlbmtvIDxkaWdldHhAZ21h aWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyB8IDEyICsr KysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9ibGVuZC5jICB8IDk5ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ID4gIGluY2x1ZGUvZHJtL2RybV9ibGVuZC5oICAgICAg fCAgMyArKwo+ID4gIGluY2x1ZGUvZHJtL2RybV9wbGFuZS5oICAgICAgfCA1MyArKysrKysrKysr KysrKysrKysrCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNjcgaW5zZXJ0aW9ucygrKQo+ID4KPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWMuYwo+ID4gaW5kZXggODk1NzQxZTljZDdkLi5iMzIyY2JlZDMxOWIgMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPiBAQCAtNzk5LDYgKzc5OSwxMiBAQCBzdGF0aWMg aW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+ID4gIAkJc3RhdGUtPnJvdGF0aW9uID0gdmFsOwo+ID4gIAl9IGVsc2UgaWYgKHByb3BlcnR5 ID09IHBsYW5lLT56cG9zX3Byb3BlcnR5KSB7Cj4gPiAgCQlzdGF0ZS0+enBvcyA9IHZhbDsKPiA+ ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JrZXkubW9kZV9wcm9wZXJ0eSkg ewo+ID4gKwkJc3RhdGUtPmNvbG9ya2V5Lm1vZGUgPSB2YWw7Cj4gPiArCX0gZWxzZSBpZiAocHJv cGVydHkgPT0gcGxhbmUtPmNvbG9ya2V5Lm1pbl9wcm9wZXJ0eSkgewo+ID4gKwkJc3RhdGUtPmNv bG9ya2V5Lm1pbiA9IHZhbDsKPiA+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29s b3JrZXkubWF4X3Byb3BlcnR5KSB7Cj4gPiArCQlzdGF0ZS0+Y29sb3JrZXkubWF4ID0gdmFsOwo+ ID4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9lbmNvZGluZ19wcm9wZXJ0 eSkgewo+ID4gIAkJc3RhdGUtPmNvbG9yX2VuY29kaW5nID0gdmFsOwo+ID4gIAl9IGVsc2UgaWYg KHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5nZV9wcm9wZXJ0eSkgewo+ID4gQEAgLTg2NCw2 ICs4NzAsMTIgQEAgZHJtX2F0b21pY19wbGFuZV9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCj4gPiAgCQkqdmFsID0gc3RhdGUtPnJvdGF0aW9uOwo+ID4gIAl9IGVsc2UgaWYg KHByb3BlcnR5ID09IHBsYW5lLT56cG9zX3Byb3BlcnR5KSB7Cj4gPiAgCQkqdmFsID0gc3RhdGUt Pnpwb3M7Cj4gPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9ya2V5Lm1vZGVf cHJvcGVydHkpIHsKPiA+ICsJCSp2YWwgPSBzdGF0ZS0+Y29sb3JrZXkubW9kZTsKPiA+ICsJfSBl bHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JrZXkubWluX3Byb3BlcnR5KSB7Cj4gPiAr CQkqdmFsID0gc3RhdGUtPmNvbG9ya2V5Lm1pbjsKPiA+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9 PSBwbGFuZS0+Y29sb3JrZXkubWF4X3Byb3BlcnR5KSB7Cj4gPiArCQkqdmFsID0gc3RhdGUtPmNv bG9ya2V5Lm1heDsKPiA+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JfZW5j b2RpbmdfcHJvcGVydHkpIHsKPiA+ICAJCSp2YWwgPSBzdGF0ZS0+Y29sb3JfZW5jb2Rpbmc7Cj4g PiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9yX3JhbmdlX3Byb3BlcnR5KSB7 Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9ibGVuZC5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9ibGVuZC5jCj4gPiBpbmRleCBhMTZhNzRkN2UxNWUuLjEyZmVkMmZmNjVjOCAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9ibGVuZC5jCj4gPiBAQCAtMTA3LDYgKzEwNywxMSBAQAo+ID4gICAq CXBsYW5lcy4gV2l0aG91dCB0aGlzIHByb3BlcnR5IHRoZSBwcmltYXJ5IHBsYW5lIGlzIGFsd2F5 cyBiZWxvdyB0aGUgY3Vyc29yCj4gPiAgICoJcGxhbmUsIGFuZCBvcmRlcmluZyBiZXR3ZWVuIGFs bCBvdGhlciBwbGFuZXMgaXMgdW5kZWZpbmVkLgo+ID4gICAqCj4gPiArICogY29sb3JrZXk6Cj4g PiArICoJQ29sb3Iga2V5aW5nIGlzIHNldCB1cCB3aXRoIGRybV9wbGFuZV9jcmVhdGVfY29sb3Jr ZXlfcHJvcGVydGllcygpLgo+ID4gKyAqCUl0IGFkZHMgc3VwcG9ydCBmb3IgcmVwbGFjaW5nIGEg cmFuZ2Ugb2YgY29sb3JzIHdpdGggYSB0cmFuc3BhcmVudAo+ID4gKyAqCWNvbG9yIGluIHRoZSBw bGFuZS4KPiA+ICsgKgo+ID4gICAqIE5vdGUgdGhhdCBhbGwgdGhlIHByb3BlcnR5IGV4dGVuc2lv bnMgZGVzY3JpYmVkIGhlcmUgYXBwbHkgZWl0aGVyIHRvIHRoZQo+ID4gICAqIHBsYW5lIG9yIHRo ZSBDUlRDIChlLmcuIGZvciB0aGUgYmFja2dyb3VuZCBjb2xvciwgd2hpY2ggY3VycmVudGx5IGlz IG5vdAo+ID4gICAqIGV4cG9zZWQgYW5kIGFzc3VtZWQgdG8gYmUgYmxhY2spLgo+ID4gQEAgLTQ0 OCwzICs0NTMsOTcgQEAgaW50IGRybV9hdG9taWNfbm9ybWFsaXplX3pwb3Moc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19ub3JtYWxpemVfenBvcyk7Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKiBj b25zdCBwbGFuZV9jb2xvcmtleV9tb2RlX25hbWVbXSA9IHsKPiA+ICsJW0RSTV9QTEFORV9DT0xP UktFWV9NT0RFX0RJU0FCTEVEXSA9ICJkaXNhYmxlZCIsCj4gPiArCVtEUk1fUExBTkVfQ09MT1JL RVlfTU9ERV9GT1JFR1JPVU5EX0NMSVBdID0gImZvcmVncm91bmQtY2xpcCIsCj4gPiArfTsKPiA+ ICsKPiA+ICsvKioKPiA+ICsgKiBkcm1fcGxhbmVfY3JlYXRlX2NvbG9ya2V5X3Byb3BlcnRpZXMg LSBjcmVhdGUgY29sb3JrZXkgcHJvcGVydGllcwo+ID4gKyAqIEBwbGFuZTogZHJtIHBsYW5lCj4g PiArICogQHN1cHBvcnRlZF9tb2RlczogYml0bWFzayBvZiBzdXBwb3J0ZWQgY29sb3Iga2V5aW5n IG1vZGVzCj4gPiArICoKPiA+ICsgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgdGhlIGdlbmVyaWMg Y29sb3Iga2V5aW5nIHByb3BlcnRpZXMgYW5kIGF0dGFjaCB0aGVtIHRvCj4gPiArICogdGhlIHBs YW5lIHRvIGVuYWJsZSBjb2xvciBrZXlpbmcgY29udHJvbCBmb3IgYmxlbmRpbmcgb3BlcmF0aW9u cy4KPiA+ICsgKgo+ID4gKyAqIENvbG9yIGtleWluZyBpcyBjb250cm9sbGVkIGJ5IHRoZXNlIHBy b3BlcnRpZXM6Cj4gPiArICoKPiA+ICsgKiBjb2xvcmtleS5tb2RlOgo+ID4gKyAqCVRoZSBtb2Rl IGlzIGFuIGVudW1lcmF0ZWQgcHJvcGVydHkgdGhhdCBjb250cm9scyBob3cgY29sb3Iga2V5aW5n Cj4gPiArICoJb3BlcmF0ZXMuCj4gPiArICoKPiA+ICsgKiBjb2xvcmtleS5taW4sIGNvbG9ya2V5 Lm1heDoKPiA+ICsgKglUaGVzZSB0d28gcHJvcGVydGllcyBzcGVjaWZ5IHRoZSBjb2xvcnMgdGhh dCBhcmUgdHJlYXRlZCBhcyB0aGUgY29sb3IKPiA+ICsgKglrZXkuIFBpeGVsIHdob3NlIHZhbHVl IGlzIGluIHRoZSBbbWluLCBtYXhdIHJhbmdlIGlzIHRoZSBjb2xvciBrZXkKPiA+ICsgKgltYXRj aGluZyBwaXhlbC4gVGhlIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzIGFyZSBleHByZXNzZWQg YXMgYQo+ID4gKyAqCTY0LWJpdCBpbnRlZ2VyIGluIEFSR0IxNjE2MTYxNiBmb3JtYXQsIHdoZXJl IEEgaXMgdGhlIGFscGhhIHZhbHVlIGFuZAo+ID4gKyAqCVIsIEcgYW5kIEIgY29ycmVzcG9uZCB0 byB0aGUgY29sb3IgY29tcG9uZW50cy4gRHJpdmVycyBzaGFsbCBjb252ZXJ0Cj4gPiArICoJQVJH QjE2MTYxNjE2IHZhbHVlIGludG8gYXBwcm9wcmlhdGUgZm9ybWF0IHdpdGhpbiBwbGFuZXMgYXRv bWljIGNoZWNrLgo+ID4gKyAqCj4gPiArICoJV2hlbiBhIHNpbmdsZSBjb2xvciBrZXkgaXMgZGVz aXJlZCBpbnN0ZWFkIG9mIGEgcmFuZ2UsIHVzZXJzcGFjZSBzaGFsbAo+ID4gKyAqCXNldCB0aGUg bWluIGFuZCBtYXggcHJvcGVydGllcyB0byB0aGUgc2FtZSB2YWx1ZS4KPiA+ICsgKgo+ID4gKyAq CURyaXZlcnMgcmV0dXJuIGFuIGVycm9yIGZyb20gdGhlaXIgcGxhbmUgYXRvbWljIGNoZWNrIGlm IHJhbmdlIGNhbid0IGJlCj4gPiArICoJaGFuZGxlZC4KPiA+ICsgKgo+ID4gKyAqIFJldHVybnM6 Cj4gPiArICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgo+ID4g KyAqLwo+ID4gK2ludCBkcm1fcGxhbmVfY3JlYXRlX2NvbG9ya2V5X3Byb3BlcnRpZXMoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCj4gPiArCQkJCQkgdTMyIHN1cHBvcnRlZF9tb2RlcykKPiA+ICt7 Cj4gPiArCXN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgbW9kZXNfbGlzdFtEUk1fUExBTkVfQ09M T1JLRVlfTU9ERVNfTlVNXTsKPiA+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqbW9kZV9wcm9wOwo+ ID4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICptaW5fcHJvcDsKPiA+ICsJc3RydWN0IGRybV9wcm9w ZXJ0eSAqbWF4X3Byb3A7Cj4gPiArCXVuc2lnbmVkIGludCBtb2Rlc19udW0gPSAwOwo+ID4gKwl1 bnNpZ25lZCBpbnQgaTsKPiA+ICsKPiA+ICsJLyogbW9kZXMgYXJlIGRyaXZlci1zcGVjaWZpYywg YnVpbGQgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIG1vZGVzICovCj4gPiArCWZvciAoaSA9IDA7IGkg PCBEUk1fUExBTkVfQ09MT1JLRVlfTU9ERVNfTlVNOyBpKyspIHsKPiA+ICsJCWlmICghKHN1cHBv cnRlZF9tb2RlcyAmIEJJVChpKSkpCj4gPiArCQkJY29udGludWU7Cj4gPiArCj4gPiArCQltb2Rl c19saXN0W21vZGVzX251bV0ubmFtZSA9IHBsYW5lX2NvbG9ya2V5X21vZGVfbmFtZVtpXTsKPiA+ ICsJCW1vZGVzX2xpc3RbbW9kZXNfbnVtXS50eXBlID0gaTsKPiA+ICsJCW1vZGVzX251bSsrOwo+ ID4gKwl9Cj4gPiArCj4gPiArCS8qIGF0IGxlYXN0IG9uZSBtb2RlIHNob3VsZCBiZSBzdXBwb3J0 ZWQgKi8KPiA+ICsJaWYgKCFtb2Rlc19udW0pCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsK PiA+ICsJbW9kZV9wcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKHBsYW5lLT5kZXYsIDAs ICJjb2xvcmtleS5tb2RlIiwKPiA+ICsJCQkJCSAgICAgbW9kZXNfbGlzdCwgbW9kZXNfbnVtKTsK PiA+ICsJaWYgKCFtb2RlX3Byb3ApCj4gPiArCQlyZXR1cm4gLUVOT01FTTsKPiA+ICsKPiA+ICsJ bWluX3Byb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKHBsYW5lLT5kZXYsIDAsICJjb2xv cmtleS5taW4iLAo+ID4gKwkJCQkJICAgICAwLCBVNjRfTUFYKTsKPiA+ICsJaWYgKCFtaW5fcHJv cCkKPiA+ICsJCWdvdG8gZXJyX2Rlc3Ryb3lfbW9kZV9wcm9wOwo+ID4gKwo+ID4gKwltYXhfcHJv cCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UocGxhbmUtPmRldiwgMCwgImNvbG9ya2V5Lm1h eCIsCj4gPiArCQkJCQkgICAgIDAsIFU2NF9NQVgpOwo+ID4gKwlpZiAoIW1heF9wcm9wKQo+ID4g KwkJZ290byBlcnJfZGVzdHJveV9taW5fcHJvcDsKPiA+ICsKPiA+ICsJZHJtX29iamVjdF9hdHRh Y2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBtb2RlX3Byb3AsIDApOwo+ID4gKwlkcm1fb2JqZWN0 X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIG1pbl9wcm9wLCAwKTsKPiA+ICsJZHJtX29i amVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBtYXhfcHJvcCwgMCk7Cj4gPiArCj4g PiArCXBsYW5lLT5jb2xvcmtleS5tb2RlX3Byb3BlcnR5ID0gbW9kZV9wcm9wOwo+ID4gKwlwbGFu ZS0+Y29sb3JrZXkubWluX3Byb3BlcnR5ID0gbWluX3Byb3A7Cj4gPiArCXBsYW5lLT5jb2xvcmtl eS5tYXhfcHJvcGVydHkgPSBtYXhfcHJvcDsKPiA+ICsKPiA+ICsJcmV0dXJuIDA7Cj4gPiArCj4g PiArZXJyX2Rlc3Ryb3lfbWluX3Byb3A6Cj4gPiArCWRybV9wcm9wZXJ0eV9kZXN0cm95KHBsYW5l LT5kZXYsIG1pbl9wcm9wKTsKPiA+ICtlcnJfZGVzdHJveV9tb2RlX3Byb3A6Cj4gPiArCWRybV9w cm9wZXJ0eV9kZXN0cm95KHBsYW5lLT5kZXYsIG1vZGVfcHJvcCk7Cj4gPiArCj4gPiArCXJldHVy biAtRU5PTUVNOwo+ID4gK30KPiA+ICtFWFBPUlRfU1lNQk9MKGRybV9wbGFuZV9jcmVhdGVfY29s b3JrZXlfcHJvcGVydGllcyk7Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2JsZW5k LmggYi9pbmNsdWRlL2RybS9kcm1fYmxlbmQuaAo+ID4gaW5kZXggMzMwYzU2MWM0YzExLi44ZTgw ZDMzYjY0M2UgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fYmxlbmQuaAo+ID4gKysr IGIvaW5jbHVkZS9kcm0vZHJtX2JsZW5kLmgKPiA+IEBAIC01Miw0ICs1Miw3IEBAIGludCBkcm1f cGxhbmVfY3JlYXRlX3pwb3NfaW1tdXRhYmxlX3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAo+ID4gIAkJCQkJICAgICB1bnNpZ25lZCBpbnQgenBvcyk7Cj4gPiAgaW50IGRybV9hdG9t aWNfbm9ybWFsaXplX3pwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJCQkgICAgICBz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ID4gKwo+ID4gK2ludCBkcm1fcGxhbmVf Y3JlYXRlX2NvbG9ya2V5X3Byb3BlcnRpZXMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAr CQkJCQkgdTMyIHN1cHBvcnRlZF9tb2Rlcyk7Cj4gPiAgI2VuZGlmCj4gPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+ID4gaW5k ZXggMjZmYTUwYzJhNTBlLi45YTYyMWUxY2NjNDcgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2Ry bS9kcm1fcGxhbmUuaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiA+IEBAIC0z Miw2ICszMiw0OCBAQCBzdHJ1Y3QgZHJtX2NydGM7Cj4gPiAgc3RydWN0IGRybV9wcmludGVyOwo+ ID4gIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eDsKPiA+ICAKPiA+ICsvKioKPiA+ICsg KiBlbnVtIGRybV9wbGFuZV9jb2xvcmtleV9tb2RlIC0gdWFwaSBwbGFuZSBjb2xvcmtleSBtb2Rl IGVudW1lcmF0aW9uCj4gPiArICovCj4gPiArZW51bSBkcm1fcGxhbmVfY29sb3JrZXlfbW9kZSB7 Cj4gPiArCS8qKgo+ID4gKwkgKiBARFJNX1BMQU5FX0NPTE9SS0VZX01PREVfRElTQUJMRUQ6Cj4g PiArCSAqCj4gPiArCSAqIE5vIGNvbG9yIG1hdGNoaW5nIHBlcmZvcm1lZCBpbiB0aGlzIG1vZGUu Cj4gPiArCSAqLwo+ID4gKwlEUk1fUExBTkVfQ09MT1JLRVlfTU9ERV9ESVNBQkxFRCwKPiA+ICsK PiA+ICsJLyoqCj4gPiArCSAqIEBEUk1fUExBTkVfQ09MT1JLRVlfTU9ERV9GT1JFR1JPVU5EX0NM SVA6Cj4gPiArCSAqCj4gPiArCSAqIFRoaXMgbW9kZSBpcyBhbHNvIGtub3duIGFzIGEgImdyZWVu IHNjcmVlbiIuIFBsYW5lIHBpeGVscyBhcmUKPiA+ICsJICogdHJhbnNwYXJlbnQgaW4gYXJlYXMg d2hlcmUgcGl4ZWxzIG1hdGNoIGEgZ2l2ZW4gY29sb3Iga2V5IHJhbmdlCj4gPiArCSAqIGFuZCB0 aGVyZSBpcyBhIGJvdHRvbSAoYmFja2dyb3VuZCkgcGxhbmUsIGluIG90aGVyIGNhc2VzIHBsYW5l Cj4gPiArCSAqIHBpeGVscyBhcmUgdW5hZmZlY3RlZC4KPiA+ICsJICoKPiA+ICsJICovCj4gPiAr CURSTV9QTEFORV9DT0xPUktFWV9NT0RFX0ZPUkVHUk9VTkRfQ0xJUCwKPiBDb3VsZCB3ZSBhZGQg YmFja2dyb3VuZCBjbGlwIGFzIHdlbGw/CgpBbHNvIGNvdWxkIHdlIGp1c3QgbmFtZSB0aGVtICJz cmMiIGFuZCAiZHN0IiAob3Igc29tZSB2YXJpYXRpb24gb2YKdGhvc2UpLiBJJ20gYmV0dGluZyBu byBvbmUgaGFzIGFueSBraW5kIG9mIGlkZWEgd2hhdCB0aGVzZSBwcm9wb3NlZApuYW1lcyBtZWFu IHdpdGhvdXQgbG9va2luZyB1cCB0aGUgZG9jcywgd2hlcmVhcyBwcmV0dHkgbXVjaCBldmVyeW9u ZQprbm93cyBpbW1lZGlhdGVseSB3aGF0IHNyYy9kc3QgY29sb3JrZXlpbmcgbWVhbnMuCgo+IAo+ IFdvdWxkIGJlIG5pY2UgaWYgd2UgY291bGQgbWFwIGk5MTUncyBsZWdhY3kgaW9jdGwgaGFuZGxl ciB0byB0aGUgbmV3IGNvbG9yIGtleSBtb2RlLgo+ID4gKwkvKioKPiA+ICsJICogQERSTV9QTEFO RV9DT0xPUktFWV9NT0RFU19OVU06Cj4gPiArCSAqCj4gPiArCSAqIFRvdGFsIG51bWJlciBvZiBj b2xvciBrZXlpbmcgbW9kZXMuCj4gPiArCSAqLwo+ID4gKwlEUk1fUExBTkVfQ09MT1JLRVlfTU9E RVNfTlVNLAo+ID4gK307Cj4gPiArCj4gPiArLyoqCj4gPiArICogc3RydWN0IGRybV9wbGFuZV9j b2xvcmtleV9zdGF0ZSAtIHBsYW5lIGNvbG9yIGtleWluZyBzdGF0ZQo+ID4gKyAqIEBjb2xvcmtl eS5tb2RlOiBjb2xvciBrZXlpbmcgbW9kZQo+ID4gKyAqIEBjb2xvcmtleS5taW46IGNvbG9yIGtl eSByYW5nZSBtaW5pbXVtIChpbiBBUkdCMTYxNjE2MTYgZm9ybWF0KQo+ID4gKyAqIEBjb2xvcmtl eS5tYXg6IGNvbG9yIGtleSByYW5nZSBtYXhpbXVtIChpbiBBUkdCMTYxNjE2MTYgZm9ybWF0KQo+ ID4gKyAqLwo+ID4gK3N0cnVjdCBkcm1fcGxhbmVfY29sb3JrZXlfc3RhdGUgewo+ID4gKwllbnVt IGRybV9wbGFuZV9jb2xvcmtleV9tb2RlIG1vZGU7Cj4gPiArCXU2NCBtaW47Cj4gPiArCXU2NCBt YXg7Cj4gPiArfTsKPiBDb3VsZCB3ZSBoYXZlIHNvbWUgbWFjcm9zIHRvIGV4dHJhY3QgdGhlIGNv bXBvbmVudHMgZm9yIG1pbi9tYXg/Cj4gQSwgUiwgRywgQi4KCkFuZCB3aGVyZSBkaWQgd2UgbG9z ZSB0aGUgdmFsdWUrbWFzaz8KCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==