From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jindal, Sonika" Subject: Re: [PATCH 5/7] drm/i915: Add pipe level Gamma correction for CHV/BSW Date: Tue, 02 Jun 2015 17:08:21 +0530 Message-ID: <556D95AD.2030009@intel.com> References: <1433188369-16930-1-git-send-email-Kausal.Malladi@intel.com> <1433188369-16930-6-git-send-email-Kausal.Malladi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1433188369-16930-6-git-send-email-Kausal.Malladi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Kausal Malladi , matthew.d.roper@intel.com, jesse.barnes@intel.com, damien.lespiau@intel.com, durgadoss.r@intel.com, vijay.a.purushothaman@intel.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: annie.j.matherson@intel.com, dhanya.p.r@intel.com, daniel.vetter@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiA2LzIvMjAxNSAxOjIyIEFNLCBLYXVzYWwgTWFsbGFkaSB3cm90ZToKPiBGcm9tOiBLYXVz YWwgTWFsbGFkaSA8S2F1c2FsLk1hbGxhZGlAaW50ZWwuY29tPgo+Cj4gVGhpcyBwYXRjaCBkb2Vz IHRoZSBmb2xsb3dpbmc6Cj4gMS4gQWRkcyB0aGUgY29yZSBmdW5jdGlvbiB0byBwcm9ncmFtIEdh bW1hIGNvcnJlY3Rpb24gdmFsdWVzIGZvciBDSFYvQlNXCj4gICAgIHBsYXRmb3JtCj4gMi4gQWRk cyBHYW1tYSBjb3JyZWN0aW9uIG1hY3Jvcy9kZWZpbmVzCj4gMy4gQWRkcyBkcm1fbW9kZV9jcnRj X3VwZGF0ZV9jb2xvcl9wcm9wZXJ0eSBmdW5jdGlvbiwgd2hpY2ggcmVwbGFjZXMgdGhlCj4gICAg IG9sZCBibG9iIGZvciB0aGUgcHJvcGVydHkgd2l0aCB0aGUgbmV3IG9uZQo+IDQuIEFkZHMgYSBw b2ludGVyIHRvIGhvbGQgYmxvYiBmb3IgR2FtbWEgcHJvcGVydHkgaW4gZHJtX2NydGMKPgo+IFNp Z25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4K PiBTaWduZWQtb2ZmLWJ5OiBLYXVzYWwgTWFsbGFkaSA8S2F1c2FsLk1hbGxhZGlAaW50ZWwuY29t Pgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgICAgICAgICAgICAgICAgIHwg ICAxNCArKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5jIHwg IDE5NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmggfCAgIDYxICsrKysrKysrKwo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgIHwgICAgOSArLQo+ICAgaW5jbHVkZS9kcm0v ZHJtX2NydGMuaCAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArKwo+ICAgNSBmaWxlcyBjaGFu Z2VkLCAyODUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiBp bmRleCA3N2Y4N2IyLi41MGI5MjViIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiBAQCAtNDY5MSw2ICs0 NjkxLDIwIEBAIGludCBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X3RpbGVfcHJvcGVydHkoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgIH0KPiAgIEVYUE9SVF9TWU1CT0woZHJtX21v ZGVfY29ubmVjdG9yX3NldF90aWxlX3Byb3BlcnR5KTsKPgo+ICtpbnQgZHJtX21vZGVfY3J0Y191 cGRhdGVfY29sb3JfcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQlzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKipibG9iLAo+ICsJCXNpemVfdCBsZW5ndGgsIGNvbnN0IHZvaWQg KmNvbG9yX2RhdGEsCj4gKwkJc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqX2hvbGRzX2lkLAo+ ICsJCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BfaG9sZHNfaWQpClRoaXMgY2FuIGJlIHNpbXBs aWZpZWQuLiBObyBuZWVkIHRvIHBhc3Mgc28gbWFueSBwYXJhbXMuCj4gK3sKPiArCWludCByZXQ7 Cj4gKwo+ICsJcmV0ID0gZHJtX3Byb3BlcnR5X3JlcGxhY2VfZ2xvYmFsX2Jsb2IoZGV2LAo+ICsJ CQlibG9iLCBsZW5ndGgsIGNvbG9yX2RhdGEsIG9ial9ob2xkc19pZCwgcHJvcF9ob2xkc19pZCk7 Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKU3BsaXQgdGhlIHBhdGNoIHRvIGFkZCBkcm0g c3BlY2lmaWMgY2hhbmdlcyBpbiBhIHNlcGFyYXRlIHBhdGNoLiBBbHNvIAp5b3UgbmVlZCB0byBl eHBvcnQgdGhpcyBmdW5jdGlvbi4KCldpbGwgcmV2aWV3IHRoZSByZXN0IG9mIHRoZSBmaWxlIGlu IHNvbWUgdGltZS4KClJlZ2FyZHMsClNvbmlrYQo+ICAgLyoqCj4gICAgKiBkcm1fbW9kZV9jb25u ZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkgLSB1cGRhdGUgdGhlIGVkaWQgcHJvcGVydHkgb2Yg YSBjb25uZWN0b3IKPiAgICAqIEBjb25uZWN0b3I6IGRybSBjb25uZWN0b3IKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5jCj4gaW5kZXggYjBlYjY3OS4uZjQ2ODU3 ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2Vy LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmMKPiBA QCAtMjcsNiArMjcsMjAwIEBACj4KPiAgICNpbmNsdWRlICJpbnRlbF9jb2xvcl9tYW5hZ2VyLmgi Cj4KPiAraW50IGNodl9zZXRfZ2FtbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDY0X3Qg YmxvYl9pZCwKPiArCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gK3sKPiArCXN0cnVjdCBkcm1f aW50ZWxfZ2FtbWEgKmdhbW1hX2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpi bG9iOwo+ICsJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25m aWc7Cj4gKwo+ICsJdTMyIGNnbV9jb250cm9sX3JlZyA9IDA7Cj4gKwl1MzIgY2dtX2dhbW1hX3Jl ZyA9IDA7Cj4gKwl1MzIgcmVnLCB2YWwsIHBpcGU7Cj4gKwl1MTYgcmVkLCBncmVlbiwgYmx1ZTsK PiArCXN0cnVjdCByZ2JfcGl4ZWwgY29ycmVjdF9yZ2I7Cj4gKwl1MzIgY291bnQgPSAwOwo+ICsJ c3RydWN0IHJnYl9waXhlbCAqY29ycmVjdGlvbl92YWx1ZXMgPSBOVUxMOwo+ICsJdTMyIG51bV9z YW1wbGVzOwo+ICsJdTMyIHdvcmQ7Cj4gKwl1MzIgcGFsZXR0ZTsKPiArCWludCByZXQgPSAwLCBs ZW5ndGg7Cj4gKwo+ICsJYmxvYiA9IGRybV9wcm9wZXJ0eV9sb29rdXBfYmxvYihkZXYsIGJsb2Jf aWQpOwo+ICsJaWYgKCFibG9iKSB7Cj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIEJsb2IgSURcbiIp Owo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCWdhbW1hX2RhdGEgPSBremFsbG9j KHNpemVvZihzdHJ1Y3QgZHJtX2ludGVsX2dhbW1hKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWdh bW1hX2RhdGEpIHsKPiArCQlEUk1fRVJST1IoIk1lbW9yeSB1bmF2YWlsYWJsZVxuIik7Cj4gKwkJ cmV0dXJuIC1FTk9NRU07Cj4gKwl9Cj4gKwlnYW1tYV9kYXRhID0gKHN0cnVjdCBkcm1faW50ZWxf Z2FtbWEgKilibG9iLT5kYXRhOwo+ICsJcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7 Cj4gKwludW1fc2FtcGxlcyA9IGdhbW1hX2RhdGEtPm51bV9zYW1wbGVzOwo+ICsJbGVuZ3RoID0g bnVtX3NhbXBsZXMgKiBzaXplb2Yoc3RydWN0IHJnYl9waXhlbCk7Cj4gKwo+ICsJaWYgKGdhbW1h X2RhdGEtPmdhbW1hX3ByZWNpc2lvbiA9PSBJOTE1X0dBTU1BX1BSRUNJU0lPTl9VTktOT1dOKSB7 Cj4gKwo+ICsJCS8qIERpc2FibGUgR2FtbWEgZnVuY3Rpb25hbGl0eSBvbiBQaXBlIC0gQ0dNIEJs b2NrICovCj4gKwkJY2dtX2NvbnRyb2xfcmVnID0gSTkxNV9SRUFEKF9QSVBFX0NHTV9DT05UUk9M KHBpcGUpKTsKPiArCQljZ21fY29udHJvbF9yZWcgJj0gfkNHTV9HQU1NQV9FTjsKPiArCQlJOTE1 X1dSSVRFKF9QSVBFX0NHTV9DT05UUk9MKHBpcGUpLCBjZ21fY29udHJvbF9yZWcpOwo+ICsKPiAr CQlEUk1fREVCVUdfRFJJVkVSKCJHYW1tYSBkaXNhYmxlZCBvbiBQaXBlICVjXG4iLAo+ICsJCQkJ cGlwZV9uYW1lKHBpcGUpKTsKPiArCQlyZXQgPSAwOwo+ICsJCWdvdG8gcmVsZWFzZV9tZW1vcnk7 Cj4gKwl9Cj4gKwo+ICsJaWYgKHBpcGUgPj0gQ0hWX01BWF9QSVBFUykgewo+ICsJCURSTV9FUlJP UigiSW5jb3JyZWN0IFBpcGUgSURcbiIpOwo+ICsJCXJldCA9IC1FRkFVTFQ7Cj4gKwkJZ290byBy ZWxlYXNlX21lbW9yeTsKPiArCX0KPiArCj4gKwljb3JyZWN0aW9uX3ZhbHVlcyA9IGt6YWxsb2Mo bGVuZ3RoLCBHRlBfS0VSTkVMKTsKPiArCWlmICghY29ycmVjdGlvbl92YWx1ZXMpIHsKPiArCQlE Uk1fRVJST1IoIk91dCBvZiBNZW1vcnlcbiIpOwo+ICsJCXJldCA9IC1FTk9NRU07Cj4gKwkJZ290 byByZWxlYXNlX21lbW9yeTsKPiArCX0KPiArCj4gKwlyZXQgPSBjb3B5X2Zyb21fdXNlcigodm9p ZCAqKWNvcnJlY3Rpb25fdmFsdWVzLAo+ICsJCShjb25zdCB2b2lkIF9fdXNlciAqKWdhbW1hX2Rh dGEtPmdhbW1hX3B0ciwgbGVuZ3RoKTsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1fRVJST1IoIkVy cm9yIGNvcHlpbmcgdXNlciBkYXRhXG4iKTsKPiArCQlyZXQgPSAtRUZBVUxUOwo+ICsJCWdvdG8g cmVsZWFzZV9tZW1vcnk7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gZHJtX21vZGVfY3J0Y191cGRhdGVf Y29sb3JfcHJvcGVydHkoZGV2LAo+ICsJCSZjcnRjLT5nYW1tYV9ibG9iLCBsZW5ndGgsICh2b2lk ICopIGNvcnJlY3Rpb25fdmFsdWVzLAo+ICsJCSZjcnRjLT5iYXNlLCBjb25maWctPmdhbW1hX3By b3BlcnR5KTsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1fRVJST1IoIkVycm9yIHVwZGF0aW5nIEdh bW1hIGJsb2JcbiIpOwo+ICsJCXJldCA9IC1FRkFVTFQ7Cj4gKwkJZ290byByZWxlYXNlX21lbW9y eTsKPiArCX0KPiArCj4gKwlpZiAoZ2FtbWFfZGF0YS0+Z2FtbWFfcHJlY2lzaW9uID09IEk5MTVf R0FNTUFfUFJFQ0lTSU9OX0xFR0FDWSkgewo+ICsKPiArCQlpZiAobnVtX3NhbXBsZXMgIT0gQ0hW XzhCSVRfR0FNTUFfTUFYX1ZBTFMpIHsKPiArCQkJRFJNX0VSUk9SKCJJbmNvcnJlY3QgbnVtYmVy IG9mIHNhbXBsZXMgcmVjZWl2ZWRcbiIpOwo+ICsJCQlnb3RvIHJlbGVhc2VfbWVtb3J5Owo+ICsJ CX0KPiArCj4gKwkJLyogRmlyc3QsIGRpc2FibGUgQ0dNIEdhbW1hLCBpZiBhbHJlYWR5IHNldCAq Lwo+ICsJCWNnbV9jb250cm9sX3JlZyA9IEk5MTVfUkVBRChfUElQRV9DR01fQ09OVFJPTChwaXBl KSk7Cj4gKwkJY2dtX2NvbnRyb2xfcmVnICY9IH5DR01fR0FNTUFfRU47Cj4gKwkJSTkxNV9XUklU RShfUElQRV9DR01fQ09OVFJPTChwaXBlKSwgY2dtX2NvbnRyb2xfcmVnKTsKPiArCj4gKwkJLyog RW5hYmxlIChMZWdhY3kpIEdhbW1hIG9uIFBpcGUgZ2FtbWFfZGF0YS5fX29ial9pZCAqLwo+ICsJ CXBhbGV0dGUgPSBfUElQRV9HQU1NQV9CQVNFKHBpcGUpOwo+ICsKPiArCQljb3VudCA9IDA7Cj4g KwkJd2hpbGUgKGNvdW50IDwgbnVtX3NhbXBsZXMpIHsKPiArCQkJY29ycmVjdF9yZ2IgPSBjb3Jy ZWN0aW9uX3ZhbHVlc1tjb3VudF07Cj4gKwkJCWJsdWUgPSBjb3JyZWN0X3JnYi5ibHVlOwo+ICsJ CQlncmVlbiA9IGNvcnJlY3RfcmdiLmdyZWVuOwo+ICsJCQlyZWQgPSBjb3JyZWN0X3JnYi5yZWQ7 Cj4gKwo+ICsJCQlibHVlID0gYmx1ZSA+PiBDSFZfOEJJVF9HQU1NQV9NU0JfU0hJRlQ7Cj4gKwkJ CWdyZWVuID0gZ3JlZW4gPj4gQ0hWXzhCSVRfR0FNTUFfTVNCX1NISUZUOwo+ICsJCQlyZWQgPSBy ZWQgPj4gQ0hWXzhCSVRfR0FNTUFfTVNCX1NISUZUOwo+ICsKPiArCQkJLyogUmVkICgyMzoxNiks IEdyZWVuICgxNTo4KSwgQmx1ZSAoNzowKSAqLwo+ICsJCQl3b3JkID0gKHJlZCA8PCBDSFZfOEJJ VF9HQU1NQV9TSElGVF9SRURfUkVHKSB8Cj4gKwkJCQkoZ3JlZW4gPDwKPiArCQkJCSBDSFZfOEJJ VF9HQU1NQV9TSElGVF9HUkVFTl9SRUcpIHwKPiArCQkJCWJsdWU7Cj4gKwkJCUk5MTVfV1JJVEUo cGFsZXR0ZSwgd29yZCk7Cj4gKwo+ICsJCQlwYWxldHRlICs9IDQ7Cj4gKwkJCWNvdW50Kys7Cj4g KwkJfQo+ICsJCXJlZyA9IFBJUEVDT05GKHBpcGUpOwo+ICsJCXZhbCA9IEk5MTVfUkVBRChyZWcp IHwgUElQRUNPTkZfR0FNTUE7Cj4gKwkJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4gKwo+ICsJCURS TV9ERUJVR19EUklWRVIoIkdhbW1hIExVVCBsb2FkZWQgc3VjY2Vzc2Z1bGx5IGZvciBQaXBlICVj XG4iLAo+ICsJCQlwaXBlX25hbWUocGlwZSkpOwo+ICsJCXJldCA9IDA7Cj4gKwkJZ290byByZWxl YXNlX21lbW9yeTsKPiArCX0gZWxzZSBpZiAoZ2FtbWFfZGF0YS0+Z2FtbWFfcHJlY2lzaW9uID09 IEk5MTVfR0FNTUFfUFJFQ0lTSU9OXzEwQklUKSB7Cj4gKwo+ICsJCWlmIChudW1fc2FtcGxlcyAh PSBDSFZfMTBCSVRfR0FNTUFfTUFYX1ZBTFMpIHsKPiArCQkJRFJNX0VSUk9SKCJJbmNvcnJlY3Qg bnVtYmVyIG9mIHNhbXBsZXMgcmVjZWl2ZWRcbiIpOwo+ICsJCQlyZXQgPSAtRUlOVkFMOwo+ICsJ CQlnb3RvIHJlbGVhc2VfbWVtb3J5Owo+ICsJCX0KPiArCj4gKwkJLyogRW5hYmxlIChDR00pIEdh bW1hIG9uIFBpcGUgZ2FtbWFfZGF0YS5fX29ial9pZCAqLwo+ICsJCWNnbV9nYW1tYV9yZWcgPSBf UElQRV9HQU1NQV9CQVNFKHBpcGUpOwo+ICsKPiArCQljb3VudCA9IDA7Cj4gKwkJd2hpbGUgKGNv dW50IDwgbnVtX3NhbXBsZXMpIHsKPiArCQkJY29ycmVjdF9yZ2IgPSBjb3JyZWN0aW9uX3ZhbHVl c1tjb3VudF07Cj4gKwkJCWJsdWUgPSBjb3JyZWN0X3JnYi5ibHVlOwo+ICsJCQlncmVlbiA9IGNv cnJlY3RfcmdiLmdyZWVuOwo+ICsJCQlyZWQgPSBjb3JyZWN0X3JnYi5yZWQ7Cj4gKwo+ICsJCQli bHVlID0gYmx1ZSA+PiBDSFZfMTBCSVRfR0FNTUFfTVNCX1NISUZUOwo+ICsJCQlncmVlbiA9IGdy ZWVuID4+IENIVl8xMEJJVF9HQU1NQV9NU0JfU0hJRlQ7Cj4gKwkJCXJlZCA9IHJlZCA+PiBDSFZf MTBCSVRfR0FNTUFfTVNCX1NISUZUOwo+ICsKPiArCQkJLyogR3JlZW4gKDI1OjE2KSBhbmQgQmx1 ZSAoOTowKSB0byBiZSB3cml0dGVuICovCj4gKwkJCXdvcmQgPSAoZ3JlZW4gPDwgQ0hWX0dBTU1B X1NISUZUX0dSRUVOKSB8IGJsdWU7Cj4gKwkJCUk5MTVfV1JJVEUoY2dtX2dhbW1hX3JlZywgd29y ZCk7Cj4gKwkJCWNnbV9nYW1tYV9yZWcgKz0gNDsKPiArCj4gKwkJCS8qIFJlZCAoOTowKSB0byBi ZSB3cml0dGVuICovCj4gKwkJCXdvcmQgPSByZWQ7Cj4gKwkJCUk5MTVfV1JJVEUoY2dtX2dhbW1h X3JlZywgd29yZCk7Cj4gKwo+ICsJCQljZ21fZ2FtbWFfcmVnICs9IDQ7Cj4gKwkJCWNvdW50Kys7 Cj4gKwkJfQo+ICsKPiArCQlJOTE1X1dSSVRFKF9QSVBFX0NHTV9DT05UUk9MKHBpcGUpLAo+ICsJ CQlJOTE1X1JFQUQoX1BJUEVfQ0dNX0NPTlRST0wocGlwZSkpCj4gKwkJCXwgQ0dNX0dBTU1BX0VO KTsKPiArCj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiR2FtbWEgTFVUIGxvYWRlZCBzdWNjZXNzZnVs bHkgZm9yIFBpcGUgJWNcbiIsCj4gKwkJCXBpcGVfbmFtZShwaXBlKSk7Cj4gKwkJcmV0ID0gMDsK PiArCQlnb3RvIHJlbGVhc2VfbWVtb3J5Owo+ICsJfSBlbHNlIHsKPiArCQlEUk1fRVJST1IoIklu dmFsaWQgZ2FtbWFfbGV2ZWwgcmVjZWl2ZWRcbiIpOwo+ICsJCXJldCA9IC1FRkFVTFQ7Cj4gKwkJ Z290byByZWxlYXNlX21lbW9yeTsKPiArCX0KPiArCj4gK3JlbGVhc2VfbWVtb3J5Ogo+ICsKPiAr CS8qIGtmcmVlIGlzIE5VTEwgcHJvdGVjdGVkICovCj4gKwlrZnJlZShjb3JyZWN0aW9uX3ZhbHVl cyk7Cj4gKwlrZnJlZShnYW1tYV9kYXRhKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ ICtpbnQgaW50ZWxfY29sb3JfbWFuYWdlcl9zZXRfZ2FtbWEoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiArCQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosIHVpbnQ2NF90IGJsb2JfaWQpCj4g K3sKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9ial90b19jcnRjKG9iaik7Cj4gKwo+ICsJ aWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKPiArCQlyZXR1cm4gY2h2X3NldF9nYW1tYShkZXYsIGJs b2JfaWQsIGNydGMpOwo+ICsJZWxzZQo+ICsJCURSTV9FUlJPUigiVGhpcyBwbGF0Zm9ybSBpcyBu b3QgeWV0IHN1cHBvcnRlZFxuIik7Cj4gKwo+ICsJcmV0dXJuIC1FSU5WQUw7Cj4gK30KPiArCj4g ICB2b2lkIGludGVsX2NvbG9yX21hbmFnZXJfYXR0YWNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gICAJCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm1vZGVfb2JqKQo+ICAgewo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmgKPiBpbmRleCBlNTg3NmZhLi4yYzhi N2RhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFn ZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuaAo+ IEBAIC0yNyw4ICsyNyw2OSBAQAo+Cj4gICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiAgICNpbmNs dWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICsK PiArLyogQ29sb3IgTWFuYWdlbWVudCBtYWNyb3MgZm9yIEdhbW1hICovCj4gKyNkZWZpbmUgSTkx NV9HQU1NQV9GTEFHX0RFR0FNTUEJCQkoMSA8PCAwKQo+ICsjZGVmaW5lIEk5MTVfUElQRV9HQU1N QQkJCQkoMSA8PCAwKQo+ICsjZGVmaW5lIEk5MTVfUExBTkVfR0FNTUEJCQkoMSA8PCAxKQo+ICsj ZGVmaW5lIEk5MTVfR0FNTUFfUFJFQ0lTSU9OX1VOS05PV04JCTAKPiArI2RlZmluZSBJOTE1X0dB TU1BX1BSRUNJU0lPTl9DVVJSRU5UCQkweEZGRkZGRkZGCj4gKyNkZWZpbmUgSTkxNV9HQU1NQV9Q UkVDSVNJT05fTEVHQUNZCQkoMSA8PCAwKQo+ICsjZGVmaW5lIEk5MTVfR0FNTUFfUFJFQ0lTSU9O XzEwQklUCQkoMSA8PCAxKQo+ICsjZGVmaW5lIEk5MTVfR0FNTUFfUFJFQ0lTSU9OXzEyQklUCQko MSA8PCAyKQo+ICsjZGVmaW5lIEk5MTVfR0FNTUFfUFJFQ0lTSU9OXzE0QklUCQkoMSA8PCAzKQo+ ICsjZGVmaW5lIEk5MTVfR0FNTUFfUFJFQ0lTSU9OXzE2QklUCQkoMSA8PCA0KQo+ICsKPiArI2Rl ZmluZSBDSFZfTUFYX1BJUEVTCQkJCTMKPiArI2RlZmluZSBDSFZfRElTUExBWV9CQVNFCQkJMHgx ODAwMDAKPiArCj4gK3N0cnVjdCByZ2JfcGl4ZWwgewo+ICsJdTE2IHJlZDsKPiArCXUxNiBncmVl bjsKPiArCXUxNiBibHVlOwo+ICt9Owo+ICsKPiArLyogQ0hWIENHTSBCbG9jayAqLwo+ICsvKiBC aXQgMiB0byBiZSBlbmFibGVkIGluIENHTSBibG9jayBmb3IgQ0hWICovCj4gKyNkZWZpbmUgQ0dN X0dBTU1BX0VOCQkJCTQKPiArCj4gKy8qIEdhbW1hICovCj4gKyNkZWZpbmUgQ0hWX0dBTU1BX1ZB TFMJCQkJMjU3Cj4gKyNkZWZpbmUgQ0hWXzEwQklUX0dBTU1BX01BWF9JTkRFWAkJMjU2Cj4gKyNk ZWZpbmUgQ0hWXzhCSVRfR0FNTUFfTUFYX0lOREVYCQkyNTUKPiArI2RlZmluZSBDSFZfMTBCSVRf R0FNTUFfTVNCX1NISUZUCQk2Cj4gKyNkZWZpbmUgQ0hWX0dBTU1BX0VWRU5fTUFTSwkJCTB4RkYK PiArI2RlZmluZSBDSFZfR0FNTUFfU0hJRlRfQkxVRQkJCTAKPiArI2RlZmluZSBDSFZfR0FNTUFf U0hJRlRfR1JFRU4JCQkxNgo+ICsjZGVmaW5lIENIVl9HQU1NQV9TSElGVF9SRUQJCQkwCj4gKyNk ZWZpbmUgQ0hWX0dBTU1BX09ERF9TSElGVAkJCTgKPiArI2RlZmluZSBDSFZfQ0xSTUdSX0dBTU1B X0dDTUFYX1NISUZUCQkxNwo+ICsjZGVmaW5lIENIVl9HQU1NQV9HQ01BWF9NQVNLCQkJMHgxRkZG Rgo+ICsjZGVmaW5lIENIVl9HQU1NQV9HQ01BWF9NQVgJCQkweDQwMAo+ICsjZGVmaW5lIENIVl8x MEJJVF9HQU1NQV9NQVhfVkFMUwkJKENIVl8xMEJJVF9HQU1NQV9NQVhfSU5ERVggKyAxKQo+ICsj ZGVmaW5lIENIVl84QklUX0dBTU1BX01BWF9WQUxTCQkJKENIVl84QklUX0dBTU1BX01BWF9JTkRF WCArIDEpCj4gKyNkZWZpbmUgQ0hWXzhCSVRfR0FNTUFfTVNCX1NISUZUCQk4Cj4gKyNkZWZpbmUg Q0hWXzhCSVRfR0FNTUFfU0hJRlRfR1JFRU5fUkVHCQk4Cj4gKyNkZWZpbmUgQ0hWXzhCSVRfR0FN TUFfU0hJRlRfUkVEX1JFRwkJMTYKPiArCj4gKy8qIENHTSBSZWdpc3RlcnMgKi8KPiArI2RlZmlu ZSBDR01fT0ZGU0VUCQkJCTB4MjAwMAo+ICsjZGVmaW5lIEdBTU1BX09GRlNFVAkJCQkweDIwMDAK PiArI2RlZmluZSBQSVBFQV9DR01fQ09OVFJPTAkJCShDSFZfRElTUExBWV9CQVNFICsgMHg2N0Ew MCkKPiArI2RlZmluZSBQSVBFQV9DR01fR0FNTUFfTUlOCQkJKENIVl9ESVNQTEFZX0JBU0UgKyAw eDY3MDAwKQo+ICsjZGVmaW5lIF9QSVBFX0NHTV9DT05UUk9MKHBpcGUpIFwKPiArCShQSVBFQV9D R01fQ09OVFJPTCArIChwaXBlICogQ0dNX09GRlNFVCkpCj4gKyNkZWZpbmUgX1BJUEVfR0FNTUFf QkFTRShwaXBlKSBcCj4gKwkoUElQRUFfQ0dNX0dBTU1BX01JTiArIChwaXBlICogR0FNTUFfT0ZG U0VUKSkKPgo+ICAgLyogR2VuZXJpYyBGdW5jdGlvbiBwcm90b3R5cGVzICovCj4gICBpbnQgaW50 ZWxfY29sb3JfbWFuYWdlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICAgdm9pZCBp bnRlbF9jb2xvcl9tYW5hZ2VyX2F0dGFjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQlz dHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICptb2RlX29iaik7Cj4gK2V4dGVybiBpbnQgaW50ZWxfY29s b3JfbWFuYWdlcl9zZXRfZ2FtbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQlzdHJ1Y3Qg ZHJtX21vZGVfb2JqZWN0ICpvYmosIHVpbnQ2NF90IGJsb2JfaWQpOwo+ICsKPiArLyogUGxhdGZv cm0gc3BlY2lmaWMgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwo+ICtleHRlcm4gaW50IGNodl9zZXRf Z2FtbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQl1aW50NjRfdCBibG9iX2lkLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBp bmRleCAyMWU2N2RhLi44NzZmZGUwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+IEBAIC0xMjk4MSw3ICsxMjk4MSwxNCBAQCBvdXQ6Cj4gICBzdGF0aWMgaW50IGludGVs X2NydGNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJc3RydWN0IGRy bV9wcm9wZXJ0eSAqcHJvcGVydHksIHVpbnQ2NF90IHZhbCkKPiAgIHsKPiAtCURSTV9ERUJVR19L TVMoIlVua25vd24gY3J0YyBwcm9wZXJ0eSAnJXMnXG4iLCBwcm9wZXJ0eS0+bmFtZSk7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICsJc3RydWN0IGRybV9tb2RlX2Nv bmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7Cj4gKwo+ICsJaWYgKHByb3BlcnR5ID09 IGNvbmZpZy0+Z2FtbWFfcHJvcGVydHkpCj4gKwkJcmV0dXJuIGludGVsX2NvbG9yX21hbmFnZXJf c2V0X2dhbW1hKGRldiwgJmNydGMtPmJhc2UsIHZhbCk7Cj4gKwllbHNlCj4gKwkJRFJNX0RFQlVH X0tNUygiVW5rbm93biBjcnRjIHByb3BlcnR5ICclcydcbiIsIHByb3BlcnR5LT5uYW1lKTsKPiAr Cj4gICAJcmV0dXJuIC1FSU5WQUw7Cj4gICB9Cj4KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCA0MDg1MzM5Li42NTRj MDk4IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiArKysgYi9pbmNsdWRl L2RybS9kcm1fY3J0Yy5oCj4gQEAgLTQ4Myw2ICs0ODMsOSBAQCBzdHJ1Y3QgZHJtX2NydGMgewo+ ICAgCSAqIGFjcXVpcmUgY29udGV4dC4KPiAgIAkgKi8KPiAgIAlzdHJ1Y3QgZHJtX21vZGVzZXRf YWNxdWlyZV9jdHggKmFjcXVpcmVfY3R4Owo+ICsKPiArCS8qIENvbG9yIE1hbmFnZW1lbnQgQmxv YnMgKi8KPiArCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfYmxvYjsKPiAgIH07Cj4K PiAgIC8qKgo+IEBAIC0xMzQxLDYgKzEzNDQsMTEgQEAgZXh0ZXJuIHZvaWQgZHJtX21vZGVfY29u ZmlnX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gICBleHRlcm4gaW50IGRybV9t b2RlX2Nvbm5lY3Rvcl9zZXRfcGF0aF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ICAgCQkJCQkJY29uc3QgY2hhciAqcGF0aCk7Cj4gICBpbnQgZHJtX21vZGVfY29u bmVjdG9yX3NldF90aWxlX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip Owo+ICtleHRlcm4gaW50IGRybV9tb2RlX2NydGNfdXBkYXRlX2NvbG9yX3Byb3BlcnR5KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICoqYmxvYiwK PiArCQlzaXplX3QgbGVuZ3RoLCBjb25zdCB2b2lkICpjb2xvcl9kYXRhLAo+ICsJCXN0cnVjdCBk cm1fbW9kZV9vYmplY3QgKm9ial9ob2xkc19pZCwKPiArCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpw cm9wX2hvbGRzX2lkKTsKPiAgIGV4dGVybiBpbnQgZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9l ZGlkX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gICAJCQkJCQkg ICBjb25zdCBzdHJ1Y3QgZWRpZCAqZWRpZCk7Cj4KPgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=