From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 3/4] [v5] drm/i915/color: Extract icl_read_luts() Date: Tue, 15 Oct 2019 10:59:11 +0300 Message-ID: <87d0eybfsg.fsf@intel.com> References: <20191009065542.27415-1-swati2.sharma@intel.com> <20191009065542.27415-4-swati2.sharma@intel.com> <20191009141611.GB1208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4479889FD3 for ; Tue, 15 Oct 2019 07:58:19 +0000 (UTC) In-Reply-To: <20191009141611.GB1208@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= , Swati Sharma Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, ankit.k.nautiyal@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAwOSBPY3QgMjAxOSwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gV2VkLCBPY3QgMDksIDIwMTkgYXQgMTI6MjU6NDFQTSAr MDUzMCwgU3dhdGkgU2hhcm1hIHdyb3RlOgo+PiBGb3IgaWNsKywgaGF2ZSBodyByZWFkIG91dCB0 byBjcmVhdGUgaHcgYmxvYiBvZiBnYW1tYQo+PiBsdXQgdmFsdWVzLiBpY2wrIHBsYXRmb3JtcyBz dXBwb3J0cyBtdWx0aSBzZWdtZW50ZWQgZ2FtbWEKPj4gbW9kZSBieSBkZWZhdWx0LCBhZGQgaHcg bHV0IGNyZWF0aW9uIGZvciB0aGlzIG1vZGUuCj4+IAo+PiBUaGlzIHdpbGwgYmUgdXNlZCB0byB2 YWxpZGF0ZSBnYW1tYSBwcm9ncmFtbWluZyB1c2luZyBkc2IKPj4gKGRpc3BsYXkgc3RhdGUgYnVm ZmVyKSB3aGljaCBpcyBhIHRnbCBzcGVjaWZpYyBmZWF0dXJlLgo+PiAKPj4gTWFqb3IgY2hhbmdl IGRvbmUtcmVtb3ZhbCBvZiByZWFkb3V0cyBvZiBjb2Fyc2UgYW5kIGZpbmUgc2VnbWVudHMKPj4g YmVjYXVzZSBQQUxfUFJFQ19EQVRBIHJlZ2lzdGVyIGlzbid0IGdpdmluZyBwcm9wb2VyIHZhbHVl cy4KPj4gU3RhdGUgY2hlY2tlciBsaW1pdGVkIG9ubHkgdG8gImZpbmUgc2VnbWVudCIKPj4gCj4+ IHYyOiAtcmVhZG91dCBjb2RlIGZvciBtdWx0aXNlZ21lbnRlZCBnYW1tYSBoYXMgdG8gY29tZQo+ PiAgICAgIHVwIHdpdGggc29tZSBpbnRlcm1lZGlhdGUgZW50cmllcyB0aGF0IGFyZW4ndCBwcmVz ZXJ2ZWQKPj4gICAgICBpbiBoYXJkd2FyZSAoSmFuaSBOKQo+PiAgICAgLWxpbmVhciBpbnRlcnBv bGF0aW9uIChWaWxsZSkKPj4gICAgIC1tb3ZlZCBjb21tb24gY29kZSB0byBjaGVjayBnYW1tYV9l bmFibGUgdG8gc3BlY2lmaWMgZnVuY3MsCj4+ICAgICAgc2luY2UgaWNsIGRvZXNuJ3Qgc3VwcG9y dCB0aGF0Cj4+IHYzOiAtdXNlIHUxNiBpbnN0ZWFkIG9mIF9fdTE2IFtKYW5pIE5dCj4+ICAgICAt dXNlZCBzaW5nbGUgbHV0IFtKYW5pIE5dCj4+ICAgICAtaW1wcm92ZWQgYW5kIG1vcmUgcmVhZGFi bGUgZm9yIGxvb3BzIFtKYW5pIE5dCj4+ICAgICAtcmVhZCB2YWx1ZXMgZGlyZWN0bHkgdG8gYWN0 dWFsIGxvY2F0aW9ucyBhbmQgdGhlbiBmaWxsIGdhcHMgW0phbmkgTl0KPj4gICAgIC1tb3ZlZCBj bGVhbmluZyB0byBwYXRjaCAxIFtKYW5pIE5dCj4+ICAgICAtcmVuYW1lZCBpY2xfcmVhZF9sdXRf bXVsdGlfc2VnKCkgdG8gaWNsX3JlYWRfbHV0X211bHRpX3NlZ21lbnQgdG8KPj4gICAgICBtYWtl IGl0IHNpbWlsYXIgdG8gaWNsX2xvYWRfbHV0cygpCj4+ICAgICAtcmVuYW1lZCBpY2xfY29tcHV0 ZV9pbnRlcnBvbGF0ZWRfZ2FtbWFfYmxvYigpIHRvCj4+ICAgICAgaWNsX2NvbXB1dGVfaW50ZXJw b2xhdGVkX2dhbW1hX2x1dF92YWx1ZXMoKSBtb3JlIHNlbnNpYmxlLCBJIGd1ZXNzCj4+IHY0OiAt cmVtb3ZlZCBpbnRlcnBvbGF0ZWQgZnVuYyBmb3IgY3JlYXRpbmcgZ2FtbWEgbHV0IHZhbHVlcwo+ PiAgICAgLXJlbW92ZWQgcmVhZG91dHMgb2YgZmluZSBhbmQgY29hcnNlIHNlZ21lbnRzLCBmYWls dXJlIHRvIHJlYWQgUEFMX1BSRUNfREFUQQo+PiAgICAgIGNvcnJlY3RseQo+PiB2NTogLWFkZGVk IGdhbW1hX2VuYWJsZSBjaGVjayBpbnNpZGUgcmVhZF9sdXRzKCkKPj4gCj4+IFNpZ25lZC1vZmYt Ynk6IFN3YXRpIFNoYXJtYSA8c3dhdGkyLnNoYXJtYUBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jIHwgMTE0ICsrKysrKysrKysr KysrKysrKy0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICAg IHwgICA2ICsrCj4+ICAyIGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCAxMiBkZWxl dGlvbnMoLSkKPj4gCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9y LmMKPj4gaW5kZXggZmE0NGViNzNkMDg4Li42MTRlMGFkMzg2Y2EgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPj4gQEAgLTE0NzcsNiArMTQ3Nywy NSBAQCBzdGF0aWMgaW50IGdsa19nYW1tYV9wcmVjaXNpb24oY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+ICAJfQo+PiAgfQo+PiAgCj4+ICtzdGF0aWMgaW50IGlj bF9nYW1tYV9wcmVjaXNpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCj4+ICt7Cj4+ICsJaWYgKChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlICYgUE9TVF9DU0NfR0FN TUFfRU5BQkxFKSA9PSAwKQo+PiArCQlyZXR1cm4gMDsKPj4gKwo+PiArCXN3aXRjaCAoY3J0Y19z dGF0ZS0+Z2FtbWFfbW9kZSAmIEdBTU1BX01PREVfTU9ERV9NQVNLKSB7Cj4+ICsJY2FzZSBHQU1N QV9NT0RFX01PREVfOEJJVDoKPj4gKwkJcmV0dXJuIDg7Cj4+ICsJY2FzZSBHQU1NQV9NT0RFX01P REVfMTBCSVQ6Cj4+ICsJCXJldHVybiAxMDsKPj4gKwljYXNlIEdBTU1BX01PREVfTU9ERV8xMkJJ VF9NVUxUSV9TRUdNRU5URUQ6Cj4+ICsJCXJldHVybiAxNjsKPj4gKwlkZWZhdWx0Ogo+PiArCQlN SVNTSU5HX0NBU0UoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4+ICsJCXJldHVybiAwOwo+PiAr CX0KPj4gKwo+PiArfQo+PiArCj4+ICBpbnQgaW50ZWxfY29sb3JfZ2V0X2dhbW1hX2JpdF9wcmVj aXNpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+ICB7Cj4+ ICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7Cj4+IEBAIC0xNDg4LDcgKzE1MDcsOSBAQCBpbnQgaW50ZWxfY29sb3JfZ2V0X2dh bW1hX2JpdF9wcmVjaXNpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dAo+PiAgCQllbHNlCj4+ICAJCQlyZXR1cm4gaTl4eF9nYW1tYV9wcmVjaXNpb24oY3J0Y19zdGF0 ZSk7Cj4+ICAJfSBlbHNlIHsKPj4gLQkJaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpIHx8IElT X0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+PiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAx MSkKPj4gKwkJCXJldHVybiBpY2xfZ2FtbWFfcHJlY2lzaW9uKGNydGNfc3RhdGUpOwo+PiArCQll bHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2 KSkKPj4gIAkJCXJldHVybiBnbGtfZ2FtbWFfcHJlY2lzaW9uKGNydGNfc3RhdGUpOwo+PiAgCQll bHNlIGlmIChJU19JUk9OTEFLRShkZXZfcHJpdikpCj4+ICAJCQlyZXR1cm4gaWxrX2dhbW1hX3By ZWNpc2lvbihjcnRjX3N0YXRlKTsKPj4gQEAgLTE1MTksNiArMTU0MCwyMCBAQCBzdGF0aWMgYm9v bCBpbnRlbF9jb2xvcl9sdXRfZW50cnlfZXF1YWwoc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dDEs Cj4+ICAJcmV0dXJuIHRydWU7Cj4+ICB9Cj4+ICAKPj4gK3N0YXRpYyBib29sIGludGVsX2NvbG9y X2x1dF9lbnRyeV9tdWx0aV9lcXVhbChzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0MSwKPj4gKwkJ CQkJICAgICAgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dDIsCj4+ICsJCQkJCSAgICAgIGludCBs dXRfc2l6ZSwgdTMyIGVycikKPj4gK3sKPj4gKwlpbnQgaTsKPj4gKwo+PiArCWZvciAoaSA9IDA7 IGkgPCA5OyBpKyspIHsKPj4gKwkJaWYgKCFlcnJfY2hlY2soJmx1dDFbaV0sICZsdXQyW2ldLCBl cnIpKQo+PiArCQkJcmV0dXJuIGZhbHNlOwo+PiArCX0KPj4gKwo+PiArCXJldHVybiB0cnVlOwo+ PiArfQo+PiArCj4+ICBib29sIGludGVsX2NvbG9yX2x1dF9lcXVhbChzdHJ1Y3QgZHJtX3Byb3Bl cnR5X2Jsb2IgKmJsb2IxLAo+PiAgCQkJICAgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9i MiwKPj4gIAkJCSAgIHUzMiBnYW1tYV9tb2RlLCB1MzIgYml0X3ByZWNpc2lvbikKPj4gQEAgLTE1 MzcsMTYgKzE1NzIsOCBAQCBib29sIGludGVsX2NvbG9yX2x1dF9lcXVhbChzdHJ1Y3QgZHJtX3By b3BlcnR5X2Jsb2IgKmJsb2IxLAo+PiAgCWx1dF9zaXplMiA9IGRybV9jb2xvcl9sdXRfc2l6ZShi bG9iMik7Cj4+ICAKPj4gIAkvKiBjaGVjayBzdyBhbmQgaHcgbHV0IHNpemUgKi8KPj4gLQlzd2l0 Y2ggKGdhbW1hX21vZGUpIHsKPj4gLQljYXNlIEdBTU1BX01PREVfTU9ERV84QklUOgo+PiAtCWNh c2UgR0FNTUFfTU9ERV9NT0RFXzEwQklUOgo+PiAtCQlpZiAobHV0X3NpemUxICE9IGx1dF9zaXpl MikKPj4gLQkJCXJldHVybiBmYWxzZTsKPj4gLQkJYnJlYWs7Cj4+IC0JZGVmYXVsdDoKPj4gLQkJ TUlTU0lOR19DQVNFKGdhbW1hX21vZGUpOwo+PiAtCQkJcmV0dXJuIGZhbHNlOwo+PiAtCX0KPj4g KwlpZiAobHV0X3NpemUxICE9IGx1dF9zaXplMikKPj4gKwkJcmV0dXJuIGZhbHNlOwo+PiAgCj4+ ICAJbHV0MSA9IGJsb2IxLT5kYXRhOwo+PiAgCWx1dDIgPSBibG9iMi0+ZGF0YTsKPj4gQEAgLTE1 NTQsMTMgKzE1ODEsMTggQEAgYm9vbCBpbnRlbF9jb2xvcl9sdXRfZXF1YWwoc3RydWN0IGRybV9w cm9wZXJ0eV9ibG9iICpibG9iMSwKPj4gIAllcnIgPSAweGZmZmYgPj4gYml0X3ByZWNpc2lvbjsK Pj4gIAo+PiAgCS8qIGNoZWNrIHN3IGFuZCBodyBsdXQgZW50cnkgdG8gYmUgZXF1YWwgKi8KPj4g LQlzd2l0Y2ggKGdhbW1hX21vZGUpIHsKPj4gKwlzd2l0Y2ggKGdhbW1hX21vZGUgJiBHQU1NQV9N T0RFX01PREVfTUFTSykgewo+PiAgCWNhc2UgR0FNTUFfTU9ERV9NT0RFXzhCSVQ6Cj4+ICAJY2Fz ZSBHQU1NQV9NT0RFX01PREVfMTBCSVQ6Cj4+ICAJCWlmICghaW50ZWxfY29sb3JfbHV0X2VudHJ5 X2VxdWFsKGx1dDEsIGx1dDIsCj4+ICAJCQkJCQkgbHV0X3NpemUyLCBlcnIpKQo+PiAgCQkJcmV0 dXJuIGZhbHNlOwo+PiAgCQlicmVhazsKPj4gKwljYXNlIEdBTU1BX01PREVfTU9ERV8xMkJJVF9N VUxUSV9TRUdNRU5URUQ6Cj4+ICsJCWlmICghaW50ZWxfY29sb3JfbHV0X2VudHJ5X211bHRpX2Vx dWFsKGx1dDEsIGx1dDIsCj4+ICsJCQkJCQkgICAgICAgbHV0X3NpemUyLCBlcnIpKQo+Cj4gSSBk b24ndCB0aGluayB5b3UgbmVlZCBhIG5ldyBmdW5jdGlvbiBmb3IgdGhhdC4gSnVzdCBwYXNzIDkg YXMgdGhlIHNpemUKPiB0byBpbnRlbF9jb2xvcl9sdXRfZW50cnlfZXF1YWwoKSA/CgpJIHRoaW5r IHRoZSBpZGVhIGlzIHRvIHByZXBhcmUgZm9yIGlmL3doZW4gd2UgY2FuIGFjdHVhbGx5IGNoZWNr IHRoZQptdWx0aS1zZWdtZW50ZWQgY2FzZSB3aGVyZSB3ZSBoYXZlIGl0ZW1zIHRoYXQgbmVlZCB0 byBiZSBpZ25vcmVkIHdpdGgKZGlmZmVyZW50IHNwYWNpbmcuCgpCUiwKSmFuaS4KCgo+Cj4gSG1t LCBzaG91bGQgcHJvYmFibHkgcmVuYW1lIHRoYXQgdG8ganVzdCBpbnRlbF9jb2xvcl9sdXRfZXF1 YWwoKSBzaW5jZQo+IGl0IGNoZWNrcyB0aGUgZW50aXJlIExVVCAob3IgYXQgbGVhc3QgdGhlIHNw ZWNpZmllZCBzdWJzZXQpIGFuZCBub3QKPiBqdXN0IGEgc2luZ2xlIGVudHJ5Li4uCj4KPj4gKwkJ CXJldHVybiBmYWxzZTsKPj4gKwkJYnJlYWs7Cj4+ICAJZGVmYXVsdDoKPj4gIAkJTUlTU0lOR19D QVNFKGdhbW1hX21vZGUpOwo+PiAgCQkJcmV0dXJuIGZhbHNlOwo+PiBAQCAtMTgxNSw2ICsxODQ3 LDYzIEBAIHN0YXRpYyB2b2lkIGdsa19yZWFkX2x1dHMoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4+ICAJCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ID0gZ2xrX3JlYWRf bHV0XzEwKGNydGNfc3RhdGUsIFBBTF9QUkVDX0lOREVYX1ZBTFVFKDApKTsKPj4gIH0KPj4gIAo+ PiArc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCj4+ICtpY2xfcmVhZF9sdXRfbXVs dGlfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4g K3sKPj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPj4gKwlpbnQgbHV0X3NpemUgPSBJTlRFTF9JTkZPKGRl dl9wcml2KS0+Y29sb3IuZ2FtbWFfbHV0X3NpemU7Cj4+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRj LT5waXBlOwo+PiArCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjsKPj4gKwlzdHJ1Y3Qg ZHJtX2NvbG9yX2x1dCAqYmxvYl9kYXRhOwo+PiArCXUzMiBpLCB2YWwxLCB2YWwyOwo+PiArCj4+ ICsJYmxvYiA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfYmxvYigmZGV2X3ByaXYtPmRybSwKPj4gKwkJ CQkJc2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfbHV0KSAqIGx1dF9zaXplLAo+PiArCQkJCQlOVUxM KTsKPj4gKwlpZiAoSVNfRVJSKGJsb2IpKQo+PiArCQlyZXR1cm4gTlVMTDsKPj4gKwo+PiArCWJs b2JfZGF0YSA9IGJsb2ItPmRhdGE7Cj4+ICsKPj4gKwlJOTE1X1dSSVRFKFBSRUNfUEFMX01VTFRJ X1NFR19JTkRFWChwaXBlKSwgUEFMX1BSRUNfQVVUT19JTkNSRU1FTlQpOwo+PiArCj4+ICsJZm9y IChpID0gMDsgaSA8IDk7IGkrKykgewo+PiArCQl2YWwxID0gSTkxNV9SRUFEKFBSRUNfUEFMX01V TFRJX1NFR19EQVRBKHBpcGUpKTsKPj4gKwkJdmFsMiA9IEk5MTVfUkVBRChQUkVDX1BBTF9NVUxU SV9TRUdfREFUQShwaXBlKSk7Cj4+ICsKPj4gKwkJYmxvYl9kYXRhW2ldLnJlZCA9IFJFR19GSUVM RF9HRVQoUEFMX1BSRUNfTVVMVElfU0VHX1JFRF9VRFdfTUFTSywgdmFsMikgPDwgNiB8Cj4+ICsJ CQkJICAgUkVHX0ZJRUxEX0dFVChQQUxfUFJFQ19NVUxUSV9TRUdfUkVEX0xEV19NQVNLLCB2YWwx KTsKPj4gKwkJYmxvYl9kYXRhW2ldLmdyZWVuID0gUkVHX0ZJRUxEX0dFVChQQUxfUFJFQ19NVUxU SV9TRUdfR1JFRU5fVURXX01BU0ssIHZhbDIpIDw8IDYgfAo+PiArCQkJCSAgICAgUkVHX0ZJRUxE X0dFVChQQUxfUFJFQ19NVUxUSV9TRUdfR1JFRU5fTERXX01BU0ssIHZhbDEpOwo+PiArCQlibG9i X2RhdGFbaV0uYmx1ZSA9IFJFR19GSUVMRF9HRVQoUEFMX1BSRUNfTVVMVElfU0VHX0JMVUVfVURX X01BU0ssIHZhbDIpIDw8IDYgfAo+PiArCQkJCSAgICBSRUdfRklFTERfR0VUKFBBTF9QUkVDX01V TFRJX1NFR19CTFVFX0xEV19NQVNLLCB2YWwxKTsKPj4gKwl9Cj4+ICsKPj4gKwkvKgo+PiArCSAq IEZJWE1FIHJlYWRvdXRzIGZyb20gUEFMX1BSRUNfREFUQSByZWdpc3RlciBhcmVuJ3QgZ2l2aW5n IGNvcnJlY3QgdmFsdWVzCj4+ICsJICogaW4gdGhlIGNhc2Ugb2YgZmluZSBhbmQgY29hcnNlIHNl Z21lbnRzLiBSZXN0cmljdGluZyByZWFkb3V0cyBvbmx5IGZvcgo+PiArCSAqIHN1cGVyIGZpbmUg c2VnbWVudCBhcyBvZiBub3cuCj4+ICsJICovCj4+ICsKPj4gKwlyZXR1cm4gYmxvYjsKPj4gK30K Pj4gKwo+PiArc3RhdGljIHZvaWQgaWNsX3JlYWRfbHV0cyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPj4gK3sKPj4gKwlpZiAoKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgJiBQ T1NUX0NTQ19HQU1NQV9FTkFCTEUpID09IDApCj4+ICsJCXJldHVybjsKPj4gKwo+PiArCWlmICgo Y3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSAmIEdBTU1BX01PREVfTU9ERV9NQVNLKSA9PQo+PiArCSAg ICBHQU1NQV9NT0RFX01PREVfOEJJVCkKPgo+IFBsZWFzZSBtYWtlIHRoaXMgYSBzd2l0Y2ggc3Rh dGVtZW50Lgo+Cj4gSSBwdXNoZWQgcGF0Y2hlcyAxLTIgdG8gZGlucS4gVGhhbmtzLgo+Cj4+ICsJ CWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ID0gaTl4eF9yZWFkX2x1dF84KGNydGNfc3RhdGUp Owo+PiArCWVsc2UgaWYgKChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlICYgR0FNTUFfTU9ERV9NT0RF X01BU0spID09Cj4+ICsJCSBHQU1NQV9NT0RFX01PREVfMTJCSVRfTVVMVElfU0VHTUVOVEVEKQo+ PiArCQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCA9IGljbF9yZWFkX2x1dF9tdWx0aV9zZWdt ZW50KGNydGNfc3RhdGUpOwo+PiArCWVsc2UKPj4gKwkJY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9s dXQgPSBnbGtfcmVhZF9sdXRfMTAoY3J0Y19zdGF0ZSwgUEFMX1BSRUNfSU5ERVhfVkFMVUUoMCkp Owo+PiArfQo+PiArCj4+ICB2b2lkIGludGVsX2NvbG9yX2luaXQoc3RydWN0IGludGVsX2NydGMg KmNydGMpCj4+ICB7Cj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7Cj4+IEBAIC0xODU4LDYgKzE5NDcsNyBAQCB2b2lkIGludGVs X2NvbG9yX2luaXQoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4+ICAKPj4gIAkJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gMTEpIHsKPj4gIAkJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0 cyA9IGljbF9sb2FkX2x1dHM7Cj4+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5yZWFkX2x1dHMgPSBp Y2xfcmVhZF9sdXRzOwo+PiAgCQl9IGVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpIHx8 IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4+ICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2Fk X2x1dHMgPSBnbGtfbG9hZF9sdXRzOwo+PiAgCQkJZGV2X3ByaXYtPmRpc3BsYXkucmVhZF9sdXRz ID0gZ2xrX3JlYWRfbHV0czsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IGluZGV4IDFkYzA2 N2ZjNTdhYi4uMDZiNjM5OGI3ZDYyIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4g QEAgLTEwNTg0LDYgKzEwNTg0LDEyIEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewo+PiAgCj4+ICAj ZGVmaW5lIF9QQUxfUFJFQ19NVUxUSV9TRUdfREFUQV9BCTB4NEE0MEMKPj4gICNkZWZpbmUgX1BB TF9QUkVDX01VTFRJX1NFR19EQVRBX0IJMHg0QUMwQwo+PiArI2RlZmluZSAgUEFMX1BSRUNfTVVM VElfU0VHX1JFRF9MRFdfTUFTSyAgIFJFR19HRU5NQVNLKDI5LCAyNCkKPj4gKyNkZWZpbmUgIFBB TF9QUkVDX01VTFRJX1NFR19SRURfVURXX01BU0sgICBSRUdfR0VOTUFTSygyOSwgMjApCj4+ICsj ZGVmaW5lICBQQUxfUFJFQ19NVUxUSV9TRUdfR1JFRU5fTERXX01BU0sgUkVHX0dFTk1BU0soMTks IDE0KQo+PiArI2RlZmluZSAgUEFMX1BSRUNfTVVMVElfU0VHX0dSRUVOX1VEV19NQVNLIFJFR19H RU5NQVNLKDE5LCAxMCkKPj4gKyNkZWZpbmUgIFBBTF9QUkVDX01VTFRJX1NFR19CTFVFX0xEV19N QVNLICBSRUdfR0VOTUFTSyg5LCA0KQo+PiArI2RlZmluZSAgUEFMX1BSRUNfTVVMVElfU0VHX0JM VUVfVURXX01BU0sgIFJFR19HRU5NQVNLKDksIDApCj4+ICAKPj4gICNkZWZpbmUgUFJFQ19QQUxf TVVMVElfU0VHX0lOREVYKHBpcGUpCV9NTUlPX1BJUEUocGlwZSwgXAo+PiAgCQkJCQlfUEFMX1BS RUNfTVVMVElfU0VHX0lOREVYX0EsIFwKPj4gLS0gCj4+IDIuMjMuMAoKLS0gCkphbmkgTmlrdWxh LCBJbnRlbCBPcGVuIFNvdXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4