From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v2 5/7] drm/i915/icl: Add support for multi segmented gamma mode Date: Mon, 8 Apr 2019 13:19:47 +0300 Message-ID: <20190408101947.GZ3888@intel.com> References: <1554139811-13280-1-git-send-email-uma.shankar@intel.com> <1554139811-13280-6-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1554139811-13280-6-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: dcastagna@chromium.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, ville.syrjala@intel.com, harry.wentland@amd.com, maarten.lankhorst@intel.com List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBBcHIgMDEsIDIwMTkgYXQgMTE6MDA6MDlQTSArMDUzMCwgVW1hIFNoYW5rYXIgd3Jv dGU6Cj4gR2VuMTEgaW50cm9kdWNlZCBhIG5ldyBnYW1tYSBtb2RlIGkuZSwgbXVsdGkgc2VnbWVu dGVkCj4gZ2FtbWEgbW9kZS4gQWRkZWQgc3VwcG9ydCBmb3IgdGhlIHNhbWUuCj4gCj4gU2lnbmVk LW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyB8IDE2MSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCj4gIGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgICAgICAgICAg fCAgIDMgKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDE2MSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+IGluZGV4IDg0ZDkzZWMuLmQ4 MWRlMzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiBAQCAtNTcsNiArNTcs MTIgQEAKPiAgCj4gICNkZWZpbmUgSUxLX0NTQ19QT1NUT0ZGX0xJTUlURURfUkFOR0UgKDE2ICog KDEgPDwgMTIpIC8gMjU1KQo+ICAKPiArI2RlZmluZSBMRUdBQ1lfUEFMRVRURV9NT0RFXzhCSVQg ICAgICAgICAgICAgICBCSVQoMCkKPiArI2RlZmluZSBQUkVDSVNJT05fUEFMRVRURV9NT0RFXzEw QklUICAgICAgICAgICBCSVQoMSkKPiArI2RlZmluZSBJTlRFUlBPTEFURURfR0FNTUFfTU9ERV8x MkJJVCAgICAgICAgICBCSVQoMikKPiArI2RlZmluZSBNVUxUSV9TRUdNRU5URURfR0FNTUFfTU9E RV8xMkJJVCAgICAgICBCSVQoMykKPiArI2RlZmluZSBTUExJVF9HQU1NQV9NT0RFXzEyQklUICAg ICAgICAgICAgICAgICBCSVQoNCkKPiArCj4gIHN0YXRpYyBjb25zdCB1MTYgaWxrX2NzY19vZmZf emVyb1szXSA9IHt9Owo+ICAKPiAgc3RhdGljIGNvbnN0IHUxNiBpbGtfY3NjX2NvZWZmX2lkZW50 aXR5WzldID0gewo+IEBAIC05Miw2ICs5OCw5IEBACj4gIAkweDA4MDAsIDB4MDEwMCwgMHgwODAw LAo+ICB9Owo+ICAKPiArI2RlZmluZSBHRU4xMV9HRVRfTVMxMEJJVFNfT0ZfTFVUKGx1dCkgKCgo bHV0KSA+PiA2KSAmIDB4M0ZGKQo+ICsjZGVmaW5lIEdFTjExX0dFVF9MUzZCSVRTX09GX0xVVChs dXQpICAoKGx1dCkgJiAweDNGKQoKSSB0aGluayB0aGlzIGlzIGp1c3QgdGhlIGlsaysgMTIuNCBm b3JtYXQuIElJUkMgSSBoYWQgc29tZSBraW5kIG9mCmlsa19sdXRfMTJwNF9sZHcvdWR3KCkgZnVu Y3MgZm9yIHRoZXNlIGluIG15IGJyYW5jaCBzb21ld2hlcmUuCkknZCBsaWtlIHRvIHNlZSBzb21l aHRpbmcgbGlrZSB0aGF0IGluIHRoaXMgcGF0Y2guCgo+ICsKPiAgc3RhdGljIGJvb2wgbHV0X2lz X2xlZ2FjeShjb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmx1dCkKPiAgewo+ICAJcmV0 dXJuIGRybV9jb2xvcl9sdXRfc2l6ZShsdXQpID09IExFR0FDWV9MVVRfTEVOR1RIOwo+IEBAIC02 NzAsMTYgKzY3OSwxNDkgQEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCQliZHdfbG9hZF9nYW1tYV9sdXQoY3J0 Y19zdGF0ZSwgMCk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGljbF9wcm9ncmFtX2NvYXJzZV9z ZWdtZW50X2x1dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ICsJCQkJCSAgICpjcnRj X3N0YXRlLAo+ICsJCQkJCSAgIHN0cnVjdCBkcm1fY29sb3JfbHV0ICpnYW1tYV9sdXQsCj4gKwkJ CQkJICAgdTMyIG9mZnNldCkKCkkgdGhpbmsgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgcGF0dGVybiB3 ZSBzaG91bGQgaGF2ZSBzb21ldGhpbmcgbGlrZToKCmljbF9sb2FkX2x1dF9jb2Fyc2Vfc2VnbWVu dChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYik7CmljbF9sb2FkX2x1dF9maW5lX3Nl Z21lbnQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKTsKCj4gK3sKPiArCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gZ2FtbWFfbHV0Owo+ ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICsJdTMyIGksIGx1dF9zaXplLCB3b3Jk Owo+ICsKPiArCVdBUk5fT04ob2Zmc2V0ICYgflBBTF9QUkVDX0lOREVYX1ZBTFVFX01BU0spOwo+ ICsKPiArCUk5MTVfV1JJVEUoUFJFQ19QQUxfSU5ERVgocGlwZSksCj4gKwkJICAgKG9mZnNldCA/ IFBBTF9QUkVDX1NQTElUX01PREUgOiAwKSB8Cj4gKwkJICAgUEFMX1BSRUNfQVVUT19JTkNSRU1F TlQgfAo+ICsJCSAgIG9mZnNldCk7Cj4gKwo+ICsJaWYgKGx1dCAmJiBjcnRjX3N0YXRlLT5iYXNl LmdhbW1hX21vZGVfdHlwZSA9PQo+ICsJCQkJTVVMVElfU0VHTUVOVEVEX0dBTU1BX01PREVfMTJC SVQpIHsKPiArCQlsdXRfc2l6ZSA9IDkgKyA1MTQ7Cj4gKwkJZm9yIChpID0gOTsgaSA8IGx1dF9z aXplOyBpKyspIHsKPiArCQkJLyogRm9yIEV2ZW4gSW5kZXggKi8KPiArCQkJd29yZCA9IChHRU4x MV9HRVRfTFM2QklUU19PRl9MVVQobHV0W2ldLnJlZCkgPDwgMjApIHwKPiArCQkJCShHRU4xMV9H RVRfTFM2QklUU19PRl9MVVQobHV0W2ldLmdyZWVuKSA8PCAxMCkgfAo+ICsJCQkJR0VOMTFfR0VU X0xTNkJJVFNfT0ZfTFVUKGx1dFtpXS5ibHVlKTsKPiArCj4gKwkJCUk5MTVfV1JJVEUoUFJFQ19Q QUxfREFUQShwaXBlKSwgd29yZCk7Cj4gKwo+ICsJCQkvKiBGb3IgT0REIGluZGV4ICovCj4gKwkJ CXdvcmQgPSAoR0VOMTFfR0VUX01TMTBCSVRTX09GX0xVVChsdXRbaV0ucmVkKSA8PCAyMCkgfAo+ ICsJCQkJKEdFTjExX0dFVF9NUzEwQklUU19PRl9MVVQobHV0W2ldLmdyZWVuKSA8PCAxMCkgfAo+ ICsJCQkJR0VOMTFfR0VUX01TMTBCSVRTX09GX0xVVChsdXRbaV0uYmx1ZSk7Cj4gKwo+ICsJCQlJ OTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlwZSksIHdvcmQpOwo+ICsJCX0KPiArCX0KPiArCQo+ ICsJLyoKPiArCSAqIFByb2dyYW0gdGhlIG1heCByZWdpc3RlciB0byBjbGFtcCB2YWx1ZXMgPiAx LjAuCj4gKwkgKiBUb0RvOiBFeHRlbmQgdGhlIEFCSSB0byBiZSBhYmxlIHRvIHByb2dyYW0gdmFs dWVzCj4gKwkgKiBmcm9tIDEuMAo+ICsJICovCj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFMX0dDX01B WChwaXBlLCAwKSwgKDEgPDwgMTYpKTsKPiArCUk5MTVfV1JJVEUoUFJFQ19QQUxfR0NfTUFYKHBp cGUsIDEpLCAoMSA8PCAxNikpOwo+ICsJSTkxNV9XUklURShQUkVDX1BBTF9HQ19NQVgocGlwZSwg MiksICgxIDw8IDE2KSk7Cj4gKwo+ICsJLyoKPiArCSAqIFByb2dyYW0gdGhlIG1heCByZWdpc3Rl ciB0byBjbGFtcCB2YWx1ZXMgPiAxLjAuCj4gKwkgKiBUb0RvOiBFeHRlbmQgdGhlIEFCSSB0byBi ZSBhYmxlIHRvIHByb2dyYW0gdmFsdWVzCj4gKwkgKiBmcm9tIDEuMCB0byAzLjAKPiArCSAqLwo+ ICsJSTkxNV9XUklURShQUkVDX1BBTF9FWFRfR0NfTUFYKHBpcGUsIDApLCAoMSA8PCAxNikpOwo+ ICsJSTkxNV9XUklURShQUkVDX1BBTF9FWFRfR0NfTUFYKHBpcGUsIDEpLCAoMSA8PCAxNikpOwo+ ICsJSTkxNV9XUklURShQUkVDX1BBTF9FWFRfR0NfTUFYKHBpcGUsIDIpLCAoMSA8PCAxNikpOwoK RG91YmxlZCB0aGluZy4gQnV0IHdlIGNhbiBqdXN0IGRyb3AgdGhlc2UgYW5kIGNhbGwKaXZiX2xv YWRfbHV0XzEwX21heCgpIGZyb20gaGlnaGVyIHVwIGluc3RlYWQuCgo+ICsKPiArCS8qCj4gKwkg KiBQcm9ncmFtIHRoZSBnYyBtYXggMiByZWdpc3RlciB0byBjbGFtcCB2YWx1ZXMgPiAxLjAuCj4g KwkgKiBUb0RvOiBFeHRlbmQgdGhlIEFCSSB0byBiZSBhYmxlIHRvIHByb2dyYW0gdmFsdWVzCj4g KwkgKiBmcm9tIDMuMCB0byA3LjAKPiArCSovCj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSAxMCB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+ICsJCUk5MTVfV1JJVEUoUFJFQ19Q QUxfRVhUMl9HQ19NQVgocGlwZSwgMCksICgxIDw8IDE2KSk7Cj4gKwkJSTkxNV9XUklURShQUkVD X1BBTF9FWFQyX0dDX01BWChwaXBlLCAxKSwgKDEgPDwgMTYpKTsKPiArCQlJOTE1X1dSSVRFKFBS RUNfUEFMX0VYVDJfR0NfTUFYKHBpcGUsIDIpLCAoMSA8PCAxNikpOwo+ICsJfQo+ICt9Cj4gKwo+ ICtzdGF0aWMgdm9pZCBpY2xfcHJvZ3JhbV9maW5lX3NlZ21lbnRfbHV0KGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlCj4gKwkJCQkJICpjcnRjX3N0YXRlLAo+ICsJCQkJCSBzdHJ1Y3QgZHJt X2NvbG9yX2x1dCAqZ2FtbWFfbHV0LAo+ICsJCQkJCSB1MzIgb2Zmc2V0KQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7Cj4gKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwllbnVtIHBpcGUgcGlw ZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7Cj4gKwl1MzIgaSwgd29yZCwgbHV0X3NpemUg PSA5Owo+ICsKPiArCVdBUk5fT04ob2Zmc2V0ICYgflBBTF9QUkVDX01VTFRJX1NFR01FTlRfSU5E RVhfVkFMVUVfTUFTSyk7Cj4gKwo+ICsJSTkxNV9XUklURShQUkVDX1BBTF9NVUxUSV9TRUdfSU5E RVgocGlwZSksCj4gKwkJICAgKFBBTF9QUkVDX0FVVE9fSU5DUkVNRU5UIHwgb2Zmc2V0KSk7Cj4g Kwo+ICsJaWYgKGdhbW1hX2x1dCkgewo+ICsJCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPQo+ ICsJCQkoc3RydWN0IGRybV9jb2xvcl9sdXQgKilnYW1tYV9sdXQ7Cj4gKwo+ICsJCWZvciAoaSA9 IDA7IGkgPCBsdXRfc2l6ZTsgaSsrKSB7Cj4gKwkJCS8qIEZvciBFdmVuIEluZGV4ICovCj4gKwkJ CXdvcmQgPSAoR0VOMTFfR0VUX0xTNkJJVFNfT0ZfTFVUKGx1dFtpXS5yZWQpIDw8IDIwKSB8Cj4g KwkJCQkoR0VOMTFfR0VUX0xTNkJJVFNfT0ZfTFVUKGx1dFtpXS5ncmVlbikgPDwgMTApIHwKPiAr CQkJCUdFTjExX0dFVF9MUzZCSVRTX09GX0xVVChsdXRbaV0uYmx1ZSk7Cj4gKwo+ICsJCQlJOTE1 X1dSSVRFKFBSRUNfUEFMX01VTFRJX1NFR19EQVRBKHBpcGUpLCB3b3JkKTsKPiArCj4gKwkJCS8q IEZvciBPREQgaW5kZXggKi8KPiArCQkJd29yZCA9IChHRU4xMV9HRVRfTVMxMEJJVFNfT0ZfTFVU KGx1dFtpXS5yZWQpIDw8IDIwKSB8Cj4gKwkJCQkoR0VOMTFfR0VUX01TMTBCSVRTX09GX0xVVChs dXRbaV0uZ3JlZW4pIDw8IDEwKSB8Cj4gKwkJCQlHRU4xMV9HRVRfTVMxMEJJVFNfT0ZfTFVUKGx1 dFtpXS5ibHVlKTsKPiArCj4gKwkJCUk5MTVfV1JJVEUoUFJFQ19QQUxfTVVMVElfU0VHX0RBVEEo cGlwZSksIHdvcmQpOwo+ICsJCX0KPiArCX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaWNsX2xv YWRfZ2FtbWFfbXVsdGlfc2VnbWVudGVkX2x1dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZQo+ICsJCQkJCSAgICAgICAqY3J0Y19zdGF0ZSwgdTMyIG9mZnNldCkKPiArewo+ICsJY29uc3Qg c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9tb2RlX2Jsb2IgPQo+ICsJCQkJCWNydGNf c3RhdGUtPmJhc2UuZ2FtbWFfbW9kZTsKPiArCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpnYW1tYV9s dXQ7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlmIChnYW1tYV9tb2RlX2Jsb2IpIHsKPiArCQlzdHJ1 Y3QgZHJtX2NvbG9yX21vZGVfbHV0ICphcmcgPSBnYW1tYV9tb2RlX2Jsb2ItPmRhdGE7Cj4gKwkJ dTY0IF9fdXNlciAqcHJvcHNfcHRyID0gKHU2NCBfX3VzZXIgKikodW5zaWduZWQgbG9uZykoYXJn LT5sdXQpOwo+ICsKPiArCQlEUk1fSU5GTygiR2FtbWEgTW9kZT0lc1xuIiwgYXJnLT5uYW1lKTsK PiArCQlnYW1tYV9sdXQgPSBrbWFsbG9jKChzaXplb2Yoc3RydWN0IGRybV9jb2xvcl9sdXQpICog YXJnLT5jb3VudCksCj4gKwkJCQkgICAgR0ZQX0tFUk5FTCk7Cj4gKwkJcmV0ID0gY29weV9mcm9t X3VzZXIoZ2FtbWFfbHV0LCBwcm9wc19wdHIsCj4gKwkJCQkgICAgIHNpemVvZihzdHJ1Y3QgZHJt X2NvbG9yX2x1dCkgKiBhcmctPmNvdW50KTsKPiArCX0KCldoYXQncyB0aGlzIGRvaW5nIGhlcmU/ Cgo+ICsKPiArCWljbF9wcm9ncmFtX2ZpbmVfc2VnbWVudF9sdXQoY3J0Y19zdGF0ZSwgZ2FtbWFf bHV0LCAwKTsKPiArCWljbF9wcm9ncmFtX2NvYXJzZV9zZWdtZW50X2x1dChjcnRjX3N0YXRlLCBn YW1tYV9sdXQsIDApOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBpY2xfbG9hZF9sdXRzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAlpZiAoY3J0Y19z dGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCkKPiAgCQlnbGtfbG9hZF9kZWdhbW1hX2x1dChjcnRjX3N0 YXRlKTsKPiAgCj4gLQlpZiAoY3J0Y19zdGF0ZV9pc19sZWdhY3lfZ2FtbWEoY3J0Y19zdGF0ZSkp Cj4gKwlpZiAoY3J0Y19zdGF0ZV9pc19sZWdhY3lfZ2FtbWEoY3J0Y19zdGF0ZSkpIHsKPiAgCQlp OXh4X2xvYWRfbHV0cyhjcnRjX3N0YXRlKTsKPiAtCWVsc2UKPiArCX0gZWxzZSBpZiAoY3J0Y19z dGF0ZS0+YmFzZS5nYW1tYV9tb2RlX3R5cGUgPT0KPiArCQkgICBNVUxUSV9TRUdNRU5URURfR0FN TUFfTU9ERV8xMkJJVCkgewo+ICsJCWljbF9sb2FkX2dhbW1hX211bHRpX3NlZ21lbnRlZF9sdXQo Y3J0Y19zdGF0ZSwgMCk7Cj4gKwl9IGVsc2Ugewo+ICAJCS8qIFRvRG86IEFkZCBzdXBwb3J0IGZv ciBtdWx0aSBzZWdtZW50IGdhbW1hIExVVCAqLwo+ICAJCWJkd19sb2FkX2dhbW1hX2x1dChjcnRj X3N0YXRlLCAwKTsKPiArCX0KPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19sb2Fk X2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gQEAgLTEw MzQsMTAgKzExNzYsMjAgQEAgc3RhdGljIGludCBnbGtfY29sb3JfY2hlY2soc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGlj IHUzMiBpY2xfZ2FtbWFfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiArc3RhdGljIHUzMiBpY2xfZ2FtbWFfbW9kZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPiAgewo+ICsJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpn YW1tYV9tb2RlX2Jsb2IgPQo+ICsJCQkJCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbW9kZTsKPiAr CXN0cnVjdCBkcm1fY29sb3JfbW9kZV9sdXQgKmFyZzsKPiAgCXUzMiBnYW1tYV9tb2RlID0gMDsK PiAgCj4gKwlpZiAoZ2FtbWFfbW9kZV9ibG9iKSB7Cj4gKwkJYXJnID0gZ2FtbWFfbW9kZV9ibG9i LT5kYXRhOwo+ICsJCWlmICghc3RyY21wKGFyZy0+bmFtZSwgIm11bHRpLXNlZ21lbnRlZCBnYW1t YSIpKQo+ICsJCQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX21vZGVfdHlwZSA9Cj4gKwkJCQlNVUxU SV9TRUdNRU5URURfR0FNTUFfTU9ERV8xMkJJVDsKPiArCX0KCldpdGggdGhlIGJsb2JfZW51bSB0 aGlzIGtpbmQgb2Ygc3R1ZmYgc2hvdWxkIGRpc2FwcGVhciBJIHRoaW5rLgoKPiArCj4gIAlpZiAo Y3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCkKPiAgCQlnYW1tYV9tb2RlIHw9IFBSRV9DU0Nf R0FNTUFfRU5BQkxFOwo+ICAKPiBAQCAtMTA0OCw2ICsxMjAwLDkgQEAgc3RhdGljIHUzMiBpY2xf Z2FtbWFfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAg CWlmICghY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgfHwKPiAgCSAgICBjcnRjX3N0YXRlX2lz X2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkKPiAgCQlnYW1tYV9tb2RlIHw9IEdBTU1BX01PREVf TU9ERV84QklUOwo+ICsJZWxzZSBpZiAoY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9tb2RlX3R5cGUg PT0KPiArCQkgTVVMVElfU0VHTUVOVEVEX0dBTU1BX01PREVfMTJCSVQpCj4gKwkJZ2FtbWFfbW9k ZSB8PSBHQU1NQV9NT0RFX01PREVfMTJCSVRfTVVMVElfU0VHTUVOVEVEOwo+ICAJZWxzZQo+ICAJ CWdhbW1hX21vZGUgfD0gR0FNTUFfTU9ERV9NT0RFXzEwQklUOwo+ICAKPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCBi YzhhMmU3Li5hOGQwYjRjIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiAr KysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gQEAgLTI2Miw2ICsyNjIsOSBAQCBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgewo+ICAJICovCj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdh bW1hX21vZGU7Cj4gIAo+ICsJLyogR2FtbWEgbW9kZSB0eXBlIHByb2dyYW1tZWQgb24gdGhlIHBp cGUgKi8KPiArCXUzMiBnYW1tYV9tb2RlX3R5cGU7Cj4gKwo+ICAJLyoqCj4gIAkgKiBAZGVnYW1t YV9sdXQ6Cj4gIAkgKgo+IC0tIAo+IDEuOS4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==