From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Malladi, Kausal" Subject: Re: [PATCH 09/12] drm/i915: Add pipe level Gamma correction for CHV/BSW Date: Sat, 11 Jul 2015 15:30:53 +0530 Message-ID: <55A0E955.50708@intel.com> References: <1435894307-5722-1-git-send-email-Kausal.Malladi@intel.com> <1435894307-5722-10-git-send-email-Kausal.Malladi@intel.com> <20150707232354.GE9742@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150707232354.GE9742@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: dhanya.p.r@intel.com, annie.j.matheson@intel.com, dri-devel@lists.freedesktop.org, vijay.a.purushothaman@intel.com, hverkuil@xs4all.nl, jesse.barnes@intel.com, daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkbmVzZGF5IDA4IEp1bHkgMjAxNSAwNDo1MyBBTSwgTWF0dCBSb3BlciB3cm90ZToKPiBP biBGcmksIEp1bCAwMywgMjAxNSBhdCAwOTowMTo0NEFNICswNTMwLCBLYXVzYWwgTWFsbGFkaSB3 cm90ZToKPj4gQ0hWL0JTVyBwbGF0Zm9ybSBzdXBwb3J0cyB2YXJpb3VzIEdhbW1hIGNvcnJlY3Rp b24gbW9kZXMsIHdoaWNoIGFyZToKPj4gMS4gTGVnYWN5IDgtYml0IG1vZGUKPj4gMi4gMTAtYml0 IENHTSAoQ29sb3IgR2FtdXQgTWFwcGluZykgbW9kZQo+Pgo+PiBUaGlzIHBhdGNoIGRvZXMgdGhl IGZvbGxvd2luZzoKPj4gMS4gQWRkcyB0aGUgY29yZSBmdW5jdGlvbiB0byBwcm9ncmFtIEdhbW1h IGNvcnJlY3Rpb24gdmFsdWVzIGZvciBDSFYvQlNXCj4+ICAgICBwbGF0Zm9ybQo+PiAyLiBBZGRz IEdhbW1hIGNvcnJlY3Rpb24gbWFjcm9zL2RlZmluZXMKPj4KPj4gU2lnbmVkLW9mZi1ieTogU2hh c2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5 OiBLYXVzYWwgTWFsbGFkaSA8S2F1c2FsLk1hbGxhZGlAaW50ZWwuY29tPgo+PiAtLS0KPj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgfCAgMTAgKysKPj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyAgICAgICAgfCAgIDYgKysKPj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmMgfCAxNTQgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xv cl9tYW5hZ2VyLmggfCAgMTIgKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgICAgICAgIHwgICAyICsKPj4gICA1IGZpbGVzIGNoYW5nZWQsIDE4NCBpbnNlcnRpb25z KCspCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBpbmRleCAzMTNiMWY5Li4zNjY3MmU3 IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gQEAgLTc5MDAsNCArNzkwMCwxNCBA QCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPj4gICAjZGVmaW5lIF9QQUxFVFRFX0EgKGRl dl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweGEwMDApCj4+ICAgI2RlZmluZSBf UEFMRVRURV9CIChkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHhhODAwKQo+ PiAgIAo+PiArLyogQ29sb3IgTWFuYWdlbWVudCAqLwo+PiArI2RlZmluZSBQSVBFQV9DR01fQ09O VFJPTAkJCShWTFZfRElTUExBWV9CQVNFICsgMHg2N0EwMCkKPj4gKyNkZWZpbmUgUElQRUFfQ0dN X0dBTU1BX01JTgkJCShWTFZfRElTUExBWV9CQVNFICsgMHg2NzAwMCkKPj4gKyNkZWZpbmUgQ0dN X09GRlNFVAkJCQkweDIwMDAKPj4gKyNkZWZpbmUgR0FNTUFfT0ZGU0VUCQkJCTB4MjAwMAo+PiAr I2RlZmluZSBfUElQRV9DR01fQ09OVFJPTChwaXBlKSBcCj4+ICsJKFBJUEVBX0NHTV9DT05UUk9M ICsgKHBpcGUgKiBDR01fT0ZGU0VUKSkKPj4gKyNkZWZpbmUgX1BJUEVfR0FNTUFfQkFTRShwaXBl KSBcCj4+ICsJKFBJUEVBX0NHTV9HQU1NQV9NSU4gKyAocGlwZSAqIEdBTU1BX09GRlNFVCkpCj4+ ICsKPj4gICAjZW5kaWYgLyogX0k5MTVfUkVHX0hfICovCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F0b21pYy5jCj4+IGluZGV4IGQyNjc0YTYuLjIxZjBhYzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pYy5jCj4+IEBAIC00NzMsNiArNDczLDEyIEBAIGludCBpbnRlbF9jcnRj X2F0b21pY19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiAgIAkJCQkgICBz dHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPj4gICAJCQkJICAgdWludDY0X3QgdmFsKQo+ PiAgIHsKPj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+PiArCXN0cnVj dCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+PiArCj4+ICsJ aWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9wYWxldHRlX2FmdGVyX2N0bSkKPj4gKwkJcmV0 dXJuIGludGVsX2NvbG9yX21hbmFnZXJfc2V0X2dhbW1hKGRldiwgJmNydGMtPmJhc2UsIHZhbCk7 Cj4+ICsKPiBJIHRoaW5rIHdlIGRpc2N1c3NlZCB0aGlzIG9uIGEgcHJldmlvdXMgaXRlcmF0aW9u IG9mIHRoZSBwYXRjaCBzZXJpZXMsCj4gYnV0IC5hdG9taWNfc2V0X3Byb3BlcnR5KCkgaXNuJ3Qg c3VwcG9zZWQgdG8gYWN0dWFsbHkgdXBkYXRlIHRoZQo+IGhhcmR3YXJlIGF0IGFsbCBpdHNlbGYg KGFzIHlvdSdyZSBkb2luZyBoZXJlKTsgaXQncyBvbmx5IHN1cHBvc2VkIHRvCj4gdXBkYXRlIHRo ZSAnc3RhdGUnIHBhcmFtZXRlciB0aGF0IHdhcyBwYXNzZWQgaGVyZS4gIEZ1cnRoZXIgZG93biB0 aGUKPiBhdG9taWMgcGlwZWxpbmUgdGhlIGRyaXZlciB3aWxsIGRlY2lkZSB3aGV0aGVyIGl0IHJl YWxseSB3YW50cyB0bwo+IHByb2dyYW0gYW55IG9mIHRoZSBzdGF0ZSBvciBub3QgYW5kIHRoZW4g dGhlIENSVEMncyBhdG9taWMgY29tbWl0Cj4gZnVuY3Rpb24gc2hvdWxkIHByb2dyYW0gdGhlIHJl Z2lzdGVycyBhY2NvcmRpbmcgdG8gd2hhdGV2ZXIgdmFsdWUgaXMgc2V0Cj4gaW4gdGhlIHN0YXRl IG9iamVjdC4KVGhhbmtzIE1hdHQgZm9yIHlvdXIgc3VnZ2VzdGlvbnMgb2ZmbGluZS4gV2Ugd2ls bCBpbXBsZW1lbnQgaXQgdGhpcyB3YXkgCmluIG91ciBuZXh0IHNldCBvZiBwYXRjaGVzLgo+Cj4+ ICAgCURSTV9ERUJVR19LTVMoIlVua25vd24gY3J0YyBwcm9wZXJ0eSAnJXMnXG4iLCBwcm9wZXJ0 eS0+bmFtZSk7Cj4+ICAgCXJldHVybiAtRUlOVkFMOwo+PiAgIH0KPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuYwo+PiBpbmRleCA3MWI0YzA1Li44NGNjM2U0NyAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuYwo+PiBA QCAtMjcsNiArMjcsMTYwIEBACj4+ICAgCj4+ICAgI2luY2x1ZGUgImludGVsX2NvbG9yX21hbmFn ZXIuaCIKPj4gICAKPj4gK2ludCBjaHZfc2V0X2dhbW1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVpbnQzMl90IGJsb2JfaWQsCj4+ICsJCSAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+PiArewo+ PiArCXN0cnVjdCBkcm1fcGFsZXR0ZSAqZ2FtbWFfZGF0YTsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiArCXN0cnVjdCBkcm1fcHJv cGVydHlfYmxvYiAqYmxvYjsKPj4gKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAm ZGV2LT5tb2RlX2NvbmZpZzsKPj4gKwl1MzIgY2dtX2NvbnRyb2xfcmVnID0gMDsKPj4gKwl1MzIg Y2dtX2dhbW1hX3JlZyA9IDA7Cj4+ICsJdTMyIHJlZywgdmFsOwo+PiArCWVudW0gcGlwZSBwaXBl Owo+PiArCXUxNiByZWQsIGdyZWVuLCBibHVlOwo+PiArCXUzMiBjb3VudCA9IDA7Cj4+ICsJc3Ry dWN0IGRybV9yMzJnMzJiMzIgKmNvcnJlY3Rpb25fdmFsdWVzID0gTlVMTDsKPj4gKwl1MzIgbnVt X3NhbXBsZXM7Cj4+ICsJdTMyIHdvcmQ7Cj4+ICsJdTMyIHBhbGV0dGU7Cj4+ICsJaW50IHJldCA9 IDAsIGxlbmd0aDsKPj4gKwo+PiArCWJsb2IgPSBkcm1fcHJvcGVydHlfbG9va3VwX2Jsb2IoZGV2 LCBibG9iX2lkKTsKPj4gKwlpZiAoIWJsb2IpIHsKPj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIEJs b2IgSURcbiIpOwo+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwl9Cj4+ICsKPj4gKwlnYW1tYV9k YXRhID0gKHN0cnVjdCBkcm1fcGFsZXR0ZSAqKWJsb2ItPmRhdGE7Cj4gRG8gd2UgbmVlZCB0byB2 YWxpZGF0ZSB0aGF0IHRoZSBibG9iIHdlIHJlY2VpdmUgaXMgb2YgdGhlIGV4cGVjdGVkIHNpemUK PiBvciBkb2VzIHNvbWV0aGluZyBpbiB0aGUgRFJNIGNvcmUncyBibG9iIGhhbmRsaW5nIHRha2Ug Y2FyZSBvZiB0aGF0IGZvcgo+IHVzPyAgV2UgZG9uJ3Qgd2FudCB1c2Vyc3BhY2UgdG8gYmUgYWJs ZSB0byB0cmlnZ2VyIGEgcGFuaWMgYnkgcGFzc2luZyBhCj4gc21hbGxlciB0aGFuIGV4cGVjdGVk IGJsb2IgaGVyZS4KWWVzLCBpdCB3YXMgYW4gb3ZlcnNpZ2h0Lgo+Cj4KPj4gKwo+PiArCWlmIChn YW1tYV9kYXRhLT52ZXJzaW9uICE9IENIVl9HQU1NQV9EQVRBX1NUUlVDVF9WRVJTSU9OKSB7Cj4+ ICsJCURSTV9FUlJPUigiSW52YWxpZCBHYW1tYSBEYXRhIHN0cnVjdCB2ZXJzaW9uXG4iKTsKPj4g KwkJcmV0dXJuIC1FSU5WQUw7Cj4+ICsJfQo+PiArCj4+ICsJcGlwZSA9IHRvX2ludGVsX2NydGMo Y3J0YyktPnBpcGU7Cj4+ICsJbnVtX3NhbXBsZXMgPSBnYW1tYV9kYXRhLT5wYWxldHRlX251bV9z YW1wbGVzOwo+PiArCWxlbmd0aCA9IG51bV9zYW1wbGVzICogc2l6ZW9mKHN0cnVjdCBkcm1fcjMy ZzMyYjMyKTsKPj4gKwo+PiArCWlmIChudW1fc2FtcGxlcyA9PSAwKSB7Cj4+ICsKPj4gKwkJLyog RGlzYWJsZSBHYW1tYSBmdW5jdGlvbmFsaXR5IG9uIFBpcGUgLSBDR00gQmxvY2sgKi8KPj4gKwkJ Y2dtX2NvbnRyb2xfcmVnID0gSTkxNV9SRUFEKF9QSVBFX0NHTV9DT05UUk9MKHBpcGUpKTsKPj4g KwkJY2dtX2NvbnRyb2xfcmVnICY9IH5DR01fR0FNTUFfRU47Cj4+ICsJCUk5MTVfV1JJVEUoX1BJ UEVfQ0dNX0NPTlRST0wocGlwZSksIGNnbV9jb250cm9sX3JlZyk7Cj4+ICsKPj4gKwkJRFJNX0RF QlVHX0RSSVZFUigiR2FtbWEgZGlzYWJsZWQgb24gUGlwZSAlY1xuIiwKPj4gKwkJCQlwaXBlX25h bWUocGlwZSkpOwo+PiArCQlyZXQgPSAwOwo+PiArCX0gZWxzZSBpZiAobnVtX3NhbXBsZXMgPT0g Q0hWXzhCSVRfR0FNTUFfTUFYX1ZBTFMpIHsKPj4gKwo+PiArCQkvKiBEaXNhYmxlIENHTSBHYW1t YSwgaWYgYWxyZWFkeSBzZXQgKi8KPj4gKwkJY2dtX2NvbnRyb2xfcmVnID0gSTkxNV9SRUFEKF9Q SVBFX0NHTV9DT05UUk9MKHBpcGUpKTsKPj4gKwkJY2dtX2NvbnRyb2xfcmVnICY9IH5DR01fR0FN TUFfRU47Cj4+ICsJCUk5MTVfV1JJVEUoX1BJUEVfQ0dNX0NPTlRST0wocGlwZSksIGNnbV9jb250 cm9sX3JlZyk7Cj4+ICsKPj4gKwkJLyogV3JpdGUgTFVUIHZhbHVlcyB0byByZWdpc3RlcnMgKi8K Pj4gKwkJcGFsZXR0ZSA9IF9QSVBFX0dBTU1BX0JBU0UocGlwZSk7Cj4+ICsJCWNvdW50ID0gMDsK Pj4gKwkJY29ycmVjdGlvbl92YWx1ZXMgPQo+PiArCQkJKHN0cnVjdCBkcm1fcjMyZzMyYjMyICop JmdhbW1hX2RhdGEtPnBhbGV0dGVfbHV0Owo+PiArCQl3aGlsZSAoY291bnQgPCBudW1fc2FtcGxl cykgewo+PiArCQkJYmx1ZSA9IGNvcnJlY3Rpb25fdmFsdWVzW2NvdW50XS5iMzI7Cj4+ICsJCQln cmVlbiA9IGNvcnJlY3Rpb25fdmFsdWVzW2NvdW50XS5nMzI7Cj4+ICsJCQlyZWQgPSBjb3JyZWN0 aW9uX3ZhbHVlc1tjb3VudF0ucjMyOwo+PiArCj4+ICsJCQlibHVlID0gYmx1ZSA+PiBDSFZfOEJJ VF9HQU1NQV9NU0JfU0hJRlQ7Cj4+ICsJCQlncmVlbiA9IGdyZWVuID4+IENIVl84QklUX0dBTU1B X01TQl9TSElGVDsKPj4gKwkJCXJlZCA9IHJlZCA+PiBDSFZfOEJJVF9HQU1NQV9NU0JfU0hJRlQ7 Cj4+ICsKPj4gKwkJCS8qIFJlZCAoMjM6MTYpLCBHcmVlbiAoMTU6OCksIEJsdWUgKDc6MCkgKi8K Pj4gKwkJCXdvcmQgPSAocmVkIDw8IENIVl84QklUX0dBTU1BX1NISUZUX1JFRF9SRUcpIHwKPj4g KwkJCQkoZ3JlZW4gPDwKPj4gKwkJCQkgQ0hWXzhCSVRfR0FNTUFfU0hJRlRfR1JFRU5fUkVHKSB8 Cj4+ICsJCQkJYmx1ZTsKPj4gKwkJCUk5MTVfV1JJVEUocGFsZXR0ZSwgd29yZCk7Cj4+ICsKPj4g KwkJCXBhbGV0dGUgKz0gNDsKPj4gKwkJCWNvdW50Kys7Cj4+ICsJCX0KPj4gKwkJRFJNX0RFQlVH X0RSSVZFUigiR2FtbWEgTFVUIGxvYWRlZCBzdWNjZXNzZnVsbHkgZm9yIFBpcGUgJWNcbiIsCj4+ ICsJCQkJcGlwZV9uYW1lKHBpcGUpKTsKPj4gKwo+PiArCQkvKiBFbmFibGUgR2FtbWEgb24gUGlw ZSAqLwo+PiArCQlyZWcgPSBQSVBFQ09ORihwaXBlKTsKPj4gKwkJdmFsID0gSTkxNV9SRUFEKHJl ZykgfCBQSVBFQ09ORl9HQU1NQTsKPj4gKwkJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4+ICsJCURS TV9ERUJVR19EUklWRVIoIkxlZ2FjeSBHYW1tYSBlbmFibGVkIG9uIFBpcGUgJWNcbiIsCj4+ICsJ CQkJcGlwZV9uYW1lKHBpcGUpKTsKPj4gKwo+PiArCQlyZXQgPSAwOwo+PiArCX0gZWxzZSBpZiAo bnVtX3NhbXBsZXMgPT0gQ0hWXzEwQklUX0dBTU1BX01BWF9WQUxTKSB7Cj4+ICsJCWNnbV9nYW1t YV9yZWcgPSBfUElQRV9HQU1NQV9CQVNFKHBpcGUpOwo+PiArCj4+ICsJCWNvdW50ID0gMDsKPj4g KwkJY29ycmVjdGlvbl92YWx1ZXMgPQo+PiArCQkJKHN0cnVjdCBkcm1fcjMyZzMyYjMyICopJmdh bW1hX2RhdGEtPnBhbGV0dGVfbHV0Owo+PiArCQl3aGlsZSAoY291bnQgPCBudW1fc2FtcGxlcykg ewo+PiArCQkJYmx1ZSA9IGNvcnJlY3Rpb25fdmFsdWVzW2NvdW50XS5iMzI7Cj4+ICsJCQlncmVl biA9IGNvcnJlY3Rpb25fdmFsdWVzW2NvdW50XS5nMzI7Cj4+ICsJCQlyZWQgPSBjb3JyZWN0aW9u X3ZhbHVlc1tjb3VudF0ucjMyOwo+PiArCj4+ICsJCQlibHVlID0gYmx1ZSA+PiBDSFZfMTBCSVRf R0FNTUFfTVNCX1NISUZUOwo+PiArCQkJZ3JlZW4gPSBncmVlbiA+PiBDSFZfMTBCSVRfR0FNTUFf TVNCX1NISUZUOwo+PiArCQkJcmVkID0gcmVkID4+IENIVl8xMEJJVF9HQU1NQV9NU0JfU0hJRlQ7 Cj4+ICsKPj4gKwkJCS8qIEdyZWVuICgyNToxNikgYW5kIEJsdWUgKDk6MCkgdG8gYmUgd3JpdHRl biAqLwo+PiArCQkJd29yZCA9IChncmVlbiA8PCBDSFZfR0FNTUFfU0hJRlRfR1JFRU4pIHwgYmx1 ZTsKPj4gKwkJCUk5MTVfV1JJVEUoY2dtX2dhbW1hX3JlZywgd29yZCk7Cj4+ICsJCQljZ21fZ2Ft bWFfcmVnICs9IDQ7Cj4+ICsKPj4gKwkJCS8qIFJlZCAoOTowKSB0byBiZSB3cml0dGVuICovCj4+ ICsJCQl3b3JkID0gcmVkOwo+PiArCQkJSTkxNV9XUklURShjZ21fZ2FtbWFfcmVnLCB3b3JkKTsK Pj4gKwo+PiArCQkJY2dtX2dhbW1hX3JlZyArPSA0Owo+PiArCQkJY291bnQrKzsKPj4gKwkJfQo+ PiArCQlEUk1fREVCVUdfRFJJVkVSKCJHYW1tYSBMVVQgbG9hZGVkIHN1Y2Nlc3NmdWxseSBmb3Ig UGlwZSAlY1xuIiwKPj4gKwkJCXBpcGVfbmFtZShwaXBlKSk7Cj4+ICsKPj4gKwkJLyogRW5hYmxl IChDR00pIEdhbW1hIG9uIFBpcGUgKi8KPj4gKwkJSTkxNV9XUklURShfUElQRV9DR01fQ09OVFJP TChwaXBlKSwKPj4gKwkJCUk5MTVfUkVBRChfUElQRV9DR01fQ09OVFJPTChwaXBlKSkKPj4gKwkJ CXwgQ0dNX0dBTU1BX0VOKTsKPj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiQ0dNIEdhbW1hIGVuYWJs ZWQgb24gUGlwZSAlY1xuIiwKPj4gKwkJCQlwaXBlX25hbWUocGlwZSkpOwo+PiArCj4+ICsJCXJl dCA9IDA7Cj4+ICsJfSBlbHNlIHsKPj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIG51bWJlciBvZiBz YW1wbGVzIGZvciBHYW1tYSBMVVRcbiIpOwo+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwl9Cj4+ ICsKPj4gKwlyZXQgPSBkcm1fcHJvcGVydHlfcmVwbGFjZV9nbG9iYWxfYmxvYihkZXYsICZibG9i LCBsZW5ndGgsCj4+ICsJCQkodm9pZCAqKSBnYW1tYV9kYXRhLCAmY3J0Yy0+YmFzZSwKPj4gKwkJ CWNvbmZpZy0+cHJvcF9wYWxldHRlX2FmdGVyX2N0bSk7Cj4+ICsKPj4gKwlpZiAocmV0KSB7Cj4+ ICsJCURSTV9FUlJPUigiRXJyb3IgdXBkYXRpbmcgR2FtbWEgYmxvYlxuIik7Cj4+ICsJCXJldHVy biAtRUZBVUxUOwo+PiArCX0KPj4gKwo+PiArCXJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK2lu dCBpbnRlbF9jb2xvcl9tYW5hZ2VyX3NldF9nYW1tYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ PiArCQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosIHVpbnQzMl90IGJsb2JfaWQpCj4+ICt7 Cj4+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gb2JqX3RvX2NydGMob2JqKTsKPj4gKwo+PiAr CWlmIChJU19DSEVSUllWSUVXKGRldikpCj4+ICsJCXJldHVybiBjaHZfc2V0X2dhbW1hKGRldiwg YmxvYl9pZCwgY3J0Yyk7Cj4+ICsKPj4gKwlyZXR1cm4gLUVJTlZBTDsKPiBBcyBub3RlZCBlYXJs aWVyLCBpdCBzZWVtcyBjb25mdXNpbmcgdG8gbWUgdG8gaGF2ZSB1c2Vyc3BhY2Ugc2VlIGEgQ1JU Qwo+IHByb3BlcnR5IGZvciBmdW5jdGlvbmFsaXR5IHRoYXQgaXNuJ3Qgc3VwcG9ydGVkIGF0IGFs bCBvbiB0aGUgcGxhdGZvcm0sCj4gYnV0IGlmIHdlJ3JlIGdvaW5nIHRvIHJlamVjdCBpbnZhbGlk IHBsYXRmb3JtcyBoZXJlLCB3ZSBzaG91bGQgaGF2ZSBhdAo+IGxlYXN0IGEgRFJNX0RFQlVHIG1l c3NhZ2UgdG8gZ2l2ZSBzb21lIGNsdWVzIGFzIHRvIHdoeSB0aGUgLUVJTlZBTCB3YXMKPiByZXR1 cm5lZC4KQXMgc3VnZ2VzdGVkIGJ5IHlvdSwgaWYgd2UgcHV0IGNoZWNrIHdoaWxlIGF0dGFjaGlu ZywgdGhpcyBpcyBub3QgCnJlcXVpcmVkLiBTbyB3aWxsIGhhdmUgaXQgdGhlcmUgYW5kIHJlbW92 ZSBoZXJlLgo+Cj4KPj4gK30KPj4gKwo+PiAgIGludCBnZXRfY2h2X3BpcGVfY2FwYWJpbGl0aWVz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgCQlzdHJ1Y3QgZHJtX2NvbG9yX2NhcHMgKmNv bG9yX2NhcHMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4gICB7Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmgKPj4gaW5kZXggMzIyNjJhYy4uZDgzNTY3YSAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5o Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuaAo+PiBA QCAtMzEsNiArMzEsOCBAQAo+PiAgICNkZWZpbmUgQ0hWX1BBTEVUVEVfU1RSVUNUX1ZFUlNJT04J CTEKPj4gICAjZGVmaW5lIENIVl9DVE1fU1RSVUNUX1ZFUlNJT04JCQkxCj4+ICAgI2RlZmluZSBD SFZfUExBVEZPUk1fU1RSVUNUX1ZFUlNJT04JCTEKPj4gKyNkZWZpbmUgQ0hWX0dBTU1BX0RBVEFf U1RSVUNUX1ZFUlNJT04JCTEKPj4gKwo+PiAgICNkZWZpbmUgQ0hWX01BWF9QQUxFVFRFX0NBUFNf QkVGT1JFX0NUTQkJMQo+PiAgICNkZWZpbmUgQ0hWX01BWF9QQUxFVFRFX0NBUFNfQUZURVJfQ1RN CQkyCj4+ICAgI2RlZmluZSBDSFZfREVHQU1NQV9QUkVDSVNJT04JCQkxNAo+PiBAQCAtNDMsNiAr NDUsMTYgQEAKPj4gICAjZGVmaW5lIENIVl8xMEJJVF9HQU1NQV9NQVhfVkFMUwkJMjU3Cj4+ICAg I2RlZmluZSBDSFZfOEJJVF9HQU1NQV9QUkVDSVNJT04JCTgKPj4gICAjZGVmaW5lIENIVl84QklU X0dBTU1BX01BWF9WQUxTCQkJMjU2Cj4+ICsjZGVmaW5lIENIVl84QklUX0dBTU1BX01TQl9TSElG VAkJOAo+PiArI2RlZmluZSBDSFZfOEJJVF9HQU1NQV9TSElGVF9SRURfUkVHCQkxNgo+PiArI2Rl ZmluZSBDSFZfOEJJVF9HQU1NQV9TSElGVF9HUkVFTl9SRUcJCTgKPj4gKyNkZWZpbmUgQ0hWXzEw QklUX0dBTU1BX01TQl9TSElGVAkJNgo+PiArI2RlZmluZSBDSFZfR0FNTUFfU0hJRlRfR1JFRU4J CQkxNgo+PiArCj4+ICAgI2RlZmluZSBDSFZfQ1NDX0NPRUZGX01BWF9QUkVDSVNJT04JCTEyCj4+ ICAgI2RlZmluZSBDSFZfQ1NDX0NPRUZGX01BWF9JTlQJCQk3Cj4+ICAgI2RlZmluZSBDSFZfQ1ND X0NPRUZGX01JTl9JTlQJCQktNwo+PiArCj4+ICsvKiBDSFYgQ0dNIEJsb2NrICovCj4+ICsvKiBC aXQgMiB0byBiZSBlbmFibGVkIGluIENHTSBibG9jayBmb3IgQ0hWICovCj4+ICsjZGVmaW5lIENH TV9HQU1NQV9FTgkJCQk0Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IGluZGV4IDA1M2Nl YjAuLmE3YWFhZGYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IEBAIC0xNDUz LDUgKzE0NTMsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3Mg aW50ZWxfcGxhbmVfaGVscGVyX2Z1bmNzOwo+PiAgIC8qIGludGVsX2NvbG9yX21hbmFnZXIuYyAq Lwo+PiAgIHZvaWQgaW50ZWxfY29sb3JfbWFuYWdlcl9hdHRhY2goc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPj4gICAJCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm1vZGVfb2JqKTsKPj4gK2ludCBp bnRlbF9jb2xvcl9tYW5hZ2VyX3NldF9nYW1tYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAr CQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosIHVpbnQzMl90IGJsb2JfaWQpOwo+PiAgIAo+ PiAgICNlbmRpZiAvKiBfX0lOVEVMX0RSVl9IX18gKi8KPj4gLS0gCj4+IDIuNC41Cj4+CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=