From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v7][PATCH 03/12] drm/i915: Add func to compare hw/sw gamma lut Date: Mon, 10 Jun 2019 20:03:46 +0300 Message-ID: <20190610170346.GC5942@intel.com> References: <1559123462-7343-1-git-send-email-swati2.sharma@intel.com> <1559123462-7343-4-git-send-email-swati2.sharma@intel.com> <20190531152855.GW5942@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id A0CBE89137 for ; Mon, 10 Jun 2019 17:03:49 +0000 (UTC) Content-Disposition: inline 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: "Sharma, Swati2" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMTAsIDIwMTkgYXQgMDQ6MjQ6NTRQTSArMDUzMCwgU2hhcm1hLCBTd2F0aTIg d3JvdGU6Cj4gT24gMzEtTWF5LTE5IDg6NTggUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiAK PiA+IE9uIFdlZCwgTWF5IDI5LCAyMDE5IGF0IDAzOjIwOjUzUE0gKzA1MzAsIFN3YXRpIFNoYXJt YSB3cm90ZToKPiA+PiB2MzogLVJlYmFzZQo+ID4+IHY0OiAtUmVuYW1lZCBpbnRlbF9jb21wYXJl X2NvbG9yX2x1dCgpIHRvIGludGVsX2NvbG9yX2x1dF9lcXVhbCgpIFtKYW5pXQo+ID4+ICAgICAg LUFkZGVkIHRoZSBkZWZhdWx0IGxhYmVsIGFib3ZlIHRoZSBjb3JyZWN0IGxhYmVsIFtKYW5pXQo+ ID4+ICAgICAgLUNvcnJlY3RlZCBzbWF0Y2ggd2FybiAidmFyaWFibGUgZGVyZWZlcmVuY2VkIGJl Zm9yZSBjaGVjayIKPiA+PiAgICAgICBbRGFuIENhcnBlbnRlcl0KPiA+PiB2NTogLUFkZGVkIGNv bmRpdGlvbiAoIWJsb2IxICYmICFibG9iMikgcmV0dXJuIHRydWUgW0phbmldCj4gPj4gICAgICAt Q2FsbGVkIFBJUEVfQ09ORl9DSEVDS19DT0xPUl9MVVQgaW5zaWRlIGlmICghYWRqdXN0KSBbSmFu aV0KPiA+PiAgICAgIC1BZGRlZCAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0NPTE9SX0xVVCBbSmFu aV0KPiA+PiB2NjogLUFkZGVkIGZ1bmMgaW50ZWxfY29sb3JfZ2V0X2JpdF9wcmVjaXNpb24oKSB0 byBnZXQgYml0IHByZWNpc2lvbiBmb3IKPiA+PiAgICAgICBnYW1tYSBhbmQgZGVnYW1tYSBsdXQg cmVhZG91dCBkZXBlbmRpbmcgdXBvbiBwbGF0Zm9ybSBhbmQKPiA+PiAgICAgICBjb3JyZXNwb25k aW5nIHRvIGxvYWRfbHV0cygpIFtBbmtpdF0KPiA+PiAgICAgIC1BZGRlZCBkZWJ1ZyBsb2cgZm9y IGNvbG9yIHBhcmEgaW4gaW50ZWxfZHVtcF9waXBlX2NvbmZpZyBbSmFuaV0KPiA+PiAgICAgIC1N YWRlIHBhdGNoMTEgYXMgcGF0Y2gzIFtKYW5pXQo+ID4+IHY3OiAtUmVuYW1lZCBmdW5jIGludGVs X2NvbG9yX2dldF9iaXRfcHJlY2lzaW9uKCkgdG8KPiA+PiAgICAgICBpbnRlbF9jb2xvcl9nZXRf Z2FtbWFfYml0X3ByZWNpc2lvbigpCj4gPj4gICAgICAtQWRkZWQgc2VwYXJhdGUgZnVuY3Rpb24v cGxhdGZvcm0gZm9yIGdhbW1hIGJpdCBwcmVjaXNpb24gW1ZpbGxlXQo+ID4+ICAgICAgLUNvcnJl Y3RlZCBjaGVja3BhdGNoIHdhcm5pbmdzCj4gPj4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBTd2F0aSBT aGFybWEgPHN3YXRpMi5zaGFybWFAaW50ZWwuY29tPgo+ID4+IC0tLQo+ID4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyAgIHwgMTY2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5oICAg fCAgIDcgKysKPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAy NCArKysrKwo+ID4+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxOTcgaW5zZXJ0aW9ucygrKQo+ID4+Cj4g Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gPj4gaW5kZXggNTBiOThlZS4uYjIwYTJj NiAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4g Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ID4+IEBAIC0xMjUx LDYgKzEyNTEsMTcyIEBAIHN0YXRpYyBpbnQgaWNsX2NvbG9yX2NoZWNrKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4+ICAgCXJldHVybiAwOwo+ID4+ICAgfQo+ID4+ICAg Cj4gPj4gK3N0YXRpYyBpbnQgaTl4eF9nYW1tYV9wcmVjaXNpb24oc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gPj4gK3sKPiA+PiArCWlmICghY3J0Y19zdGF0ZS0+Z2FtbWFf ZW5hYmxlKQo+ID4+ICsJCXJldHVybiAwOwo+ID4+ICsKPiA+PiArCXN3aXRjaCAoY3J0Y19zdGF0 ZS0+Z2FtbWFfbW9kZSkgewo+ID4+ICsJY2FzZSBHQU1NQV9NT0RFX01PREVfOEJJVDoKPiA+PiAr CQlyZXR1cm4gODsKPiA+PiArCWNhc2UgR0FNTUFfTU9ERV9NT0RFXzEwQklUOgo+ID4+ICsJCXJl dHVybiAxNjsKPiA+PiArCWRlZmF1bHQ6Cj4gPj4gKwkJTUlTU0lOR19DQVNFKGNydGNfc3RhdGUt PmdhbW1hX21vZGUpOwo+ID4+ICsJCXJldHVybiAwOwo+ID4+ICsJfQo+ID4+ICt9Cj4gPj4gKwo+ ID4+ICtzdGF0aWMgaW50IGNodl9nYW1tYV9wcmVjaXNpb24oc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gPj4gK3sKPiA+PiArCWlmIChjcnRjX3N0YXRlLT5jZ21fbW9kZSAm IENHTV9QSVBFX01PREVfR0FNTUEpCj4gPj4gKwkJcmV0dXJuIDEwOwo+ID4+ICsJZWxzZQo+ID4+ ICsJCXJldHVybiBpOXh4X2dhbW1hX3ByZWNpc2lvbihjcnRjX3N0YXRlKTsKPiA+PiArfQo+ID4+ ICsKPiA+PiArc3RhdGljIGludCBpbGtfZ2FtbWFfcHJlY2lzaW9uKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQo+ID4+ICt7Cj4gPj4gKwlpZiAoIWNydGNfc3RhdGUtPmdhbW1h X2VuYWJsZSkKPiA+PiArCQlyZXR1cm4gMDsKPiA+PiArCj4gPj4gKwlpZiAoKGNydGNfc3RhdGUt PmNzY19tb2RlICYgQ1NDX1BPU0lUSU9OX0JFRk9SRV9HQU1NQSkgPT0gMCkKPiA+PiArCQlyZXR1 cm4gMDsKPiA+PiArCj4gPj4gKwlzd2l0Y2ggKGNydGNfc3RhdGUtPmdhbW1hX21vZGUpIHsKPiA+ PiArCWNhc2UgR0FNTUFfTU9ERV9NT0RFXzhCSVQ6Cj4gPj4gKwkJcmV0dXJuIDg7Cj4gPj4gKwlj YXNlIEdBTU1BX01PREVfTU9ERV8xMEJJVDoKPiA+PiArCQlyZXR1cm4gMTA7Cj4gPj4gKwlkZWZh dWx0Ogo+ID4+ICsJCU1JU1NJTkdfQ0FTRShjcnRjX3N0YXRlLT5nYW1tYV9tb2RlKTsKPiA+PiAr CQlyZXR1cm4gMDsKPiA+PiArCX0KPiA+PiArfQo+ID4+ICsKPiA+PiArc3RhdGljIGludCBpdmJf Z2FtbWFfcHJlY2lzaW9uKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4+ ICt7Cj4gPj4gKwlpZiAoIWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSkKPiA+PiArCQlyZXR1cm4g MDsKPiA+PiArCj4gPj4gKwlpZiAoKGNydGNfc3RhdGUtPmNzY19tb2RlICYgQ1NDX1BPU0lUSU9O X0JFRk9SRV9HQU1NQSkgPT0gMCkKPiA+PiArCQlyZXR1cm4gMDsKPiA+PiArCj4gPj4gKwlzd2l0 Y2ggKGNydGNfc3RhdGUtPmdhbW1hX21vZGUpIHsKPiA+PiArCWNhc2UgR0FNTUFfTU9ERV9NT0RF XzhCSVQ6Cj4gPj4gKwkJcmV0dXJuIDg7Cj4gPj4gKwljYXNlIEdBTU1BX01PREVfTU9ERV9TUExJ VDoKPiA+PiArCWNhc2UgR0FNTUFfTU9ERV9NT0RFXzEwQklUOgo+ID4+ICsJCXJldHVybiAxMDsK PiA+PiArCWRlZmF1bHQ6Cj4gPj4gKwkJTUlTU0lOR19DQVNFKGNydGNfc3RhdGUtPmdhbW1hX21v ZGUpOwo+ID4+ICsJCXJldHVybiAwOwo+ID4+ICsJfQo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0 aWMgaW50IGdsa19nYW1tYV9wcmVjaXNpb24oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCj4gPj4gK3sKPiA+PiArCWlmICghY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlKQo+ID4+ ICsJCXJldHVybiAwOwo+ID4+ICsKPiA+PiArCWlmICgoY3J0Y19zdGF0ZS0+Y3NjX21vZGUgJiBD U0NfUE9TSVRJT05fQkVGT1JFX0dBTU1BKSA9PSAwKQo+ID4+ICsJCXJldHVybiAwOwo+ID4gZ2xr IGRvZW5zJ3QgaGF2ZSB0aGF0IGJpdC4KPiA+Cj4gPj4gKwo+ID4+ICsJc3dpdGNoIChjcnRjX3N0 YXRlLT5nYW1tYV9tb2RlKSB7Cj4gPj4gKwljYXNlIEdBTU1BX01PREVfTU9ERV84QklUOgo+ID4+ ICsJCXJldHVybiA4Owo+ID4+ICsJY2FzZSBHQU1NQV9NT0RFX01PREVfMTBCSVQ6Cj4gPj4gKwkJ cmV0dXJuIDEwOwo+ID4+ICsJZGVmYXVsdDoKPiA+PiArCQlNSVNTSU5HX0NBU0UoY3J0Y19zdGF0 ZS0+Z2FtbWFfbW9kZSk7Cj4gPj4gKwkJcmV0dXJuIDA7Cj4gPj4gKwl9Cj4gPj4gK30KPiA+PiAr Cj4gPj4gK3N0YXRpYyBpbnQgaWNsX2dhbW1hX3ByZWNpc2lvbihzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiArewo+ID4+ICsJaWYgKChjcnRjX3N0YXRlLT5nYW1tYV9t b2RlICYgUFJFX0NTQ19HQU1NQV9FTkFCTEUpID09IDApCj4gPj4gKwkJcmV0dXJuIDA7Cj4gPiBQ T1NUX0NTQ19HQU1NQQo+ID4KPiA+PiArCj4gPj4gKwlzd2l0Y2ggKGNydGNfc3RhdGUtPmdhbW1h X21vZGUgJiBHQU1NQV9NT0RFX01PREVfTUFTSykgewo+ID4+ICsJY2FzZSBHQU1NQV9NT0RFX01P REVfOEJJVDoKPiA+PiArCQlyZXR1cm4gODsKPiA+PiArCWNhc2UgR0FNTUFfTU9ERV9NT0RFXzEw QklUOgo+ID4+ICsJCXJldHVybiAxMDsKPiA+PiArCWRlZmF1bHQ6Cj4gPj4gKwkJTUlTU0lOR19D QVNFKGNydGNfc3RhdGUtPmdhbW1hX21vZGUpOwo+ID4+ICsJCXJldHVybiAwOwo+ID4+ICsJfQo+ ID4+ICt9Cj4gPj4gKwo+ID4+ICtpbnQgaW50ZWxfY29sb3JfZ2V0X2dhbW1hX2JpdF9wcmVjaXNp b24oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPj4gK3sKPiA+PiArCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOwo+ID4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7Cj4gPj4gKwo+ID4+ICsJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgewo+ ID4+ICsJCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiA+PiArCQkJcmV0dXJuIGNodl9n YW1tYV9wcmVjaXNpb24oY3J0Y19zdGF0ZSk7Cj4gPj4gKwkJZWxzZQo+ID4+ICsJCQlyZXR1cm4g aTl4eF9nYW1tYV9wcmVjaXNpb24oY3J0Y19zdGF0ZSk7Cj4gPj4gKwl9IGVsc2Ugewo+ID4+ICsJ CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQo+ID4+ICsJCQlyZXR1cm4gaWNsX2dhbW1h X3ByZWNpc2lvbihjcnRjX3N0YXRlKTsKPiA+PiArCQllbHNlIGlmIChJU19DQU5OT05MQUtFKGRl dl9wcml2KSB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkKPiA+PiArCQkJcmV0dXJuIGdsa19n YW1tYV9wcmVjaXNpb24oY3J0Y19zdGF0ZSk7Cj4gPj4gKwkJZWxzZSBpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA3KQo+ID4+ICsJCQlyZXR1cm4gaXZiX2dhbW1hX3ByZWNpc2lvbihjcnRjX3N0 YXRlKTsKPiA+PiArCQllbHNlCj4gPj4gKwkJCXJldHVybiBpbGtfZ2FtbWFfcHJlY2lzaW9uKGNy dGNfc3RhdGUpOwo+ID4+ICsJfQo+ID4+ICsKPiA+PiArCXJldHVybiAwOwo+ID4+ICt9Cj4gPj4g Kwo+ID4+ICtzdGF0aWMgaW5saW5lIGJvb2wgZXJyX2NoZWNrKHN0cnVjdCBkcm1fY29sb3JfbHV0 ICpzd19sdXQsCj4gPj4gKwkJCSAgICAgc3RydWN0IGRybV9jb2xvcl9sdXQgKmh3X2x1dCwgdTMy IGVycikKPiA+PiArewo+ID4+ICsJcmV0dXJuICgoYWJzKChsb25nKWh3X2x1dC0+cmVkIC0gc3df bHV0LT5yZWQpKSA8PSBlcnIpICYmCj4gPj4gKwkJKChhYnMoKGxvbmcpaHdfbHV0LT5ibHVlIC0g c3dfbHV0LT5ibHVlKSkgPD0gZXJyKSAmJgo+ID4+ICsJCSgoYWJzKChsb25nKWh3X2x1dC0+Z3Jl ZW4gLSBzd19sdXQtPmdyZWVuKSkgPD0gZXJyKTsKPiA+PiArfQo+ID4+ICsKPiA+PiArYm9vbCBp bnRlbF9jb2xvcl9sdXRfZXF1YWwoc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iMSwKPiA+ PiArCQkJICAgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iMiwKPiA+PiArCQkJICAgdTMy IGJpdF9wcmVjaXNpb24pCj4gPj4gK3sKPiA+PiArCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpzd19s dXQsICpod19sdXQ7Cj4gPj4gKwlpbnQgc3dfbHV0X3NpemUsIGh3X2x1dF9zaXplLCBpOwo+ID4+ ICsJdTMyIGVycjsKPiA+PiArCj4gPj4gKwlpZiAoIWJsb2IxICYmICFibG9iMikKPiA+PiArCQly ZXR1cm4gdHJ1ZTsKPiA+PiArCj4gPj4gKwlpZiAoIWJsb2IxKQo+ID4+ICsJCXJldHVybiB0cnVl Owo+ID4+ICsKPiA+PiArCWlmICghYmxvYjIpCj4gPj4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gV2hh dCBpcyB0aGlzIGxvZ2ljIHRyeWluZyB0byBkbz8KPiA+Cj4gPiBTb21ldGhpbmcgbGlrZT8KPiA+ Cj4gPiBpZiAoIWJsb2IxICE9ICFibG9iMikKPiA+IAlyZXR1cm4gZmFsc2U7Cj4gPiBpZiAoIWJs b2IxKQo+ID4gCXJldHVybiB0cnVlOwo+ID4KPiA+Cj4gPj4gKwo+ID4+ICsJc3dfbHV0X3NpemUg PSBkcm1fY29sb3JfbHV0X3NpemUoYmxvYjEpOwo+ID4+ICsJaHdfbHV0X3NpemUgPSBkcm1fY29s b3JfbHV0X3NpemUoYmxvYjIpOwo+ID4+ICsKPiA+PiArCWlmIChzd19sdXRfc2l6ZSAhPSBod19s dXRfc2l6ZSkKPiA+PiArCQlyZXR1cm4gZmFsc2U7Cj4gPiBUaGlzIGlzIGdvaW5nIHRvIHRyaWdn ZXIgd2l0aCB0aGUgc3BsaXQgZ2FtbWEgbW9kZS4gV2UnbGwgbmVlZCB0byBiZQo+ID4gbW9yZSBj bGV2ZXIgd2hlbiBjb21wYXJpbmcgdGhlIHR3by4KPiAKPiBTbywgd2UgbmVlZCBjaGVjayBmb3Ig Z2FtbWFfbW9kZSBoZXJlIGFzLXdlbGw/CgpNYXliZS4gV2UncmUgZ29pbmcgdG8gaGF2ZSB0byBt YWtlIHRoZSBleGNlcHRpb24gc29tZXdoZXJlLAphbmQgdGhlbiB3ZSBuZWVkIHRvIHBpY2sgdGhl IExVVCBlbnRyaWVzIHRvIGNvbXBhcmUgc2ltaWxhcmx5CmFzIGhvdyB0aGUgcmVsZXZhbnR5IGxv YWRfbHV0KCkgZnVuY3Rpb24gcGlja3MgdGhlbS4KCgo+IAo+ID4KPiA+PiArCj4gPj4gKwlzd19s dXQgPSBibG9iMS0+ZGF0YTsKPiA+PiArCWh3X2x1dCA9IGJsb2IyLT5kYXRhOwo+ID4+ICsKPiA+ PiArCWVyciA9IDB4ZmZmZiA+PiBiaXRfcHJlY2lzaW9uOwo+ID4+ICsKPiA+PiArCWZvciAoaSA9 IDA7IGkgPCBzd19sdXRfc2l6ZTsgaSsrKSB7Cj4gPj4gKwkJaWYgKCFlcnJfY2hlY2soJmh3X2x1 dFtpXSwgJnN3X2x1dFtpXSwgZXJyKSkKPiA+PiArCQkJcmV0dXJuIGZhbHNlOwo+ID4+ICsJfQo+ ID4+ICsKPiA+PiArCXJldHVybiB0cnVlOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICAgdm9pZCBpbnRl bF9jb2xvcl9pbml0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4+ICAgewo+ID4+ICAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp Owo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuaAo+ID4+IGluZGV4IDA1N2U4YWMuLjAy ZWExYmMgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3Iu aAo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmgKPiA+PiBAQCAt NiwxMyArNiwyMCBAQAo+ID4+ICAgI2lmbmRlZiBfX0lOVEVMX0NPTE9SX0hfXwo+ID4+ICAgI2Rl ZmluZSBfX0lOVEVMX0NPTE9SX0hfXwo+ID4+ICAgCj4gPj4gKyNpbmNsdWRlIDxsaW51eC90eXBl cy5oPgo+ID4+ICsKPiA+PiAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlOwo+ID4+ICAgc3RydWN0 IGludGVsX2NydGM7Cj4gPj4gK3N0cnVjdCBkcm1fcHJvcGVydHlfYmxvYjsKPiA+PiAgIAo+ID4+ ICAgdm9pZCBpbnRlbF9jb2xvcl9pbml0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiA+PiAg IGludCBpbnRlbF9jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSk7Cj4gPj4gICB2b2lkIGludGVsX2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gPj4gICB2b2lkIGludGVsX2NvbG9yX2xvYWRfbHV0cyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gPj4gICB2b2lkIGlu dGVsX2NvbG9yX2dldF9jb25maWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Owo+ID4+ICtib29sIGludGVsX2NvbG9yX2x1dF9lcXVhbChzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Js b2IgKmJsb2IxLAo+ID4+ICsJCQkgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IyLAo+ ID4+ICsJCQkgICB1MzIgYml0X3ByZWNpc2lvbik7Cj4gPj4gK2ludCBpbnRlbF9jb2xvcl9nZXRf Z2FtbWFfYml0X3ByZWNpc2lvbihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7 Cj4gPj4gICAKPiA+PiAgICNlbmRpZiAvKiBfX0lOVEVMX0NPTE9SX0hfXyAqLwo+ID4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiBpbmRleCAzZTAxMDI4Li5iOGZmM2Y0IDEw MDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+IEBAIC0xMTU3 MCw2ICsxMTU3MCwxNSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+ID4+ICAgCQkJCSAgICAgIGRybV9yZWN0X3dpZHRoKCZzdGF0 ZS0+YmFzZS5kc3QpLAo+ID4+ICAgCQkJCSAgICAgIGRybV9yZWN0X2hlaWdodCgmc3RhdGUtPmJh c2UuZHN0KSk7Cj4gPj4gICAJfQo+ID4+ICsKPiA+PiArCWlmIChJU19DSEVSUllWSUVXKGRldl9w cml2KSkKPiA+PiArCQlEUk1fREVCVUdfS01TKCJjZ21fbW9kZTolZCBnYW1tYV9tb2RlOiVkIGdh bW1hX2VuYWJsZTolZCBjc2NfZW5hYmxlOiVkXG4iLAo+ID4+ICsJCQkgICAgICAgcGlwZV9jb25m aWctPmNnbV9tb2RlLCBwaXBlX2NvbmZpZy0+Z2FtbWFfbW9kZSwKPiA+PiArCQkJICAgICAgIHBp cGVfY29uZmlnLT5nYW1tYV9lbmFibGUsIHBpcGVfY29uZmlnLT5jc2NfZW5hYmxlKTsKPiA+PiAr CWVsc2UKPiA+PiArCQlEUk1fREVCVUdfS01TKCJjc2NfbW9kZTolZCBnYW1tYV9tb2RlOiVkIGdh bW1hX2VuYWJsZTolZCBjc2NfZW5hYmxlOiVkXG4iLAo+ID4+ICsJCQkgICAgICAgcGlwZV9jb25m aWctPmNzY19tb2RlLCBwaXBlX2NvbmZpZy0+Z2FtbWFfbW9kZSwKPiA+PiArCQkJICAgICAgIHBp cGVfY29uZmlnLT5nYW1tYV9lbmFibGUsIHBpcGVfY29uZmlnLT5jc2NfZW5hYmxlKTsKPiA+PiAg IH0KPiA+PiAgIAo+ID4+ICAgc3RhdGljIGJvb2wgY2hlY2tfZGlnaXRhbF9wb3J0X2NvbmZsaWN0 cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPj4gQEAgLTExOTQ3LDYgKzExOTU2 LDcgQEAgc3RhdGljIGJvb2wgZmFzdGJvb3RfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gPj4gICAJCQkgIGJvb2wgYWRqdXN0KQo+ID4+ICAgewo+ID4+ICAgCWJv b2wgcmV0ID0gdHJ1ZTsKPiA+PiArCXUzMiBicF9nYW1tYSA9IDA7Cj4gPj4gICAJYm9vbCBmaXh1 cF9pbmhlcml0ZWQgPSBhZGp1c3QgJiYKPiA+PiAgIAkJKGN1cnJlbnRfY29uZmlnLT5iYXNlLm1v ZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkgJiYKPiA+PiAgIAkJ IShwaXBlX2NvbmZpZy0+YmFzZS5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19J TkhFUklURUQpOwo+ID4+IEBAIC0xMjA5OCw2ICsxMjEwOCwxNSBAQCBzdGF0aWMgYm9vbCBmYXN0 Ym9vdF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+PiAgIAl9 IFwKPiA+PiAgIH0gd2hpbGUgKDApCj4gPj4gICAKPiA+PiArI2RlZmluZSBQSVBFX0NPTkZfQ0hF Q0tfQ09MT1JfTFVUKG5hbWUsIGJpdF9wcmVjaXNpb24pIGRvIHsgXAo+ID4+ICsJaWYgKCFpbnRl bF9jb2xvcl9sdXRfZXF1YWwoY3VycmVudF9jb25maWctPm5hbWUsIFwKPiA+PiArCQkJCSAgIHBp cGVfY29uZmlnLT5uYW1lLCBiaXRfcHJlY2lzaW9uKSkgeyBcCj4gPj4gKwkJcGlwZV9jb25maWdf ZXJyKGFkanVzdCwgX19zdHJpbmdpZnkobmFtZSksIFwKPiA+PiArCQkJCSJod19zdGF0ZSBkb2Vz bid0IG1hdGNoIHN3X3N0YXRlXG4iKTsgXAo+ID4+ICsJCXJldCA9IGZhbHNlOyBcCj4gPj4gKwl9 IFwKPiA+PiArfSB3aGlsZSAoMCkKPiA+PiArCj4gPj4gICAjZGVmaW5lIFBJUEVfQ09ORl9RVUlS SyhxdWlyaykgXAo+ID4+ICAgCSgoY3VycmVudF9jb25maWctPnF1aXJrcyB8IHBpcGVfY29uZmln LT5xdWlya3MpICYgKHF1aXJrKSkKPiA+PiAgIAo+ID4+IEBAIC0xMjE5Myw2ICsxMjIxMiwxMCBA QCBzdGF0aWMgYm9vbCBmYXN0Ym9vdF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiA+PiAgIAkJCVBJUEVfQ09ORl9DSEVDS19YKGNzY19tb2RlKTsKPiA+PiAgIAkJ UElQRV9DT05GX0NIRUNLX0JPT0woZ2FtbWFfZW5hYmxlKTsKPiA+PiAgIAkJUElQRV9DT05GX0NI RUNLX0JPT0woY3NjX2VuYWJsZSk7Cj4gPj4gKwo+ID4+ICsJCWJwX2dhbW1hID0gaW50ZWxfY29s b3JfZ2V0X2dhbW1hX2JpdF9wcmVjaXNpb24ocGlwZV9jb25maWcpOwo+ID4+ICsJCWlmIChicF9n YW1tYSkKPiA+PiArCQkJUElQRV9DT05GX0NIRUNLX0NPTE9SX0xVVChiYXNlLmdhbW1hX2x1dCwg YnBfZ2FtbWEpOwo+ID4gU29tZXRpbWVzIHRoZSBzdyBnYW1tYSBnZXRzIHByb2dyYW1tZWQgaW4g dGhlIGh3IGRlZ2FtbWEsIHNvIHdlIGRvIG5lZWQKPiA+IGRlZ2FtbWEgcmVhZG91dCwgYW5kIHdl J2xsIG5lZWQgdG8gc29tZWhvdyBmaWd1cmUgb3V0IHdoaWNoIGh3IHRoaW5nCj4gPiBpcyB3aGlj aCBzdyB0aGluZy4KPiAKPiBDYW4geW91IHBsZWFzZSBsaXR0bGUgYml0IGVsYWJvcmF0ZSBvbiB0 aGlzPyBXaGF0J3MgdGhlIHVzZWNhc2U/CgpBbnkgdGltZSBnYW1tYSt5Y2Jjci9saW1pdGVkIHJh bmdlIHJnYiBvdXRwdXQgaXMgdXNlZC4KU2VlIGl2Yl9jc2NfbW9kZSgpLgoKCj4gCj4gPgo+ID4g SSdtIHRoaW5raW5nIHRoZSBmb2xsb3dpbmcgc29ydCBvZiBsb2dpYyBzaG91bGQgd29yayBzaW5j ZSBzbwo+ID4gZmFyIGl0IHNob3VsZCBiZSBqdXN0IHRoZSB0aGUgc3cuZ2FtbWEgdGhhdCBjYW4g ZW5kIHVwIGluCj4gPiBody5kZWdhbW1hOgo+ID4KPiA+IGlmIChzdy5nYW1tYSAmJiAhaHcuZ2Ft bWEpIHsKPiA+IAlDSEVDSyhzdy5nYW1tYSwgaHcuZGVnYW1tYSk7Cj4gPiAJQ0hFQ0soc3cuZGVn YW1tYSwgaHcuZ2FtbWEpOwo+ID4gfSBlbHNlIHsKPiA+IAlDSEVDSyhzdy5nYW1tYSwgaHcuZ2Ft bWEpOwo+ID4gCUNIRUNLKHN3LmRlZ2FtbWEsIGh3LmRlZ2FtbWEpOwo+ID4gfQo+ID4KPiA+PiAg IAl9Cj4gPj4gICAKPiA+PiAgIAlQSVBFX0NPTkZfQ0hFQ0tfQk9PTChkb3VibGVfd2lkZSk7Cj4g Pj4gQEAgLTEyMjU1LDYgKzEyMjc4LDcgQEAgc3RhdGljIGJvb2wgZmFzdGJvb3RfZW5hYmxlZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPj4gICAjdW5kZWYgUElQRV9DT05G X0NIRUNLX0ZMQUdTCj4gPj4gICAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0NMT0NLX0ZVWlpZCj4g Pj4gICAjdW5kZWYgUElQRV9DT05GX1FVSVJLCj4gPj4gKyN1bmRlZiBQSVBFX0NPTkZfQ0hFQ0tf Q09MT1JfTFVUCj4gPj4gICAKPiA+PiAgIAlyZXR1cm4gcmV0Owo+ID4+ICAgfQo+ID4+IC0tIAo+ ID4+IDEuOS4xCj4gPj4KPiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+ID4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+PiBJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiAKPiAKPiAtLSAKPiB+U3dhdGkgU2hhcm1hCj4gCgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeA==