From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v4 08/10] drm/i915/dsb: Enable gamma lut programming using DSB. Date: Tue, 03 Sep 2019 14:14:06 +0300 Message-ID: <87tv9t4oox.fsf@intel.com> 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" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 56DAD892CF for ; Tue, 3 Sep 2019 11:14:14 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Animesh Manna , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAwMyBTZXAgMjAxOSwgQW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5tYW5uYUBpbnRlbC5j b20+IHdyb3RlOgo+IEhpLAo+Cj4KPiBPbiA5LzMvMjAxOSAxOjM4IFBNLCBKYW5pIE5pa3VsYSB3 cm90ZToKPj4gT24gRnJpLCAzMCBBdWcgMjAxOSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGlu dGVsLmNvbT4gd3JvdGU6Cj4+PiBPbiBGcmksIDMwIEF1ZyAyMDE5LCBBbmltZXNoIE1hbm5hIDxh bmltZXNoLm1hbm5hQGludGVsLmNvbT4gd3JvdGU6Cj4+Pj4gR2FtbWEgbHV0IHByb2dyYW1taW5n IGNhbiBiZSBwcm9ncmFtbWVkIHVzaW5nIERTQgo+Pj4+IHdoZXJlIGJ1bGsgcmVnaXN0ZXIgcHJv Z3JhbW1pbmcgY2FuIGJlIGRvbmUgdXNpbmcgaW5kZXhlZAo+Pj4+IHJlZ2lzdGVyIHdyaXRlIHdo aWNoIHRha2VzIG51bWJlciBvZiBkYXRhIGFuZCB0aGUgbW1pbyBvZmZzZXQKPj4+PiB0byBiZSB3 cml0dGVuLgo+Pj4+Cj4+Pj4gdjE6IEluaXRpYWwgdmVyc2lvbi4KPj4+PiB2MjogRGlyZWN0bHkg Y2FsbCBkc2ItYXBpIGF0IGNhbGxzaXRlcy4gKEphbmkpCj4+Pj4KPj4+PiBDYzogSmFuaSBOaWt1 bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPj4+PiBDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdv LnZpdmlAaW50ZWwuY29tPgo+Pj4+IFNpZ25lZC1vZmYtYnk6IEFuaW1lc2ggTWFubmEgPGFuaW1l c2gubWFubmFAaW50ZWwuY29tPgo+Pj4+IC0tLQo+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9jb2xvci5jIHwgNjQgKysrKysrKysrKysrKystLS0tLS0tLQo+Pj4+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgIDIgKwo+Pj4+ICAg MiBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKPj4+Pgo+ Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9y LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPj4+PiBpbmRl eCA3MWEwMjAxNDM3YTkuLmU0MDkwZDhlNDU0NyAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPj4+PiBAQCAtNTg5LDM0ICs1ODksMzggQEAg c3RhdGljIHZvaWQgYmR3X2xvYWRfbHV0XzEwKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+Pj4+ ICAgCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBibG9iLT5kYXRhOwo+Pj4+ICAg CWludCBpLCBsdXRfc2l6ZSA9IGRybV9jb2xvcl9sdXRfc2l6ZShibG9iKTsKPj4+PiAgIAllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4+Pj4gKwlzdHJ1Y3QgaW50ZWxfZHNiICpkc2IgPSBk ZXZfcHJpdi0+ZHNiOwo+Pj4gTm8uIERvbid0IHB1dCBkc2IgaW4gZGV2X3ByaXYuIFlvdSBoYXZl IDEyIERTQiBlbmdpbmVzLCAzIHBlciBwaXBlLiBZb3UKPj4+IGhhdmUgaW50ZWxfY3J0YyBmb3Ig dGhhdC4KPj4+Cj4+PiBXYXMgdGhpcyBub3QgY2xlYXIgZnJvbSBteSBwcmV2aW91cyByZXZpZXc/ Cj4+Pgo+Pj4gWW91IGhhdmUgdG9ucyBvZiBmdW5jdGlvbnMgaGVyZSB0aGF0IHdpbGwgbmV2ZXIg aGF2ZSBhIERTQiBlbmdpbmUsIGl0Cj4+PiBtYWtlcyBubyBzZW5zZSB0byBjb252ZXJ0IGFsbCBv ZiB0aGVtIHRvIHVzZSB0aGUgRFNCLgo+PiBUbyBjbGFyaWZ5Ogo+Pgo+PiBBbGwgZnVuY3Rpb25z IHRoYXQgY291bGQgYW5kIHNob3VsZCB1c2UgdGhlIERTQiwgbmVlZCB0byBiZSBjb252ZXJ0ZWQg dG8KPj4gdXNlIGludGVsX2RzYl93cml0ZSBhbmQgZnJpZW5kcy4gVGhhdCBtZWFucyByZXBsYWNp bmcgSTkxNV9XUklURSB3aXRoCj4+IHRoZSByZWxldmFudCBpbnRlbF9kc2Jfd3JpdGUgY2FsbHMu ICpOT1QqIGhhdmluZyBpZiAoZHNiKQo+PiBpbnRlbF9kc2Jfd3JpdGUgZWxzZSBJOTE1X1dSSVRF LiBBcyBhZ3JlZWQgYSBsb25nIHRpbWUgYWdvLAo+PiBpbnRlbF9kc2Jfd3JpdGUgc2hvdWxkIGhh bmRsZSB0aGUgbm9uLURTQiBjYXNlcyBieSBmYWxsaW5nIGJhY2sgdG8KPj4gcmVndWxhciBpbnRl bF91bmNvcmVfd3JpdGUuCj4+Cj4+IE15IHBvaW50IGlzLCBpZiB0aGVyZSBhcmUgZnVuY3Rpb25z IHRoYXQgd2lsbCBuZXZlciBiZSBjYWxsZWQgb24gYQo+PiBwbGF0Zm9ybSB0aGF0IGhhcyBEU0Is IHRoZXJlJ3Mgbm8gcG9pbnQgaW4gY29udmVydGluZyB0aGVtIG92ZXIgdG8gdXNlCj4+IERTQi4g T2J2aW91c2x5IHRoZXJlIGFyZSBlLmcuIGxlZ2FjeSBnYW1tYSBmdW5jdGlvbnMgdGhhdCBhbHNv IGdldAo+PiBjYWxsZWQgb24gbmV3ZXIgcGxhdGZvcm1zLgo+Pgo+PiBNYXliZSBJIHdhcyBoYXN0 eSBpbiBteSBhc3Nlc21lbnQsIG5lZWQgdG8gZG91YmxlIGNoZWNrIGlmIGFsbCBvZiB0aGVzZQo+ PiBwYXRocyBhcmUgcmVhY2hhYmxlIGZyb20gRFNCIHBsYXRmb3Jtcy4KPgo+IEN1cnJlbnRseSBt dWx0aS1zZWdtZW50ZWQgZ2FtbWEgKDEyIGJpdCBnYW1tYSkgaXMgZW5hYmxlZCBieSBkZWZhdWx0 IGZvciAKPiBpY2wrIHBsYXRmb3JtLgo+IFdpbGwgaXQgYmUgZmluZSB0byBlbmFibGUgb25seSAx MiBiaXQgZ2FtbWEgdGhyb3VnaCBEU0IgYW5kIDgtYml0LzEwLWJpdCAKPiBjYW4gYmUgZW5hYmxl ZCBsYXRlciBiYXNlZCBvbiBuZWVkPwoKTWluaW1hbCBlbmFibGluZyBpcyBmaW5lLiBMZXQncyBn ZXQgKnNvbWV0aGluZyogb3V0IHRoZXJlIGZpcnN0LCBhbmQKaXRlcmF0ZS4KCkJSLApKYW5pLgoK Pgo+IFJlZ2FyZHMsCj4gQW5pbWVzaAo+Cj4+Cj4+IEJSLAo+PiBKYW5pLgo+Pgo+Pgo+Pj4+ICAg Cj4+Pj4gLQlJOTE1X1dSSVRFKFBSRUNfUEFMX0lOREVYKHBpcGUpLCBwcmVjX2luZGV4IHwKPj4+ PiAtCQkgICBQQUxfUFJFQ19BVVRPX0lOQ1JFTUVOVCk7Cj4+Pj4gKwlpbnRlbF9kc2JfcmVnX3dy aXRlKGRzYiwgUFJFQ19QQUxfSU5ERVgocGlwZSksCj4+Pj4gKwkJCSAgICBwcmVjX2luZGV4IHwg UEFMX1BSRUNfQVVUT19JTkNSRU1FTlQpOwo+Pj4+ICAgCj4+Pj4gICAJZm9yIChpID0gMDsgaSA8 IGh3X2x1dF9zaXplOyBpKyspIHsKPj4+PiAgIAkJLyogV2UgZGlzY2FyZCBoYWxmIHRoZSB1c2Vy IGVudHJpZXMgaW4gc3BsaXQgZ2FtbWEgbW9kZSAqLwo+Pj4+ICAgCQljb25zdCBzdHJ1Y3QgZHJt X2NvbG9yX2x1dCAqZW50cnkgPQo+Pj4+ICAgCQkJJmx1dFtpICogKGx1dF9zaXplIC0gMSkgLyAo aHdfbHV0X3NpemUgLSAxKV07Cj4+Pj4gICAKPj4+PiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RB VEEocGlwZSksIGlsa19sdXRfMTAoZW50cnkpKTsKPj4+PiArCQlpbnRlbF9kc2JfaW5kZXhlZF9y ZWdfd3JpdGUoZHNiLCBQUkVDX1BBTF9EQVRBKHBpcGUpLAo+Pj4+ICsJCQkJCSAgICBpbGtfbHV0 XzEwKGVudHJ5KSk7Cj4+Pj4gICAJfQo+Pj4+ICAgCj4+Pj4gICAJLyoKPj4+PiAgIAkgKiBSZXNl dCB0aGUgaW5kZXgsIG90aGVyd2lzZSBpdCBwcmV2ZW50cyB0aGUgbGVnYWN5IHBhbGV0dGUgdG8g YmUKPj4+PiAgIAkgKiB3cml0dGVuIHByb3Blcmx5Lgo+Pj4+ICAgCSAqLwo+Pj4+IC0JSTkxNV9X UklURShQUkVDX1BBTF9JTkRFWChwaXBlKSwgMCk7Cj4+Pj4gKwlpbnRlbF9kc2JfcmVnX3dyaXRl KGRzYiwgUFJFQ19QQUxfSU5ERVgocGlwZSksIDApOwo+Pj4+ICAgfQo+Pj4+ICAgCj4+Pj4gICBz dGF0aWMgdm9pZCBpdmJfbG9hZF9sdXRfZXh0X21heChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykK Pj4+PiAgIHsKPj4+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKPj4+PiArCXN0cnVjdCBpbnRlbF9kc2IgKmRzYiA9IGRldl9w cml2LT5kc2I7Cj4+Pj4gICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+Pj4+ICAgCj4+ Pj4gICAJLyogUHJvZ3JhbSB0aGUgbWF4IHJlZ2lzdGVyIHRvIGNsYW1wIHZhbHVlcyA+IDEuMC4g Ki8KPj4+PiAtCUk5MTVfV1JJVEUoUFJFQ19QQUxfRVhUX0dDX01BWChwaXBlLCAwKSwgMSA8PCAx Nik7Cj4+Pj4gLQlJOTE1X1dSSVRFKFBSRUNfUEFMX0VYVF9HQ19NQVgocGlwZSwgMSksIDEgPDwg MTYpOwo+Pj4+IC0JSTkxNV9XUklURShQUkVDX1BBTF9FWFRfR0NfTUFYKHBpcGUsIDIpLCAxIDw8 IDE2KTsKPj4+PiArCWludGVsX2RzYl9yZWdfd3JpdGUoZHNiLCBQUkVDX1BBTF9FWFRfR0NfTUFY KHBpcGUsIDApLCAxIDw8IDE2KTsKPj4+PiArCWludGVsX2RzYl9yZWdfd3JpdGUoZHNiLCBQUkVD X1BBTF9FWFRfR0NfTUFYKHBpcGUsIDEpLCAxIDw8IDE2KTsKPj4+PiArCWludGVsX2RzYl9yZWdf d3JpdGUoZHNiLCBQUkVDX1BBTF9FWFRfR0NfTUFYKHBpcGUsIDIpLCAxIDw8IDE2KTsKPj4+PiAr Cj4+Pj4gICAKPj4+PiAgIAkvKgo+Pj4+ICAgCSAqIFByb2dyYW0gdGhlIGdjIG1heCAyIHJlZ2lz dGVyIHRvIGNsYW1wIHZhbHVlcyA+IDEuMC4KPj4+PiBAQCAtNjI0LDkgKzYyOCwxMiBAQCBzdGF0 aWMgdm9pZCBpdmJfbG9hZF9sdXRfZXh0X21heChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPj4+ PiAgIAkgKiBmcm9tIDMuMCB0byA3LjAKPj4+PiAgIAkgKi8KPj4+PiAgIAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+Pj4+IC0JCUk5 MTVfV1JJVEUoUFJFQ19QQUxfRVhUMl9HQ19NQVgocGlwZSwgMCksIDEgPDwgMTYpOwo+Pj4+IC0J CUk5MTVfV1JJVEUoUFJFQ19QQUxfRVhUMl9HQ19NQVgocGlwZSwgMSksIDEgPDwgMTYpOwo+Pj4+ IC0JCUk5MTVfV1JJVEUoUFJFQ19QQUxfRVhUMl9HQ19NQVgocGlwZSwgMiksIDEgPDwgMTYpOwo+ Pj4+ICsJCWludGVsX2RzYl9yZWdfd3JpdGUoZHNiLCBQUkVDX1BBTF9FWFQyX0dDX01BWChwaXBl LCAwKSwKPj4+PiArCQkJCSAgICAxIDw8IDE2KTsKPj4+PiArCQlpbnRlbF9kc2JfcmVnX3dyaXRl KGRzYiwgUFJFQ19QQUxfRVhUMl9HQ19NQVgocGlwZSwgMSksCj4+Pj4gKwkJCQkgICAgMSA8PCAx Nik7Cj4+Pj4gKwkJaW50ZWxfZHNiX3JlZ193cml0ZShkc2IsIFBSRUNfUEFMX0VYVDJfR0NfTUFY KHBpcGUsIDIpLAo+Pj4+ICsJCQkJICAgIDEgPDwgMTYpOwo+Pj4+ICAgCX0KPj4+PiAgIH0KPj4+ PiAgIAo+Pj4+IEBAIC03ODgsMTIgKzc5NSwxMyBAQCBpY2xfbG9hZF9nY21heChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPj4+PiAgIHsKPj4+PiAgIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK Pj4+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKPj4+PiArCXN0cnVjdCBpbnRlbF9kc2IgKmRzYiA9IGRldl9wcml2LT5kc2I7 Cj4+Pj4gICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+Pj4+ICAgCj4+Pj4gICAJLyog Rml4bWU6IExVVCBlbnRyaWVzIGFyZSAxNiBiaXQgb25seSwgc28gd2UgY2FuIHByb2cgMHhGRkZG IG1heCAqLwo+Pj4+IC0JSTkxNV9XUklURShQUkVDX1BBTF9HQ19NQVgocGlwZSwgMCksIGNvbG9y LT5yZWQpOwo+Pj4+IC0JSTkxNV9XUklURShQUkVDX1BBTF9HQ19NQVgocGlwZSwgMSksIGNvbG9y LT5ncmVlbik7Cj4+Pj4gLQlJOTE1X1dSSVRFKFBSRUNfUEFMX0dDX01BWChwaXBlLCAyKSwgY29s b3ItPmJsdWUpOwo+Pj4+ICsJaW50ZWxfZHNiX3JlZ193cml0ZShkc2IsIFBSRUNfUEFMX0dDX01B WChwaXBlLCAwKSwgY29sb3ItPnJlZCk7Cj4+Pj4gKwlpbnRlbF9kc2JfcmVnX3dyaXRlKGRzYiwg UFJFQ19QQUxfR0NfTUFYKHBpcGUsIDEpLCBjb2xvci0+Z3JlZW4pOwo+Pj4+ICsJaW50ZWxfZHNi X3JlZ193cml0ZShkc2IsIFBSRUNfUEFMX0dDX01BWChwaXBlLCAyKSwgY29sb3ItPmJsdWUpOwo+ Pj4+ICAgfQo+Pj4+ICAgCj4+Pj4gICBzdGF0aWMgdm9pZAo+Pj4+IEBAIC04MDMsNiArODExLDcg QEAgaWNsX3Byb2dyYW1fZ2FtbWFfc3VwZXJmaW5lX3NlZ21lbnQoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+Pj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4+Pj4gICAJY29uc3Qgc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Cj4+ Pj4gICAJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IGJsb2ItPmRhdGE7Cj4+Pj4g KwlzdHJ1Y3QgaW50ZWxfZHNiICpkc2IgPSBkZXZfcHJpdi0+ZHNiOwo+Pj4+ICAgCWVudW0gcGlw ZSBwaXBlID0gY3J0Yy0+cGlwZTsKPj4+PiAgIAl1MzIgaTsKPj4+PiAgIAo+Pj4+IEBAIC04MTMs MTUgKzgyMiwxNiBAQCBpY2xfcHJvZ3JhbV9nYW1tYV9zdXBlcmZpbmVfc2VnbWVudChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4+PiAgIAkgKiBTdXBlcmZpbmUg c2VnbWVudCBoYXMgOSBlbnRyaWVzLCBjb3JyZXNwb25kaW5nIHRvIHZhbHVlcwo+Pj4+ICAgCSAq IDAsIDEvKDggKiAxMjggKiAyNTYpLCAyLyg4ICogMTI4ICogMjU2KSAuLi4uIDgvKDggKiAxMjgg KiAyNTYpLgo+Pj4+ICAgCSAqLwo+Pj4+IC0JSTkxNV9XUklURShQUkVDX1BBTF9NVUxUSV9TRUdf SU5ERVgocGlwZSksIFBBTF9QUkVDX0FVVE9fSU5DUkVNRU5UKTsKPj4+PiArCWludGVsX2RzYl9y ZWdfd3JpdGUoZHNiLCBQUkVDX1BBTF9NVUxUSV9TRUdfSU5ERVgocGlwZSksCj4+Pj4gKwkJCSAg ICBQQUxfUFJFQ19BVVRPX0lOQ1JFTUVOVCk7Cj4+Pj4gICAKPj4+PiAgIAlmb3IgKGkgPSAwOyBp IDwgOTsgaSsrKSB7Cj4+Pj4gICAJCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICplbnRyeSA9 ICZsdXRbaV07Cj4+Pj4gICAKPj4+PiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX01VTFRJX1NFR19E QVRBKHBpcGUpLAo+Pj4+IC0JCQkgICBpbGtfbHV0XzEycDRfbGR3KGVudHJ5KSk7Cj4+Pj4gLQkJ STkxNV9XUklURShQUkVDX1BBTF9NVUxUSV9TRUdfREFUQShwaXBlKSwKPj4+PiAtCQkJICAgaWxr X2x1dF8xMnA0X3VkdyhlbnRyeSkpOwo+Pj4+ICsJCWludGVsX2RzYl9pbmRleGVkX3JlZ193cml0 ZShkc2IsIFBSRUNfUEFMX01VTFRJX1NFR19EQVRBKHBpcGUpLAo+Pj4+ICsJCQkJCSAgICBpbGtf bHV0XzEycDRfbGR3KGVudHJ5KSk7Cj4+Pj4gKwkJaW50ZWxfZHNiX2luZGV4ZWRfcmVnX3dyaXRl KGRzYiwgUFJFQ19QQUxfTVVMVElfU0VHX0RBVEEocGlwZSksCj4+Pj4gKwkJCQkJICAgIGlsa19s dXRfMTJwNF91ZHcoZW50cnkpKTsKPj4+PiAgIAl9Cj4+Pj4gICB9Cj4+Pj4gICAKPj4+PiBAQCAt ODMzLDYgKzg0Myw3IEBAIGljbF9wcm9ncmFtX2dhbW1hX211bHRpX3NlZ21lbnQoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+Pj4gICAJY29uc3Qgc3RydWN0IGRy bV9wcm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Cj4+Pj4g ICAJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IGJsb2ItPmRhdGE7Cj4+Pj4gICAJ Y29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmVudHJ5Owo+Pj4+ICsJc3RydWN0IGludGVsX2Rz YiAqZHNiID0gZGV2X3ByaXYtPmRzYjsKPj4+PiAgIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBp cGU7Cj4+Pj4gICAJdTMyIGk7Cj4+Pj4gICAKPj4+PiBAQCAtODQ3LDExICs4NTgsMTMgQEAgaWNs X3Byb2dyYW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPj4+PiAgIAkgKiBQQUxfUFJFQ19JTkRFWFswXSBhbmQgUEFMX1BSRUNf SU5ERVhbMV0gbWFwIHRvIHNlZzJbMV0sCj4+Pj4gICAJICogd2l0aCBzZWcyWzBdIGJlaW5nIHVu dXNlZCBieSB0aGUgaGFyZHdhcmUuCj4+Pj4gICAJICovCj4+Pj4gLQlJOTE1X1dSSVRFKFBSRUNf UEFMX0lOREVYKHBpcGUpLCBQQUxfUFJFQ19BVVRPX0lOQ1JFTUVOVCk7Cj4+Pj4gKwlpbnRlbF9k c2JfcmVnX3dyaXRlKGRzYiwgUFJFQ19QQUxfSU5ERVgocGlwZSksIFBBTF9QUkVDX0FVVE9fSU5D UkVNRU5UKTsKPj4+PiAgIAlmb3IgKGkgPSAxOyBpIDwgMjU3OyBpKyspIHsKPj4+PiAgIAkJZW50 cnkgPSAmbHV0W2kgKiA4XTsKPj4+PiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlwZSks IGlsa19sdXRfMTJwNF9sZHcoZW50cnkpKTsKPj4+PiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RB VEEocGlwZSksIGlsa19sdXRfMTJwNF91ZHcoZW50cnkpKTsKPj4+PiArCQlpbnRlbF9kc2JfaW5k ZXhlZF9yZWdfd3JpdGUoZHNiLCBQUkVDX1BBTF9EQVRBKHBpcGUpLAo+Pj4+ICsJCQkJCSAgICBp bGtfbHV0XzEycDRfbGR3KGVudHJ5KSk7Cj4+Pj4gKwkJaW50ZWxfZHNiX2luZGV4ZWRfcmVnX3dy aXRlKGRzYiwgUFJFQ19QQUxfREFUQShwaXBlKSwKPj4+PiArCQkJCQkgICAgaWxrX2x1dF8xMnA0 X3VkdyhlbnRyeSkpOwo+Pj4+ICAgCX0KPj4+PiAgIAo+Pj4+ICAgCS8qCj4+Pj4gQEAgLTg2OCw4 ICs4ODEsMTAgQEAgaWNsX3Byb2dyYW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4+PiAgIAkgKi8KPj4+PiAgIAlmb3IgKGkg PSAwOyBpIDwgMjU2OyBpKyspIHsKPj4+PiAgIAkJZW50cnkgPSAmbHV0W2kgKiA4ICogMTI4XTsK Pj4+PiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlwZSksIGlsa19sdXRfMTJwNF9sZHco ZW50cnkpKTsKPj4+PiAtCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlwZSksIGlsa19sdXRf MTJwNF91ZHcoZW50cnkpKTsKPj4+PiArCQlpbnRlbF9kc2JfaW5kZXhlZF9yZWdfd3JpdGUoZHNi LCBQUkVDX1BBTF9EQVRBKHBpcGUpLAo+Pj4+ICsJCQkJCSAgICBpbGtfbHV0XzEycDRfbGR3KGVu dHJ5KSk7Cj4+Pj4gKwkJaW50ZWxfZHNiX2luZGV4ZWRfcmVnX3dyaXRlKGRzYiwgUFJFQ19QQUxf REFUQShwaXBlKSwKPj4+PiArCQkJCQkgICAgaWxrX2x1dF8xMnA0X3VkdyhlbnRyeSkpOwo+Pj4+ ICAgCX0KPj4+PiAgIAo+Pj4+ICAgCS8qIFRoZSBsYXN0IGVudHJ5IGluIHRoZSBMVVQgaXMgdG8g YmUgcHJvZ3JhbW1lZCBpbiBHQ01BWCAqLwo+Pj4+IEBAIC05ODAsNyArOTk1LDEwIEBAIHZvaWQg aW50ZWxfY29sb3JfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+Pj4+ICAgewo+Pj4+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+Pj4+ICAgCj4+Pj4gKwlk ZXZfcHJpdi0+ZHNiID0gaW50ZWxfZHNiX2dldCh0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0YykpOwo+Pj4gTm8sIGRvbid0IGRvIHRoaXMuIERvbid0IHN0b3JlIGNydGMgc3BlY2lm aWMgaW5mbyBpbiBhIGRldmljZSBnbG9iYWwKPj4+IHN0cnVjdHVyZS4KPj4+Cj4+Pj4gICAJZGV2 X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzKGNydGNfc3RhdGUpOwo+Pj4+ICsJaW50ZWxfZHNiX2Nv bW1pdChkZXZfcHJpdi0+ZHNiKTsKPj4+PiArCWludGVsX2RzYl9wdXQoZGV2X3ByaXYtPmRzYik7 Cj4+PiBQbGVhc2UgbG9jYWxpemUgdGhlIHVzZSBvZiBEU0Igd2hlcmUgbmVlZGVkLiBNb3ZlIHRo ZSBnZXRzIGFuZCBwdXRzCj4+PiB3aXRoaW4gdGhlIHJlbGV2YW50IHBsYXRmb3JtIHNwZWNpZmlj IC0+bG9hZF9sdXRzIGhvb2tzLgo+Pj4KPj4+PiAgIH0KPj4+PiAgIAo+Pj4+ICAgdm9pZCBpbnRl bF9jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+Pj4gaW5kZXggN2FhMTFlM2RkNDEzLi45OGY1 NDZjNGFkNDkgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+PiBAQCAtMTc2 MCw2ICsxNzYwLDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+Pj4+ICAgCS8qIE11dGV4 IHRvIHByb3RlY3QgdGhlIGFib3ZlIGhkY3AgY29tcG9uZW50IHJlbGF0ZWQgdmFsdWVzLiAqLwo+ Pj4+ICAgCXN0cnVjdCBtdXRleCBoZGNwX2NvbXBfbXV0ZXg7Cj4+Pj4gICAKPj4+PiArCXN0cnVj dCBpbnRlbF9kc2IgKmRzYjsKPj4+PiArCj4+Pj4gICAJLyoKPj4+PiAgIAkgKiBOT1RFOiBUaGlz IGlzIHRoZSBkcmkxL3VtcyBkdW5nZW9uLCBkb24ndCBhZGQgc3R1ZmYgaGVyZS4gWW91ciBwYXRj aAo+Pj4+ICAgCSAqIHdpbGwgYmUgcmVqZWN0ZWQuIEluc3RlYWQgbG9vayBmb3IgYSBiZXR0ZXIg cGxhY2UuCj4KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2Vu dGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==