From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 5/8] drm/i915/gen11: Program the scalers correctly for planar formats, v3. Date: Thu, 18 Oct 2018 17:47:00 +0300 Message-ID: <20181018144700.GG9144@intel.com> References: <20181018115134.9061-1-maarten.lankhorst@linux.intel.com> <20181018115134.9061-6-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0F4CE6E0D0 for ; Thu, 18 Oct 2018 14:47:08 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181018115134.9061-6-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMTgsIDIwMTggYXQgMDE6NTE6MzFQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVGhlIGZpcnN0IDMgcGxhbmVzIChwcmltYXJ5LCBzcHJpdGUgMCBhbmQgMSkg aGF2ZSBhIGRlZGljYXRlZCBjaHJvbWEKPiB1cHNhbXBsZXIgdG8gdXBzY2FsZSBZVVY0MjAgdG8g WVVWNDQ0IGFuZCB0aGUgc2NhbGVyIHNob3VsZCBvbmx5IGJlCj4gdXNlZCBmb3IgdXBzY2FsaW5n LiBCZWNhdXNlIG9mIHRoaXMgd2Ugc2hvdWxkbid0IHByb2dyYW0gdGhlIHNjYWxlcnMKPiBpbiBw bGFuYXIgbW9kZSBpZiBOVjEyIGFuZCB0aGUgY2hyb21hIHVwc2FtcGxlciBhcmUgdXNlZC4gSW5z dGVhZAo+IHByb2dyYW0gdGhlIHNjYWxlcnMgbGlrZSBvbiBub3JtYWwgcGxhbmVzLgo+IAo+IFNw cml0ZSAyIGFuZCAzIGhhdmUgbm8gZGVkaWNhdGVkIHNjYWxlciwgYW5kIG5lZWQgdG8gcHJvZ3Jh bSB0aGUKPiBzZWxlY3RlZCBZIHBsYW5lIGluIHRoZSBzY2FsZXIgbW9kZS4KPiAKPiBDaGFuZ2Vz IHNpbmNlIHYxOgo+IC0gTWFrZSB0aGUgY29tbWVudCBsZXNzIGNvbmZ1c2luZy4KPiBDaGFuZ2Vz IHNpbmNlIHYyOgo+IC0gRml4IGNoZWNrcGF0Y2ggd2FybmluZyAoTWF0dCkKPiAtIGdlbjEwLSAt PiBQcmUtZ2VuMTEgKFZpbGxlKQo+IC0gUFNfU0NBTEVSX01PREVfUEFDS0VEIC0+IFBTX1NDQUxF Ul9NT0RFX05PUk1BTC4gKE1hdHQpCj4gLSBBZGQgY29tbWVudCBhYm91dCBzY2FsZXIgbW9kZSBp biBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVyKCkuIChNYXR0KQo+IC0gUmVuYW1lIG5lZWRfc2Nh bGluZyB0byBuZWVkX3NjYWxlci4gKE1hdHQpCj4gLSBNb3ZlIHRoZSBjcnRjIG5lZWRfc2NhbGlu ZyBjaGVjayB0byBza2xfdXBkYXRlX3NjYWxlcl9jcnRjKCkuCj4gCj4gU2lnbmVkLW9mZi1ieTog TWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KCkkg bGlrZSBpdC4KClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAg ICAgIHwgIDQgKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8IDE2 ICsrKysrKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAz NyArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICAgICB8ICA4ICsrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYyAgfCAgMyArKy0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAy NCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA4MWYxYzYw MTk4N2QuLjhhODFlN2MyZmUyNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC02 ODE5LDcgKzY4MTksNyBAQCBlbnVtIHsKPiAgI2RlZmluZSBTS0xfUFNfU0NBTEVSX01PREVfSFEg ICgxIDw8IDI4KQo+ICAjZGVmaW5lIFNLTF9QU19TQ0FMRVJfTU9ERV9OVjEyICgyIDw8IDI4KQo+ ICAjZGVmaW5lIFBTX1NDQUxFUl9NT0RFX1BMQU5BUiAoMSA8PCAyOSkKPiAtI2RlZmluZSBQU19T Q0FMRVJfTU9ERV9QQUNLRUQgKDAgPDwgMjkpCj4gKyNkZWZpbmUgUFNfU0NBTEVSX01PREVfTk9S TUFMICgwIDw8IDI5KQo+ICAjZGVmaW5lIFBTX1BMQU5FX1NFTF9NQVNLICAoNyA8PCAyNSkKPiAg I2RlZmluZSBQU19QTEFORV9TRUwocGxhbmUpICgoKHBsYW5lKSArIDEpIDw8IDI1KQo+ICAjZGVm aW5lIFBTX0ZJTFRFUl9NQVNLICAgICAgICAgKDMgPDwgMjMpCj4gQEAgLTY4MzYsNiArNjgzNiw4 IEBAIGVudW0gewo+ICAjZGVmaW5lIFBTX1ZBREFQVF9NT0RFX0xFQVNUX0FEQVBUICgwIDw8IDUp Cj4gICNkZWZpbmUgUFNfVkFEQVBUX01PREVfTU9EX0FEQVBUICAgKDEgPDwgNSkKPiAgI2RlZmlu ZSBQU19WQURBUFRfTU9ERV9NT1NUX0FEQVBUICAoMyA8PCA1KQo+ICsjZGVmaW5lIFBTX1BMQU5F X1lfU0VMX01BU0sgICg3IDw8IDUpCj4gKyNkZWZpbmUgUFNfUExBTkVfWV9TRUwocGxhbmUpICgo KHBsYW5lKSArIDEpIDw8IDUpCj4gIAo+ICAjZGVmaW5lIF9QU19QV1JfR0FURV8xQSAgICAgMHg2 ODE2MAo+ICAjZGVmaW5lIF9QU19QV1JfR0FURV8yQSAgICAgMHg2ODI2MAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pYy5jCj4gaW5kZXggMjBiZmM4OWM2NTJjLi43MjM4YWI2MTU1NDggMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+IEBAIC0yMzMsMTMgKzIzMywyMyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRj X3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YQo+ICAJICAgIHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5m b3JtYXQtPmlzX3l1diAmJgo+ICAJICAgIHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPm51 bV9wbGFuZXMgPiAxKSB7Cj4gIAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPT0gOSAmJgo+IC0J CSAgICAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gKwkJICAgICFJU19HRU1JTklMQUtFKGRl dl9wcml2KSkgewo+ICAJCQltb2RlID0gU0tMX1BTX1NDQUxFUl9NT0RFX05WMTI7Cj4gLQkJZWxz ZQo+ICsJCX0gZWxzZSBpZiAoaWNsX2lzX2hkcl9wbGFuZSh0b19pbnRlbF9wbGFuZShwbGFuZV9z dGF0ZS0+YmFzZS5wbGFuZSkpKSB7Cj4gKwkJCS8qCj4gKwkJCSAqIE9uIGdlbjExKydzIEhEUiBw bGFuZXMgd2Ugb25seSB1c2UgdGhlIHNjYWxlciBmb3IKPiArCQkJICogc2NhbGluZy4gVGhleSBo YXZlIGEgZGVkaWNhdGVkIGNocm9tYSB1cHNhbXBsZXIsIHNvCj4gKwkJCSAqIHdlIGRvbid0IG5l ZWQgdGhlIHNjYWxlciB0byB1cHNhbXBsZSB0aGUgVVYgcGxhbmUuCj4gKwkJCSAqLwo+ICsJCQlt b2RlID0gUFNfU0NBTEVSX01PREVfTk9STUFMOwo+ICsJCX0gZWxzZSB7Cj4gIAkJCW1vZGUgPSBQ U19TQ0FMRVJfTU9ERV9QTEFOQVI7Cj4gIAo+ICsJCQlpZiAocGxhbmVfc3RhdGUtPmxpbmtlZF9w bGFuZSkKPiArCQkJCW1vZGUgfD0gUFNfUExBTkVfWV9TRUwocGxhbmVfc3RhdGUtPmxpbmtlZF9w bGFuZS0+aWQpOwo+ICsJCX0KPiAgCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+IDkg fHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHsKPiAtCQltb2RlID0gUFNfU0NBTEVSX01PREVf UEFDS0VEOwo+ICsJCW1vZGUgPSBQU19TQ0FMRVJfTU9ERV9OT1JNQUw7Cj4gIAl9IGVsc2UgaWYg KG51bV9zY2FsZXJzX25lZWQgPT0gMSAmJiBpbnRlbF9jcnRjLT5udW1fc2NhbGVycyA+IDEpIHsK PiAgCQkvKgo+ICAJCSAqIHdoZW4gb25seSAxIHNjYWxlciBpcyBpbiB1c2Ugb24gYSBwaXBlIHdp dGggMiBzY2FsZXJzCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGNi YjNmYjFkNWFkNC4uNTk5NzA5NzE3N2U5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IEBAIC00ODM2LDggKzQ4MzYsNyBAQCBzdGF0aWMgaW50Cj4gIHNrbF91cGRhdGVf c2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBib29sIGZvcmNlX2Rl dGFjaCwKPiAgCQkgIHVuc2lnbmVkIGludCBzY2FsZXJfdXNlciwgaW50ICpzY2FsZXJfaWQsCj4g IAkJICBpbnQgc3JjX3csIGludCBzcmNfaCwgaW50IGRzdF93LCBpbnQgZHN0X2gsCj4gLQkJICBi b29sIHBsYW5lX3NjYWxlcl9jaGVjaywKPiAtCQkgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdCkKPiAr CQkgIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmZvcm1hdCwgYm9vbCBuZWVkX3NjYWxl cikKPiAgewo+ICAJc3RydWN0IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpzY2FsZXJfc3RhdGUg PQo+ICAJCSZjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGU7Cj4gQEAgLTQ4NDYsMjIgKzQ4NDUsMTQg QEAgc2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs IGJvb2wgZm9yY2VfZGV0YWNoLAo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldik7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gIAkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKPiAtCWludCBuZWVkX3NjYWxpbmc7Cj4gIAo+ICAJLyoKPiAgCSAqIFNyYyBjb29y ZGluYXRlcyBhcmUgYWxyZWFkeSByb3RhdGVkIGJ5IDI3MCBkZWdyZWVzIGZvcgo+ICAJICogdGhl IDkwLzI3MCBkZWdyZWUgcGxhbmUgcm90YXRpb24gY2FzZXMgKHRvIG1hdGNoIHRoZQo+ICAJICog R1RUIG1hcHBpbmcpLCBoZW5jZSBubyBuZWVkIHRvIGFjY291bnQgZm9yIHJvdGF0aW9uIGhlcmUu Cj4gIAkgKi8KPiAtCW5lZWRfc2NhbGluZyA9IHNyY193ICE9IGRzdF93IHx8IHNyY19oICE9IGRz dF9oOwo+IC0KPiAtCWlmIChwbGFuZV9zY2FsZXJfY2hlY2spCj4gLQkJaWYgKHBpeGVsX2Zvcm1h dCA9PSBEUk1fRk9STUFUX05WMTIpCj4gLQkJCW5lZWRfc2NhbGluZyA9IHRydWU7Cj4gLQo+IC0J aWYgKGNydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JD UjQyMCAmJgo+IC0JICAgIHNjYWxlcl91c2VyID09IFNLTF9DUlRDX0lOREVYKQo+IC0JCW5lZWRf c2NhbGluZyA9IHRydWU7Cj4gKwlpZiAoc3JjX3cgIT0gZHN0X3cgfHwgc3JjX2ggIT0gZHN0X2gp Cj4gKwkJbmVlZF9zY2FsZXIgPSB0cnVlOwo+ICAKPiAgCS8qCj4gIAkgKiBTY2FsaW5nL2ZpdHRp bmcgbm90IHN1cHBvcnRlZCBpbiBJRi1JRCBtb2RlIGluIEdFTjkrCj4gQEAgLTQ4NzAsNyArNDg2 MSw3IEBAIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLCBib29sIGZvcmNlX2RldGFjaCwKPiAgCSAqIGZvciBOVjEyLgo+ICAJICovCj4gIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA5ICYmIGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlICYmCj4g LQkgICAgbmVlZF9zY2FsaW5nICYmIGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxB R19JTlRFUkxBQ0UpIHsKPiArCSAgICBuZWVkX3NjYWxlciAmJiBhZGp1c3RlZF9tb2RlLT5mbGFn cyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiUGlwZS9Q bGFuZSBzY2FsaW5nIG5vdCBzdXBwb3J0ZWQgd2l0aCBJRi1JRCBtb2RlXG4iKTsKPiAgCQlyZXR1 cm4gLUVJTlZBTDsKPiAgCX0KPiBAQCAtNDg4NSw3ICs0ODc2LDcgQEAgc2tsX3VwZGF0ZV9zY2Fs ZXIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGJvb2wgZm9yY2VfZGV0YWNo LAo+ICAJICogdXBkYXRlIHRvIGZyZWUgdGhlIHNjYWxlciBpcyBkb25lIGluIHBsYW5lL3BhbmVs LWZpdCBwcm9ncmFtbWluZy4KPiAgCSAqIEZvciB0aGlzIHB1cnBvc2UgY3J0Yy9wbGFuZV9zdGF0 ZS0+c2NhbGVyX2lkIGlzbid0IHJlc2V0IGhlcmUuCj4gIAkgKi8KPiAtCWlmIChmb3JjZV9kZXRh Y2ggfHwgIW5lZWRfc2NhbGluZykgewo+ICsJaWYgKGZvcmNlX2RldGFjaCB8fCAhbmVlZF9zY2Fs ZXIpIHsKPiAgCQlpZiAoKnNjYWxlcl9pZCA+PSAwKSB7Cj4gIAkJCXNjYWxlcl9zdGF0ZS0+c2Nh bGVyX3VzZXJzICY9IH4oMSA8PCBzY2FsZXJfdXNlcik7Cj4gIAkJCXNjYWxlcl9zdGF0ZS0+c2Nh bGVyc1sqc2NhbGVyX2lkXS5pbl91c2UgPSAwOwo+IEBAIC00ODk5LDcgKzQ4OTAsNyBAQCBza2xf dXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBm b3JjZV9kZXRhY2gsCj4gIAkJcmV0dXJuIDA7Cj4gIAl9Cj4gIAo+IC0JaWYgKHBsYW5lX3NjYWxl cl9jaGVjayAmJiBwaXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyICYmCj4gKwlpZiAoZm9y bWF0ICYmIGZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAmJgo+ICAJICAgIChzcmNf aCA8IFNLTF9NSU5fWVVWXzQyMF9TUkNfSCB8fCBzcmNfdyA8IFNLTF9NSU5fWVVWXzQyMF9TUkNf VykpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJOVjEyOiBzcmMgZGltZW5zaW9ucyBub3QgbWV0XG4i KTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiBAQCAtNDk0MiwxMiArNDkzMywxNiBAQCBza2xfdXBk YXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3Jj ZV9kZXRhY2gsCj4gIGludCBza2xfdXBkYXRlX3NjYWxlcl9jcnRjKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiArCWJvb2wgbmVlZF9z Y2FsZXIgPSBmYWxzZTsKPiArCj4gKwlpZiAoc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5URUxf T1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMCkKPiArCQluZWVkX3NjYWxlciA9IHRydWU7Cj4gIAo+ICAJ cmV0dXJuIHNrbF91cGRhdGVfc2NhbGVyKHN0YXRlLCAhc3RhdGUtPmJhc2UuYWN0aXZlLCBTS0xf Q1JUQ19JTkRFWCwKPiAgCQkJCSAmc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJfaWQsCj4gIAkJ CQkgc3RhdGUtPnBpcGVfc3JjX3csIHN0YXRlLT5waXBlX3NyY19oLAo+ICAJCQkJIGFkanVzdGVk X21vZGUtPmNydGNfaGRpc3BsYXksCj4gLQkJCQkgYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxh eSwgZmFsc2UsIDApOwo+ICsJCQkJIGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXksIE5VTEws IG5lZWRfc2NhbGVyKTsKPiAgfQo+ICAKPiAgLyoqCj4gQEAgLTQ5NjIsMTMgKzQ5NTcsMTcgQEAg aW50IHNrbF91cGRhdGVfc2NhbGVyX2NydGMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnN0YXRl KQo+ICBzdGF0aWMgaW50IHNrbF91cGRhdGVfc2NhbGVyX3BsYW5lKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkJICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKPiAgewo+IC0KPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUg PQo+ICAJCXRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKPiAgCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Cj4gIAlpbnQgcmV0 Owo+IC0KPiAgCWJvb2wgZm9yY2VfZGV0YWNoID0gIWZiIHx8ICFwbGFuZV9zdGF0ZS0+YmFzZS52 aXNpYmxlOwo+ICsJYm9vbCBuZWVkX3NjYWxlciA9IGZhbHNlOwo+ICsKPiArCS8qIFByZS1nZW4x MSBhbmQgU0RSIHBsYW5lcyBhbHdheXMgbmVlZCBhIHNjYWxlciBmb3IgcGxhbmFyIGZvcm1hdHMu ICovCj4gKwlpZiAoIWljbF9pc19oZHJfcGxhbmUoaW50ZWxfcGxhbmUpICYmCj4gKwkgICAgZmIg JiYgZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikKPiArCQluZWVkX3NjYWxl ciA9IHRydWU7Cj4gIAo+ICAJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXIoY3J0Y19zdGF0ZSwgZm9y Y2VfZGV0YWNoLAo+ICAJCQkJZHJtX3BsYW5lX2luZGV4KCZpbnRlbF9wbGFuZS0+YmFzZSksCj4g QEAgLTQ5NzcsNyArNDk3Niw3IEBAIHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQlkcm1fcmVjdF9oZWln aHQoJnBsYW5lX3N0YXRlLT5iYXNlLnNyYykgPj4gMTYsCj4gIAkJCQlkcm1fcmVjdF93aWR0aCgm cGxhbmVfc3RhdGUtPmJhc2UuZHN0KSwKPiAgCQkJCWRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3Rh dGUtPmJhc2UuZHN0KSwKPiAtCQkJCWZiID8gdHJ1ZSA6IGZhbHNlLCBmYiA/IGZiLT5mb3JtYXQt PmZvcm1hdCA6IDApOwo+ICsJCQkJZmIgPyBmYi0+Zm9ybWF0IDogTlVMTCwgbmVlZF9zY2FsZXIp Owo+ICAKPiAgCWlmIChyZXQgfHwgcGxhbmVfc3RhdGUtPnNjYWxlcl9pZCA8IDApCj4gIAkJcmV0 dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDI3MmRlOTA2YTAwMS4u ZjFkMTk2YmNkYjY2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMjIxMSw2 ICsyMjExLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpY2xfaXNfbnYxMl95X3BsYW5lKGVudW0g cGxhbmVfaWQgaWQpCj4gIAlyZXR1cm4gZmFsc2U7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbmxpbmUg Ym9vbCBpY2xfaXNfaGRyX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3sKPiAr CWlmIChJTlRFTF9HRU4odG9faTkxNShwbGFuZS0+YmFzZS5kZXYpKSA8IDExKQo+ICsJCXJldHVy biBmYWxzZTsKPiArCj4gKwlyZXR1cm4gcGxhbmUtPmlkIDwgUExBTkVfU1BSSVRFMjsKPiArfQo+ ICsKPiAgLyogaW50ZWxfdHYuYyAqLwo+ICB2b2lkIGludGVsX3R2X2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMKPiBpbmRleCA3Y2Q1OWVlZTVjYWQuLmEyYTQzMjgxMDdiNiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTMzMiw3ICszMzIsOCBAQCBza2xfcHJvZ3JhbV9zY2Fs ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJY3J0Y19oLS07Cj4gIAo+ ICAJLyogVE9ETzogaGFuZGxlIHN1Yi1waXhlbCBjb29yZGluYXRlcyAqLwo+IC0JaWYgKHBsYW5l X3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpIHsKPiAr CWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9O VjEyICYmCj4gKwkgICAgIWljbF9pc19oZHJfcGxhbmUocGxhbmUpKSB7Cj4gIAkJeV9ocGhhc2Ug PSBza2xfc2NhbGVyX2NhbGNfcGhhc2UoMSwgZmFsc2UpOwo+ICAJCXlfdnBoYXNlID0gc2tsX3Nj YWxlcl9jYWxjX3BoYXNlKDEsIGZhbHNlKTsKPiAgCj4gLS0gCj4gMi4xOS4xCj4gCj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUg U3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=