From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [v4][PATCH 2/3] drm/i915/color: Extract icl_read_luts() Date: Tue, 24 Sep 2019 15:17:42 +0300 Message-ID: <87h851ubvd.fsf@intel.com> References: <1569096654-24433-1-git-send-email-swati2.sharma@intel.com> <1569096654-24433-3-git-send-email-swati2.sharma@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 A26D06EA16 for ; Tue, 24 Sep 2019 12:17:51 +0000 (UTC) In-Reply-To: <1569096654-24433-3-git-send-email-swati2.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Swati Sharma , intel-gfx@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, ankit.k.nautiyal@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gU3VuLCAyMiBTZXAgMjAxOSwgU3dhdGkgU2hhcm1hIDxzd2F0aTIuc2hhcm1hQGludGVsLmNv bT4gd3JvdGU6Cj4gRm9yIGljbCssIGhhdmUgaHcgcmVhZCBvdXQgdG8gY3JlYXRlIGh3IGJsb2Ig b2YgZ2FtbWEKPiBsdXQgdmFsdWVzLiBpY2wrIHBsYXRmb3JtcyBzdXBwb3J0cyBtdWx0aSBzZWdt ZW50ZWQgZ2FtbWEKPiBtb2RlIGJ5IGRlZmF1bHQsIGFkZCBodyBsdXQgY3JlYXRpb24gZm9yIHRo aXMgbW9kZS4KPgo+IFRoaXMgd2lsbCBiZSB1c2VkIHRvIHZhbGlkYXRlIGdhbW1hIHByb2dyYW1t aW5nIHVzaW5nIGRzYgo+IChkaXNwbGF5IHN0YXRlIGJ1ZmZlcikgd2hpY2ggaXMgYSB0Z2wgc3Bl Y2lmaWMgZmVhdHVyZS4KPgo+IE1ham9yIGNoYW5nZSBkb25lLXJlbW92YWwgb2YgcmVhZG91dHMg b2YgY29hcnNlIGFuZCBmaW5lIHNlZ21lbnRzCj4gYmVjYXVzZSBQQUxfUFJFQ19EQVRBIHJlZ2lz dGVyIGlzbid0IGdpdmluZyBwcm9wb2VyIHZhbHVlcy4KPiBTdGF0ZSBjaGVja2VyIGxpbWl0ZWQg b25seSB0byAiZmluZSBzZWdtZW50Igo+Cj4gdjI6IC1yZWFkb3V0IGNvZGUgZm9yIG11bHRpc2Vn bWVudGVkIGdhbW1hIGhhcyB0byBjb21lCj4gICAgICB1cCB3aXRoIHNvbWUgaW50ZXJtZWRpYXRl IGVudHJpZXMgdGhhdCBhcmVuJ3QgcHJlc2VydmVkCj4gICAgICBpbiBoYXJkd2FyZSAoSmFuaSBO KQo+ICAgICAtbGluZWFyIGludGVycG9sYXRpb24gKFZpbGxlKQo+ICAgICAtbW92ZWQgY29tbW9u IGNvZGUgdG8gY2hlY2sgZ2FtbWFfZW5hYmxlIHRvIHNwZWNpZmljIGZ1bmNzLAo+ICAgICAgc2lu Y2UgaWNsIGRvZXNuJ3Qgc3VwcG9ydCB0aGF0Cj4gdjM6IC11c2UgdTE2IGluc3RlYWQgb2YgX191 MTYgW0phbmkgTl0KPiAgICAgLXVzZWQgc2luZ2xlIGx1dCBbSmFuaSBOXQo+ICAgICAtaW1wcm92 ZWQgYW5kIG1vcmUgcmVhZGFibGUgZm9yIGxvb3BzIFtKYW5pIE5dCj4gICAgIC1yZWFkIHZhbHVl cyBkaXJlY3RseSB0byBhY3R1YWwgbG9jYXRpb25zIGFuZCB0aGVuIGZpbGwgZ2FwcyBbSmFuaSBO XQo+ICAgICAtbW92ZWQgY2xlYW5pbmcgdG8gcGF0Y2ggMSBbSmFuaSBOXQo+ICAgICAtcmVuYW1l ZCBpY2xfcmVhZF9sdXRfbXVsdGlfc2VnKCkgdG8gaWNsX3JlYWRfbHV0X211bHRpX3NlZ21lbnQg dG8KPiAgICAgIG1ha2UgaXQgc2ltaWxhciB0byBpY2xfbG9hZF9sdXRzKCkKPiAgICAgLXJlbmFt ZWQgaWNsX2NvbXB1dGVfaW50ZXJwb2xhdGVkX2dhbW1hX2Jsb2IoKSB0bwo+ICAgICAgaWNsX2Nv bXB1dGVfaW50ZXJwb2xhdGVkX2dhbW1hX2x1dF92YWx1ZXMoKSBtb3JlIHNlbnNpYmxlLCBJIGd1 ZXNzCj4gdjQ6IC1yZW1vdmVkIGludGVycG9sYXRlZCBmdW5jIGZvciBjcmVhdGluZyBnYW1tYSBs dXQgdmFsdWVzCj4gICAgIC1yZW1vdmVkIHJlYWRvdXRzIG9mIGZpbmUgYW5kIGNvYXJzZSBzZWdt ZW50cywgZmFpbHVyZSB0byByZWFkIFBBTF9QUkVDX0RBVEEKPiAgICAgIGNvcnJlY3RseQo+Cj4g U2lnbmVkLW9mZi1ieTogU3dhdGkgU2hhcm1hIDxzd2F0aTIuc2hhcm1hQGludGVsLmNvbT4KPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jIHwgMTI2ICsr KysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmggICAgICAgICAgICB8ICAgNiArKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRp b25zKCspLCAxNSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2NvbG9yLmMKPiBpbmRleCBmNzc0OTM4Li4yOTlhZGE1YiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPiBAQCAtMTM3MSw2ICsxMzcxLDkg QEAgc3RhdGljIGludCBpY2xfY29sb3JfY2hlY2soc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gIAo+ICBzdGF0aWMgaW50IGk5eHhfZ2FtbWFfcHJlY2lzaW9uKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gKwlpZiAoIWNydGNfc3Rh dGUtPmdhbW1hX2VuYWJsZSkKPiArCQlyZXR1cm4gMDsKPiArCj4gIAlzd2l0Y2ggKGNydGNfc3Rh dGUtPmdhbW1hX21vZGUpIHsKPiAgCWNhc2UgR0FNTUFfTU9ERV9NT0RFXzhCSVQ6Cj4gIAkJcmV0 dXJuIDg7Cj4gQEAgLTEzODQsNiArMTM4Nyw5IEBAIHN0YXRpYyBpbnQgaTl4eF9nYW1tYV9wcmVj aXNpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAo+ICBz dGF0aWMgaW50IGlsa19nYW1tYV9wcmVjaXNpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gIHsKPiArCWlmICghY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlKQo+ ICsJCXJldHVybiAwOwo+ICsKPiAgCWlmICgoY3J0Y19zdGF0ZS0+Y3NjX21vZGUgJiBDU0NfUE9T SVRJT05fQkVGT1JFX0dBTU1BKSA9PSAwKQo+ICAJCXJldHVybiAwOwo+ICAKPiBAQCAtMTQwMCw2 ICsxNDA2LDkgQEAgc3RhdGljIGludCBpbGtfZ2FtbWFfcHJlY2lzaW9uKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAKPiAgc3RhdGljIGludCBjaHZfZ2FtbWFf cHJlY2lzaW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7 Cj4gKwlpZiAoIWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSkKPiArCQlyZXR1cm4gMDsKPiArCj4g IAlpZiAoY3J0Y19zdGF0ZS0+Y2dtX21vZGUgJiBDR01fUElQRV9NT0RFX0dBTU1BKQo+ICAJCXJl dHVybiAxMDsKPiAgCWVsc2UKPiBAQCAtMTQwOCw2ICsxNDE3LDkgQEAgc3RhdGljIGludCBjaHZf Z2FtbWFfcHJlY2lzaW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQo+ICAKPiAgc3RhdGljIGludCBnbGtfZ2FtbWFfcHJlY2lzaW9uKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gKwlpZiAoIWNydGNfc3RhdGUtPmdhbW1h X2VuYWJsZSkKPiArCQlyZXR1cm4gMDsKPiArCj4gIAlzd2l0Y2ggKGNydGNfc3RhdGUtPmdhbW1h X21vZGUpIHsKPiAgCWNhc2UgR0FNTUFfTU9ERV9NT0RFXzhCSVQ6Cj4gIAkJcmV0dXJuIDg7Cj4g QEAgLTE0MTksMjEgKzE0MzEsMzkgQEAgc3RhdGljIGludCBnbGtfZ2FtbWFfcHJlY2lzaW9uKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJfQo+ICB9Cj4gIAo+ ICtzdGF0aWMgaW50IGljbF9nYW1tYV9wcmVjaXNpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gK3sKPiArCWlmICgoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSAm IFBPU1RfQ1NDX0dBTU1BX0VOQUJMRSkgPT0gMCkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlzd2l0 Y2ggKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgJiBHQU1NQV9NT0RFX01PREVfTUFTSykgewo+ICsJ Y2FzZSBHQU1NQV9NT0RFX01PREVfOEJJVDoKPiArCQlyZXR1cm4gODsKPiArCWNhc2UgR0FNTUFf TU9ERV9NT0RFXzEwQklUOgo+ICsJCXJldHVybiAxMDsKPiArCWNhc2UgR0FNTUFfTU9ERV9NT0RF XzEyQklUX01VTFRJX1NFR01FTlRFRDoKPiArCQlyZXR1cm4gMTY7Cj4gKwlkZWZhdWx0Ogo+ICsJ CU1JU1NJTkdfQ0FTRShjcnRjX3N0YXRlLT5nYW1tYV9tb2RlKTsKPiArCQlyZXR1cm4gMDsKPiAr CX0KPiArCj4gK30KPiArCj4gIGludCBpbnRlbF9jb2xvcl9nZXRfZ2FtbWFfYml0X3ByZWNpc2lv bihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+ICAJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKPiAgCj4gLQlpZiAoIWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSkKPiAtCQly ZXR1cm4gMDsKPiAtCj4gIAlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKSB7Cj4gIAkJaWYgKElTX0NI RVJSWVZJRVcoZGV2X3ByaXYpKQo+ICAJCQlyZXR1cm4gY2h2X2dhbW1hX3ByZWNpc2lvbihjcnRj X3N0YXRlKTsKPiAgCQllbHNlCj4gIAkJCXJldHVybiBpOXh4X2dhbW1hX3ByZWNpc2lvbihjcnRj X3N0YXRlKTsKPiAgCX0gZWxzZSB7Cj4gLQkJaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpIHx8 IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ICsJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49 IDExKQo+ICsJCQlyZXR1cm4gaWNsX2dhbW1hX3ByZWNpc2lvbihjcnRjX3N0YXRlKTsKPiArCQll bHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2 KSkKPiAgCQkJcmV0dXJuIGdsa19nYW1tYV9wcmVjaXNpb24oY3J0Y19zdGF0ZSk7Cj4gIAkJZWxz ZSBpZiAoSVNfSVJPTkxBS0UoZGV2X3ByaXYpKQo+ICAJCQlyZXR1cm4gaWxrX2dhbW1hX3ByZWNp c2lvbihjcnRjX3N0YXRlKTsKPiBAQCAtMTQ2NCw2ICsxNDk0LDIwIEBAIHN0YXRpYyBib29sIGlu dGVsX2NvbG9yX2x1dF9lbnRyeV9lcXVhbChzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0MSwKPiAg CXJldHVybiB0cnVlOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbCBpbnRlbF9jb2xvcl9sdXRfZW50 cnlfbXVsdGlfZXF1YWwoc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dDEsCj4gKwkJCQkJICAgICAg c3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dDIsCj4gKwkJCQkJICAgICAgaW50IGx1dF9zaXplLCB1 MzIgZXJyKQo+ICt7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKSB7 Cj4gKwkJaWYgKCFlcnJfY2hlY2soJmx1dDFbaV0sICZsdXQyW2ldLCBlcnIpKQo+ICsJCQlyZXR1 cm4gZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gIGJvb2wgaW50 ZWxfY29sb3JfbHV0X2VxdWFsKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjEsCj4gIAkJ CSAgIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjIsCj4gIAkJCSAgIHUzMiBnYW1tYV9t b2RlLCB1MzIgYml0X3ByZWNpc2lvbikKPiBAQCAtMTQ4MiwxNiArMTUyNiw4IEBAIGJvb2wgaW50 ZWxfY29sb3JfbHV0X2VxdWFsKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjEsCj4gIAls dXRfc2l6ZTIgPSBkcm1fY29sb3JfbHV0X3NpemUoYmxvYjIpOwo+ICAKPiAgCS8qIGNoZWNrIHN3 IGFuZCBodyBsdXQgc2l6ZSAqLwo+IC0Jc3dpdGNoIChnYW1tYV9tb2RlKSB7Cj4gLQljYXNlIEdB TU1BX01PREVfTU9ERV84QklUOgo+IC0JY2FzZSBHQU1NQV9NT0RFX01PREVfMTBCSVQ6Cj4gLQkJ aWYgKGx1dF9zaXplMSAhPSBsdXRfc2l6ZTIpCj4gLQkJCXJldHVybiBmYWxzZTsKPiAtCQlicmVh azsKPiAtCWRlZmF1bHQ6Cj4gLQkJTUlTU0lOR19DQVNFKGdhbW1hX21vZGUpOwo+IC0JCQlyZXR1 cm4gZmFsc2U7Cj4gLQl9Cj4gKwlpZiAobHV0X3NpemUxICE9IGx1dF9zaXplMikKPiArCQlyZXR1 cm4gZmFsc2U7Cj4gIAo+ICAJbHV0MSA9IGJsb2IxLT5kYXRhOwo+ICAJbHV0MiA9IGJsb2IyLT5k YXRhOwo+IEBAIC0xNDk5LDEzICsxNTM1LDE4IEBAIGJvb2wgaW50ZWxfY29sb3JfbHV0X2VxdWFs KHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjEsCj4gIAllcnIgPSAweGZmZmYgPj4gYml0 X3ByZWNpc2lvbjsKPiAgCj4gIAkvKiBjaGVjayBzdyBhbmQgaHcgbHV0IGVudHJ5IHRvIGJlIGVx dWFsICovCj4gLQlzd2l0Y2ggKGdhbW1hX21vZGUpIHsKPiArCXN3aXRjaCAoZ2FtbWFfbW9kZSAm IEdBTU1BX01PREVfTU9ERV9NQVNLKSB7Cj4gIAljYXNlIEdBTU1BX01PREVfTU9ERV84QklUOgo+ ICAJY2FzZSBHQU1NQV9NT0RFX01PREVfMTBCSVQ6Cj4gIAkJaWYgKCFpbnRlbF9jb2xvcl9sdXRf ZW50cnlfZXF1YWwobHV0MSwgbHV0MiwKPiAgCQkJCQkJIGx1dF9zaXplMiwgZXJyKSkKPiAgCQkJ cmV0dXJuIGZhbHNlOwo+ICAJCWJyZWFrOwo+ICsJY2FzZSBHQU1NQV9NT0RFX01PREVfMTJCSVRf TVVMVElfU0VHTUVOVEVEOgo+ICsJCWlmICghaW50ZWxfY29sb3JfbHV0X2VudHJ5X211bHRpX2Vx dWFsKGx1dDEsIGx1dDIsCj4gKwkJCQkJCSAgICAgICBsdXRfc2l6ZTIsIGVycikpCj4gKwkJCXJl dHVybiBmYWxzZTsKPiArCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJTUlTU0lOR19DQVNFKGdh bW1hX21vZGUpOwo+ICAJCQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTE3NDUsNiArMTc4Niw2MCBAQCBz dGF0aWMgdm9pZCBnbGtfcmVhZF9sdXRzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ICAJCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ID0gZ2xrX3JlYWRfbHV0XzEwKGNy dGNfc3RhdGUsIFBBTF9QUkVDX0lOREVYX1ZBTFVFKDApKTsKPiAgfQo+ICAKPiArc3RhdGljIHN0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCj4gK2ljbF9yZWFkX2x1dF9tdWx0aV9zZWdtZW50KGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwo+ICsJaW50IGx1dF9zaXplID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9yLmdh bW1hX2x1dF9zaXplOwo+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICsJc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iOwo+ICsJc3RydWN0IGRybV9jb2xvcl9sdXQgKmJsb2Jf ZGF0YTsKPiArCXUzMiBpLCB2YWwxLCB2YWwyOwo+ICsKPiArCWJsb2IgPSBkcm1fcHJvcGVydHlf Y3JlYXRlX2Jsb2IoJmRldl9wcml2LT5kcm0sCj4gKwkJCQkJc2l6ZW9mKHN0cnVjdCBkcm1fY29s b3JfbHV0KSAqIGx1dF9zaXplLAo+ICsJCQkJCU5VTEwpOwo+ICsJaWYgKElTX0VSUihibG9iKSkK PiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlibG9iX2RhdGEgPSBibG9iLT5kYXRhOwo+ICsKPiAr CUk5MTVfV1JJVEUoUFJFQ19QQUxfTVVMVElfU0VHX0lOREVYKHBpcGUpLCBQQUxfUFJFQ19BVVRP X0lOQ1JFTUVOVCk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IDk7IGkrKykgewo+ICsJCXZhbDEg PSBJOTE1X1JFQUQoUFJFQ19QQUxfTVVMVElfU0VHX0RBVEEocGlwZSkpOwo+ICsJCXZhbDIgPSBJ OTE1X1JFQUQoUFJFQ19QQUxfTVVMVElfU0VHX0RBVEEocGlwZSkpOwo+ICsKPiArCQlibG9iX2Rh dGFbaV0ucmVkID0gUkVHX0ZJRUxEX0dFVChQQUxfUFJFQ19NVUxUSV9TRUdfUkVEX1VEV19NQVNL LCB2YWwyKSA8PCA2IHwKPiArCQkJCSAgIFJFR19GSUVMRF9HRVQoUEFMX1BSRUNfTVVMVElfU0VH X1JFRF9MRFdfTUFTSywgdmFsMSk7Cj4gKwkJYmxvYl9kYXRhW2ldLmdyZWVuID0gUkVHX0ZJRUxE X0dFVChQQUxfUFJFQ19NVUxUSV9TRUdfR1JFRU5fVURXX01BU0ssIHZhbDIpIDw8IDYgfAo+ICsJ CQkJICAgICBSRUdfRklFTERfR0VUKFBBTF9QUkVDX01VTFRJX1NFR19HUkVFTl9MRFdfTUFTSywg dmFsMSk7Cj4gKwkJYmxvYl9kYXRhW2ldLmJsdWUgPSBSRUdfRklFTERfR0VUKFBBTF9QUkVDX01V TFRJX1NFR19CTFVFX1VEV19NQVNLLCB2YWwyKSA8PCA2IHwKPiArCQkJCSAgICBSRUdfRklFTERf R0VUKFBBTF9QUkVDX01VTFRJX1NFR19CTFVFX0xEV19NQVNLLCB2YWwxKTsKPiArCX0KPiArCj4g KwkvKgo+ICsJICogRklYTUUgcmVhZG91dHMgZnJvbSBQQUxfUFJFQ19EQVRBIHJlZ2lzdGVyIGFy ZW4ndCBnaXZpbmcgY29ycmVjdCB2YWx1ZXMKPiArCSAqIGluIHRoZSBjYXNlIG9mIGZpbmUgYW5k IGNvYXJzZSBzZWdtZW50cy4gUmVzdHJpY3RpbmcgcmVhZG91dHMgb25seSBmb3IKPiArCSAqIHN1 cGVyIGZpbmUgc2VnbWVudCBhcyBvZiBub3cuCj4gKwkgKi8KCkFwcGFyZW50bHkgdGhpcyBpcyBj YXVzaW5nIHByb2JsZW1zIHdpdGggdGhlIGRpc3BsYXksIHBvc3NpYmx5IGJlY2F1c2UKdGhlIGJs b2IgZW5kcyB1cCBiZWluZyBvbmx5IDkgZW50cmllcy4gQ2FuIHlvdSB0cnkgdG8gcmVwcm9kdWNl IGxvY2FsbHk/CgpXZSdyZSBsaWtlbHkgZ29pbmcgdG8gaGF2ZSB0byByZXZlcnQgdGhpcy4KCkJS LApKYW5pLgoKCj4gKwo+ICsJcmV0dXJuIGJsb2I7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGlj bF9yZWFkX2x1dHMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sKPiAr CWlmICgoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSAmIEdBTU1BX01PREVfTU9ERV9NQVNLKSA9PQo+ ICsJICAgIEdBTU1BX01PREVfTU9ERV84QklUKQo+ICsJCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFf bHV0ID0gaTl4eF9yZWFkX2x1dF84KGNydGNfc3RhdGUpOwo+ICsJZWxzZSBpZiAoKGNydGNfc3Rh dGUtPmdhbW1hX21vZGUgJiBHQU1NQV9NT0RFX01PREVfTUFTSykgPT0KPiArCQkgR0FNTUFfTU9E RV9NT0RFXzEyQklUX01VTFRJX1NFR01FTlRFRCkKPiArCQljcnRjX3N0YXRlLT5iYXNlLmdhbW1h X2x1dCA9IGljbF9yZWFkX2x1dF9tdWx0aV9zZWdtZW50KGNydGNfc3RhdGUpOwo+ICsJZWxzZQo+ ICsJCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ID0gZ2xrX3JlYWRfbHV0XzEwKGNydGNfc3Rh dGUsIFBBTF9QUkVDX0lOREVYX1ZBTFVFKDApKTsKPiArfQo+ICsKPiAgdm9pZCBpbnRlbF9jb2xv cl9pbml0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiBAQCAtMTc4OCw2 ICsxODgzLDcgQEAgdm9pZCBpbnRlbF9jb2xvcl9pbml0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj KQo+ICAKPiAgCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewo+ICAJCQlkZXZfcHJp di0+ZGlzcGxheS5sb2FkX2x1dHMgPSBpY2xfbG9hZF9sdXRzOwo+ICsJCQlkZXZfcHJpdi0+ZGlz cGxheS5yZWFkX2x1dHMgPSBpY2xfcmVhZF9sdXRzOwo+ICAJCX0gZWxzZSBpZiAoSVNfQ0FOTk9O TEFLRShkZXZfcHJpdikgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHsKPiAgCQkJZGV2X3By aXYtPmRpc3BsYXkubG9hZF9sdXRzID0gZ2xrX2xvYWRfbHV0czsKPiAgCQkJZGV2X3ByaXYtPmRp c3BsYXkucmVhZF9sdXRzID0gZ2xrX3JlYWRfbHV0czsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgK PiBpbmRleCBiZjM3ZWNlLi4xZWEyNmM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4g QEAgLTEwNDAxLDYgKzEwNDAxLDEyIEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewo+ICAKPiAgI2Rl ZmluZSBfUEFMX1BSRUNfTVVMVElfU0VHX0RBVEFfQQkweDRBNDBDCj4gICNkZWZpbmUgX1BBTF9Q UkVDX01VTFRJX1NFR19EQVRBX0IJMHg0QUMwQwo+ICsjZGVmaW5lICBQQUxfUFJFQ19NVUxUSV9T RUdfUkVEX0xEV19NQVNLICAgUkVHX0dFTk1BU0soMjksIDI0KQo+ICsjZGVmaW5lICBQQUxfUFJF Q19NVUxUSV9TRUdfUkVEX1VEV19NQVNLICAgUkVHX0dFTk1BU0soMjksIDIwKQo+ICsjZGVmaW5l ICBQQUxfUFJFQ19NVUxUSV9TRUdfR1JFRU5fTERXX01BU0sgUkVHX0dFTk1BU0soMTksIDE0KQo+ ICsjZGVmaW5lICBQQUxfUFJFQ19NVUxUSV9TRUdfR1JFRU5fVURXX01BU0sgUkVHX0dFTk1BU0so MTksIDEwKQo+ICsjZGVmaW5lICBQQUxfUFJFQ19NVUxUSV9TRUdfQkxVRV9MRFdfTUFTSyAgUkVH X0dFTk1BU0soOSwgNCkKPiArI2RlZmluZSAgUEFMX1BSRUNfTVVMVElfU0VHX0JMVUVfVURXX01B U0sgIFJFR19HRU5NQVNLKDksIDApCj4gIAo+ICAjZGVmaW5lIFBSRUNfUEFMX01VTFRJX1NFR19J TkRFWChwaXBlKQlfTU1JT19QSVBFKHBpcGUsIFwKPiAgCQkJCQlfUEFMX1BSRUNfTVVMVElfU0VH X0lOREVYX0EsIFwKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3Mg Q2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==