From mboxrd@z Thu Jan 1 00:00:00 1970 From: Animesh Manna Subject: Re: [PATCH v4 08/10] drm/i915/dsb: Enable gamma lut programming using DSB. Date: Tue, 3 Sep 2019 16:35:38 +0530 Message-ID: References: <20190830124533.26573-1-animesh.manna@intel.com> <20190830124533.26573-9-animesh.manna@intel.com> <878sra6ap4.fsf@intel.com> <87zhjl4xan.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 40A9289362 for ; Tue, 3 Sep 2019 11:05:49 +0000 (UTC) In-Reply-To: <87zhjl4xan.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGksCgoKT24gOS8zLzIwMTkgMTozOCBQTSwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4gT24gRnJpLCAz MCBBdWcgMjAxOSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4gd3JvdGU6Cj4+ IE9uIEZyaSwgMzAgQXVnIDIwMTksIEFuaW1lc2ggTWFubmEgPGFuaW1lc2gubWFubmFAaW50ZWwu Y29tPiB3cm90ZToKPj4+IEdhbW1hIGx1dCBwcm9ncmFtbWluZyBjYW4gYmUgcHJvZ3JhbW1lZCB1 c2luZyBEU0IKPj4+IHdoZXJlIGJ1bGsgcmVnaXN0ZXIgcHJvZ3JhbW1pbmcgY2FuIGJlIGRvbmUg dXNpbmcgaW5kZXhlZAo+Pj4gcmVnaXN0ZXIgd3JpdGUgd2hpY2ggdGFrZXMgbnVtYmVyIG9mIGRh dGEgYW5kIHRoZSBtbWlvIG9mZnNldAo+Pj4gdG8gYmUgd3JpdHRlbi4KPj4+Cj4+PiB2MTogSW5p dGlhbCB2ZXJzaW9uLgo+Pj4gdjI6IERpcmVjdGx5IGNhbGwgZHNiLWFwaSBhdCBjYWxsc2l0ZXMu IChKYW5pKQo+Pj4KPj4+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ Pj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPj4+IFNpZ25lZC1v ZmYtYnk6IEFuaW1lc2ggTWFubmEgPGFuaW1lc2gubWFubmFAaW50ZWwuY29tPgo+Pj4gLS0tCj4+ PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYyB8IDY0ICsrKysr KysrKysrKysrLS0tLS0tLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgICAgIHwgIDIgKwo+Pj4gICAyIGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyks IDIzIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2NvbG9yLmMKPj4+IGluZGV4IDcxYTAyMDE0MzdhOS4uZTQwOTBkOGU0NTQ3IDEwMDY0NAo+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jCj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPj4+IEBAIC01 ODksMzQgKzU4OSwzOCBAQCBzdGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRfMTAoc3RydWN0IGludGVs X2NydGMgKmNydGMsCj4+PiAgIAljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gYmxv Yi0+ZGF0YTsKPj4+ICAgCWludCBpLCBsdXRfc2l6ZSA9IGRybV9jb2xvcl9sdXRfc2l6ZShibG9i KTsKPj4+ICAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPj4+ICsJc3RydWN0IGludGVs X2RzYiAqZHNiID0gZGV2X3ByaXYtPmRzYjsKPj4gTm8uIERvbid0IHB1dCBkc2IgaW4gZGV2X3By aXYuIFlvdSBoYXZlIDEyIERTQiBlbmdpbmVzLCAzIHBlciBwaXBlLiBZb3UKPj4gaGF2ZSBpbnRl bF9jcnRjIGZvciB0aGF0Lgo+Pgo+PiBXYXMgdGhpcyBub3QgY2xlYXIgZnJvbSBteSBwcmV2aW91 cyByZXZpZXc/Cj4+Cj4+IFlvdSBoYXZlIHRvbnMgb2YgZnVuY3Rpb25zIGhlcmUgdGhhdCB3aWxs IG5ldmVyIGhhdmUgYSBEU0IgZW5naW5lLCBpdAo+PiBtYWtlcyBubyBzZW5zZSB0byBjb252ZXJ0 IGFsbCBvZiB0aGVtIHRvIHVzZSB0aGUgRFNCLgo+IFRvIGNsYXJpZnk6Cj4KPiBBbGwgZnVuY3Rp b25zIHRoYXQgY291bGQgYW5kIHNob3VsZCB1c2UgdGhlIERTQiwgbmVlZCB0byBiZSBjb252ZXJ0 ZWQgdG8KPiB1c2UgaW50ZWxfZHNiX3dyaXRlIGFuZCBmcmllbmRzLiBUaGF0IG1lYW5zIHJlcGxh Y2luZyBJOTE1X1dSSVRFIHdpdGgKPiB0aGUgcmVsZXZhbnQgaW50ZWxfZHNiX3dyaXRlIGNhbGxz LiAqTk9UKiBoYXZpbmcgaWYgKGRzYikKPiBpbnRlbF9kc2Jfd3JpdGUgZWxzZSBJOTE1X1dSSVRF LiBBcyBhZ3JlZWQgYSBsb25nIHRpbWUgYWdvLAo+IGludGVsX2RzYl93cml0ZSBzaG91bGQgaGFu ZGxlIHRoZSBub24tRFNCIGNhc2VzIGJ5IGZhbGxpbmcgYmFjayB0bwo+IHJlZ3VsYXIgaW50ZWxf dW5jb3JlX3dyaXRlLgo+Cj4gTXkgcG9pbnQgaXMsIGlmIHRoZXJlIGFyZSBmdW5jdGlvbnMgdGhh dCB3aWxsIG5ldmVyIGJlIGNhbGxlZCBvbiBhCj4gcGxhdGZvcm0gdGhhdCBoYXMgRFNCLCB0aGVy ZSdzIG5vIHBvaW50IGluIGNvbnZlcnRpbmcgdGhlbSBvdmVyIHRvIHVzZQo+IERTQi4gT2J2aW91 c2x5IHRoZXJlIGFyZSBlLmcuIGxlZ2FjeSBnYW1tYSBmdW5jdGlvbnMgdGhhdCBhbHNvIGdldAo+ IGNhbGxlZCBvbiBuZXdlciBwbGF0Zm9ybXMuCj4KPiBNYXliZSBJIHdhcyBoYXN0eSBpbiBteSBh c3Nlc21lbnQsIG5lZWQgdG8gZG91YmxlIGNoZWNrIGlmIGFsbCBvZiB0aGVzZQo+IHBhdGhzIGFy ZSByZWFjaGFibGUgZnJvbSBEU0IgcGxhdGZvcm1zLgoKQ3VycmVudGx5IG11bHRpLXNlZ21lbnRl ZCBnYW1tYSAoMTIgYml0IGdhbW1hKSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIAppY2wrIHBs YXRmb3JtLgpXaWxsIGl0IGJlIGZpbmUgdG8gZW5hYmxlIG9ubHkgMTIgYml0IGdhbW1hIHRocm91 Z2ggRFNCIGFuZCA4LWJpdC8xMC1iaXQgCmNhbiBiZSBlbmFibGVkIGxhdGVyIGJhc2VkIG9uIG5l ZWQ/CgpSZWdhcmRzLApBbmltZXNoCgo+Cj4gQlIsCj4gSmFuaS4KPgo+Cj4+PiAgIAo+Pj4gLQlJ OTE1X1dSSVRFKFBSRUNfUEFMX0lOREVYKHBpcGUpLCBwcmVjX2luZGV4IHwKPj4+IC0JCSAgIFBB TF9QUkVDX0FVVE9fSU5DUkVNRU5UKTsKPj4+ICsJaW50ZWxfZHNiX3JlZ193cml0ZShkc2IsIFBS RUNfUEFMX0lOREVYKHBpcGUpLAo+Pj4gKwkJCSAgICBwcmVjX2luZGV4IHwgUEFMX1BSRUNfQVVU T19JTkNSRU1FTlQpOwo+Pj4gICAKPj4+ICAgCWZvciAoaSA9IDA7IGkgPCBod19sdXRfc2l6ZTsg aSsrKSB7Cj4+PiAgIAkJLyogV2UgZGlzY2FyZCBoYWxmIHRoZSB1c2VyIGVudHJpZXMgaW4gc3Bs aXQgZ2FtbWEgbW9kZSAqLwo+Pj4gICAJCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICplbnRy eSA9Cj4+PiAgIAkJCSZsdXRbaSAqIChsdXRfc2l6ZSAtIDEpIC8gKGh3X2x1dF9zaXplIC0gMSld Owo+Pj4gICAKPj4+IC0JCUk5MTVfV1JJVEUoUFJFQ19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8x MChlbnRyeSkpOwo+Pj4gKwkJaW50ZWxfZHNiX2luZGV4ZWRfcmVnX3dyaXRlKGRzYiwgUFJFQ19Q QUxfREFUQShwaXBlKSwKPj4+ICsJCQkJCSAgICBpbGtfbHV0XzEwKGVudHJ5KSk7Cj4+PiAgIAl9 Cj4+PiAgIAo+Pj4gICAJLyoKPj4+ICAgCSAqIFJlc2V0IHRoZSBpbmRleCwgb3RoZXJ3aXNlIGl0 IHByZXZlbnRzIHRoZSBsZWdhY3kgcGFsZXR0ZSB0byBiZQo+Pj4gICAJICogd3JpdHRlbiBwcm9w ZXJseS4KPj4+ICAgCSAqLwo+Pj4gLQlJOTE1X1dSSVRFKFBSRUNfUEFMX0lOREVYKHBpcGUpLCAw KTsKPj4+ICsJaW50ZWxfZHNiX3JlZ193cml0ZShkc2IsIFBSRUNfUEFMX0lOREVYKHBpcGUpLCAw KTsKPj4+ICAgfQo+Pj4gICAKPj4+ICAgc3RhdGljIHZvaWQgaXZiX2xvYWRfbHV0X2V4dF9tYXgo c3RydWN0IGludGVsX2NydGMgKmNydGMpCj4+PiAgIHsKPj4+ICAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+Pj4gKwlzdHJ1Y3Qg aW50ZWxfZHNiICpkc2IgPSBkZXZfcHJpdi0+ZHNiOwo+Pj4gICAJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwo+Pj4gICAKPj4+ICAgCS8qIFByb2dyYW0gdGhlIG1heCByZWdpc3RlciB0byBj bGFtcCB2YWx1ZXMgPiAxLjAuICovCj4+PiAtCUk5MTVfV1JJVEUoUFJFQ19QQUxfRVhUX0dDX01B WChwaXBlLCAwKSwgMSA8PCAxNik7Cj4+PiAtCUk5MTVfV1JJVEUoUFJFQ19QQUxfRVhUX0dDX01B WChwaXBlLCAxKSwgMSA8PCAxNik7Cj4+PiAtCUk5MTVfV1JJVEUoUFJFQ19QQUxfRVhUX0dDX01B WChwaXBlLCAyKSwgMSA8PCAxNik7Cj4+PiArCWludGVsX2RzYl9yZWdfd3JpdGUoZHNiLCBQUkVD X1BBTF9FWFRfR0NfTUFYKHBpcGUsIDApLCAxIDw8IDE2KTsKPj4+ICsJaW50ZWxfZHNiX3JlZ193 cml0ZShkc2IsIFBSRUNfUEFMX0VYVF9HQ19NQVgocGlwZSwgMSksIDEgPDwgMTYpOwo+Pj4gKwlp bnRlbF9kc2JfcmVnX3dyaXRlKGRzYiwgUFJFQ19QQUxfRVhUX0dDX01BWChwaXBlLCAyKSwgMSA8 PCAxNik7Cj4+PiArCj4+PiAgIAo+Pj4gICAJLyoKPj4+ICAgCSAqIFByb2dyYW0gdGhlIGdjIG1h eCAyIHJlZ2lzdGVyIHRvIGNsYW1wIHZhbHVlcyA+IDEuMC4KPj4+IEBAIC02MjQsOSArNjI4LDEy IEBAIHN0YXRpYyB2b2lkIGl2Yl9sb2FkX2x1dF9leHRfbWF4KHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQo+Pj4gICAJICogZnJvbSAzLjAgdG8gNy4wCj4+PiAgIAkgKi8KPj4+ICAgCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDEwIHx8IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4+PiAt CQlJOTE1X1dSSVRFKFBSRUNfUEFMX0VYVDJfR0NfTUFYKHBpcGUsIDApLCAxIDw8IDE2KTsKPj4+ IC0JCUk5MTVfV1JJVEUoUFJFQ19QQUxfRVhUMl9HQ19NQVgocGlwZSwgMSksIDEgPDwgMTYpOwo+ Pj4gLQkJSTkxNV9XUklURShQUkVDX1BBTF9FWFQyX0dDX01BWChwaXBlLCAyKSwgMSA8PCAxNik7 Cj4+PiArCQlpbnRlbF9kc2JfcmVnX3dyaXRlKGRzYiwgUFJFQ19QQUxfRVhUMl9HQ19NQVgocGlw ZSwgMCksCj4+PiArCQkJCSAgICAxIDw8IDE2KTsKPj4+ICsJCWludGVsX2RzYl9yZWdfd3JpdGUo ZHNiLCBQUkVDX1BBTF9FWFQyX0dDX01BWChwaXBlLCAxKSwKPj4+ICsJCQkJICAgIDEgPDwgMTYp Owo+Pj4gKwkJaW50ZWxfZHNiX3JlZ193cml0ZShkc2IsIFBSRUNfUEFMX0VYVDJfR0NfTUFYKHBp cGUsIDIpLAo+Pj4gKwkJCQkgICAgMSA8PCAxNik7Cj4+PiAgIAl9Cj4+PiAgIH0KPj4+ICAgCj4+ PiBAQCAtNzg4LDEyICs3OTUsMTMgQEAgaWNsX2xvYWRfZ2NtYXgoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+PiAgIHsKPj4+ICAgCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+Pj4gICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 Cj4+PiArCXN0cnVjdCBpbnRlbF9kc2IgKmRzYiA9IGRldl9wcml2LT5kc2I7Cj4+PiAgIAllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4+PiAgIAo+Pj4gICAJLyogRml4bWU6IExVVCBlbnRy aWVzIGFyZSAxNiBiaXQgb25seSwgc28gd2UgY2FuIHByb2cgMHhGRkZGIG1heCAqLwo+Pj4gLQlJ OTE1X1dSSVRFKFBSRUNfUEFMX0dDX01BWChwaXBlLCAwKSwgY29sb3ItPnJlZCk7Cj4+PiAtCUk5 MTVfV1JJVEUoUFJFQ19QQUxfR0NfTUFYKHBpcGUsIDEpLCBjb2xvci0+Z3JlZW4pOwo+Pj4gLQlJ OTE1X1dSSVRFKFBSRUNfUEFMX0dDX01BWChwaXBlLCAyKSwgY29sb3ItPmJsdWUpOwo+Pj4gKwlp bnRlbF9kc2JfcmVnX3dyaXRlKGRzYiwgUFJFQ19QQUxfR0NfTUFYKHBpcGUsIDApLCBjb2xvci0+ cmVkKTsKPj4+ICsJaW50ZWxfZHNiX3JlZ193cml0ZShkc2IsIFBSRUNfUEFMX0dDX01BWChwaXBl LCAxKSwgY29sb3ItPmdyZWVuKTsKPj4+ICsJaW50ZWxfZHNiX3JlZ193cml0ZShkc2IsIFBSRUNf UEFMX0dDX01BWChwaXBlLCAyKSwgY29sb3ItPmJsdWUpOwo+Pj4gICB9Cj4+PiAgIAo+Pj4gICBz dGF0aWMgdm9pZAo+Pj4gQEAgLTgwMyw2ICs4MTEsNyBAQCBpY2xfcHJvZ3JhbV9nYW1tYV9zdXBl cmZpbmVfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK Pj4+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwo+Pj4gICAJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0g Y3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Cj4+PiAgIAljb25zdCBzdHJ1Y3QgZHJtX2NvbG9y X2x1dCAqbHV0ID0gYmxvYi0+ZGF0YTsKPj4+ICsJc3RydWN0IGludGVsX2RzYiAqZHNiID0gZGV2 X3ByaXYtPmRzYjsKPj4+ICAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPj4+ICAgCXUz MiBpOwo+Pj4gICAKPj4+IEBAIC04MTMsMTUgKzgyMiwxNiBAQCBpY2xfcHJvZ3JhbV9nYW1tYV9z dXBlcmZpbmVfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPj4+ICAgCSAqIFN1cGVyZmluZSBzZWdtZW50IGhhcyA5IGVudHJpZXMsIGNvcnJlc3BvbmRp bmcgdG8gdmFsdWVzCj4+PiAgIAkgKiAwLCAxLyg4ICogMTI4ICogMjU2KSwgMi8oOCAqIDEyOCAq IDI1NikgLi4uLiA4Lyg4ICogMTI4ICogMjU2KS4KPj4+ICAgCSAqLwo+Pj4gLQlJOTE1X1dSSVRF KFBSRUNfUEFMX01VTFRJX1NFR19JTkRFWChwaXBlKSwgUEFMX1BSRUNfQVVUT19JTkNSRU1FTlQp Owo+Pj4gKwlpbnRlbF9kc2JfcmVnX3dyaXRlKGRzYiwgUFJFQ19QQUxfTVVMVElfU0VHX0lOREVY KHBpcGUpLAo+Pj4gKwkJCSAgICBQQUxfUFJFQ19BVVRPX0lOQ1JFTUVOVCk7Cj4+PiAgIAo+Pj4g ICAJZm9yIChpID0gMDsgaSA8IDk7IGkrKykgewo+Pj4gICAJCWNvbnN0IHN0cnVjdCBkcm1fY29s b3JfbHV0ICplbnRyeSA9ICZsdXRbaV07Cj4+PiAgIAo+Pj4gLQkJSTkxNV9XUklURShQUkVDX1BB TF9NVUxUSV9TRUdfREFUQShwaXBlKSwKPj4+IC0JCQkgICBpbGtfbHV0XzEycDRfbGR3KGVudHJ5 KSk7Cj4+PiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX01VTFRJX1NFR19EQVRBKHBpcGUpLAo+Pj4g LQkJCSAgIGlsa19sdXRfMTJwNF91ZHcoZW50cnkpKTsKPj4+ICsJCWludGVsX2RzYl9pbmRleGVk X3JlZ193cml0ZShkc2IsIFBSRUNfUEFMX01VTFRJX1NFR19EQVRBKHBpcGUpLAo+Pj4gKwkJCQkJ ICAgIGlsa19sdXRfMTJwNF9sZHcoZW50cnkpKTsKPj4+ICsJCWludGVsX2RzYl9pbmRleGVkX3Jl Z193cml0ZShkc2IsIFBSRUNfUEFMX01VTFRJX1NFR19EQVRBKHBpcGUpLAo+Pj4gKwkJCQkJICAg IGlsa19sdXRfMTJwNF91ZHcoZW50cnkpKTsKPj4+ICAgCX0KPj4+ICAgfQo+Pj4gICAKPj4+IEBA IC04MzMsNiArODQzLDcgQEAgaWNsX3Byb2dyYW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4+ICAgCWNvbnN0IHN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqYmxvYiA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0Owo+Pj4g ICAJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IGJsb2ItPmRhdGE7Cj4+PiAgIAlj b25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqZW50cnk7Cj4+PiArCXN0cnVjdCBpbnRlbF9kc2Ig KmRzYiA9IGRldl9wcml2LT5kc2I7Cj4+PiAgIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7 Cj4+PiAgIAl1MzIgaTsKPj4+ICAgCj4+PiBAQCAtODQ3LDExICs4NTgsMTMgQEAgaWNsX3Byb2dy YW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPj4+ICAgCSAqIFBBTF9QUkVDX0lOREVYWzBdIGFuZCBQQUxfUFJFQ19JTkRFWFsx XSBtYXAgdG8gc2VnMlsxXSwKPj4+ICAgCSAqIHdpdGggc2VnMlswXSBiZWluZyB1bnVzZWQgYnkg dGhlIGhhcmR3YXJlLgo+Pj4gICAJICovCj4+PiAtCUk5MTVfV1JJVEUoUFJFQ19QQUxfSU5ERVgo cGlwZSksIFBBTF9QUkVDX0FVVE9fSU5DUkVNRU5UKTsKPj4+ICsJaW50ZWxfZHNiX3JlZ193cml0 ZShkc2IsIFBSRUNfUEFMX0lOREVYKHBpcGUpLCBQQUxfUFJFQ19BVVRPX0lOQ1JFTUVOVCk7Cj4+ PiAgIAlmb3IgKGkgPSAxOyBpIDwgMjU3OyBpKyspIHsKPj4+ICAgCQllbnRyeSA9ICZsdXRbaSAq IDhdOwo+Pj4gLQkJSTkxNV9XUklURShQUkVDX1BBTF9EQVRBKHBpcGUpLCBpbGtfbHV0XzEycDRf bGR3KGVudHJ5KSk7Cj4+PiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlwZSksIGlsa19s dXRfMTJwNF91ZHcoZW50cnkpKTsKPj4+ICsJCWludGVsX2RzYl9pbmRleGVkX3JlZ193cml0ZShk c2IsIFBSRUNfUEFMX0RBVEEocGlwZSksCj4+PiArCQkJCQkgICAgaWxrX2x1dF8xMnA0X2xkdyhl bnRyeSkpOwo+Pj4gKwkJaW50ZWxfZHNiX2luZGV4ZWRfcmVnX3dyaXRlKGRzYiwgUFJFQ19QQUxf REFUQShwaXBlKSwKPj4+ICsJCQkJCSAgICBpbGtfbHV0XzEycDRfdWR3KGVudHJ5KSk7Cj4+PiAg IAl9Cj4+PiAgIAo+Pj4gICAJLyoKPj4+IEBAIC04NjgsOCArODgxLDEwIEBAIGljbF9wcm9ncmFt X2dhbW1hX211bHRpX3NlZ21lbnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCj4+PiAgIAkgKi8KPj4+ICAgCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewo+Pj4g ICAJCWVudHJ5ID0gJmx1dFtpICogOCAqIDEyOF07Cj4+PiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFM X0RBVEEocGlwZSksIGlsa19sdXRfMTJwNF9sZHcoZW50cnkpKTsKPj4+IC0JCUk5MTVfV1JJVEUo UFJFQ19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8xMnA0X3VkdyhlbnRyeSkpOwo+Pj4gKwkJaW50 ZWxfZHNiX2luZGV4ZWRfcmVnX3dyaXRlKGRzYiwgUFJFQ19QQUxfREFUQShwaXBlKSwKPj4+ICsJ CQkJCSAgICBpbGtfbHV0XzEycDRfbGR3KGVudHJ5KSk7Cj4+PiArCQlpbnRlbF9kc2JfaW5kZXhl ZF9yZWdfd3JpdGUoZHNiLCBQUkVDX1BBTF9EQVRBKHBpcGUpLAo+Pj4gKwkJCQkJICAgIGlsa19s dXRfMTJwNF91ZHcoZW50cnkpKTsKPj4+ICAgCX0KPj4+ICAgCj4+PiAgIAkvKiBUaGUgbGFzdCBl bnRyeSBpbiB0aGUgTFVUIGlzIHRvIGJlIHByb2dyYW1tZWQgaW4gR0NNQVggKi8KPj4+IEBAIC05 ODAsNyArOTk1LDEwIEBAIHZvaWQgaW50ZWxfY29sb3JfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+Pj4gICB7Cj4+PiAgIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2 KTsKPj4+ICAgCj4+PiArCWRldl9wcml2LT5kc2IgPSBpbnRlbF9kc2JfZ2V0KHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKSk7Cj4+IE5vLCBkb24ndCBkbyB0aGlzLiBEb24ndCBz dG9yZSBjcnRjIHNwZWNpZmljIGluZm8gaW4gYSBkZXZpY2UgZ2xvYmFsCj4+IHN0cnVjdHVyZS4K Pj4KPj4+ICAgCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyhjcnRjX3N0YXRlKTsKPj4+ICsJ aW50ZWxfZHNiX2NvbW1pdChkZXZfcHJpdi0+ZHNiKTsKPj4+ICsJaW50ZWxfZHNiX3B1dChkZXZf cHJpdi0+ZHNiKTsKPj4gUGxlYXNlIGxvY2FsaXplIHRoZSB1c2Ugb2YgRFNCIHdoZXJlIG5lZWRl ZC4gTW92ZSB0aGUgZ2V0cyBhbmQgcHV0cwo+PiB3aXRoaW4gdGhlIHJlbGV2YW50IHBsYXRmb3Jt IHNwZWNpZmljIC0+bG9hZF9sdXRzIGhvb2tzLgo+Pgo+Pj4gICB9Cj4+PiAgIAo+Pj4gICB2b2lk IGludGVsX2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gaW5kZXggN2FhMTFlM2RkNDEzLi45 OGY1NDZjNGFkNDkgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+PiBAQCAtMTc2 MCw2ICsxNzYwLDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+Pj4gICAJLyogTXV0ZXgg dG8gcHJvdGVjdCB0aGUgYWJvdmUgaGRjcCBjb21wb25lbnQgcmVsYXRlZCB2YWx1ZXMuICovCj4+ PiAgIAlzdHJ1Y3QgbXV0ZXggaGRjcF9jb21wX211dGV4Owo+Pj4gICAKPj4+ICsJc3RydWN0IGlu dGVsX2RzYiAqZHNiOwo+Pj4gKwo+Pj4gICAJLyoKPj4+ICAgCSAqIE5PVEU6IFRoaXMgaXMgdGhl IGRyaTEvdW1zIGR1bmdlb24sIGRvbid0IGFkZCBzdHVmZiBoZXJlLiBZb3VyIHBhdGNoCj4+PiAg IAkgKiB3aWxsIGJlIHJlamVjdGVkLiBJbnN0ZWFkIGxvb2sgZm9yIGEgYmV0dGVyIHBsYWNlLgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4