From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v6][PATCH 03/12] drm/i915: Add intel_color_lut_equal() to compare hw and sw gamma/degamma lut values Date: Fri, 24 May 2019 18:25:54 +0300 Message-ID: <20190524152554.GF5942@intel.com> References: <1557827010-24239-1-git-send-email-swati2.sharma@intel.com> <1557827010-24239-4-git-send-email-swati2.sharma@intel.com> <20190514161024.GC24299@intel.com> <9b750067-fd23-acc2-a6d0-2c9aaf3e2ad0@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 86B7589E36 for ; Fri, 24 May 2019 15:25:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: <9b750067-fd23-acc2-a6d0-2c9aaf3e2ad0@intel.com> 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: jani.nikula@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXkgMjEsIDIwMTkgYXQgMDc6MTI6MjhQTSArMDUzMCwgU2hhcm1hLCBTd2F0aTIg d3JvdGU6Cj4gT24gMTQtTWF5LTE5IDk6NDAgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiAK PiA+IE9uIFR1ZSwgTWF5IDE0LCAyMDE5IGF0IDAzOjEzOjIxUE0gKzA1MzAsIFN3YXRpIFNoYXJt YSB3cm90ZToKPiA+PiB2MzogLVJlYmFzZQo+ID4+IHY0OiAtUmVuYW1lZCBpbnRlbF9jb21wYXJl X2NvbG9yX2x1dCgpIHRvIGludGVsX2NvbG9yX2x1dF9lcXVhbCgpIFtKYW5pXQo+ID4+ICAgICAg LUFkZGVkIHRoZSBkZWZhdWx0IGxhYmVsIGFib3ZlIHRoZSBjb3JyZWN0IGxhYmVsIFtKYW5pXQo+ ID4+ICAgICAgLUNvcnJlY3RlZCBzbWF0Y2ggd2FybiAidmFyaWFibGUgZGVyZWZlcmVuY2VkIGJl Zm9yZSBjaGVjayIgW0RhbiBDYXJwZW50ZXJdCj4gPj4gdjU6IC1BZGRlZCBjb25kaXRpb24gKCFi bG9iMSAmJiAhYmxvYjIpIHJldHVybiB0cnVlIFtKYW5pXQo+ID4+ICAgICAgLUNhbGxlZCBQSVBF X0NPTkZfQ0hFQ0tfQ09MT1JfTFVUIGluc2lkZSBpZiAoIWFkanVzdCkgW0phbmldCj4gPj4gICAg ICAtQWRkZWQgI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19DT0xPUl9MVVQgW0phbmldCj4gPj4gdjY6 IC1BZGRlZCBmdW5jIGludGVsX2NvbG9yX2dldF9iaXRfcHJlY2lzaW9uKCkgdG8gZ2V0IGJpdCBw cmVjaXNpb24gZm9yCj4gPj4gICAgICAgZ2FtbWEgYW5kIGRlZ2FtbWEgbHV0IHJlYWRvdXQgZGVw ZW5kaW5nIHVwb24gcGxhdGZvcm0gYW5kCj4gPj4gICAgICAgY29ycmVzcG9uZGluZyB0byBsb2Fk X2x1dHMoKSBbQW5raXRdCj4gPj4gICAgICAtQWRkZWQgZGVidWcgbG9nIGZvciBjb2xvciBwYXJh IGluIGludGVsX2R1bXBfcGlwZV9jb25maWcgW0phbmldCj4gPj4gICAgICAtTWFkZSBwYXRjaDEx IGFzIHBhdGNoMyBbSmFuaV0KPiA+Pgo+ID4+IEkgY291bGQgdGhpbmsgb2YgYWRkaW5nIGludGVs X2NvbG9yX2dldF9iaXRfcHJlY2lzaW9uKCkgdG8gYmUgdGhlIHdheQo+ID4+IHRvIGdldCBhd2F5 IHdpdGggYml0IHByZWNpc2lvbiBwcm9ibGVtIGZvciBkZWdhbW1hIGFuZCBnYW1tYSAoaXRzIGxp a2UgYSB0YWJsZQo+ID4+IGhhdmluZyBoYXJkIGNvZGVkIHZhbHVlcyBkZXBlbmluZyBvbiBnYW1t YV9tb2RlKS4KPiA+PiBJZiBhbnlib2R5IGNvdWxkIHRoaW5rIG9mIGJldHRlciB3YXkgdGhlbiB0 aGlzIHRoZW4gcGxlYXNlIGd1aWRlLgo+ID4+Cj4gPj4gU2lnbmVkLW9mZi1ieTogU3dhdGkgU2hh cm1hIDxzd2F0aTIuc2hhcm1hQGludGVsLmNvbT4KPiA+PiAtLS0KPiA+PiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICB8IDkzICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuaCAgIHwg IDcgKysrCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyNCAr KysrKysrKysrCj4gPj4gICAzIGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspCj4gPj4K PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+PiBpbmRleCA1MGI5OGVlLi4xZTYw MzY5IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMK PiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gPj4gQEAgLTEy NTEsNiArMTI1MSw5OSBAQCBzdGF0aWMgaW50IGljbF9jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiAgIAlyZXR1cm4gMDsKPiA+PiAgIH0KPiA+PiAg IAo+ID4+ICt2b2lkIGludGVsX2NvbG9yX2dldF9iaXRfcHJlY2lzaW9uKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLCBpbnQgKmJwX2dhbW1hKQo+ID4+ICt7Cj4gPj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKPiA+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwo+ID4+ICsKPiA+PiArCWlmIChIQVNfR01DSChkZXZfcHJpdikpIHsKPiA+ PiArCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiA+PiArCQkJaWYgKGNydGNfc3Rh dGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpIHsKPiA+PiArCQkJCSpicF9n YW1tYSA9IDg7Cj4gPj4gKwkJCQlyZXR1cm47Cj4gPiBGdW5jdGlvbnMgY2FuIGFjdHVhbGx5IHJl dHVybiB2YWx1ZXMuCj4gPgo+ID4gTm90IHN1cmUgSSBwYXJ0aWN1bGFybHkgbGlrZSB0aGlzIGZ1 bmN0aW9uIHRob3VnaC4gV2UgY2FuJ3QgZml0Cj4gPiB0aGUgZ2FtbWEgdnMuIGRlZ2FtbSBzdHVm ZiBpbiBoZXJlIG5lYXRseS4gSSB0aGluayBwZXItcGxhdGZvcm0KPiA+IHN0dWZmIHRvIGRldGVy bWluZSB0aGUgcHJlY2lzaW9uIGlzIHJlcXVpcmVkIHRvIG1ha2UgdGhpcyBzYW5lLgo+ID4gQW5k IGl0IHNob3VsZCBwcm9iYWJseSBnb3QgaW50byBpbnRlbF9jb2xvci5jIHRvIGtlZXAgdGhpbmdz Cj4gPiBuZWF0bHkgY29udGFpbmVkLgo+ID4KPiA+IFNvbWV0aGluZyBhbG9uZyB0aGUgbGluZXMg b2Y6Cj4gPgo+ID4gaTl4eF9nYW1tYV9wcmVjaXNpb24oKQo+ID4gewo+ID4gCWlmICghZ2FtbWFf ZW5hYmxlKQo+ID4gCQlyZXR1cm4gMDsKPiA+Cj4gPiAJc3dpdGNoIChnYW1tYV9tb2RlKSB7Cj4g PiAJY2FzZSBHQU1NQV9NT0RFX01PREVfOEJJVDoKPiA+IAkJcmV0dXJuIDg7Cj4gPiAJY2FzZSBH QU1NQV9NT0RFX01PREVfMTBCSVQ6Cj4gPiAJCXJldHVybiAxNjsKPiA+IAl9Cj4gPiB9Cj4gPgo+ ID4gY2h2X2dhbW1hX3ByZWNpc2lvbigpCj4gPiB7Cj4gPiAJaWYgKGNnbV9tb2RlICYgQ0dNX1BJ UEVfTU9ERV9HQU1NQSkKPiA+IAkJcmV0dXJuIDEwOwo+ID4gCWVsc2UKPiA+IAkJcmV0dXJuIGk5 eHhfZ2FtbWFfcHJlY2lzaW9uKCk7Cj4gPiB9Cj4gPgo+ID4gY2h2X2RlZ2FtbWFfcHJlY2lzaW9u KGNydGNfc3RhdGUpCj4gPiB7Cj4gPiAJaWYgKGNnbV9tb2RlICYgQ0dNX1BJUEVfTU9ERV9ERUdB TU1BKQo+ID4gCQlyZXR1cm4gMTQ7Cj4gPiAJZWxzZQo+ID4gCQlyZXR1cm4gMAo+ID4gfQo+ID4K PiA+IGlsa19nYW1tYV9wcmVjaXNpb24oKQo+ID4gewo+ID4gCWlmICghZ2FtbWFfZW5hYmxlKQo+ ID4gCQlyZXR1cm4gMDsKPiA+Cj4gPiAJaWYgKChjc2NfbW9kZSAmIENTQ19QT1NJVElPTl9CRUZP UkVfR0FNTUEpID09IDApCj4gPiAJCXJldHVybiAwOwo+ID4KPiA+IAlzd2l0Y2ggKGdhbW1hX21v ZGUpIHsKPiA+IAljYXNlIEdBTU1BX01PREVfTU9ERV84QklUOgo+ID4gCQlyZXR1cm4gODsKPiA+ IAljYXNlIEdBTU1BX01PREVfTU9ERV8xMEJJVDoKPiA+IAkJcmV0dXJuIDEwOwo+ID4gCX0KPiA+ IH0KPiA+Cj4gPiBpbGtfZGVnYW1tYV9wcmVjaXNpb24oKQo+ID4gewo+ID4gCWlmICghZ2FtbWFf ZW5hYmxlKQo+ID4gCQlyZXR1cm4gMDsKPiA+Cj4gPiAJaWYgKChjc2NfbW9kZSAmIENTQ19QT1NJ VElPTl9CRUZPUkVfR0FNTUEpICE9IDApCj4gPiAJCXJldHVybiAwOwo+ID4KPiA+IAlzd2l0Y2gg KGdhbW1hX21vZGUpIHsKPiA+IAljYXNlIEdBTU1BX01PREVfTU9ERV84QklUOgo+ID4gCQlyZXR1 cm4gODsKPiA+IAljYXNlIEdBTU1BX01PREVfTU9ERV8xMEJJVDoKPiA+IAkJcmV0dXJuIDEwOwo+ ID4gCX0KPiA+IH0KPiA+Cj4gPiAuLi4gZXh0ZW5kIHRvIGl2YiwgZ2xrLCBhbmQgaWNsIHZhcmlh bnRzIHRvby4KPiAKPiBvay4ud2lsbCBkbyBsaWtlIHRoaXMuIHRoYW5rcyEgc29ycnkgaSB3YXMg b24gbGVhdmUuCj4gMiBxdWVyaWVzOgo+ICgxKSBTaW5jZSBpbnRlbF9jb2xvcl9nZXRfYml0X3By ZWNpc2lvbigpIHdpbGwgYmUgdXNlZCB0byBzZXQgYml0IHByZWNpc2lvbiBmb3IgZ2FtbWEgYW5k IGRlZ2FtbWEgYm90aCwgaXQgd2lsbAo+ICAgICAgcmV0dXJuIG11bHRpcGxlIHZhbHVlcy4uc2hv dWxkIGkgcmV0dXJuIHZhbHVlcyBhcyBzdHJ1Y3Q/IG9yIHNlbmRpbmcgYXMgcG9pbnRlciBpcyBv az8KPiAJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgewo+IAkJaWYgKElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQo+IAkJCSpicF9nYW1tYSA9IGNodl9nYW1tYV9wcmVjaXNpb24oY3J0Y19zdGF0ZSk7 Cj4gKDIpIChvcikgaWYgdGhpcyBtZXRob2QgaXMgbm90IGZpbmUsIHNob3VsZCB3ZSBoYXZlIGZ1 bmN0aW9uIHB0ciBmb3IgdGhlIHNhbWU/Cj4gUGxlYXNlIHN1Z2dlc3QgdGhlIGJlc3QgbWV0aG9k PwoKSSB3b3VsZCBnbyBmb3Igc2VwYXJhdGUgZnVuY3Rpb25zIGZvciBnYW1tYSBhbmQgZGVnYW1t YS4KCj4gCj4gPgo+ID4+ICsJCQl9Cj4gPj4gKwkJCWlmIChjcnRjX3N0YXRlLT5jZ21fbW9kZSA9 PSBDR01fUElQRV9NT0RFX0dBTU1BKQo+ID4+ICsJCQkJKmJwX2dhbW1hID0gMTA7Cj4gPj4gKwkJ fSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpIHsKPiA+PiArCQkJaWYgKGNydGNf c3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpCj4gPj4gKwkJCQkqYnBf Z2FtbWEgPSA4Owo+ID4+ICsJCQllbHNlCj4gPj4gKwkJCQkqYnBfZ2FtbWEgPSAxNjsKPiA+PiAr CQl9IGVsc2Ugewo+ID4+ICsJCQkqYnBfZ2FtbWEgPSA4Owo+ID4+ICsJCX0KPiA+PiArCX0gZWxz ZSB7Cj4gPj4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKPiA+PiArCQkJaWYg KChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlICYgR0FNTUFfTU9ERV9NT0RFX01BU0spID09Cj4gPj4g KwkJCQkJR0FNTUFfTU9ERV9NT0RFXzhCSVQpCj4gPj4gKwkJCQkqYnBfZ2FtbWEgPSA4Owo+ID4+ ICsJCQllbHNlCj4gPj4gKwkJCQkqYnBfZ2FtbWEgPSAxMDsKPiA+PiArCQl9IGVsc2UgaWYgKElT X0NBTk5PTkxBS0UoZGV2X3ByaXYpIHx8IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gPj4g KwkJCWlmIChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV84QklUKQo+ ID4+ICsJCQkJKmJwX2dhbW1hID0gODsKPiA+PiArCQkJZWxzZQo+ID4+ICsJCQkJKmJwX2dhbW1h ID0gMTA7Cj4gPj4gKwkJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDcpIHsKPiA+ PiArCQkJaWYgKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQp Cj4gPj4gKwkJCQkqYnBfZ2FtbWEgPSA4Owo+ID4+ICsJCQllbHNlIGlmIChjcnRjX3N0YXRlLT5n YW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV9TUExJVCkKPiA+PiArCQkJCSpicF9nYW1tYSA9 IDEwOwo+ID4+ICsJCQkJZWxzZQo+ID4+ICsJCQkJCSpicF9nYW1tYSA9IDEwOwo+ID4+ICsJCX0g ZWxzZSB7Cj4gPj4gKwkJCWlmIChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVf TU9ERV84QklUKQo+ID4+ICsJCQkJKmJwX2dhbW1hID0gODsKPiA+PiArCQkJZWxzZQo+ID4+ICsJ CQkJKmJwX2dhbW1hID0gMTA7Cj4gPj4gKwkJfQo+ID4+ICsJfQo+ID4+ICt9Cj4gPj4gKwo+ID4+ ICtzdGF0aWMgaW5saW5lIGJvb2wgZXJyX2NoZWNrKHN0cnVjdCBkcm1fY29sb3JfbHV0ICpzd19s dXQsCj4gPj4gKwkgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqaHdf bHV0LCB1MzIgZXJyKQo+ID4+ICt7Cj4gPj4gKwkgcmV0dXJuICgoYWJzKChsb25nKWh3X2x1dC0+ cmVkIC0gc3dfbHV0LT5yZWQpKSA8PSBlcnIpICYmCj4gPj4gKwkgICAgICAgICgoYWJzKChsb25n KWh3X2x1dC0+Ymx1ZSAtIHN3X2x1dC0+Ymx1ZSkpIDw9IGVycikgJiYKPiA+PiArCSAgICAgICAg KChhYnMoKGxvbmcpaHdfbHV0LT5ncmVlbiAtIHN3X2x1dC0+Z3JlZW4pKSA8PSBlcnIpOwo+ID4+ ICt9Cj4gPj4gKwo+ID4+ICtib29sIGludGVsX2NvbG9yX2x1dF9lcXVhbChzdHJ1Y3QgZHJtX3By b3BlcnR5X2Jsb2IgKmJsb2IxLAo+ID4+ICsJCQkgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig KmJsb2IyLAo+ID4+ICsJCQkgICB1MzIgYml0X3ByZWNpc2lvbikKPiA+PiArewo+ID4+ICsJc3Ry dWN0IGRybV9jb2xvcl9sdXQgKnN3X2x1dCwgKmh3X2x1dDsKPiA+PiArCWludCBzd19sdXRfc2l6 ZSwgaHdfbHV0X3NpemUsIGk7Cj4gPj4gKwl1MzIgZXJyOwo+ID4+ICsKPiA+PiArCWlmICghYmxv YjEgJiYgIWJsb2IyKQo+ID4+ICsJCXJldHVybiB0cnVlOwo+ID4+ICsKPiA+PiArCWlmICghYmxv YjEpCj4gPj4gKwkJcmV0dXJuIHRydWU7Cj4gPj4gKwo+ID4+ICsJaWYgKCFibG9iMikKPiA+PiAr CQlyZXR1cm4gZmFsc2U7Cj4gPj4gKwo+ID4+ICsJc3dfbHV0X3NpemUgPSBkcm1fY29sb3JfbHV0 X3NpemUoYmxvYjEpOwo+ID4+ICsJaHdfbHV0X3NpemUgPSBkcm1fY29sb3JfbHV0X3NpemUoYmxv YjIpOwo+ID4+ICsKPiA+PiArCWlmIChzd19sdXRfc2l6ZSAhPSBod19sdXRfc2l6ZSkKPiA+PiAr CQlyZXR1cm4gZmFsc2U7Cj4gPj4gKwo+ID4+ICsJc3dfbHV0ID0gYmxvYjEtPmRhdGE7Cj4gPj4g Kwlod19sdXQgPSBibG9iMi0+ZGF0YTsKPiA+PiArCj4gPj4gKwllcnIgPSAweGZmZmYgPj4gYml0 X3ByZWNpc2lvbjsKPiA+PiArCj4gPj4gKwlmb3IgKGkgPSAwOyBpIDwgc3dfbHV0X3NpemU7IGkr Kykgewo+ID4+ICsJCSBpZiAoIWVycl9jaGVjaygmaHdfbHV0W2ldLCAmc3dfbHV0W2ldLCBlcnIp KQo+ID4+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gPj4gKwl9Cj4gPj4gKwo+ID4+ICsJcmV0dXJuIHRy dWU7Cj4gPj4gK30KPiA+PiArCj4gPj4gICB2b2lkIGludGVsX2NvbG9yX2luaXQoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCj4gPj4gICB7Cj4gPj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jb2xvci5oCj4gPj4gaW5kZXggMDU3ZThhYy4uZjI4NzJkMyAxMDA2NDQKPiA+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5oCj4gPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuaAo+ID4+IEBAIC02LDEzICs2LDIwIEBACj4gPj4gICAj aWZuZGVmIF9fSU5URUxfQ09MT1JfSF9fCj4gPj4gICAjZGVmaW5lIF9fSU5URUxfQ09MT1JfSF9f Cj4gPj4gICAKPiA+PiArI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gPj4gKwo+ID4+ICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGU7Cj4gPj4gICBzdHJ1Y3QgaW50ZWxfY3J0YzsKPiA+PiArc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iOwo+ID4+ICAgCj4gPj4gICB2b2lkIGludGVsX2NvbG9yX2lu aXQoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ID4+ICAgaW50IGludGVsX2NvbG9yX2NoZWNr KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiA+PiAgIHZvaWQgaW50ZWxf Y29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsK PiA+PiAgIHZvaWQgaW50ZWxfY29sb3JfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKTsKPiA+PiAgIHZvaWQgaW50ZWxfY29sb3JfZ2V0X2NvbmZpZyhz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gPj4gK2Jvb2wgaW50ZWxfY29s b3JfbHV0X2VxdWFsKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjEsCj4gPj4gKwkJCSAg IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjIsCj4gPj4gKwkJCSAgIHUzMiBiaXRfcHJl Y2lzaW9uKTsKPiA+PiArdm9pZCBpbnRlbF9jb2xvcl9nZXRfYml0X3ByZWNpc2lvbihzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgaW50ICpicF9nYW1tYSk7Cj4gPj4gICAKPiA+ PiAgICNlbmRpZiAvKiBfX0lOVEVMX0NPTE9SX0hfXyAqLwo+ID4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiA+PiBpbmRleCAzZTAxMDI4Li40Njk4NWMxNSAxMDA2NDQKPiA+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiBAQCAtMTE1NzAsNiArMTE1NzAs MTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKPiA+PiAgIAkJCQkgICAgICBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPmJhc2UuZHN0 KSwKPiA+PiAgIAkJCQkgICAgICBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5iYXNlLmRzdCkpOwo+ ID4+ICAgCX0KPiA+PiArCj4gPj4gKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gPj4g KwkJRFJNX0RFQlVHX0tNUygiY2dtX21vZGU6JWQgZ2FtbWFfbW9kZTolZCBnYW1tYV9lbmFibGU6 JWQgY3NjX2VuYWJsZTolZFxuIiwKPiA+PiArCQkJICAgICAgIHBpcGVfY29uZmlnLT5jZ21fbW9k ZSwgcGlwZV9jb25maWctPmdhbW1hX21vZGUsIHBpcGVfY29uZmlnLT5nYW1tYV9lbmFibGUsCj4g Pj4gKwkJCSAgICAgICBwaXBlX2NvbmZpZy0+Y3NjX2VuYWJsZSk7Cj4gPj4gKwllbHNlCj4gPj4g KwkJRFJNX0RFQlVHX0tNUygiY3NjX21vZGU6JWQgZ2FtbWFfbW9kZTolZCBnYW1tYV9lbmFibGU6 JWQgY3NjX2VuYWJsZTolZFxuIiwKPiA+PiArCQkJICAgICAgIHBpcGVfY29uZmlnLT5jc2NfbW9k ZSwgcGlwZV9jb25maWctPmdhbW1hX21vZGUsIHBpcGVfY29uZmlnLT5nYW1tYV9lbmFibGUsCj4g Pj4gKwkJCSAgICAgICBwaXBlX2NvbmZpZy0+Y3NjX2VuYWJsZSk7Cj4gPj4gKwo+ID4+ICAgfQo+ ID4+ICAgCj4gPj4gICBzdGF0aWMgYm9vbCBjaGVja19kaWdpdGFsX3BvcnRfY29uZmxpY3RzKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+PiBAQCAtMTE5NDcsNiArMTE5NTcsNyBA QCBzdGF0aWMgYm9vbCBmYXN0Ym9vdF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiA+PiAgIAkJCSAgYm9vbCBhZGp1c3QpCj4gPj4gICB7Cj4gPj4gICAJYm9vbCBy ZXQgPSB0cnVlOwo+ID4+ICsJdTMyIGJwX2dhbW1hID0gMDsKPiA+PiAgIAlib29sIGZpeHVwX2lu aGVyaXRlZCA9IGFkanVzdCAmJgo+ID4+ICAgCQkoY3VycmVudF9jb25maWctPmJhc2UubW9kZS5w cml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEKSAmJgo+ID4+ICAgCQkhKHBp cGVfY29uZmlnLT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVS SVRFRCk7Cj4gPj4gQEAgLTEyMDk4LDYgKzEyMTA5LDE1IEBAIHN0YXRpYyBib29sIGZhc3Rib290 X2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4+ICAgCX0gXAo+ ID4+ICAgfSB3aGlsZSAoMCkKPiA+PiAgIAo+ID4+ICsjZGVmaW5lIFBJUEVfQ09ORl9DSEVDS19D T0xPUl9MVVQobmFtZSwgYml0X3ByZWNpc2lvbikgZG8geyBcCj4gPj4gKwlpZiAoIWludGVsX2Nv bG9yX2x1dF9lcXVhbChjdXJyZW50X2NvbmZpZy0+bmFtZSwgXAo+ID4+ICsJCQkJICAgcGlwZV9j b25maWctPm5hbWUsIGJpdF9wcmVjaXNpb24pKSB7IFwKPiA+PiArCQlwaXBlX2NvbmZpZ19lcnIo YWRqdXN0LCBfX3N0cmluZ2lmeShuYW1lKSwgXAo+ID4+ICsJCQkJImh3X3N0YXRlIGRvZXNuJ3Qg bWF0Y2ggc3dfc3RhdGVcbiIpOyBcCj4gPj4gKwkJcmV0ID0gZmFsc2U7IFwKPiA+PiArCX0gXAo+ ID4+ICt9IHdoaWxlICgwKQo+ID4+ICsKPiA+PiAgICNkZWZpbmUgUElQRV9DT05GX1FVSVJLKHF1 aXJrKSBcCj4gPj4gICAJKChjdXJyZW50X2NvbmZpZy0+cXVpcmtzIHwgcGlwZV9jb25maWctPnF1 aXJrcykgJiAocXVpcmspKQo+ID4+ICAgCj4gPj4gQEAgLTEyMTkzLDYgKzEyMjEzLDkgQEAgc3Rh dGljIGJvb2wgZmFzdGJvb3RfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gPj4gICAJCQlQSVBFX0NPTkZfQ0hFQ0tfWChjc2NfbW9kZSk7Cj4gPj4gICAJCVBJUEVf Q09ORl9DSEVDS19CT09MKGdhbW1hX2VuYWJsZSk7Cj4gPj4gICAJCVBJUEVfQ09ORl9DSEVDS19C T09MKGNzY19lbmFibGUpOwo+ID4+ICsKPiA+PiArCQlpbnRlbF9jb2xvcl9nZXRfYml0X3ByZWNp c2lvbihwaXBlX2NvbmZpZywgJmJwX2dhbW1hKTsKPiA+PiArCQlQSVBFX0NPTkZfQ0hFQ0tfQ09M T1JfTFVUKGJhc2UuZ2FtbWFfbHV0LCBicF9nYW1tYSk7Cj4gPj4gICAJfQo+ID4+ICAgCj4gPj4g ICAJUElQRV9DT05GX0NIRUNLX0JPT0woZG91YmxlX3dpZGUpOwo+ID4+IEBAIC0xMjI1NSw2ICsx MjI3OCw3IEBAIHN0YXRpYyBib29sIGZhc3Rib290X2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ID4+ICAgI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19GTEFHUwo+ID4+ ICAgI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19DTE9DS19GVVpaWQo+ID4+ICAgI3VuZGVmIFBJUEVf Q09ORl9RVUlSSwo+ID4+ICsjdW5kZWYgUElQRV9DT05GX0NIRUNLX0NPTE9SX0xVVAo+ID4+ICAg Cj4gPj4gICAJcmV0dXJuIHJldDsKPiA+PiAgIH0KPiA+PiAtLSAKPiA+PiAxLjkuMQo+IAo+IAo+ IC0tIAo+IH5Td2F0aSBTaGFybWEKPiAKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4