From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v1 3/4] drm/tegra: plane: Add custom colorkey properties for older Tegra's Date: Tue, 17 Apr 2018 11:00:40 +0200 Message-ID: <20180417090040.GY31310@phenom.ffwll.local> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Dmitry Osipenko Cc: linux-tegra@vger.kernel.org, Thierry Reding , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: linux-tegra@vger.kernel.org T24gTW9uLCBBcHIgMTYsIDIwMTggYXQgMDM6MTY6MjdQTSArMDMwMCwgRG1pdHJ5IE9zaXBlbmtv IHdyb3RlOgo+IENvbG9ya2V5J2luZyBhbGxvd3MgdG8gZHJhdyBvbiB0b3Agb2Ygb3ZlcmxhcHBp bmcgcGxhbmVzLCBsaWtlIGZvciBleGFtcGxlCj4gb24gdG9wIG9mIGEgdmlkZW8gcGxhbmUuIE9s ZGVyIFRlZ3JhJ3MgaGF2ZSBhIGxpbWl0ZWQgY29sb3JrZXknaW5nCj4gY2FwYWJpbGl0eSBzdWNo IHRoYXQgYmxlbmRpbmcgZmVhdHVyZXMgYXJlIHJlZHVjZWQgd2hlbiBjb2xvcmtleSdpbmcgaXMK PiBlbmFibGVkLiBJbiBwYXJ0aWN1bGFyIGRlcGVuZGVudCB3ZWlnaHRpbmcgaXNuJ3QgcG9zc2li bGUsIG1lYW5pbmcgdGhhdAo+IGN1cnNvcnMgcGxhbmUgY2FuJ3QgYmUgZGlzcGxheWVkIHByb3Bl cmx5LiBJbiBtb3N0IGNhc2VzIGl0IGlzIG1vcmUgdXNlZnVsCj4gdG8gZGlzcGxheSBjb250ZW50 IG9uIHRvcCBvZiB2aWRlbyBvdmVybGF5LCBzYWNyaWZpY2luZyBtb3VzZSBjdXJzb3IKPiBpbiB0 aGUgYXJlYSBvZiB0aHJlZSBwbGFuZXMgaW50ZXJzZWN0aW9uIHdpdGggY29sb3JrZXkgbWlzbWF0 Y2guIFRoaXMKPiBwYXRjaCBhZGRzIGEgY3VzdG9tIGNvbG9ya2V5IHByb3BlcnRpZXMgdG8gcHJp bWFyeSBwbGFuZSBhbmQgQ1JUQydzIG9mCj4gb2xkZXIgVGVncmEncywgYWxsb3dpbmcgdXNlcnNw YWNlIGxpa2UgT3BlbnRlZ3JhIFhvcmcgZHJpdmVyIHRvIGltcGxlbWVudAo+IGNvbG9ya2V5IHN1 cHBvcnQgZm9yIFhWaWRlbyBleHRlbnNpb24uCj4gCj4gU2lnbmVkLW9mZi1ieTogRG1pdHJ5IE9z aXBlbmtvIDxkaWdldHhAZ21haWwuY29tPgoKU2luY2UgdGhpcyBpcyB5b3VyIG93biB1YXBpLCB3 aGVyZSdzIHRoZSB1c2Vyc3BhY2UgcGVyCgpodHRwczovL2RyaS5mcmVlZGVza3RvcC5vcmcvZG9j cy9kcm0vZ3B1L2RybS11YXBpLmh0bWwjb3Blbi1zb3VyY2UtdXNlcnNwYWNlLXJlcXVpcmVtZW50 cwoKQW5kIHdoeSB3byB3ZSBuZWVkIGEgdGVncmEtcHJpdmF0ZSBjb2xvcmtleSBwcm9wZXJ0eSBo ZXJlPyBJIHRob3VnaHQKb3RoZXIncyBoYXZlIGJlZW4gZGlzY3Vzc2luZyB0aGlzIGluIHRoZSBj b250ZXh0IG9mIG90aGVyIGRyaXZlcnMuCi1EYW5pZWwKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS90ZWdyYS9kYy5jICAgIHwgMTY2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiAgZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmggICAgfCAgMTggKysrLQo+ICBkcml2ZXJzL2dw dS9kcm0vdGVncmEvcGxhbmUuYyB8ICA0MCArKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vdGVn cmEvcGxhbmUuaCB8ICAgOSArLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDIzMSBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEv ZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jCj4gaW5kZXggYTU0ZWVmZWEyNTEzLi5i MTllOTU0YTIyM2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYwo+IEBAIC0xNzIsNiArMTcyLDI0IEBAIHN0 YXRpYyB2b2lkIHRlZ3JhX3BsYW5lX3NldHVwX2JsZW5kaW5nX2xlZ2FjeShzdHJ1Y3QgdGVncmFf cGxhbmUgKnBsYW5lKQo+ICAKPiAgCXN0YXRlID0gdG9fdGVncmFfcGxhbmVfc3RhdGUocGxhbmUt PmJhc2Uuc3RhdGUpOwo+ICAKPiArCS8qCj4gKwkgKiBBc3N1bWluZyBkZWZhdWx0IHpQb3Mgd2lu ZG93IG9yZGVyLCBlbmFibGUgY29sb3Iga2V5aW5nIGZvciBjYXNlcwo+ICsJICogb2Ygb3Zlcmxh cHBpbmcgd2l0aCB0b3BwaW5nIHdpbmRvd3MsIGV4Y2x1ZGluZyBvdmVybGFwIHdpdGgKPiArCSAq IHdpbmRvdyBCLiBEdWUgdG8gbGltaXRlZCBIVyBjYXBhYmlsaXRpZXMsIHRoaXMgYWxsb3dzIHRv IGRyYXcKPiArCSAqIHByaW1hcnkgcGxhbmUgb24gdG9wIG9mIHZpZGVvIG92ZXJsYXkgaW4gYXJl YXMgd2hlcmUga2V5IGlzbid0Cj4gKwkgKiBtYXRjaGluZy4gVGhvdWdoIHdpbmRvdyBDIHdpbGwg YmUgY29tcGxldGVseSB0cmFuc3BhcmVudCBpbiBhCj4gKwkgKiByZWdpb24gb2YgdGhyZWUgd2lu ZG93cyBpbnRlcnNlY3Rpb24gKyBrZXkgbWlzbWF0Y2guCj4gKwkgKi8KPiArCWlmIChzdGF0ZS0+ Y2tleTBfZW5hYmxlZCkgewo+ICsJCWJhY2tncm91bmRbMF0gfD0gQkxFTkRfQ09MT1JfS0VZXzA7 Cj4gKwkJYmFja2dyb3VuZFsyXSB8PSBCTEVORF9DT0xPUl9LRVlfMDsKPiArCX0KPiArCj4gKwlp ZiAoc3RhdGUtPmNrZXkxX2VuYWJsZWQpIHsKPiArCQliYWNrZ3JvdW5kWzBdIHw9IEJMRU5EX0NP TE9SX0tFWV8xOwo+ICsJCWJhY2tncm91bmRbMl0gfD0gQkxFTkRfQ09MT1JfS0VZXzE7Cj4gKwl9 Cj4gKwo+ICAJaWYgKHN0YXRlLT5vcGFxdWUpIHsKPiAgCQkvKgo+ICAJCSAqIFNpbmNlIGN1c3Rv bSBmaXgtd2VpZ2h0IGJsZW5kaW5nIGlzbid0IHV0aWxpemVkIGFuZCB3ZWlnaHQKPiBAQCAtNzI5 LDYgKzc0NywzNSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyB0ZWdyYV9wbGFuZV9nZXRfcG9zc2li bGVfY3J0Y3Moc3RydWN0IGRybV9kZXZpY2UgKmRybSkKPiAgCXJldHVybiAxIDw8IGRybS0+bW9k ZV9jb25maWcubnVtX2NydGM7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3BsYW5lX2Ny ZWF0ZV9sZWdhY3lfcHJvcGVydGllcyhzdHJ1Y3QgdGVncmFfcGxhbmUgKnBsYW5lLAo+ICsJCQkJ CQkgc3RydWN0IGRybV9kZXZpY2UgKmRybSkKPiArewo+ICsJcGxhbmUtPnByb3BzLmNvbG9yX2tl eTAgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2Jvb2woCj4gKwkJCQkJCWRybSwgMCwgImNvbG9yIGtl eSAwIik7Cj4gKwlwbGFuZS0+cHJvcHMuY29sb3Jfa2V5MSA9IGRybV9wcm9wZXJ0eV9jcmVhdGVf Ym9vbCgKPiArCQkJCQkJZHJtLCAwLCAiY29sb3Iga2V5IDEiKTsKPiArCj4gKwlpZiAoIXBsYW5l LT5wcm9wcy5jb2xvcl9rZXkwIHx8Cj4gKwkgICAgIXBsYW5lLT5wcm9wcy5jb2xvcl9rZXkxKQo+ ICsJCWdvdG8gZXJyX2NsZWFudXA7Cj4gKwo+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHko JnBsYW5lLT5iYXNlLmJhc2UsIHBsYW5lLT5wcm9wcy5jb2xvcl9rZXkwLAo+ICsJCQkJICAgZmFs c2UpOwo+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLmJhc2UsIHBs YW5lLT5wcm9wcy5jb2xvcl9rZXkxLAo+ICsJCQkJICAgZmFsc2UpOwo+ICsKPiArCXJldHVybjsK PiArCj4gK2Vycl9jbGVhbnVwOgo+ICsJaWYgKHBsYW5lLT5wcm9wcy5jb2xvcl9rZXkwKQo+ICsJ CWRybV9wcm9wZXJ0eV9kZXN0cm95KGRybSwgcGxhbmUtPnByb3BzLmNvbG9yX2tleTApOwo+ICsK PiArCWlmIChwbGFuZS0+cHJvcHMuY29sb3Jfa2V5MSkKPiArCQlkcm1fcHJvcGVydHlfZGVzdHJv eShkcm0sIHBsYW5lLT5wcm9wcy5jb2xvcl9rZXkxKTsKPiArCj4gKwlkZXZfZXJyKHBsYW5lLT5k Yy0+ZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBsZWdhY3kgcGxhbmUgcHJvcGVydGllc1xuIik7Cj4g K30KPiArCj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICp0ZWdyYV9wcmltYXJ5X3BsYW5lX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+ICAJCQkJCQkgICAgc3RydWN0IHRlZ3JhX2Rj ICpkYykKPiAgewo+IEBAIC03NjQsNiArODExLDkgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUg KnRlZ3JhX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gIAlk cm1fcGxhbmVfaGVscGVyX2FkZCgmcGxhbmUtPmJhc2UsICZ0ZWdyYV9wbGFuZV9oZWxwZXJfZnVu Y3MpOwo+ICAJZHJtX3BsYW5lX2NyZWF0ZV96cG9zX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcGxh bmUtPmluZGV4LCAwLCAyNTUpOwo+ICAKPiArCWlmIChkYy0+c29jLT5sZWdhY3lfYmxlbmRpbmcp Cj4gKwkJdGVncmFfcGxhbmVfY3JlYXRlX2xlZ2FjeV9wcm9wZXJ0aWVzKHBsYW5lLCBkcm0pOwo+ ICsKPiAgCXJldHVybiAmcGxhbmUtPmJhc2U7Cj4gIH0KPiAgCj4gQEAgLTExNTMsNiArMTIwMyw4 IEBAIHRlZ3JhX2NydGNfYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCj4gIAljb3B5LT5wY2xrID0gc3RhdGUtPnBjbGs7Cj4gIAljb3B5LT5kaXYgPSBzdGF0ZS0+ ZGl2Owo+ICAJY29weS0+cGxhbmVzID0gc3RhdGUtPnBsYW5lczsKPiArCWNvcHktPmNrZXkwID0g c3RhdGUtPmNrZXkwOwo+ICsJY29weS0+Y2tleTEgPSBzdGF0ZS0+Y2tleTE7Cj4gIAo+ICAJcmV0 dXJuICZjb3B5LT5iYXNlOwo+ICB9Cj4gQEAgLTE1MzcsNiArMTU4OSw1MCBAQCBzdGF0aWMgdm9p ZCB0ZWdyYV9kY19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAl0ZWdy YV9kY193cml0ZWwoZGMsIHZhbHVlLCBEQ19DTURfSU5UX01BU0spOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgaW50IHRlZ3JhX2NydGNfYXRvbWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCj4gKwkJCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLAo+ICsJCQkJCSAgc3Ry dWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gKwkJCQkJICB1aW50NjRfdCB2YWx1ZSkKPiAr ewo+ICsJc3RydWN0IHRlZ3JhX2RjX3N0YXRlICp0ZWdyYV9zdGF0ZSA9IHRvX2RjX3N0YXRlKHN0 YXRlKTsKPiArCXN0cnVjdCB0ZWdyYV9kYyAqZGMgPSB0b190ZWdyYV9kYyhjcnRjKTsKPiArCj4g KwlpZiAocHJvcGVydHkgPT0gZGMtPnByb3BzLmNrZXkwX2xvd2VyKQo+ICsJCXRlZ3JhX3N0YXRl LT5ja2V5MC5sb3dlciA9IHZhbHVlOwo+ICsJZWxzZSBpZiAocHJvcGVydHkgPT0gZGMtPnByb3Bz LmNrZXkwX3VwcGVyKQo+ICsJCXRlZ3JhX3N0YXRlLT5ja2V5MC51cHBlciA9IHZhbHVlOwo+ICsJ ZWxzZSBpZiAocHJvcGVydHkgPT0gZGMtPnByb3BzLmNrZXkxX2xvd2VyKQo+ICsJCXRlZ3JhX3N0 YXRlLT5ja2V5MS5sb3dlciA9IHZhbHVlOwo+ICsJZWxzZSBpZiAocHJvcGVydHkgPT0gZGMtPnBy b3BzLmNrZXkxX3VwcGVyKQo+ICsJCXRlZ3JhX3N0YXRlLT5ja2V5MS51cHBlciA9IHZhbHVlOwo+ ICsJZWxzZQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW50IHRlZ3JhX2NydGNfYXRvbWljX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCj4gKwkJCQkJICBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLAo+ ICsJCQkJCSAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gKwkJCQkJICB1aW50NjRf dCAqdmFsdWUpCj4gK3sKPiArCXN0cnVjdCB0ZWdyYV9kY19zdGF0ZSAqdGVncmFfc3RhdGUgPSB0 b19kY19zdGF0ZShzdGF0ZSk7Cj4gKwlzdHJ1Y3QgdGVncmFfZGMgKmRjID0gdG9fdGVncmFfZGMo Y3J0Yyk7Cj4gKwo+ICsJaWYgKHByb3BlcnR5ID09IGRjLT5wcm9wcy5ja2V5MF9sb3dlcikKPiAr CQkqdmFsdWUgPSB0ZWdyYV9zdGF0ZS0+Y2tleTAubG93ZXI7Cj4gKwllbHNlIGlmIChwcm9wZXJ0 eSA9PSBkYy0+cHJvcHMuY2tleTBfdXBwZXIpCj4gKwkJKnZhbHVlID0gdGVncmFfc3RhdGUtPmNr ZXkwLnVwcGVyOwo+ICsJZWxzZSBpZiAocHJvcGVydHkgPT0gZGMtPnByb3BzLmNrZXkxX2xvd2Vy KQo+ICsJCSp2YWx1ZSA9IHRlZ3JhX3N0YXRlLT5ja2V5MS5sb3dlcjsKPiArCWVsc2UgaWYgKHBy b3BlcnR5ID09IGRjLT5wcm9wcy5ja2V5MV91cHBlcikKPiArCQkqdmFsdWUgPSB0ZWdyYV9zdGF0 ZS0+Y2tleTEudXBwZXI7Cj4gKwllbHNlCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgdGVn cmFfY3J0Y19mdW5jcyA9IHsKPiAgCS5wYWdlX2ZsaXAgPSBkcm1fYXRvbWljX2hlbHBlcl9wYWdl X2ZsaXAsCj4gIAkuc2V0X2NvbmZpZyA9IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcsCj4g QEAgLTE1NDksNiArMTY0NSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3Mg dGVncmFfY3J0Y19mdW5jcyA9IHsKPiAgCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSB0ZWdyYV9kY19n ZXRfdmJsYW5rX2NvdW50ZXIsCj4gIAkuZW5hYmxlX3ZibGFuayA9IHRlZ3JhX2RjX2VuYWJsZV92 YmxhbmssCj4gIAkuZGlzYWJsZV92YmxhbmsgPSB0ZWdyYV9kY19kaXNhYmxlX3ZibGFuaywKPiAr CS5hdG9taWNfc2V0X3Byb3BlcnR5ID0gdGVncmFfY3J0Y19hdG9taWNfc2V0X3Byb3BlcnR5LAo+ ICsJLmF0b21pY19nZXRfcHJvcGVydHkgPSB0ZWdyYV9jcnRjX2F0b21pY19nZXRfcHJvcGVydHks Cj4gIH07Cj4gIAo+ICBzdGF0aWMgaW50IHRlZ3JhX2RjX3NldF90aW1pbmdzKHN0cnVjdCB0ZWdy YV9kYyAqZGMsCj4gQEAgLTE4ODMsNiArMTk4MSwxOCBAQCBzdGF0aWMgdm9pZCB0ZWdyYV9jcnRj X2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlzdHJ1Y3QgdGVncmFfZGMg KmRjID0gdG9fdGVncmFfZGMoY3J0Yyk7Cj4gIAl1MzIgdmFsdWU7Cj4gIAo+ICsJaWYgKGRjLT5z b2MtPmxlZ2FjeV9ibGVuZGluZykgewo+ICsJCXRlZ3JhX2RjX3dyaXRlbChkYywgc3RhdGUtPmNr ZXkwLmxvd2VyLAo+ICsJCQkJRENfRElTUF9DT0xPUl9LRVkwX0xPV0VSKTsKPiArCQl0ZWdyYV9k Y193cml0ZWwoZGMsIHN0YXRlLT5ja2V5MC51cHBlciwKPiArCQkJCURDX0RJU1BfQ09MT1JfS0VZ MF9VUFBFUik7Cj4gKwo+ICsJCXRlZ3JhX2RjX3dyaXRlbChkYywgc3RhdGUtPmNrZXkxLmxvd2Vy LAo+ICsJCQkJRENfRElTUF9DT0xPUl9LRVkxX0xPV0VSKTsKPiArCQl0ZWdyYV9kY193cml0ZWwo ZGMsIHN0YXRlLT5ja2V5MS51cHBlciwKPiArCQkJCURDX0RJU1BfQ09MT1JfS0VZMV9VUFBFUik7 Cj4gKwl9Cj4gKwo+ICAJdmFsdWUgPSBzdGF0ZS0+cGxhbmVzIDw8IDggfCBHRU5FUkFMX1VQREFU RTsKPiAgCXRlZ3JhX2RjX3dyaXRlbChkYywgdmFsdWUsIERDX0NNRF9TVEFURV9DT05UUk9MKTsK PiAgCXZhbHVlID0gdGVncmFfZGNfcmVhZGwoZGMsIERDX0NNRF9TVEFURV9DT05UUk9MKTsKPiBA QCAtMTk0NCw2ICsyMDU0LDU2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB0ZWdyYV9kY19pcnEoaW50 IGlycSwgdm9pZCAqZGF0YSkKPiAgCXJldHVybiBJUlFfSEFORExFRDsKPiAgfQo+ICAKPiArc3Rh dGljIGludCB0ZWdyYV9kY19jcmVhdGVfbGVnYWN5X3Byb3BlcnRpZXMoc3RydWN0IHRlZ3JhX2Rj ICpkYywKPiArCQkJCQkgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4gK3sKPiArCS8qCj4g KwkgKiBFYWNoIGNvbG9yIGtleSB2YWx1ZSBpcyByZXByZXNlbnRlZCBpbiBSR0I4ODggZm9ybWF0 Lgo+ICsJICogQWxsIHBsYW5lcyBzaGFyZSB0aGUgc2FtZSBjb2xvciBrZXkgdmFsdWVzIGFuZCBm cmVlIHRvIGNob29zZQo+ICsJICogYW1vbmcgdGhlIGNrZXkwIGFuZCBja2V5MS4KPiArCSAqLwo+ ICsJZGMtPnByb3BzLmNrZXkwX2xvd2VyID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZSgKPiAr CQkJZHJtLCAwLCAiY29sb3Iga2V5IDAgbG93ZXIgbWFyZ2luIiwgMCwgMHhmZmZmZmYpOwo+ICsJ ZGMtPnByb3BzLmNrZXkwX3VwcGVyID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZSgKPiArCQkJ ZHJtLCAwLCAiY29sb3Iga2V5IDAgdXBwZXIgbWFyZ2luIiwgMCwgMHhmZmZmZmYpOwo+ICsJZGMt PnByb3BzLmNrZXkxX2xvd2VyID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZSgKPiArCQkJZHJt LCAwLCAiY29sb3Iga2V5IDEgbG93ZXIgbWFyZ2luIiwgMCwgMHhmZmZmZmYpOwo+ICsJZGMtPnBy b3BzLmNrZXkxX3VwcGVyID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZSgKPiArCQkJZHJtLCAw LCAiY29sb3Iga2V5IDEgdXBwZXIgbWFyZ2luIiwgMCwgMHhmZmZmZmYpOwo+ICsKPiArCWlmICgh ZGMtPnByb3BzLmNrZXkwX2xvd2VyIHx8Cj4gKwkgICAgIWRjLT5wcm9wcy5ja2V5MF91cHBlciB8 fAo+ICsJICAgICFkYy0+cHJvcHMuY2tleTFfbG93ZXIgfHwKPiArCSAgICAhZGMtPnByb3BzLmNr ZXkxX3VwcGVyKQo+ICsJCWdvdG8gZXJyX2NsZWFudXA7Cj4gKwo+ICsJZHJtX29iamVjdF9hdHRh Y2hfcHJvcGVydHkoJmRjLT5iYXNlLmJhc2UsIGRjLT5wcm9wcy5ja2V5MF9sb3dlciwKPiArCQkJ CSAgIDB4MDAwMDAwKTsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZkYy0+YmFzZS5i YXNlLCBkYy0+cHJvcHMuY2tleTBfdXBwZXIsCj4gKwkJCQkgICAweDAwMDAwMCk7Cj4gKwlkcm1f b2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmZGMtPmJhc2UuYmFzZSwgZGMtPnByb3BzLmNrZXkxX2xv d2VyLAo+ICsJCQkJICAgMHgwMDAwMDApOwo+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHko JmRjLT5iYXNlLmJhc2UsIGRjLT5wcm9wcy5ja2V5MV91cHBlciwKPiArCQkJCSAgIDB4MDAwMDAw KTsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2Vycl9jbGVhbnVwOgo+ICsJaWYgKGRjLT5wcm9w cy5ja2V5MF9sb3dlcikKPiArCQlkcm1fcHJvcGVydHlfZGVzdHJveShkcm0sIGRjLT5wcm9wcy5j a2V5MF9sb3dlcik7Cj4gKwo+ICsJaWYgKGRjLT5wcm9wcy5ja2V5MF91cHBlcikKPiArCQlkcm1f cHJvcGVydHlfZGVzdHJveShkcm0sIGRjLT5wcm9wcy5ja2V5MF91cHBlcik7Cj4gKwo+ICsJaWYg KGRjLT5wcm9wcy5ja2V5MV9sb3dlcikKPiArCQlkcm1fcHJvcGVydHlfZGVzdHJveShkcm0sIGRj LT5wcm9wcy5ja2V5MV9sb3dlcik7Cj4gKwo+ICsJaWYgKGRjLT5wcm9wcy5ja2V5MV91cHBlcikK PiArCQlkcm1fcHJvcGVydHlfZGVzdHJveShkcm0sIGRjLT5wcm9wcy5ja2V5MV91cHBlcik7Cj4g Kwo+ICsJcmV0dXJuIC1FTk9NRU07Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgdGVncmFfZGNfaW5p dChzdHJ1Y3QgaG9zdDF4X2NsaWVudCAqY2xpZW50KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZHJtID0gZGV2X2dldF9kcnZkYXRhKGNsaWVudC0+cGFyZW50KTsKPiBAQCAtMjAzMSw2ICsy MTkxLDEyIEBAIHN0YXRpYyBpbnQgdGVncmFfZGNfaW5pdChzdHJ1Y3QgaG9zdDF4X2NsaWVudCAq Y2xpZW50KQo+ICAJCWdvdG8gY2xlYW51cDsKPiAgCX0KPiAgCj4gKwlpZiAoZGMtPnNvYy0+bGVn YWN5X2JsZW5kaW5nKSB7Cj4gKwkJZXJyID0gdGVncmFfZGNfY3JlYXRlX2xlZ2FjeV9wcm9wZXJ0 aWVzKGRjLCBkcm0pOwo+ICsJCWlmIChlcnIgPCAwKQo+ICsJCQlkZXZfZXJyKGRjLT5kZXYsICJm YWlsZWQgdG8gY3JlYXRlIENSVEMgcHJvcGVydGllc1xuIik7Cj4gKwl9Cj4gKwo+ICAJcmV0dXJu IDA7Cj4gIAo+ICBjbGVhbnVwOgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEv ZGMuaCBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5oCj4gaW5kZXggMzE1NjAwNmU3NWM2Li4z OTEzZDA0N2FiYWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuaAo+IEBAIC0xOCw2ICsxOCwxMSBAQAo+ICAK PiAgc3RydWN0IHRlZ3JhX291dHB1dDsKPiAgCj4gK3N0cnVjdCB0ZWdyYV9kY19jb2xvcl9rZXlf c3RhdGUgewo+ICsJdTMyIGxvd2VyOwo+ICsJdTMyIHVwcGVyOwo+ICt9Owo+ICsKPiAgc3RydWN0 IHRlZ3JhX2RjX3N0YXRlIHsKPiAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBiYXNlOwo+ICAKPiBA QCAtMjYsOSArMzEsMTMgQEAgc3RydWN0IHRlZ3JhX2RjX3N0YXRlIHsKPiAgCXVuc2lnbmVkIGlu dCBkaXY7Cj4gIAo+ICAJdTMyIHBsYW5lczsKPiArCj4gKwlzdHJ1Y3QgdGVncmFfZGNfY29sb3Jf a2V5X3N0YXRlIGNrZXkwOwo+ICsJc3RydWN0IHRlZ3JhX2RjX2NvbG9yX2tleV9zdGF0ZSBja2V5 MTsKPiAgfTsKPiAgCj4gLXN0YXRpYyBpbmxpbmUgc3RydWN0IHRlZ3JhX2RjX3N0YXRlICp0b19k Y19zdGF0ZShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ICtzdGF0aWMgaW5saW5lIHN0 cnVjdCB0ZWdyYV9kY19zdGF0ZSAqCj4gK3RvX2RjX3N0YXRlKGNvbnN0IHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAgCWlmIChzdGF0ZSkKPiAgCQlyZXR1cm4gY29udGFpbmVy X29mKHN0YXRlLCBzdHJ1Y3QgdGVncmFfZGNfc3RhdGUsIGJhc2UpOwo+IEBAIC05NCw2ICsxMDMs MTMgQEAgc3RydWN0IHRlZ3JhX2RjIHsKPiAgCWNvbnN0IHN0cnVjdCB0ZWdyYV9kY19zb2NfaW5m byAqc29jOwo+ICAKPiAgCXN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbjsKPiArCj4gKwlzdHJ1 Y3Qgewo+ICsJCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNrZXkwX2xvd2VyOwo+ICsJCXN0cnVjdCBk cm1fcHJvcGVydHkgKmNrZXkwX3VwcGVyOwo+ICsJCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNrZXkx X2xvd2VyOwo+ICsJCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNrZXkxX3VwcGVyOwo+ICsJfSBwcm9w czsKPiAgfTsKPiAgCj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRlZ3JhX2RjICoKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVn cmEvcGxhbmUuYwo+IGluZGV4IDA0MDZjMmVmNDMyYy4uNGQ3OTRmMmI0NGRmIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9wbGFuZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3RlZ3JhL3BsYW5lLmMKPiBAQCAtNTcsNiArNTcsOCBAQCB0ZWdyYV9wbGFuZV9hdG9taWNfZHVw bGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICAJY29weS0+Zm9ybWF0ID0g c3RhdGUtPmZvcm1hdDsKPiAgCWNvcHktPnN3YXAgPSBzdGF0ZS0+c3dhcDsKPiAgCWNvcHktPm9w YXF1ZSA9IHN0YXRlLT5vcGFxdWU7Cj4gKwljb3B5LT5ja2V5MF9lbmFibGVkID0gc3RhdGUtPmNr ZXkwX2VuYWJsZWQ7Cj4gKwljb3B5LT5ja2V5MV9lbmFibGVkID0gc3RhdGUtPmNrZXkxX2VuYWJs ZWQ7Cj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IDI7IGkrKykKPiAgCQljb3B5LT5ibGVuZGluZ1tp XSA9IHN0YXRlLT5ibGVuZGluZ1tpXTsKPiBAQCAtODYsNiArODgsNDIgQEAgc3RhdGljIGJvb2wg dGVncmFfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4gIAlyZXR1cm4gZmFsc2U7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgdGVncmFfcGxhbmVfc2V0 X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJCQkJICAgIHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnN0YXRlLAo+ICsJCQkJICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3Bl cnR5LAo+ICsJCQkJICAgIHVpbnQ2NF90IHZhbHVlKQo+ICt7Cj4gKwlzdHJ1Y3QgdGVncmFfcGxh bmVfc3RhdGUgKnRlZ3JhX3N0YXRlID0gdG9fdGVncmFfcGxhbmVfc3RhdGUoc3RhdGUpOwo+ICsJ c3RydWN0IHRlZ3JhX3BsYW5lICp0ZWdyYSA9IHRvX3RlZ3JhX3BsYW5lKHBsYW5lKTsKPiArCj4g KwlpZiAocHJvcGVydHkgPT0gdGVncmEtPnByb3BzLmNvbG9yX2tleTApCj4gKwkJdGVncmFfc3Rh dGUtPmNrZXkwX2VuYWJsZWQgPSB2YWx1ZTsKPiArCWVsc2UgaWYgKHByb3BlcnR5ID09IHRlZ3Jh LT5wcm9wcy5jb2xvcl9rZXkxKQo+ICsJCXRlZ3JhX3N0YXRlLT5ja2V5MV9lbmFibGVkID0gdmFs dWU7Cj4gKwllbHNlCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30K PiArCj4gK3N0YXRpYyBpbnQgdGVncmFfcGxhbmVfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICsJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRl LAo+ICsJCQkJICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAo+ICsJCQkJICAgIHVp bnQ2NF90ICp2YWx1ZSkKPiArewo+ICsJc3RydWN0IHRlZ3JhX3BsYW5lX3N0YXRlICp0ZWdyYV9z dGF0ZSA9IHRvX3RlZ3JhX3BsYW5lX3N0YXRlKHN0YXRlKTsKPiArCXN0cnVjdCB0ZWdyYV9wbGFu ZSAqdGVncmEgPSB0b190ZWdyYV9wbGFuZShwbGFuZSk7Cj4gKwo+ICsJaWYgKHByb3BlcnR5ID09 IHRlZ3JhLT5wcm9wcy5jb2xvcl9rZXkwKQo+ICsJCSp2YWx1ZSA9IHRlZ3JhX3N0YXRlLT5ja2V5 MF9lbmFibGVkOwo+ICsJZWxzZSBpZiAocHJvcGVydHkgPT0gdGVncmEtPnByb3BzLmNvbG9yX2tl eTEpCj4gKwkJKnZhbHVlID0gdGVncmFfc3RhdGUtPmNrZXkxX2VuYWJsZWQ7Cj4gKwllbHNlCj4g KwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gIGNvbnN0IHN0 cnVjdCBkcm1fcGxhbmVfZnVuY3MgdGVncmFfcGxhbmVfZnVuY3MgPSB7Cj4gIAkudXBkYXRlX3Bs YW5lID0gZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3BsYW5lLAo+ICAJLmRpc2FibGVfcGxhbmUg PSBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lLAo+IEBAIC05NCw2ICsxMzIsOCBAQCBj b25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIHRlZ3JhX3BsYW5lX2Z1bmNzID0gewo+ICAJLmF0 b21pY19kdXBsaWNhdGVfc3RhdGUgPSB0ZWdyYV9wbGFuZV9hdG9taWNfZHVwbGljYXRlX3N0YXRl LAo+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gdGVncmFfcGxhbmVfYXRvbWljX2Rlc3Ryb3lf c3RhdGUsCj4gIAkuZm9ybWF0X21vZF9zdXBwb3J0ZWQgPSB0ZWdyYV9wbGFuZV9mb3JtYXRfbW9k X3N1cHBvcnRlZCwKPiArCS5hdG9taWNfc2V0X3Byb3BlcnR5ID0gdGVncmFfcGxhbmVfc2V0X3By b3BlcnR5LAo+ICsJLmF0b21pY19nZXRfcHJvcGVydHkgPSB0ZWdyYV9wbGFuZV9nZXRfcHJvcGVy dHksCj4gIH07Cj4gIAo+ICBpbnQgdGVncmFfcGxhbmVfc3RhdGVfYWRkKHN0cnVjdCB0ZWdyYV9w bGFuZSAqcGxhbmUsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9wbGFuZS5o IGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3BsYW5lLmgKPiBpbmRleCA3MzYwZGRmYWZlZTguLmRh ZmVjZWE3M2IyOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvcGxhbmUuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9wbGFuZS5oCj4gQEAgLTE5LDYgKzE5LDExIEBA IHN0cnVjdCB0ZWdyYV9wbGFuZSB7Cj4gIAlzdHJ1Y3QgdGVncmFfZGMgKmRjOwo+ICAJdW5zaWdu ZWQgaW50IG9mZnNldDsKPiAgCXVuc2lnbmVkIGludCBpbmRleDsKPiArCj4gKwlzdHJ1Y3Qgewo+ ICsJCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNvbG9yX2tleTA7Cj4gKwkJc3RydWN0IGRybV9wcm9w ZXJ0eSAqY29sb3Jfa2V5MTsKPiArCX0gcHJvcHM7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgdGVncmFf Y3Vyc29yIHsKPiBAQCAtNDksMTAgKzU0LDEyIEBAIHN0cnVjdCB0ZWdyYV9wbGFuZV9zdGF0ZSB7 Cj4gIAkvKiB1c2VkIGZvciBsZWdhY3kgYmxlbmRpbmcgc3VwcG9ydCBvbmx5ICovCj4gIAlzdHJ1 Y3QgdGVncmFfcGxhbmVfbGVnYWN5X2JsZW5kaW5nX3N0YXRlIGJsZW5kaW5nWzJdOwo+ICAJYm9v bCBvcGFxdWU7Cj4gKwlib29sIGNrZXkwX2VuYWJsZWQ7Cj4gKwlib29sIGNrZXkxX2VuYWJsZWQ7 Cj4gIH07Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHN0cnVjdCB0ZWdyYV9wbGFuZV9zdGF0ZSAqCj4g LXRvX3RlZ3JhX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICt0 b190ZWdyYV9wbGFuZV9zdGF0ZShjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkK PiAgewo+ICAJaWYgKHN0YXRlKQo+ICAJCXJldHVybiBjb250YWluZXJfb2Yoc3RhdGUsIHN0cnVj dCB0ZWdyYV9wbGFuZV9zdGF0ZSwgYmFzZSk7Cj4gLS0gCj4gMi4xNy4wCj4gCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVsIFZl dHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3 bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==