From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shankar, Uma" Subject: Re: [v2 5/7] drm/i915/icl: Add support for multi segmented gamma mode Date: Mon, 8 Apr 2019 12:51:13 +0000 Message-ID: References: <1554139811-13280-1-git-send-email-uma.shankar@intel.com> <1554139811-13280-6-git-send-email-uma.shankar@intel.com> <20190408101947.GZ3888@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190408101947.GZ3888@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?iso-8859-1?Q?Ville_Syrj=E4l=E4?= Cc: "dcastagna@chromium.org" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "seanpaul@chromium.org" , "Syrjala, Ville" , "harry.wentland@amd.com" , "Lankhorst, Maarten" List-Id: dri-devel@lists.freedesktop.org Cgo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPkZyb206IFZpbGxlIFN5cmrDpGzDpCBbbWFp bHRvOnZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tXQo+U2VudDogTW9uZGF5LCBBcHJpbCA4 LCAyMDE5IDM6NTAgUE0KPlRvOiBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVsLmNvbT4K PkNjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnOwo+ZGNhc3RhZ25hQGNocm9taXVtLm9yZzsgc2VhbnBhdWxAY2hyb21pdW0u b3JnOyBTeXJqYWxhLCBWaWxsZQo+PHZpbGxlLnN5cmphbGFAaW50ZWwuY29tPjsgaGFycnkud2Vu dGxhbmRAYW1kLmNvbTsgTGFua2hvcnN0LCBNYWFydGVuCj48bWFhcnRlbi5sYW5raG9yc3RAaW50 ZWwuY29tPgo+U3ViamVjdDogUmU6IFtJbnRlbC1nZnhdIFt2MiA1LzddIGRybS9pOTE1L2ljbDog QWRkIHN1cHBvcnQgZm9yIG11bHRpIHNlZ21lbnRlZAo+Z2FtbWEgbW9kZQo+Cj5PbiBNb24sIEFw ciAwMSwgMjAxOSBhdCAxMTowMDowOVBNICswNTMwLCBVbWEgU2hhbmthciB3cm90ZToKPj4gR2Vu MTEgaW50cm9kdWNlZCBhIG5ldyBnYW1tYSBtb2RlIGkuZSwgbXVsdGkgc2VnbWVudGVkIGdhbW1h IG1vZGUuCj4+IEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBzYW1lLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5 OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+PiAtLS0KPj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgfCAxNjEKPisrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KPj4gIGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgICAgICAgICAgfCAg IDMgKwo+PiAgMiBmaWxlcyBjaGFuZ2VkLCAxNjEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMK Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4+IGluZGV4IDg0ZDkzZWMu LmQ4MWRlMzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9y LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+PiBAQCAtNTcs NiArNTcsMTIgQEAKPj4KPj4gICNkZWZpbmUgSUxLX0NTQ19QT1NUT0ZGX0xJTUlURURfUkFOR0Ug KDE2ICogKDEgPDwgMTIpIC8gMjU1KQo+Pgo+PiArI2RlZmluZSBMRUdBQ1lfUEFMRVRURV9NT0RF XzhCSVQgICAgICAgICAgICAgICBCSVQoMCkKPj4gKyNkZWZpbmUgUFJFQ0lTSU9OX1BBTEVUVEVf TU9ERV8xMEJJVCAgICAgICAgICAgQklUKDEpCj4+ICsjZGVmaW5lIElOVEVSUE9MQVRFRF9HQU1N QV9NT0RFXzEyQklUICAgICAgICAgIEJJVCgyKQo+PiArI2RlZmluZSBNVUxUSV9TRUdNRU5URURf R0FNTUFfTU9ERV8xMkJJVCAgICAgICBCSVQoMykKPj4gKyNkZWZpbmUgU1BMSVRfR0FNTUFfTU9E RV8xMkJJVCAgICAgICAgICAgICAgICAgQklUKDQpCj4+ICsKPj4gIHN0YXRpYyBjb25zdCB1MTYg aWxrX2NzY19vZmZfemVyb1szXSA9IHt9Owo+Pgo+PiAgc3RhdGljIGNvbnN0IHUxNiBpbGtfY3Nj X2NvZWZmX2lkZW50aXR5WzldID0geyBAQCAtOTIsNiArOTgsOSBAQAo+PiAgCTB4MDgwMCwgMHgw MTAwLCAweDA4MDAsCj4+ICB9Owo+Pgo+PiArI2RlZmluZSBHRU4xMV9HRVRfTVMxMEJJVFNfT0Zf TFVUKGx1dCkgKCgobHV0KSA+PiA2KSAmIDB4M0ZGKSAjZGVmaW5lCj4+ICtHRU4xMV9HRVRfTFM2 QklUU19PRl9MVVQobHV0KSAgKChsdXQpICYgMHgzRikKPgo+SSB0aGluayB0aGlzIGlzIGp1c3Qg dGhlIGlsaysgMTIuNCBmb3JtYXQuIElJUkMgSSBoYWQgc29tZSBraW5kIG9mCj5pbGtfbHV0XzEy cDRfbGR3L3VkdygpIGZ1bmNzIGZvciB0aGVzZSBpbiBteSBicmFuY2ggc29tZXdoZXJlLgo+SSdk IGxpa2UgdG8gc2VlIHNvbWVodGluZyBsaWtlIHRoYXQgaW4gdGhpcyBwYXRjaC4KClN1cmUsIEkg d2lsbCBhZGQgdGhvc2UgYW5kIHVzZSB0aGUgc2FtZS4gU29tZXRoaW5nIHNpbWlsYXIgdG8gKGk5 NjVfbHV0XzEwcDZfdWR3KQoKPj4gKwo+PiAgc3RhdGljIGJvb2wgbHV0X2lzX2xlZ2FjeShjb25z dCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmx1dCkgIHsKPj4gIAlyZXR1cm4gZHJtX2NvbG9y X2x1dF9zaXplKGx1dCkgPT0gTEVHQUNZX0xVVF9MRU5HVEg7IEBAIC02NzAsMTYKPj4gKzY3OSwx NDkgQEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKPj4gIAkJYmR3X2xvYWRfZ2FtbWFfbHV0KGNydGNfc3RhdGUsIDAp Owo+PiAgfQo+Pgo+PiArc3RhdGljIHZvaWQgaWNsX3Byb2dyYW1fY29hcnNlX3NlZ21lbnRfbHV0 KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4+ICsJCQkJCSAgICpjcnRjX3N0YXRlLAo+ PiArCQkJCQkgICBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqZ2FtbWFfbHV0LAo+PiArCQkJCQkgICB1 MzIgb2Zmc2V0KQo+Cj5JIHRoaW5rIHRvIG1hdGNoIHRoZSBjdXJyZW50IHBhdHRlcm4gd2Ugc2hv dWxkIGhhdmUgc29tZXRoaW5nIGxpa2U6Cj4KPmljbF9sb2FkX2x1dF9jb2Fyc2Vfc2VnbWVudChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpOwo+aWNsX2xvYWRfbHV0X2ZpbmVfc2Vn bWVudChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKTsKCk9rLCB3aWxsIHVwZGF0ZSB0 aGlzLgoKPj4gK3sKPj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPj4gKwljb25zdCBzdHJ1Y3QgZHJtX2Nv bG9yX2x1dCAqbHV0ID0gZ2FtbWFfbHV0Owo+PiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlw ZTsKPj4gKwl1MzIgaSwgbHV0X3NpemUsIHdvcmQ7Cj4+ICsKPj4gKwlXQVJOX09OKG9mZnNldCAm IH5QQUxfUFJFQ19JTkRFWF9WQUxVRV9NQVNLKTsKPj4gKwo+PiArCUk5MTVfV1JJVEUoUFJFQ19Q QUxfSU5ERVgocGlwZSksCj4+ICsJCSAgIChvZmZzZXQgPyBQQUxfUFJFQ19TUExJVF9NT0RFIDog MCkgfAo+PiArCQkgICBQQUxfUFJFQ19BVVRPX0lOQ1JFTUVOVCB8Cj4+ICsJCSAgIG9mZnNldCk7 Cj4+ICsKPj4gKwlpZiAobHV0ICYmIGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbW9kZV90eXBlID09 Cj4+ICsJCQkJTVVMVElfU0VHTUVOVEVEX0dBTU1BX01PREVfMTJCSVQpIHsKPj4gKwkJbHV0X3Np emUgPSA5ICsgNTE0Owo+PiArCQlmb3IgKGkgPSA5OyBpIDwgbHV0X3NpemU7IGkrKykgewo+PiAr CQkJLyogRm9yIEV2ZW4gSW5kZXggKi8KPj4gKwkJCXdvcmQgPSAoR0VOMTFfR0VUX0xTNkJJVFNf T0ZfTFVUKGx1dFtpXS5yZWQpIDw8IDIwKSB8Cj4+ICsJCQkJKEdFTjExX0dFVF9MUzZCSVRTX09G X0xVVChsdXRbaV0uZ3JlZW4pIDw8IDEwKSB8Cj4+ICsJCQkJR0VOMTFfR0VUX0xTNkJJVFNfT0Zf TFVUKGx1dFtpXS5ibHVlKTsKPj4gKwo+PiArCQkJSTkxNV9XUklURShQUkVDX1BBTF9EQVRBKHBp cGUpLCB3b3JkKTsKPj4gKwo+PiArCQkJLyogRm9yIE9ERCBpbmRleCAqLwo+PiArCQkJd29yZCA9 IChHRU4xMV9HRVRfTVMxMEJJVFNfT0ZfTFVUKGx1dFtpXS5yZWQpIDw8IDIwKSB8Cj4+ICsJCQkJ KEdFTjExX0dFVF9NUzEwQklUU19PRl9MVVQobHV0W2ldLmdyZWVuKSA8PCAxMCkKPnwKPj4gKwkJ CQlHRU4xMV9HRVRfTVMxMEJJVFNfT0ZfTFVUKGx1dFtpXS5ibHVlKTsKPj4gKwo+PiArCQkJSTkx NV9XUklURShQUkVDX1BBTF9EQVRBKHBpcGUpLCB3b3JkKTsKPj4gKwkJfQo+PiArCX0KPj4gKwo+ PiArCS8qCj4+ICsJICogUHJvZ3JhbSB0aGUgbWF4IHJlZ2lzdGVyIHRvIGNsYW1wIHZhbHVlcyA+ IDEuMC4KPj4gKwkgKiBUb0RvOiBFeHRlbmQgdGhlIEFCSSB0byBiZSBhYmxlIHRvIHByb2dyYW0g dmFsdWVzCj4+ICsJICogZnJvbSAxLjAKPj4gKwkgKi8KPj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFM X0dDX01BWChwaXBlLCAwKSwgKDEgPDwgMTYpKTsKPj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFMX0dD X01BWChwaXBlLCAxKSwgKDEgPDwgMTYpKTsKPj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFMX0dDX01B WChwaXBlLCAyKSwgKDEgPDwgMTYpKTsKPj4gKwo+PiArCS8qCj4+ICsJICogUHJvZ3JhbSB0aGUg bWF4IHJlZ2lzdGVyIHRvIGNsYW1wIHZhbHVlcyA+IDEuMC4KPj4gKwkgKiBUb0RvOiBFeHRlbmQg dGhlIEFCSSB0byBiZSBhYmxlIHRvIHByb2dyYW0gdmFsdWVzCj4+ICsJICogZnJvbSAxLjAgdG8g My4wCj4+ICsJICovCj4+ICsJSTkxNV9XUklURShQUkVDX1BBTF9FWFRfR0NfTUFYKHBpcGUsIDAp LCAoMSA8PCAxNikpOwo+PiArCUk5MTVfV1JJVEUoUFJFQ19QQUxfRVhUX0dDX01BWChwaXBlLCAx KSwgKDEgPDwgMTYpKTsKPj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFMX0VYVF9HQ19NQVgocGlwZSwg MiksICgxIDw8IDE2KSk7Cj4KPkRvdWJsZWQgdGhpbmcuIEJ1dCB3ZSBjYW4ganVzdCBkcm9wIHRo ZXNlIGFuZCBjYWxsCj5pdmJfbG9hZF9sdXRfMTBfbWF4KCkgZnJvbSBoaWdoZXIgdXAgaW5zdGVh ZC4KCkFjdHVhbGx5IG9uZSBpcyBHQ19NQVggYW5kIGFub3RoZXIgRVhUX0dDX01BWC4gVGhlcmUg c2VlbSB0byBiZSAzIHNldCBvZgpyZWdpc3RlcnMgdG8gYmUgcHJvZ3JhbWVkIGhlcmUuICBTdXJl LCBJIHdpbGwgdXNlIHRoZSBpdmIgaGVscGVyIGhlcmUgdG8gb3B0aW1pemUgdGhpcy4KCj4+ICsK Pj4gKwkvKgo+PiArCSAqIFByb2dyYW0gdGhlIGdjIG1heCAyIHJlZ2lzdGVyIHRvIGNsYW1wIHZh bHVlcyA+IDEuMC4KPj4gKwkgKiBUb0RvOiBFeHRlbmQgdGhlIEFCSSB0byBiZSBhYmxlIHRvIHBy b2dyYW0gdmFsdWVzCj4+ICsJICogZnJvbSAzLjAgdG8gNy4wCj4+ICsJKi8KPj4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+PiAr CQlJOTE1X1dSSVRFKFBSRUNfUEFMX0VYVDJfR0NfTUFYKHBpcGUsIDApLCAoMSA8PCAxNikpOwo+ PiArCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0VYVDJfR0NfTUFYKHBpcGUsIDEpLCAoMSA8PCAxNikp Owo+PiArCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0VYVDJfR0NfTUFYKHBpcGUsIDIpLCAoMSA8PCAx NikpOwo+PiArCX0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgaWNsX3Byb2dyYW1fZmluZV9z ZWdtZW50X2x1dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+PiArCQkJCQkgKmNydGNf c3RhdGUsCj4+ICsJCQkJCSBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqZ2FtbWFfbHV0LAo+PiArCQkJ CQkgdTMyIG9mZnNldCkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0 YXRlLT5iYXNlLmNydGM7Cj4+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUt PmJhc2UuY3J0Yy0+ZGV2Owo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPj4gKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Yykt PnBpcGU7Cj4+ICsJdTMyIGksIHdvcmQsIGx1dF9zaXplID0gOTsKPj4gKwo+PiArCVdBUk5fT04o b2Zmc2V0ICYgflBBTF9QUkVDX01VTFRJX1NFR01FTlRfSU5ERVhfVkFMVUVfTUFTSyk7Cj4+ICsK Pj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFMX01VTFRJX1NFR19JTkRFWChwaXBlKSwKPj4gKwkJICAg KFBBTF9QUkVDX0FVVE9fSU5DUkVNRU5UIHwgb2Zmc2V0KSk7Cj4+ICsKPj4gKwlpZiAoZ2FtbWFf bHV0KSB7Cj4+ICsJCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPQo+PiArCQkJKHN0cnVjdCBk cm1fY29sb3JfbHV0ICopZ2FtbWFfbHV0Owo+PiArCj4+ICsJCWZvciAoaSA9IDA7IGkgPCBsdXRf c2l6ZTsgaSsrKSB7Cj4+ICsJCQkvKiBGb3IgRXZlbiBJbmRleCAqLwo+PiArCQkJd29yZCA9IChH RU4xMV9HRVRfTFM2QklUU19PRl9MVVQobHV0W2ldLnJlZCkgPDwgMjApIHwKPj4gKwkJCQkoR0VO MTFfR0VUX0xTNkJJVFNfT0ZfTFVUKGx1dFtpXS5ncmVlbikgPDwgMTApIHwKPj4gKwkJCQlHRU4x MV9HRVRfTFM2QklUU19PRl9MVVQobHV0W2ldLmJsdWUpOwo+PiArCj4+ICsJCQlJOTE1X1dSSVRF KFBSRUNfUEFMX01VTFRJX1NFR19EQVRBKHBpcGUpLCB3b3JkKTsKPj4gKwo+PiArCQkJLyogRm9y IE9ERCBpbmRleCAqLwo+PiArCQkJd29yZCA9IChHRU4xMV9HRVRfTVMxMEJJVFNfT0ZfTFVUKGx1 dFtpXS5yZWQpIDw8IDIwKSB8Cj4+ICsJCQkJKEdFTjExX0dFVF9NUzEwQklUU19PRl9MVVQobHV0 W2ldLmdyZWVuKSA8PCAxMCkKPnwKPj4gKwkJCQlHRU4xMV9HRVRfTVMxMEJJVFNfT0ZfTFVUKGx1 dFtpXS5ibHVlKTsKPj4gKwo+PiArCQkJSTkxNV9XUklURShQUkVDX1BBTF9NVUxUSV9TRUdfREFU QShwaXBlKSwgd29yZCk7Cj4+ICsJCX0KPj4gKwl9Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lk IGljbF9sb2FkX2dhbW1hX211bHRpX3NlZ21lbnRlZF9sdXQoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUKPj4gKwkJCQkJICAgICAgICpjcnRjX3N0YXRlLCB1MzIgb2Zmc2V0KQo+PiArewo+ PiArCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbW9kZV9ibG9iID0KPj4g KwkJCQkJY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9tb2RlOwo+PiArCXN0cnVjdCBkcm1fY29sb3Jf bHV0ICpnYW1tYV9sdXQ7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCWlmIChnYW1tYV9tb2RlX2Js b2IpIHsKPj4gKwkJc3RydWN0IGRybV9jb2xvcl9tb2RlX2x1dCAqYXJnID0gZ2FtbWFfbW9kZV9i bG9iLT5kYXRhOwo+PiArCQl1NjQgX191c2VyICpwcm9wc19wdHIgPSAodTY0IF9fdXNlciAqKSh1 bnNpZ25lZCBsb25nKShhcmctPmx1dCk7Cj4+ICsKPj4gKwkJRFJNX0lORk8oIkdhbW1hIE1vZGU9 JXNcbiIsIGFyZy0+bmFtZSk7Cj4+ICsJCWdhbW1hX2x1dCA9IGttYWxsb2MoKHNpemVvZihzdHJ1 Y3QgZHJtX2NvbG9yX2x1dCkgKiBhcmctPmNvdW50KSwKPj4gKwkJCQkgICAgR0ZQX0tFUk5FTCk7 Cj4+ICsJCXJldCA9IGNvcHlfZnJvbV91c2VyKGdhbW1hX2x1dCwgcHJvcHNfcHRyLAo+PiArCQkJ CSAgICAgc2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfbHV0KSAqIGFyZy0+Y291bnQpOwo+PiArCX0K Pgo+V2hhdCdzIHRoaXMgZG9pbmcgaGVyZT8KClRoaXMgaXMgdG8gZ2V0IHRoZSBsdXQgdmFsdWVz IGluIGRyaXZlciBmcm9tIHVzZXJzcGFjZS4gVGhlIGJsb2IgcGFzc2VkIGZyb20gdXNlciBpcwpz dHJ1Y3QgZHJtX2NvbG9yX21vZGVfbHV0IHsKICAgICAgIC8qIERSTV9NT0RFX0xVVF8qICovCiAg ICAgICBfX3UzMiBmbGFnczsKICAgICAgIC8qIG51bWJlciBvZiBwb2ludHMgb24gdGhlIGN1cnZl ICovCiAgICAgICBfX3UzMiBjb3VudDsKICAgICAgIC8qIE5hbWUgb2YgR2FtbWEgTW9kZSAqLwog ICAgICAgY2hhciBuYW1lW0RSTV9QUk9QX05BTUVfTEVOXTsKICAgICAgIC8qIFBvaW50ZXIgdG8g THV0IGVsZW1lbnRzICovCiAgICAgICBfX3U2NCBsdXQ7Cn07CgpUaGUgbHV0IHZhbHVlcyBhcmUg cGFzc2VkIGFzIHBvaW50ZXIgaW4gImx1dCIsIHdlIGFyZSBjb3B5aW5nIHRoZSBzYW1lIHRvIGtl cm5lbAptZW1vcnkgc3BhY2UgaGVyZS4KCj4+ICsKPj4gKwlpY2xfcHJvZ3JhbV9maW5lX3NlZ21l bnRfbHV0KGNydGNfc3RhdGUsIGdhbW1hX2x1dCwgMCk7Cj4+ICsJaWNsX3Byb2dyYW1fY29hcnNl X3NlZ21lbnRfbHV0KGNydGNfc3RhdGUsIGdhbW1hX2x1dCwgMCk7IH0KPj4gKwo+PiAgc3RhdGlj IHZvaWQgaWNsX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPj4gewo+PiAgCWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KQo+PiAgCQln bGtfbG9hZF9kZWdhbW1hX2x1dChjcnRjX3N0YXRlKTsKPj4KPj4gLQlpZiAoY3J0Y19zdGF0ZV9p c19sZWdhY3lfZ2FtbWEoY3J0Y19zdGF0ZSkpCj4+ICsJaWYgKGNydGNfc3RhdGVfaXNfbGVnYWN5 X2dhbW1hKGNydGNfc3RhdGUpKSB7Cj4+ICAJCWk5eHhfbG9hZF9sdXRzKGNydGNfc3RhdGUpOwo+ PiAtCWVsc2UKPj4gKwl9IGVsc2UgaWYgKGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbW9kZV90eXBl ID09Cj4+ICsJCSAgIE1VTFRJX1NFR01FTlRFRF9HQU1NQV9NT0RFXzEyQklUKSB7Cj4+ICsJCWlj bF9sb2FkX2dhbW1hX211bHRpX3NlZ21lbnRlZF9sdXQoY3J0Y19zdGF0ZSwgMCk7Cj4+ICsJfSBl bHNlIHsKPj4gIAkJLyogVG9EbzogQWRkIHN1cHBvcnQgZm9yIG11bHRpIHNlZ21lbnQgZ2FtbWEg TFVUICovCj4+ICAJCWJkd19sb2FkX2dhbW1hX2x1dChjcnRjX3N0YXRlLCAwKTsKPj4gKwl9Cj4+ ICB9Cj4+Cj4+ICBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZQo+PiAqY3J0Y19zdGF0ZSkgQEAgLTEwMzQsMTAgKzExNzYsMjAgQEAg c3RhdGljIGludCBnbGtfY29sb3JfY2hlY2soc3RydWN0Cj5pbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+PiAgCXJldHVybiAwOwo+PiAgfQo+Pgo+PiAtc3RhdGljIHUzMiBpY2xfZ2FtbWFf bW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gK3N0YXRp YyB1MzIgaWNsX2dhbW1hX21vZGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4+ICB7Cj4+ICsJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9tb2RlX2Js b2IgPQo+PiArCQkJCQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX21vZGU7Cj4+ICsJc3RydWN0IGRy bV9jb2xvcl9tb2RlX2x1dCAqYXJnOwo+PiAgCXUzMiBnYW1tYV9tb2RlID0gMDsKPj4KPj4gKwlp ZiAoZ2FtbWFfbW9kZV9ibG9iKSB7Cj4+ICsJCWFyZyA9IGdhbW1hX21vZGVfYmxvYi0+ZGF0YTsK Pj4gKwkJaWYgKCFzdHJjbXAoYXJnLT5uYW1lLCAibXVsdGktc2VnbWVudGVkIGdhbW1hIikpCj4+ ICsJCQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX21vZGVfdHlwZSA9Cj4+ICsJCQkJTVVMVElfU0VH TUVOVEVEX0dBTU1BX01PREVfMTJCSVQ7Cj4+ICsJfQo+Cj5XaXRoIHRoZSBibG9iX2VudW0gdGhp cyBraW5kIG9mIHN0dWZmIHNob3VsZCBkaXNhcHBlYXIgSSB0aGluay4KCkkgZmVlbCBrZWVwaW5n IDIgc2VwYXJhdGUgcHJvcGVydGllcyBzaG91bGQgYmUgZ29vZCBhcyB3ZSBjYW4ga2VlcCB0aGUg Y2FwYWJpbGl0aWVzCmltbXV0YWJsZS4gQW5kIHdpdGggdGhlIGFib3ZlIHN0cnVjdHVyZSB1c2Vy c3BhY2Ugc2hvdWxkIGJlIGFibGUgdG8gc2V0IGFueSBzdXBwb3J0ZWQKZ2FtbWFfbW9kZS4gIExl dCBtZSBrbm93IHlvdXIgb3BpbmlvbiBvbiB0aGUgc2FtZS4KClJlZ2FyZHMsClVtYSBTaGFua2Fy Cgo+PiArCj4+ICAJaWYgKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQpCj4+ICAJCWdhbW1h X21vZGUgfD0gUFJFX0NTQ19HQU1NQV9FTkFCTEU7Cj4+Cj4+IEBAIC0xMDQ4LDYgKzEyMDAsOSBA QCBzdGF0aWMgdTMyIGljbF9nYW1tYV9tb2RlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl Cj4qY3J0Y19zdGF0ZSkKPj4gIAlpZiAoIWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0IHx8Cj4+ ICAJICAgIGNydGNfc3RhdGVfaXNfbGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKQo+PiAgCQlnYW1t YV9tb2RlIHw9IEdBTU1BX01PREVfTU9ERV84QklUOwo+PiArCWVsc2UgaWYgKGNydGNfc3RhdGUt PmJhc2UuZ2FtbWFfbW9kZV90eXBlID09Cj4+ICsJCSBNVUxUSV9TRUdNRU5URURfR0FNTUFfTU9E RV8xMkJJVCkKPj4gKwkJZ2FtbWFfbW9kZSB8PQo+R0FNTUFfTU9ERV9NT0RFXzEyQklUX01VTFRJ X1NFR01FTlRFRDsKPj4gIAllbHNlCj4+ICAJCWdhbW1hX21vZGUgfD0gR0FNTUFfTU9ERV9NT0RF XzEwQklUOwo+Pgo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1 ZGUvZHJtL2RybV9jcnRjLmggaW5kZXgKPj4gYmM4YTJlNy4uYThkMGI0YyAxMDA2NDQKPj4gLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5o Cj4+IEBAIC0yNjIsNiArMjYyLDkgQEAgc3RydWN0IGRybV9jcnRjX3N0YXRlIHsKPj4gIAkgKi8K Pj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX21vZGU7Cj4+Cj4+ICsJLyogR2Ft bWEgbW9kZSB0eXBlIHByb2dyYW1tZWQgb24gdGhlIHBpcGUgKi8KPj4gKwl1MzIgZ2FtbWFfbW9k ZV90eXBlOwo+PiArCj4+ICAJLyoqCj4+ICAJICogQGRlZ2FtbWFfbHV0Ogo+PiAgCSAqCj4+IC0t Cj4+IDEuOS4xCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo+Cj4tLQo+VmlsbGUgU3lyasOkbMOkCj5JbnRlbApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=