From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4 4/4] drm/i915/icl: Add Multi-segmented gamma support Date: Thu, 9 May 2019 16:40:50 +0300 Message-ID: <20190509134050.GC24299@intel.com> References: <20190508193526.28374-1-shashank.sharma@intel.com> <20190508193526.28374-5-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3BA6789C85 for ; Thu, 9 May 2019 13:40:56 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190508193526.28374-5-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Shashank Sharma Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXkgMDksIDIwMTkgYXQgMDE6MDU6MjZBTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IElDTCBpbnRyb2R1Y2VzIGEgbmV3IGdhbW1hIGNvcnJlY3Rpb24gbW9kZSBpbiBk aXNwbGF5IGVuZ2luZSwgY2FsbGVkCj4gbXVsdGktc2VnbWVudGVkLWdhbW1hIG1vZGUuIFRoaXMg bW9kZSBhbGxvd3MgdXNlcnMgdG8gcHJvZ3JhbSB0aGUKPiBkYXJrZXIgcmVnaW9uIG9mIHRoZSBn YW1tYSBjdXJ2ZSB3aXRoIHN1ZXByZmluZSBwcmVjaXNpb24uIEFuCj4gZXhhbXBsZSB1c2UgY2Fz ZSBmb3IgdGhpcyBpcyBIRFIgY3VydmVzIChsaWtlIFBRIFNULTIwODQpLgo+IAo+IElmIHdlIHBs b3QgYSBnYW1tYSBjb3JyZWN0aW9uIGN1cnZlIGZyb20gdmFsdWUgcmFuZ2UgYmV0d2VlbiAwLjAg dG8gMS4wLAo+IElDTCdzIG11bHRpLXNlZ21lbnQgaGFzIDMgZGlmZmVyZW50IHNlY3Rpb25zOgo+ IC0gc3VwZXJmaW5lIHNlZ21lbnQ6IDkgdmFsdWVzLCByYW5nZXMgYmV0d2VlbiAwIC0gMS8oMTI4 ICogMjU2KQo+IC0gZmluZSBzZWdtZW50OiAyNTcgdmFsdWVzLCByYW5nZXMgYmV0d2VlbiAwIC0g MS8oMTI4KQo+IC0gY29yYXNlIHNlZ21lbnQ6IDI1NyB2YWx1ZXMsIHJhbmdlcyBiZXR3ZWVuIDAg LSAxCj4gCj4gVGhpcyBwYXRjaDoKPiAtIENoYW5nZXMgZ2FtbWEgTFVUcyBzaXplIGZvciBJQ0wv R0VOMTEgdG8gMjYyMTQ0IGVudHJpZXMgKDggKiAxMjggKiAyNTYpLAo+ICAgc28gdGhhdCB1c2Vy c3BhY2UgY2FuIHByb2dyYW0gd2l0aCBoaWdoZXN0IHByZWNpc2lvbiBzdXBwb3J0ZWQuCj4gLSBD aGFuZ2VzIGRlZmF1bHQgZ2FtbWEgbW9kZSAobm9uLWxlZ2FjeSkgdG8gbXVsdGktc2VnbWVudGVk LWdhbW1hIG1vZGUuCj4gLSBBZGRzIGZ1bmN0aW9ucyB0byBwcm9ncmFtL2RldGVjdCBtdWx0aS1z ZWdtZW50IGdhbW1hLgo+IAo+IFYyOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gVmls bGUKPiAgICAgLSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3Igc3VwZXJmaW5lIGFuZCBmaW5lIHNlZ21l bnRzLgo+ICAgICAtIHJlbW92ZSBlbnVtIGZvciBzZWdtZW50cy4KPiAgICAgLSByZXVzZSBsYXN0 IGVudHJ5IG9mIHRoZSBMVVQgYXMgZ2NfbWF4IHZhbHVlLgo+ICAgICAtIHJlcGxhY2UgaWYoKSAu Li4uY29uZCB3aXRoIHN3aXRjaC4uLmNhc2UgaW4gaWNsX2xvYWRfbHV0cy4KPiAgICAgLSBhZGQg YW4gZW50cnkgdmFyaWFibGUsIGluc3RlYWQgb2YgJ3dvcmQnCj4gCj4gVjM6IEFkZHJlc3NlZCBy ZXZpZXcgY29tbWVudHMgZnJvbSBWaWxsZQo+ICAgICAtIGV4dHJhIG5ld2xpbmUKPiAgICAgLSBz L2VudHJ5L2NvbG9yLwo+ICAgICAtIHJlbW92ZSBMVVQgc2l6ZSBjaGVja3MKPiAgICAgLSBwcm9n cmFtIGlsa19sdXRfMTJwNF9sZHcgdmFsdWUgYmVmb3JlIGlsa19sdXRfMTJwNF91ZHcKPiAgICAg LSBDaGFuZ2UgdGhlIGNvbW1lbnRzIGluIGRlc2NyaXB0aW9uIG9mIGZpbmUgYW5kIGNvYXJzZSBz ZWdtZW50cywKPiAgICAgICBhbmQgdHJ5IHRvIG1ha2UgbW9yZSBzZW5zZS4KPiAgICAgLSB1c2Ug OCAqIDEyOCBpbnN0ZWFkIG9mIDEwMjQKPiAgICAgLSBhZGQgMSBlbnRyeSBpbiBMVVQgZm9yIEdD TUFYCj4gCj4gVjQ6IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMgZnJvbSBWaWxsZQo+ICAgICAt IFJlbW92ZSB1bnVzZWQgbWFjcm8KPiAgICAgLSBtaXNzaW5nIHNoaWZ0IGVudHJ5IGluIGJsdWUK PiAgICAgLSBwaWNrIGNvcnJlY3QgZW50cnkgZm9yIEdDTUFYCj4gICAgIC0gQWRkZWQgVmlsbGUn cyBSLUIKPiBOb3RlOiBUZXN0ZWQgYW5kIGNvbmZpcm1lZCB0aGUgcHJvZ3JhbW1pbmcgc2VxdWVu Y2Ugb2Ygb2RkL2V2ZW4KPiByZWdpc3RlcnMgaW4gdGhlIEhXLiBUaGUgY29ycmVjdCBzZXF1ZW5j ZSBzaG91bGQgYmU6Cj4gCWlsa19sdXRfMTJwNF91ZHcKPiAJaWxrX2x1dF8xMnA0X2xkdwo+IAo+ IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENj OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IAo+IFJldmlld2Vk LWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFN1 Z2dlc3RlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRl bC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyAgICB8ICAgMiArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jIHwgMTI2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKystCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4gaW5kZXggZDdjMDdhOTQ3 NDk3Li4yNDMwNTIzOGI0ZWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wY2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiBAQCAtNzQ3 LDcgKzc0Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxf Y2Fubm9ubGFrZV9pbmZvID0gewo+ICAJR0VOKDExKSwgXAo+ICAJLmRkYl9zaXplID0gMjA0OCwg XAo+ICAJLmhhc19sb2dpY2FsX3JpbmdfZWxzcSA9IDEsIFwKPiAtCS5jb2xvciA9IHsgLmRlZ2Ft bWFfbHV0X3NpemUgPSAzMywgLmdhbW1hX2x1dF9zaXplID0gMTAyNCB9Cj4gKwkuY29sb3IgPSB7 IC5kZWdhbW1hX2x1dF9zaXplID0gMzMsIC5nYW1tYV9sdXRfc2l6ZSA9IDI2MjE0NSB9Cj4gIAo+ ICBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2ljZWxha2VfMTFf aW5mbyA9IHsKPiAgCUdFTjExX0ZFQVRVUkVTLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3Iu Ywo+IGluZGV4IDZjMzQxYmVhNTE0Yy4uMjJjY2JlYWNiZWUyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9jb2xvci5jCj4gQEAgLTQxLDYgKzQxLDcgQEAKPiAgI2RlZmluZSBDVE1fQ09FRkZf QUJTKGNvZWZmKQkJKChjb2VmZikgJiAoQ1RNX0NPRUZGX1NJR04gLSAxKSkKPiAgCj4gICNkZWZp bmUgTEVHQUNZX0xVVF9MRU5HVEgJCTI1Ngo+ICsKPiAgLyoKPiAgICogRXh0cmFjdCB0aGUgQ1ND IGNvZWZmaWNpZW50IGZyb20gYSBDVE0gY29lZmZpY2llbnQgKGluIFUzMi4zMiBmaXhlZCBwb2lu dAo+ICAgKiBmb3JtYXQpLiBUaGlzIG1hY3JvIHRha2VzIHRoZSBjb2VmZmljaWVudCB3ZSB3YW50 IHRyYW5zZm9ybWVkIGFuZCB0aGUKPiBAQCAtNzY3LDYgKzc2OCwxMTYgQEAgc3RhdGljIHZvaWQg Z2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK PiAgCX0KPiAgfQo+ICAKPiArLyogaWxrKyAiMTIuNCIgaW50ZXJwb2xhdGVkIGZvcm1hdCAoaGln aCAxMCBiaXRzKSAqLwo+ICtzdGF0aWMgdTMyIGlsa19sdXRfMTJwNF9sZHcoY29uc3Qgc3RydWN0 IGRybV9jb2xvcl9sdXQgKmNvbG9yKQo+ICt7Cj4gKwlyZXR1cm4gKGNvbG9yLT5yZWQgPj4gNikg PDwgMjAgfCAoY29sb3ItPmdyZWVuID4+IDYpIDw8IDEwIHwKPiArCQkoY29sb3ItPmJsdWUgPj4g Nik7Cj4gK30KPiArCj4gKy8qIGlsaysgIjEyLjQiIGludGVycG9sYXRlZCBmb3JtYXQgKGxvdyA2 IGJpdHMpICovCj4gK3N0YXRpYyB1MzIgaWxrX2x1dF8xMnA0X3Vkdyhjb25zdCBzdHJ1Y3QgZHJt X2NvbG9yX2x1dCAqY29sb3IpCj4gK3sKPiArCXJldHVybiAoY29sb3ItPnJlZCAmIDB4M2YpIDw8 IDI0IHwgKGNvbG9yLT5ncmVlbiAmIDB4M2YpIDw8IDE0IHwKPiArCQkoY29sb3ItPmJsdWUgJiAw eDNmIDw8IDQpOwoKV3JvbmcgcGxhY2VtZW50IG9mIHRoZSBjbG9zaW5nIHBhcmVuLgoKPiArfQo+ ICsKPiArc3RhdGljIHZvaWQKPiAraWNsX2xvYWRfZ2NtYXgoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb2xvcl9s dXQgKmNvbG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICsJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwo+ICsKPiArCS8qIEZpeG1lOiBMVVQgZW50cmllcyBhcmUgMTYgYml0IG9ubHks IHNvIHdlIGNhbiBwcm9nIDB4RkZGRiBtYXggKi8KPiArCUk5MTVfV1JJVEUoUFJFQ19QQUxfR0Nf TUFYKHBpcGUsIDApLCBjb2xvci0+cmVkKTsKPiArCUk5MTVfV1JJVEUoUFJFQ19QQUxfR0NfTUFY KHBpcGUsIDEpLCBjb2xvci0+Z3JlZW4pOwo+ICsJSTkxNV9XUklURShQUkVDX1BBTF9HQ19NQVgo cGlwZSwgMiksIGNvbG9yLT5ibHVlKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQKPiAraWNsX3By b2dyYW1fZ2FtbWFfc3VwZXJmaW5lX3NlZ21lbnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gKwljb25zdCBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IgPSBjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dDsKPiAr CWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBibG9iLT5kYXRhOwo+ICsJZW51bSBw aXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICsJdTMyIGk7Cj4gKwo+ICsJLyoKPiArCSAqIEV2ZXJ5 IGVudHJ5IGluIHRoZSBtdWx0aS1zZWdtZW50IExVVCBpcyBjb3JyZXNwb25kaW5nIHRvIGEgc3Vw ZXJmaW5lCj4gKwkgKiBzZWdtZW50IHN0ZXAgd2hpY2ggaXMgMS8oOCAqIDEyOCAqIDI1NikuCj4g KwkgKgo+ICsJICogU3VwZXJmaW5lIHNlZ21lbnQgaGFzIDkgZW50cmllcywgY29ycmVzcG9uZGlu ZyB0byB2YWx1ZXMKPiArCSAqIDAsIDEvKDggKiAxMjggKiAyNTYpLCAyLyg4ICogMTI4ICogMjU2 KSAuLi4uIDgvKDggKiAxMjggKiAyNTYpLgo+ICsJICovCj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFM X01VTFRJX1NFR19JTkRFWChwaXBlKSwgUEFMX1BSRUNfQVVUT19JTkNSRU1FTlQpOwo+ICsKPiAr CWZvciAoaSA9IDA7IGkgPCA5OyBpKyspIHsKPiArCQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1 dCAqZW50cnkgPSAmbHV0W2ldOwo+ICsKPiArCQlJOTE1X1dSSVRFKFBSRUNfUEFMX01VTFRJX1NF R19EQVRBKHBpcGUpLAo+ICsJCQkgICBpbGtfbHV0XzEycDRfdWR3KGVudHJ5KSk7Cj4gKwkJSTkx NV9XUklURShQUkVDX1BBTF9NVUxUSV9TRUdfREFUQShwaXBlKSwKPiArCQkJICAgaWxrX2x1dF8x MnA0X2xkdyhlbnRyeSkpOwoKSWYgdGhpcyBpcyBjb3JyZWN0IHRoZW4gdGhlIGZ1bmN0aW9ucyBh cmUgbmFtZWQgd3JvbmcuCgo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtpY2xfcHJv Z3JhbV9nYW1tYV9tdWx0aV9zZWdtZW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICsJY29uc3Qgc3RydWN0IGRybV9w cm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Cj4gKwljb25z dCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gYmxvYi0+ZGF0YTsKPiArCWNvbnN0IHN0cnVj dCBkcm1fY29sb3JfbHV0ICplbnRyeTsKPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK PiArCXUzMiBpOwo+ICsKPiArCS8qCj4gKwkgKgo+ICsJICogUHJvZ3JhbSBGaW5lIHNlZ21lbnQg KGxldCdzIGNhbGwgaXQgc2VnMikuLi4KPiArCSAqCj4gKwkgKiBGaW5lIHNlZ21lbnQncyBzdGVw IGlzIDEvKDEyOCAqIDI1NikgaWUgMS8oMTI4ICogMjU2KSwgIDIvKDEyOCoyNTYpCj4gKwkgKiAu Li4gMjU2LygxMjgqMjU2KS4gU28gaW4gb3JkZXIgdG8gcHJvZ3JhbSBmaW5lIHNlZ21lbnQgb2Yg TFVUIHdlCj4gKwkgKiBuZWVkIHRvIHBpY2sgZXZlcnkgOCd0aCBlbnRyeSBpbiBMVVQsIGFuZCBw cm9ncmFtIDI1NiBpbmRleGVzLgo+ICsJICoKPiArCSAqIFBBTF9QUkVDX0lOREVYWzBdIGFuZCBQ QUxfUFJFQ19JTkRFWFsxXSBtYXAgdG8gc2VnMlsxXSwKPiArCSAqIHdpdGggc2VnMlswXSBiZWlu ZyB1bnVzZWQgYnkgdGhlIGhhcmR3YXJlLgo+ICsJICovCj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFM X0lOREVYKHBpcGUpLCBQQUxfUFJFQ19BVVRPX0lOQ1JFTUVOVCk7Cj4gKwlmb3IgKGkgPSAxOyBp IDwgMjU3OyBpKyspIHsKPiArCQllbnRyeSA9ICZsdXRbaSAqIDhdOwo+ICsJCUk5MTVfV1JJVEUo UFJFQ19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8xMnA0X3VkdyhlbnRyeSkpOwo+ICsJCUk5MTVf V1JJVEUoUFJFQ19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8xMnA0X2xkdyhlbnRyeSkpOwo+ICsJ fQo+ICsKPiArCS8qCj4gKwkgKiBQcm9ncmFtIENvYXJzZSBzZWdtZW50IChsZXQncyBjYWxsIGl0 IHNlZzMpLi4uCj4gKwkgKgo+ICsJICogQ29hcnNlIHNlZ21lbnQncyBzdGFydHMgZnJvbSBpbmRl eCAwIGFuZCBpdCdzIHN0ZXAgaXMgMS8yNTYgaWUgMCwKPiArCSAqIDEvMjU2LCAyLzI1NiAuLi4y NTYvMjU2LiBBcyBwZXIgdGhlIGRlc2NyaXB0aW9uIG9mIGVhY2ggZW50cnkgaW4gTFVUCj4gKwkg KiBhYm92ZSwgd2UgbmVlZCB0byBwaWNrIGV2ZXJ5ICg4ICogMTI4KXRoIGVudHJ5IGluIExVVCwg YW5kCj4gKwkgKiBwcm9ncmFtIDI1NiBvZiB0aG9zZS4KPiArCSAqCj4gKwkgKiBTcGVjIGlzIG5v dCB2ZXJ5IGNsZWFyIGFib3V0IGlmIGVudHJpZXMgc2VnM1swXSBhbmQgc2VnM1sxXSBhcmUKPiAr CSAqIGJlaW5nIHVzZWQgb3Igbm90LCBidXQgd2Ugc3RpbGwgbmVlZCB0byBwcm9ncmFtIHRoZXNl IHRvIGFkdmFuY2UKPiArCSAqIHRoZSBpbmRleC4KPiArCSAqLwo+ICsJZm9yIChpID0gMDsgaSA8 IDI1NjsgaSsrKSB7Cj4gKwkJZW50cnkgPSAmbHV0W2kgKiA4ICogMTI4XTsKPiArCQlJOTE1X1dS SVRFKFBSRUNfUEFMX0RBVEEocGlwZSksIGlsa19sdXRfMTJwNF91ZHcoZW50cnkpKTsKPiArCQlJ OTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlwZSksIGlsa19sdXRfMTJwNF9sZHcoZW50cnkpKTsK PiArCX0KPiArCj4gKwkvKiBUaGUgbGFzdCBlbnRyeSBpbiB0aGUgTFVUIGlzIHRvIGJlIHByb2dy YW1tZWQgaW4gR0NNQVggKi8KPiArCWVudHJ5ID0gJmx1dFsyNTYgKiA4ICogMTI4XTsKPiArCWlj bF9sb2FkX2djbWF4KGNydGNfc3RhdGUsIGVudHJ5KTsKPiArCWl2Yl9sb2FkX2x1dF9leHRfbWF4 KGNydGMpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBpY2xfbG9hZF9sdXRzKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAljb25zdCBzdHJ1Y3QgZHJt X3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0Owo+ IEBAIC03NzUsMTAgKzg4NiwxNyBAQCBzdGF0aWMgdm9pZCBpY2xfbG9hZF9sdXRzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJaWYgKGNydGNfc3RhdGUtPmJh c2UuZGVnYW1tYV9sdXQpCj4gIAkJZ2xrX2xvYWRfZGVnYW1tYV9sdXQoY3J0Y19zdGF0ZSk7Cj4g IAo+IC0JaWYgKChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlICYgR0FNTUFfTU9ERV9NT0RFX01BU0sp ID09Cj4gLQkgICAgR0FNTUFfTU9ERV9NT0RFXzhCSVQpIHsKPiArCXN3aXRjaCAoY3J0Y19zdGF0 ZS0+Z2FtbWFfbW9kZSAmIEdBTU1BX01PREVfTU9ERV9NQVNLKSB7Cj4gKwljYXNlIEdBTU1BX01P REVfTU9ERV84QklUOgo+ICAJCWk5eHhfbG9hZF9sdXRzKGNydGNfc3RhdGUpOwo+IC0JfSBlbHNl IHsKPiArCQlicmVhazsKPiArCj4gKwljYXNlIEdBTU1BX01PREVfTU9ERV8xMkJJVF9NVUxUSV9T RUdNRU5URUQ6Cj4gKwkJaWNsX3Byb2dyYW1fZ2FtbWFfc3VwZXJmaW5lX3NlZ21lbnQoY3J0Y19z dGF0ZSk7Cj4gKwkJaWNsX3Byb2dyYW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjcnRjX3N0YXRlKTsK PiArCQlicmVhazsKPiArCj4gKwlkZWZhdWx0Ogo+ICAJCWJkd19sb2FkX2x1dF8xMChjcnRjLCBn YW1tYV9sdXQsIFBBTF9QUkVDX0lOREVYX1ZBTFVFKDApKTsKPiAgCQlpdmJfbG9hZF9sdXRfZXh0 X21heChjcnRjKTsKPiAgCX0KPiBAQCAtMTIwOSw3ICsxMzI3LDcgQEAgc3RhdGljIHUzMiBpY2xf Z2FtbWFfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAg CSAgICBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkKPiAgCQlnYW1tYV9t b2RlIHw9IEdBTU1BX01PREVfTU9ERV84QklUOwo+ICAJZWxzZQo+IC0JCWdhbW1hX21vZGUgfD0g R0FNTUFfTU9ERV9NT0RFXzEwQklUOwo+ICsJCWdhbW1hX21vZGUgfD0gR0FNTUFfTU9ERV9NT0RF XzEyQklUX01VTFRJX1NFR01FTlRFRDsKPiAgCj4gIAlyZXR1cm4gZ2FtbWFfbW9kZTsKPiAgfQo+ IC0tIAo+IDIuMTcuMQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=