From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [v3 1/3] drm/i915/icl: Add icl pipe degamma and gamma support Date: Thu, 29 Nov 2018 15:07:32 -0800 Message-ID: <20181129230732.GA31345@mdroper-desk.amr.corp.intel.com> References: <1543503103-882-1-git-send-email-uma.shankar@intel.com> <1543503103-882-2-git-send-email-uma.shankar@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 C16826E02B for ; Thu, 29 Nov 2018 23:07:33 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1543503103-882-2-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Uma Shankar Cc: intel-gfx@lists.freedesktop.org, ville.syrjala@intel.com, maarten.lankhorst@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMjksIDIwMTggYXQgMDg6MjE6NDFQTSArMDUzMCwgVW1hIFNoYW5rYXIgd3Jv dGU6Cj4gQWRkIHN1cHBvcnQgZm9yIGljbCBwaXBlIGRlZ2FtbWEgYW5kIGdhbW1hLgo+IAo+IHYy OiBSZW1vdmVkIGEgUE9TVElOR19SRUFEIGFuZCBjb3JyZWN0ZWQgdGhlIEJpdAo+IERlZmluaXRp b24gYXMgcGVyIE1hYXJ0ZW4ncyBjb21tZW50cy4KPiAKPiB2MzogQWRkcmVzc2VkIE1hdHQncyBy ZXZpZXcgY29tbWVudHMuIFJlbW92ZWQgcm13IHBhdHRlcm5zCj4gYXMgc3VnZ2VzdGVkIGJ5IE1h dHQuCj4gCj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICB8ICAzICsrCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgfCA3MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMo KykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA0N2JhZjJmZS4uYjAxNDdiZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC03MDU4LDYgKzcwNTgsOSBAQCBlbnVt IHsKPiAgI2RlZmluZSBHQU1NQV9NT0RFX01PREVfMTJCSVQJKDIgPDwgMCkKPiAgI2RlZmluZSBH QU1NQV9NT0RFX01PREVfU1BMSVQJKDMgPDwgMCkKPiAgCj4gKyNkZWZpbmUgUFJFX0NTQ19HQU1N QV9FTkFCTEUJKDEgPDwgMzEpCj4gKyNkZWZpbmUgUE9TVF9DU0NfR0FNTUFfRU5BQkxFCSgxIDw8 IDMwKQo+ICsKPiAgLyogRE1DL0NTUiAqLwo+ICAjZGVmaW5lIENTUl9QUk9HUkFNKGkpCQlfTU1J TygweDgwMDAwICsgKGkpICogNCkKPiAgI2RlZmluZSBDU1JfU1NQX0JBU0VfQUREUl9HRU45CTB4 MDAwMDJGQzAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3Iu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiBpbmRleCA1MTI3ZGEyLi43 YzhjOTk2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gQEAgLTQyMiw2ICs0 MjIsNyBAQCBzdGF0aWMgdm9pZCBiZHdfbG9hZF9kZWdhbW1hX2x1dChzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKnN0YXRlKQo+ICBzdGF0aWMgdm9pZCBiZHdfbG9hZF9nYW1tYV9sdXQoc3RydWN0IGRy bV9jcnRjX3N0YXRlICpzdGF0ZSwgdTMyIG9mZnNldCkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+Y3J0Yy0+ZGV2KTsKPiArCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoc3Rh dGUpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKHN0YXRlLT5jcnRjKS0+cGlw ZTsKPiAgCXVpbnQzMl90IGksIGx1dF9zaXplID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9y LmdhbW1hX2x1dF9zaXplOwo+ICAKPiBAQCAtNDY0LDYgKzQ2NSw5IEBAIHN0YXRpYyB2b2lkIGJk d19sb2FkX2dhbW1hX2x1dChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLCB1MzIgb2Zmc2V0 KQo+ICAJCUk5MTVfV1JJVEUoUFJFQ19QQUxfR0NfTUFYKHBpcGUsIDEpLCAoMSA8PCAxNikgLSAx KTsKPiAgCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0dDX01BWChwaXBlLCAyKSwgKDEgPDwgMTYpIC0g MSk7Cj4gIAl9Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gKwkJaW50 ZWxfc3RhdGUtPmdhbW1hX21vZGUgfD0gUE9TVF9DU0NfR0FNTUFfRU5BQkxFOwoKaWNsX2xvYWRf bHV0cyB1cGRhdGVzIHRoaXMgZmllbGQgYXMgc29vbiBhcyB0aGlzIGZ1bmN0aW9uIHJldHVybnMs IHNvIGl0Cm1pZ2h0IGJlIGVhc2llciB0byBtYWtlIHRoaXMgdXBkYXRlIHRoZXJlLCBhdCB0aGUg c2FtZSBwb2ludCB5b3Ugc2V0Ck1PREVfMTBCSVQuCgpIb3dldmVyIHRoZSBvdmVyYWxsIHVzZSBh bmQgaGFuZGxpbmcgb2YgZ2FtbWFfbW9kZSBieSB0aGUgZHJpdmVyIHNlZW1zCnN0cmFuZ2UuICBH ZW5lcmFsbHkgd2UgdHJ5IHRvIGNhbGN1bGF0ZSBpbXBvcnRhbnQgc3RhdGUgdmFyaWFibGVzIGR1 cmluZwphdG9taWMgY2hlY2sgYW5kIHRoZW4gdXNlIHRob3NlIGRlcml2ZWQgc3RhdGUgdmFsdWVz IGR1cmluZyB0aGUgY29tbWl0CnByb2dyYW1taW5nIHBoYXNlLCBidXQgd2UncmUgbm90IGZvbGxv d2luZyB0aGF0IHBhdHRlcm4gd2l0aCB0aGlzIGZpZWxkLgpDYW4gd2UganVzdCBtb3ZlIHRoZSBs b2dpYyB0byBidWlsZCB0aGlzIGZpZWxkIGludG8gdGhlIGF0b21pYyBjaGVjayBwaGFzZQpzbyB0 aGF0IHdlJ3JlIG5vdCB0cnlpbmcgdG8gdXBkYXRlIHN0YXRlIGR1cmluZyB0aGUgY29tbWl0PwoK QWN0dWFsbHksIGxvb2tpbmcgY2xvc2VyLCBJJ20gbm90IHN1cmUgaWYgd2UgZXZlbiBuZWVkIHRo aXMgZmllbGQuICBGb3IKbW9zdCBwbGF0Zm9ybXMgd2UgaGF2ZSBhIGZpeGVkIHNldCBvZiBiaXRz IHRoYXQgd2Ugd3JpdGUgKGUuZy4sClBSRV9DU0NfR0FNTUFfRU5BQkxFIHwgUE9TVF9DU0NfR0FN TUFfRU5BQkxFIHwgR0FNTUFfTU9ERV8xMF9CSVQgZm9yCklDTCksIHNvIHdlIGNhbiBqdXN0IHB1 dCB0aG9zZSBkaXJlY3RseSBpbnRvIHRoZSBJOTE1X1dSSVRFIHN0YXRlbWVudC4KVW5sZXNzIEkn bSBvdmVybG9va2luZyBzb21ldGhpbmcsIHRoZSBvbmx5IHBsYWNlIHdoZXJlIHRoaXMgdmFyaWFi bGUgaXMKdXNlZCBmb3Igc29tZXRoaW5nIGVsc2UgaXMgaW4gaGFzd2VsbF9sb2FkX2x1dHMoKSB3 aGVyZSB3ZSBoYXZlIHRvCmRpc2FibGUgSVBTIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIExVVCdzIGlm IHdlJ3JlIGluIHNwbGl0IGdhbW1hIG1vZGUuCkJ1dCB0aGUgZHJpdmVyIGl0c2VsZiBvbmx5IGV2 ZXIgc2V0cyA4QklUIGZvciBIYXN3ZWxsIGFzIGZhciBhcyBJIGNhbgpzZWUuICBCSU9TIG1pZ2h0 IGhhdmUgcHV0IHVzIGluIHNwbGl0IG1vZGUgYmVmb3JlIHRoZSBkcml2ZXIgbG9hZGVkLCBidXQK dGhhdCBtaWdodCBiZSBlYXNpZXIgdG8gc2FuaXRpemUgZHVyaW5nIGhhcmR3YXJlIHN0YXRlIHJl YWRvdXQ/CgoKPiAgfQo+ICAKPiAgLyogTG9hZHMgdGhlIHBhbGV0dGUvZ2FtbWEgdW5pdCBmb3Ig dGhlIENSVEMgb24gQnJvYWR3ZWxsKy4gKi8KPiBAQCAtNTIzLDYgKzUyNyw1MyBAQCBzdGF0aWMg dm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ ICAJCUk5MTVfV1JJVEUoUFJFX0NTQ19HQU1DX0RBVEEocGlwZSksICgxIDw8IDE2KSk7Cj4gIH0K PiAgCj4gK3N0YXRpYyB2b2lkIGljbF9sb2FkX2RlZ2FtbWFfbHV0KHN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoc3RhdGUtPmNydGMtPmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq aW50ZWxfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKHN0YXRlKTsKPiArCWVudW0gcGlwZSBw aXBlID0gdG9faW50ZWxfY3J0YyhzdGF0ZS0+Y3J0YyktPnBpcGU7Cj4gKwljb25zdCB1aW50MzJf dCBsdXRfc2l6ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5jb2xvci5kZWdhbW1hX2x1dF9zaXpl Owo+ICsJdWludDMyX3QgaTsKPiArCj4gKwkvKgo+ICsJICogV2hlbiBzZXR0aW5nIHRoZSBhdXRv LWluY3JlbWVudCBiaXQsIHRoZSBoYXJkd2FyZSBzZWVtcyB0bwo+ICsJICogaWdub3JlIHRoZSBp bmRleCBiaXRzLCBzbyB3ZSBuZWVkIHRvIHJlc2V0IGl0IHRvIGluZGV4IDAKPiArCSAqIHNlcGFy YXRlbHkuCj4gKwkgKi8KPiArCUk5MTVfV1JJVEUoUFJFX0NTQ19HQU1DX0lOREVYKHBpcGUpLCAw KTsKPiArCUk5MTVfV1JJVEUoUFJFX0NTQ19HQU1DX0lOREVYKHBpcGUpLCBQUkVfQ1NDX0dBTUNf QVVUT19JTkNSRU1FTlQpOwo+ICsKPiArCWlmIChzdGF0ZS0+ZGVnYW1tYV9sdXQpIHsKPiArCQlz dHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0KPiArCQkJKHN0cnVjdCBkcm1fY29sb3JfbHV0ICop IHN0YXRlLT5kZWdhbW1hX2x1dC0+ZGF0YTsKPiArCQlmb3IgKGkgPSAwOyBpIDwgbHV0X3NpemU7 IGkrKykgewo+ICsJCQkvKgo+ICsJCQkgKiBGaXJzdCAzMyBlbnRyaWVzIHJlcHJlc2VudCByYW5n ZSBmcm9tIDAgdG8gMS4wCj4gKwkJCSAqIDM0dGggYW5kIDM1dGggZW50cnkgd2lsbCByZXByZXNl bnQgZXh0ZW5kZWQgcmFuZ2UKPiArCQkJICogaW5wdXRzIDMuMCBhbmQgNy4wIHJlc3BlY3RpdmVs eSwgY3VycmVudGx5IGNsYW1wZWQKPiArCQkJICogYXQgMS4wLgo+ICsJCQkgKiBUb0RvOiBFeHRl bmQgdG8gbWF4IDcuMC4KPiArCQkJICovCj4gKwkJCXVpbnQzMl90IHdvcmQgPQo+ICsJCQkJZHJt X2NvbG9yX2x1dF9leHRyYWN0KGx1dFtpXS5yZWQsIDE2KTsKCkEgZmV3IG1pbm9yIHRoaW5ncyBJ IG5vdGljZTsgbm90IHN1cmUgaWYgeW91IHdhbnQgdG8gYm90aGVyIGFkZHJlc3NpbmcKdGhlbSBh dCB0aGUgbW9tZW50IG9yIG5vdCwgYnV0IEkgZmlndXJlZCBJJ2QgcG9pbnQgdGhlbSBvdXQgbm93 OgoKICogVGVjaG5pY2FsbHkgd2UgY291bGQganVzdCBzZXQgd29yZCBkaXJlY3RseSB0byBsdXRb aV0ucmVkIHNpbmNlIHdlJ3JlCiAgIGV4dHJhY3RpbmcgdGhlIGZ1bGwgMTYtYml0cyAoc28gbm8g cm91bmRpbmcpIGFuZCBvdXIgdTE2IGlucHV0IGNhbid0CiAgIGhvbGQgYW55IHZhbHVlIG91dHNp ZGUgb3VyIGNsYW1waW5nIHJhbmdlIG9mIFswLDAuOTk5OThdLgoKICogSXQncyBhIG1pbm9yIGRl dmlhdGlvbiwgYnV0IHRoZSBzY2FsaW5nIGlzIHNsaWdodGx5IG9mZiBoZXJlIHN1Y2gKICAgdGhh dCB0aGUgMzNyZCBlbnRyeSB3cml0dGVuIGJ5IHRoaXMgbG9vcCAod2hpY2ggcmVwcmVzZW50cyBh IDEuMAogICBpbnB1dCkgd2lsbCBiZSBjbGFtcGVkIHRvIDB4RkZGRiAoMC45OTk5OCkgcmF0aGVy IHRoYW4gMS4wLiAgU28KICAgdXNlcnNwYWNlIHdvbid0IGJlIGFibGUgdG8gZXhhY3RseSBtYXRj aCB0aGUgbGluZWFyIHRhYmxlIHdlJ2QKICAgb3RoZXJ3aXNlIHByb2dyYW0gaWYgbm8gdXNlcnNw YWNlIExVVCB3YXMgcHJvdmlkZWQuCgogKiBHTEsgYW5kIGdlbjExIGRldmlhdGUgZnJvbSBvdXIg b3RoZXIgcGxhdGZvcm1zIGluIHRoYXQgdGhleSBqdXN0IHVzZQogICBhIHNpbmdsZSB2YWx1ZSBm b3IgcmVkLCBncmVlbiwgYW5kIGJsdWUgcmF0aGVyIHRoYW4gYWNjZXB0aW5nCiAgIHNlcGFyYXRl IHZhbHVlcyBmb3IgZWFjaC4gIEdMSyBwdW50cyBvbiB0aGlzIGFuZCBkb2Vzbid0IGV2ZW4gZXhw b3NlCiAgIGRlZ2FtbWEgdG8gdXNlcnNwYWNlIChqdXN0IGxvYWRzIGEgbGluZWFyIHRhYmxlKSwg d2hlcmVhcyB5b3VyIHBhdGNoCiAgIHNpbGVudGx5IGlnbm9yZXMgZ3JlZW4vYmx1ZSB2YWx1ZXMs IHdoaWNoIG1pZ2h0IGJlIGEgc3VycHJpc2UgdG8KICAgdXNlcnNwYWNlLiAgTWF5YmUgd2Ugc2hv dWxkIHN3aXRjaCBHTEsgY29kZSB0byBkbyB3aGF0IHlvdSBkbyBoZXJlLAogICBidXQgYWxzbyBh ZGQgc29tZSB2YWxpZGF0aW9uIG9mIG5ldyB0YWJsZSBibG9icyBkdXJpbmcgYXRvbWljLWNoZWNr CiAgIHN1Y2ggdGhhdCB3ZSByZWplY3QgYW55IHRhYmxlIHdpdGggbm9uLWVxdWFsIHZhbHVlcyBm b3Igci9nL2IuICBXaGlsZQogICB3ZSdyZSBhdCBpdCwgd2UgY291bGQgYWxzbyBjaGVjayB0byBl bnN1cmUgdGhhdCBMVVQgZW50cmllcyBhcmUgbmV2ZXIKICAgZGVjcmVhc2luZywgc2luY2UgdGhh dCdzIGFsc28gYSBoYXJkd2FyZSByZXF1aXJlbWVudCBkb2N1bWVudGVkIGluCiAgIHRoZSBic3Bl Yy4KCgpNYXR0Cgo+ICsJCQlJOTE1X1dSSVRFKFBSRV9DU0NfR0FNQ19EQVRBKHBpcGUpLCB3b3Jk KTsKPiArCQl9Cj4gKwl9IGVsc2Ugewo+ICsJCS8qIGxvYWQgYSBsaW5lYXIgdGFibGUuICovCj4g KwkJZm9yIChpID0gMDsgaSA8IGx1dF9zaXplOyBpKyspIHsKPiArCQkJdWludDMyX3QgdiA9IChp ICogKDEgPDwgMTYpKSAvIChsdXRfc2l6ZSAtIDEpOwo+ICsKPiArCQkJSTkxNV9XUklURShQUkVf Q1NDX0dBTUNfREFUQShwaXBlKSwgdik7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWludGVsX3N0YXRl LT5nYW1tYV9tb2RlIHw9IFBSRV9DU0NfR0FNTUFfRU5BQkxFOwo+ICsKPiArCS8qIENsYW1wIHZh bHVlcyA+IDEuMC4gKi8KPiArCXdoaWxlIChpKysgPCAzNSkKPiArCQlJOTE1X1dSSVRFKFBSRV9D U0NfR0FNQ19EQVRBKHBpcGUpLCAoMSA8PCAxNikpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBn bGtfbG9hZF9sdXRzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAgCXN0cnVj dCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5jcnRjOwo+IEBAIC02MDYsNiArNjU3LDI2IEBAIHN0 YXRpYyB2b2lkIGNoZXJyeXZpZXdfbG9hZF9sdXRzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3Rh dGUpCj4gIAlpOXh4X2xvYWRfbHV0c19pbnRlcm5hbChjcnRjLCBOVUxMLCB0b19pbnRlbF9jcnRj X3N0YXRlKHN0YXRlKSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGljbF9sb2FkX2x1dHMoc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gc3RhdGUtPmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJ c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0 ZShzdGF0ZSk7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7 Cj4gKwo+ICsJaWYgKGNydGNfc3RhdGVfaXNfbGVnYWN5X2dhbW1hKHN0YXRlKSkgewo+ICsJCWhh c3dlbGxfbG9hZF9sdXRzKHN0YXRlKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJaWNsX2xv YWRfZGVnYW1tYV9sdXQoc3RhdGUpOwo+ICsJYmR3X2xvYWRfZ2FtbWFfbHV0KHN0YXRlLCAwKTsK PiArCj4gKwlpbnRlbF9zdGF0ZS0+Z2FtbWFfbW9kZSB8PSBHQU1NQV9NT0RFX01PREVfMTBCSVQ7 Cj4gKwlJOTE1X1dSSVRFKEdBTU1BX01PREUocGlwZSksIGludGVsX3N0YXRlLT5nYW1tYV9tb2Rl KTsKPiArfQo+ICsKPiAgdm9pZCBpbnRlbF9jb2xvcl9sb2FkX2x1dHMoc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Y19zdGF0ZS0+Y3J0Yy0+ZGV2Owo+IEBAIC02NjIsNiArNzMzLDggQEAgdm9pZCBpbnRlbF9jb2xv cl9pbml0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCX0gZWxzZSBpZiAoSVNfR0VNSU5JTEFL RShkZXZfcHJpdikgfHwgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKPiAgCQlkZXZfcHJpdi0+ ZGlzcGxheS5sb2FkX2NzY19tYXRyaXggPSBpbGtfbG9hZF9jc2NfbWF0cml4Owo+ICAJCWRldl9w cml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGdsa19sb2FkX2x1dHM7Cj4gKwl9IGVsc2UgaWYgKElT X0lDRUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0g aWNsX2xvYWRfbHV0czsKPiAgCX0gZWxzZSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9s dXRzID0gaTl4eF9sb2FkX2x1dHM7Cj4gIAl9Cj4gLS0gCj4gMS45LjEKPiAKCi0tIApNYXR0IFJv cGVyCkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBE ZXZlbG9wbWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK