From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 2/6] drm/i915: Don't use split gamma when we don't have to Date: Thu, 28 Mar 2019 17:16:03 -0700 Message-ID: <20190329001603.GW4773@mdroper-desk.amr.corp.intel.com> References: <20190328210505.10429-1-ville.syrjala@linux.intel.com> <20190328210505.10429-3-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id C6CBC6E49D for ; Fri, 29 Mar 2019 00:16:04 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190328210505.10429-3-ville.syrjala@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: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMjgsIDIwMTkgYXQgMTE6MDU6MDFQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IFVzaW5nIHRoZSBzcGxpdCBnYW1tYSBtb2RlIHdoZW4gd2UgZG9uJ3QgaGF2ZSB0 byBoYXMgdGhlIGFubm95aW5nCj4gcmVxdWlyZW1lbnQgb2YgbG9hZGluZyBhIGxpbmVhciBMVVQg dG8gdGhlIHVudXNlZCBoYWxmLiBJbnN0ZWFkCj4gbGV0J3MgbWFrZSBsaWZlIHNpbXBsZXIgYnkg c3dpdGNoaW5nIHRvIHRoZSAxMGJpdCBnYW1tYSBtb2RlCj4gYW5kIGR1cGxpY2F0aW5nIGVhY2gg ZW50cnkuCj4gCj4gVGhpcyBhbHNvIGFsbG93cyB1cyB0byBsb2FkIHRoZSBzb2Z0d2FyZSBnYW1t YSBMVVQgaW50byB0aGUKPiBoYXJkd2FyZSBkZWdhbW1hIExVVCwgdGh1cyByZW1vdmluZyBzb21l IG9mIHRoZSBidWdneQo+IGNvbmZpZ3VyYXRpb25zIHdlIGN1cnJlbnRseSBhbGxvdyAoWUNiQ3Iv bGltaXRlZCByYW5nZSBSR0IKPiArIGdhbW1hIExVVCkuIFdlIGRvIHN0aWxsIGhhdmUgb3RoZXIg Y29uZmlndXJhdGlvbnMgdGhhdCBhcmUKPiBhbHNvIGJ1Z2d5LCBidXQgdGhvc2Ugd2lsbCBuZWVk IG1vcmUgY29tcGxpY2F0ZWQgZml4ZXMKPiBvciB0aGV5IGp1c3QgbmVlZCB0byBiZSByZWplY3Rl ZC4gU2FkbHkgR0xLIGRvZXNuJ3QgaGF2ZQo+IHRoaXMgZmxleGliaWxpdHkgYW55bW9yZSBhbmQg dGhlIGRlZ2FtbWEgYW5kIGdhbW1hIExVVHMKPiBhcmUgdmVyeSBkaWZmZXJlbnQgc28gbm8gaGVs cCB0aGVyZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oICAgIHwgICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyB8IDE1 OSArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDg2IGlu c2VydGlvbnMoKyksIDc0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ IGluZGV4IGM4NjYzNzlhNTIxYi4uZWI3ZTkzMzU0Y2ZlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCj4gQEAgLTEwMTI3LDYgKzEwMTI3LDcgQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7Cj4g ICNkZWZpbmUgICBQQUxfUFJFQ19TUExJVF9NT0RFCQkoMSA8PCAzMSkKPiAgI2RlZmluZSAgIFBB TF9QUkVDX0FVVE9fSU5DUkVNRU5UCSgxIDw8IDE1KQo+ICAjZGVmaW5lICAgUEFMX1BSRUNfSU5E RVhfVkFMVUVfTUFTSwkoMHgzZmYgPDwgMCkKPiArI2RlZmluZSAgIFBBTF9QUkVDX0lOREVYX1ZB TFVFKHgpCSgoeCkgPDwgMCkKPiAgI2RlZmluZSBfUEFMX1BSRUNfREFUQV9BCTB4NEE0MDQKPiAg I2RlZmluZSBfUEFMX1BSRUNfREFUQV9CCTB4NEFDMDQKPiAgI2RlZmluZSBfUEFMX1BSRUNfREFU QV9DCTB4NEI0MDQKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29s b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiBpbmRleCBkN2MzOGEy YmJkOGYuLmVkNGJkOWJkMTVmNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jb2xvci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ IEBAIC00NjYsNzIgKzQ2NiwzMiBAQCBzdGF0aWMgdm9pZCBza2xfY29sb3JfY29tbWl0KGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJCWlsa19sb2FkX2NzY19t YXRyaXgoY3J0Y19zdGF0ZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGJkd19sb2FkX2RlZ2Ft bWFfbHV0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICtzdGF0 aWMgdm9pZCBiZHdfbG9hZF9sdXRfMTAoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJCSAg ICBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IsCj4gKwkJCSAgICB1MzIgcHJl Y19pbmRleCwgYm9vbCBkdXBsaWNhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gLQljb25z dCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFz ZS5kZWdhbW1hX2x1dDsKPiAtCXUzMiBpLCBsdXRfc2l6ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYp LT5jb2xvci5kZWdhbW1hX2x1dF9zaXplOwo+ICsJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQg Kmx1dCA9IGJsb2ItPmRhdGE7Cj4gKwlpbnQgaSwgbHV0X3NpemUgPSBkcm1fY29sb3JfbHV0X3Np emUoYmxvYik7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAo+IC0JSTkxNV9X UklURShQUkVDX1BBTF9JTkRFWChwaXBlKSwKPiAtCQkgICBQQUxfUFJFQ19TUExJVF9NT0RFIHwg UEFMX1BSRUNfQVVUT19JTkNSRU1FTlQpOwo+IC0KPiAtCWlmIChkZWdhbW1hX2x1dCkgewo+IC0J CWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBkZWdhbW1hX2x1dC0+ZGF0YTsKPiAr CUk5MTVfV1JJVEUoUFJFQ19QQUxfSU5ERVgocGlwZSksIHByZWNfaW5kZXggfAo+ICsJCSAgIFBB TF9QUkVDX0FVVE9fSU5DUkVNRU5UKTsKPiAgCj4gLQkJZm9yIChpID0gMDsgaSA8IGx1dF9zaXpl OyBpKyspCj4gLQkJCUk5MTVfV1JJVEUoUFJFQ19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8xMCgm bHV0W2ldKSk7Cj4gLQl9IGVsc2Ugewo+ICsJLyoKPiArCSAqIFdlIGFkdmVydGl6ZSB0aGUgc3Bs aXQgZ2FtbWEgc2l6ZXMuIFdoZW4gbm90IHVzaW5nIHNwbGl0Cj4gKwkgKiBnYW1tYSB3ZSBqdXN0 IGR1cGxpY2F0ZSBlYWNoIGVudHJ5Lgo+ICsJICoKPiArCSAqIFRPRE86IGV4cG9zZSB0aGUgZnVs bCBMVVQgdG8gdXNlcnNwYWNlCgpBbnkgcmVhc29uIG5vdCB0byBqdXN0IGRvIHRoaXMgaW1tZWRp YXRlbHk/ICBUaHJvd2luZyBhd2F5IGhhbGYgdGhlCnRhYmxlIGVudHJpZXMgaWYgd2UgZGVjaWRl IHdlIG5lZWQgc3BsaXQgbW9kZSBkb2Vzbid0IHNlZW0gYW55IGhhcmRlcgp0aGFuIGR1cGxpY2F0 aW5nIHRoZSBlbnRyaWVzIHdoZW4gd2UgZGVjaWRlIHdlIGRvbid0LiAgVGhlIGNvbG9yCm1hbmFn ZW1lbnQga2VybmVsZG9jIGFscmVhZHkgZXhwbGljaXRseSByZWNvbW1lbmRzIHRoaXMgYXBwcm9h Y2ggZm9yCmhhcmR3YXJlIHRoYXQgY2FuIHN1cHBvcnQgbXVsdGlwbGUgZ2FtbWEgbW9kZXMsIHNv IEkgZG9uJ3QgdGhpbmsgd2UgbmVlZAphbnkgbmV3IEFCSSB0byBoYW5kbGUgaXQuCgo+ICsJICov Cj4gKwlpZiAoZHVwbGljYXRlKSB7Cj4gIAkJZm9yIChpID0gMDsgaSA8IGx1dF9zaXplOyBpKysp IHsKPiAtCQkJdTMyIHYgPSAoaSAqICgoMSA8PCAxMCkgLSAxKSkgLyAobHV0X3NpemUgLSAxKTsK PiAtCj4gLQkJCUk5MTVfV1JJVEUoUFJFQ19QQUxfREFUQShwaXBlKSwKPiAtCQkJCSAgICh2IDw8 IDIwKSB8ICh2IDw8IDEwKSB8IHYpOwo+ICsJCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlw ZSksIGlsa19sdXRfMTAoJmx1dFtpXSkpOwo+ICsJCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEo cGlwZSksIGlsa19sdXRfMTAoJmx1dFtpXSkpOwo+ICAJCX0KPiAtCX0KPiAtfQo+IC0KPiAtc3Rh dGljIHZvaWQgYmR3X2xvYWRfZ2FtbWFfbHV0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLCB1MzIgb2Zmc2V0KQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+IC0JY29u c3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNl LmdhbW1hX2x1dDsKPiAtCXUzMiBpLCBsdXRfc2l6ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5j b2xvci5nYW1tYV9sdXRfc2l6ZTsKPiAtCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAt Cj4gLQlXQVJOX09OKG9mZnNldCAmIH5QQUxfUFJFQ19JTkRFWF9WQUxVRV9NQVNLKTsKPiAtCj4g LQlJOTE1X1dSSVRFKFBSRUNfUEFMX0lOREVYKHBpcGUpLAo+IC0JCSAgIChvZmZzZXQgPyBQQUxf UFJFQ19TUExJVF9NT0RFIDogMCkgfAo+IC0JCSAgIFBBTF9QUkVDX0FVVE9fSU5DUkVNRU5UIHwK PiAtCQkgICBvZmZzZXQpOwo+IC0KPiAtCWlmIChnYW1tYV9sdXQpIHsKPiAtCQljb25zdCBzdHJ1 Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gZ2FtbWFfbHV0LT5kYXRhOwo+IC0KPiArCX0gZWxzZSB7 Cj4gIAkJZm9yIChpID0gMDsgaSA8IGx1dF9zaXplOyBpKyspCj4gIAkJCUk5MTVfV1JJVEUoUFJF Q19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8xMCgmbHV0W2ldKSk7Cj4gLQo+IC0JCS8qIFByb2dy YW0gdGhlIG1heCByZWdpc3RlciB0byBjbGFtcCB2YWx1ZXMgPiAxLjAuICovCj4gLQkJaSA9IGx1 dF9zaXplIC0gMTsKPiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0dDX01BWChwaXBlLCAwKSwKPiAt CQkJICAgZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1dFtpXS5yZWQsIDE2KSk7Cj4gLQkJSTkxNV9X UklURShQUkVDX1BBTF9HQ19NQVgocGlwZSwgMSksCj4gLQkJCSAgIGRybV9jb2xvcl9sdXRfZXh0 cmFjdChsdXRbaV0uZ3JlZW4sIDE2KSk7Cj4gLQkJSTkxNV9XUklURShQUkVDX1BBTF9HQ19NQVgo cGlwZSwgMiksCj4gLQkJCSAgIGRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbaV0uYmx1ZSwgMTYp KTsKPiAtCX0gZWxzZSB7Cj4gLQkJZm9yIChpID0gMDsgaSA8IGx1dF9zaXplOyBpKyspIHsKPiAt CQkJdTMyIHYgPSAoaSAqICgoMSA8PCAxMCkgLSAxKSkgLyAobHV0X3NpemUgLSAxKTsKPiAtCj4g LQkJCUk5MTVfV1JJVEUoUFJFQ19QQUxfREFUQShwaXBlKSwKPiAtCQkJCSAgICh2IDw8IDIwKSB8 ICh2IDw8IDEwKSB8IHYpOwo+IC0JCX0KPiAtCj4gLQkJSTkxNV9XUklURShQUkVDX1BBTF9HQ19N QVgocGlwZSwgMCksICgxIDw8IDE2KSAtIDEpOwo+IC0JCUk5MTVfV1JJVEUoUFJFQ19QQUxfR0Nf TUFYKHBpcGUsIDEpLCAoMSA8PCAxNikgLSAxKTsKPiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0dD X01BWChwaXBlLCAyKSwgKDEgPDwgMTYpIC0gMSk7Cj4gIAl9Cj4gIAo+ICAJLyoKPiBAQCAtNTQx LDE4ICs1MDEsNDMgQEAgc3RhdGljIHZvaWQgYmR3X2xvYWRfZ2FtbWFfbHV0KGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCB1MzIgb2YKPiAgCUk5MTVfV1JJVEUoUFJF Q19QQUxfSU5ERVgocGlwZSksIDApOwo+ICB9Cj4gIAo+IC0vKiBMb2FkcyB0aGUgcGFsZXR0ZS9n YW1tYSB1bml0IGZvciB0aGUgQ1JUQyBvbiBCcm9hZHdlbGwrLiAqLwo+IC1zdGF0aWMgdm9pZCBi cm9hZHdlbGxfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ICtzdGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRfMTBfbWF4KHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAo+ICsJCQkJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQo+ICB7 Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICsJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9 IGJsb2ItPmRhdGE7Cj4gKwlpbnQgaSA9IGRybV9jb2xvcl9sdXRfc2l6ZShibG9iKSAtIDE7Cj4g KwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAo+IC0JaWYgKGNydGNfc3RhdGVfaXNf bGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKSB7Cj4gKwkvKiBQcm9ncmFtIHRoZSBtYXggcmVnaXN0 ZXIgdG8gY2xhbXAgdmFsdWVzID4gMS4wLiAqLwo+ICsJSTkxNV9XUklURShQUkVDX1BBTF9HQ19N QVgocGlwZSwgMCksCj4gKwkJICAgZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1dFtpXS5yZWQsIDE2 KSk7Cj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFMX0dDX01BWChwaXBlLCAxKSwKPiArCQkgICBkcm1f Y29sb3JfbHV0X2V4dHJhY3QobHV0W2ldLmdyZWVuLCAxNikpOwo+ICsJSTkxNV9XUklURShQUkVD X1BBTF9HQ19NQVgocGlwZSwgMiksCj4gKwkJICAgZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1dFtp XS5ibHVlLCAxNikpOwoKQXJlIHRoZXNlIHRoZSByaWdodCByZWdpc3RlcnMgdG8gdXNlPyAgVGhl ICJQaXBlIFBhbGV0dGUgYW5kIEdhbW1hIiBwYWdlCm9mIHRoZSBic3BlYyBpbmRpY2F0ZXMgd2Ug c2hvdWxkIGJlIHVzaW5nIFBBTF9FWFRfR0NfTUFYIChlLmcuLCAweDRBNDIwCmluc3RlYWQgb2Yg MHg0QTQxMCkgZm9yIGJvdGggdGhlIDEwLWJpdCBhbmQgc3BsaXQgZ2FtbWEgbW9kZXMuICBJIG9u bHkKc2VlIFBBTF9HQ19NQVggbWVudGlvbmVkIGZvciB0aGUgaW50ZXJwb2xhdGVkIGdhbW1hIG1v ZGUuCgoKTWF0dAoKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgYmR3X2xvYWRfbHV0cyhjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiArewo+ICsJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlj b25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJh c2UuZ2FtbWFfbHV0Owo+ICsJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1h X2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQ7Cj4gKwo+ICsJaWYgKGNydGNfc3Rh dGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpIHsKPiAgCQlpOXh4X2xvYWRf bHV0cyhjcnRjX3N0YXRlKTsKPiArCX0gZWxzZSBpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9 PSBHQU1NQV9NT0RFX01PREVfU1BMSVQpIHsKPiArCQliZHdfbG9hZF9sdXRfMTAoY3J0YywgZGVn YW1tYV9sdXQsIFBBTF9QUkVDX1NQTElUX01PREUgfAo+ICsJCQkJUEFMX1BSRUNfSU5ERVhfVkFM VUUoMCksIGZhbHNlKTsKPiArCQliZHdfbG9hZF9sdXRfMTAoY3J0YywgZ2FtbWFfbHV0LCBQQUxf UFJFQ19TUExJVF9NT0RFIHwKPiArCQkJCVBBTF9QUkVDX0lOREVYX1ZBTFVFKDUxMiksICBmYWxz ZSk7Cj4gKwkJYmR3X2xvYWRfbHV0XzEwX21heChjcnRjLCBnYW1tYV9sdXQpOwo+ICAJfSBlbHNl IHsKPiAtCQliZHdfbG9hZF9kZWdhbW1hX2x1dChjcnRjX3N0YXRlKTsKPiAtCQliZHdfbG9hZF9n YW1tYV9sdXQoY3J0Y19zdGF0ZSwKPiAtCQkJCSAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5jb2xv ci5kZWdhbW1hX2x1dF9zaXplKTsKPiArCQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig KmJsb2IgPSBnYW1tYV9sdXQgPzogZGVnYW1tYV9sdXQ7Cj4gKwo+ICsJCWJkd19sb2FkX2x1dF8x MChjcnRjLCBibG9iLAo+ICsJCQkJUEFMX1BSRUNfSU5ERVhfVkFMVUUoMCksIHRydWUpOwo+ICsJ CWJkd19sb2FkX2x1dF8xMF9tYXgoY3J0YywgYmxvYik7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTYy NCw2ICs2MDksOSBAQCBzdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dF9saW5lYXIoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdAo+ICAKPiAgc3RhdGljIHZvaWQg Z2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK PiAgewo+ICsJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRj X3N0YXRlLT5iYXNlLmdhbW1hX2x1dDsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsKPiAgCS8qCj4gIAkgKiBPbiBH TEsrIGJvdGggcGlwZSBDU0MgYW5kIGRlZ2FtbWEgTFVUIGFyZSBjb250cm9sbGVkCj4gIAkgKiBi eSBjc2NfZW5hYmxlLiBIZW5jZSBmb3IgdGhlIGNhc2VzIHdoZXJlIHRoZSBDU0MgaXMKPiBAQCAt NjM3LDIyICs2MjUsMjggQEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCWVsc2UKPiAgCQlnbGtfbG9hZF9kZWdh bW1hX2x1dF9saW5lYXIoY3J0Y19zdGF0ZSk7Cj4gIAo+IC0JaWYgKGNydGNfc3RhdGVfaXNfbGVn YWN5X2dhbW1hKGNydGNfc3RhdGUpKQo+ICsJaWYgKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0g R0FNTUFfTU9ERV9NT0RFXzhCSVQpIHsKPiAgCQlpOXh4X2xvYWRfbHV0cyhjcnRjX3N0YXRlKTsK PiAtCWVsc2UKPiAtCQliZHdfbG9hZF9nYW1tYV9sdXQoY3J0Y19zdGF0ZSwgMCk7Cj4gKwl9IGVs c2Ugewo+ICsJCWJkd19sb2FkX2x1dF8xMChjcnRjLCBnYW1tYV9sdXQsIFBBTF9QUkVDX0lOREVY X1ZBTFVFKDApLCBmYWxzZSk7Cj4gKwkJYmR3X2xvYWRfbHV0XzEwX21heChjcnRjLCBnYW1tYV9s dXQpOwo+ICsJfQo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpY2xfbG9hZF9sdXRzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gKwljb25zdCBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0 Owo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7Cj4gKwo+ICAJaWYgKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQpCj4g IAkJZ2xrX2xvYWRfZGVnYW1tYV9sdXQoY3J0Y19zdGF0ZSk7Cj4gIAo+IC0JaWYgKGNydGNfc3Rh dGVfaXNfbGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKQo+ICsJaWYgKGNydGNfc3RhdGUtPmdhbW1h X21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpIHsKPiAgCQlpOXh4X2xvYWRfbHV0cyhjcnRj X3N0YXRlKTsKPiAtCWVsc2UKPiAtCQkvKiBUb0RvOiBBZGQgc3VwcG9ydCBmb3IgbXVsdGkgc2Vn bWVudCBnYW1tYSBMVVQgKi8KPiAtCQliZHdfbG9hZF9nYW1tYV9sdXQoY3J0Y19zdGF0ZSwgMCk7 Cj4gKwl9IGVsc2Ugewo+ICsJCWJkd19sb2FkX2x1dF8xMChjcnRjLCBnYW1tYV9sdXQsIFBBTF9Q UkVDX0lOREVYX1ZBTFVFKDApLCBmYWxzZSk7Cj4gKwkJYmR3X2xvYWRfbHV0XzEwX21heChjcnRj LCBnYW1tYV9sdXQpOwo+ICsJfQo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2xv YWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiBAQCAt OTM3LDggKzkzMSwyNSBAQCBzdGF0aWMgdTMyIGJkd19nYW1tYV9tb2RlKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJaWYgKCFjcnRjX3N0YXRlLT5nYW1tYV9l bmFibGUgfHwKPiAgCSAgICBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkK PiAgCQlyZXR1cm4gR0FNTUFfTU9ERV9NT0RFXzhCSVQ7Cj4gLQllbHNlCj4gKwllbHNlIGlmIChj cnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCAmJgo+ICsJCSBjcnRjX3N0YXRlLT5iYXNlLmRlZ2Ft bWFfbHV0KQo+ICAJCXJldHVybiBHQU1NQV9NT0RFX01PREVfU1BMSVQ7Cj4gKwllbHNlCj4gKwkJ cmV0dXJuIEdBTU1BX01PREVfTU9ERV8xMEJJVDsKPiArfQo+ICsKPiArc3RhdGljIHUzMiBiZHdf Y3NjX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sK PiArCS8qCj4gKwkgKiBDU0MgY29tZXMgYWZ0ZXIgdGhlIExVVCBpbiBkZWdhbW1hLCBSR0ItPllD YkNyLAo+ICsJICogYW5kIFJHQiBmdWxsLT5saW1pdGVkIHJhbmdlIG1vZGUuCj4gKwkgKi8KPiAr CWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0IHx8Cj4gKwkgICAgY3J0Y19zdGF0ZS0+ b3V0cHV0X2Zvcm1hdCAhPSBJTlRFTF9PVVRQVVRfRk9STUFUX1JHQiB8fAo+ICsJICAgIGNydGNf c3RhdGUtPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJcmV0dXJu IENTQ19QT1NJVElPTl9CRUZPUkVfR0FNTUE7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgYmR3X2Nv bG9yX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+IEBAIC05NjAs NyArOTcxLDcgQEAgc3RhdGljIGludCBiZHdfY29sb3JfY2hlY2soc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gIAo+ICAJY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9IGJkd19n YW1tYV9tb2RlKGNydGNfc3RhdGUpOwo+ICAKPiAtCWNydGNfc3RhdGUtPmNzY19tb2RlID0gMDsK PiArCWNydGNfc3RhdGUtPmNzY19tb2RlID0gYmR3X2NzY19tb2RlKGNydGNfc3RhdGUpOwo+ICAK PiAgCXJldCA9IGludGVsX2NvbG9yX2FkZF9hZmZlY3RlZF9wbGFuZXMoY3J0Y19zdGF0ZSk7Cj4g IAlpZiAocmV0KQo+IEBAIC0xMDk0LDcgKzExMDUsNyBAQCB2b2lkIGludGVsX2NvbG9yX2luaXQo c3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAkJZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShkZXZf cHJpdikgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gIAkJCWRldl9wcml2LT5kaXNwbGF5 LmxvYWRfbHV0cyA9IGdsa19sb2FkX2x1dHM7Cj4gIAkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA5IHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gLQkJCWRldl9wcml2LT5kaXNw bGF5LmxvYWRfbHV0cyA9IGJyb2Fkd2VsbF9sb2FkX2x1dHM7Cj4gKwkJCWRldl9wcml2LT5kaXNw bGF5LmxvYWRfbHV0cyA9IGJkd19sb2FkX2x1dHM7Cj4gIAkJZWxzZQo+ICAJCQlkZXZfcHJpdi0+ ZGlzcGxheS5sb2FkX2x1dHMgPSBpOXh4X2xvYWRfbHV0czsKPiAgCX0KPiAtLSAKPiAyLjE5LjIK PiAKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZv cm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5 NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=