From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jindal, Sonika" Subject: Re: [PATCH v2 07/10] drm/i915: Add pipe level Gamma correction for CHV/BSW Date: Sat, 06 Jun 2015 11:03:40 +0530 Message-ID: <55728634.7000807@intel.com> References: <1433425361-17864-1-git-send-email-Kausal.Malladi@intel.com> <1433425361-17864-8-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: <1433425361-17864-8-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.matheson@intel.com, dhanya.p.r@intel.com, daniel.vetter@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiA2LzQvMjAxNSA3OjEyIFBNLCBLYXVzYWwgTWFsbGFkaSB3cm90ZToKPiBGcm9tOiBLYXVz YWwgTWFsbGFkaSA8S2F1c2FsLk1hbGxhZGlAaW50ZWwuY29tPgo+Cj4gVGhpcyBwYXRjaCBkb2Vz IHRoZSBmb2xsb3dpbmc6Cj4gMS4gQWRkcyB0aGUgY29yZSBmdW5jdGlvbiB0byBwcm9ncmFtIEdh bW1hIGNvcnJlY3Rpb24gdmFsdWVzIGZvciBDSFYvQlNXCj4gICAgIHBsYXRmb3JtCj4gMi4gQWRk cyBHYW1tYSBjb3JyZWN0aW9uIG1hY3Jvcy9kZWZpbmVzCj4gMy4gQWRkcyBkcm1fbW9kZV9jcnRj X3VwZGF0ZV9jb2xvcl9wcm9wZXJ0eSBmdW5jdGlvbiwgd2hpY2ggcmVwbGFjZXMgdGhlCj4gICAg IG9sZCBibG9iIGZvciB0aGUgcHJvcGVydHkgd2l0aCB0aGUgbmV3IG9uZQo+IDQuIEFkZHMgYSBw b2ludGVyIHRvIGhvbGQgYmxvYiBmb3IgR2FtbWEgcHJvcGVydHkgaW4gZHJtX2NydGMKPgo+IHYy OiBBZGRyZXNzZWQgYWxsIHJldmlldyBjb21tZW50cyBmcm9tIFNvbmlrYSBhbmQgRGFuaWVsIFN0 b25lLgpJbnN0ZWFkIHlvdSBjYW4gbWVudGlvbiB0aGUgY2hhbmdlcyBicmllZmx5LgoKPgo+IFNp Z25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4K PiBTaWduZWQtb2ZmLWJ5OiBLYXVzYWwgTWFsbGFkaSA8S2F1c2FsLk1hbGxhZGlAaW50ZWwuY29t Pgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgICAgICAgIHwg ICA2ICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmMgfCAx NjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2NvbG9yX21hbmFnZXIuaCB8ICA2MiArKysrKysrKysrKwo+ICAgMyBmaWxlcyBjaGFu Z2VkLCAyMjkgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMK PiBpbmRleCBiNWM3OGQ4Li40NzI2ODQ3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRv bWljLmMKPiBAQCAtNDI4LDYgKzQyOCwxMiBAQCBpbnRlbF9jcnRjX2F0b21pY19zZXRfcHJvcGVy dHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCQkJICAgICAgIHN0cnVjdCBkcm1fcHJvcGVy dHkgKnByb3BlcnR5LAo+ICAgCQkJICAgICAgIHVpbnQ2NF90IHZhbCkKPiAgIHsKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmln ICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKPiArCj4gKwlpZiAocHJvcGVydHkgPT0gY29u ZmlnLT5nYW1tYV9wcm9wZXJ0eSkKPiArCQlyZXR1cm4gaW50ZWxfY29sb3JfbWFuYWdlcl9zZXRf Z2FtbWEoZGV2LCAmY3J0Yy0+YmFzZSwgdmFsKTsKPiArCj4gICAJRFJNX0RFQlVHX0tNUygiVW5r bm93biBjcnRjIHByb3BlcnR5ICclcydcbiIsIHByb3BlcnR5LT5uYW1lKTsKPiAgIAlyZXR1cm4g LUVJTlZBTDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29sb3JfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdl ci5jCj4gaW5kZXggOGQ0ZWU4Zi4uNDIxYzI2NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmMKPiBAQCAtMjcsNiArMjcsMTY3IEBACj4KPiAgICNpbmNs dWRlICJpbnRlbF9jb2xvcl9tYW5hZ2VyLmgiCj4KPiAraW50IGNodl9zZXRfZ2FtbWEoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3QgYmxvYl9pZCwKPiArCQlzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gK3sKPiArCXN0cnVjdCBkcm1fZ2FtbWEgKmdhbW1hX2RhdGE7Cj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iOwo+ICsJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29u ZmlnID0gJmRldi0+bW9kZV9jb25maWc7Cj4gKwl1MzIgY2dtX2NvbnRyb2xfcmVnID0gMDsKPiAr CXUzMiBjZ21fZ2FtbWFfcmVnID0gMDsKPiArCXUzMiByZWcsIHZhbDsKPiArCWVudW0gcGlwZSBw aXBlOwo+ICsJdTE2IHJlZCwgZ3JlZW4sIGJsdWU7Cj4gKwlzdHJ1Y3QgcmdiX3BpeGVsIGNvcnJl Y3RfcmdiOwo+ICsJdTMyIGNvdW50ID0gMDsKPiArCXN0cnVjdCByZ2JfcGl4ZWwgKmNvcnJlY3Rp b25fdmFsdWVzID0gTlVMTDsKPiArCXUzMiBudW1fc2FtcGxlczsKPiArCXUzMiB3b3JkOwo+ICsJ dTMyIHBhbGV0dGU7Cj4gKwlpbnQgcmV0ID0gMCwgbGVuZ3RoOwo+ICsKPiArCWJsb2IgPSBkcm1f cHJvcGVydHlfbG9va3VwX2Jsb2IoZGV2LCBibG9iX2lkKTsKPiArCWlmICghYmxvYikgewo+ICsJ CURSTV9FUlJPUigiSW52YWxpZCBCbG9iIElEXG4iKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAr CX0KPiArCj4gKwlnYW1tYV9kYXRhID0gKHN0cnVjdCBkcm1fZ2FtbWEgKilibG9iLT5kYXRhOwo+ ICsJcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7Cj4gKwludW1fc2FtcGxlcyA9IGdh bW1hX2RhdGEtPm51bV9zYW1wbGVzOwo+ICsJbGVuZ3RoID0gbnVtX3NhbXBsZXMgKiBzaXplb2Yo c3RydWN0IHJnYl9waXhlbCk7Cj4gKwo+ICsJaWYgKGdhbW1hX2RhdGEtPmdhbW1hX3ByZWNpc2lv biA9PSBJOTE1X0dBTU1BX1BSRUNJU0lPTl9VTktOT1dOKSB7ClN3aXRjaC9jYXNlIGluc3RlYWQ/ CgpBbHNvLCBpcyBVTktOT1dOIGZvciBkaXNhYmxpbmc/IFdoeSBub3QgcmVuYW1lIGl0IHRvIERJ U0FCTEUgdGhlbj8KPiArCj4gKwkJLyogRGlzYWJsZSBHYW1tYSBmdW5jdGlvbmFsaXR5IG9uIFBp cGUgLSBDR00gQmxvY2sgKi8KPiArCQljZ21fY29udHJvbF9yZWcgPSBJOTE1X1JFQUQoX1BJUEVf Q0dNX0NPTlRST0wocGlwZSkpOwo+ICsJCWNnbV9jb250cm9sX3JlZyAmPSB+Q0dNX0dBTU1BX0VO Owo+ICsJCUk5MTVfV1JJVEUoX1BJUEVfQ0dNX0NPTlRST0wocGlwZSksIGNnbV9jb250cm9sX3Jl Zyk7Cj4gKwo+ICsJCURSTV9ERUJVR19EUklWRVIoIkdhbW1hIGRpc2FibGVkIG9uIFBpcGUgJWNc biIsCj4gKwkJCQlwaXBlX25hbWUocGlwZSkpOwo+ICsJCXJldCA9IDA7Cj4gKwl9IGVsc2UgaWYg KGdhbW1hX2RhdGEtPmdhbW1hX3ByZWNpc2lvbiA9PSBJOTE1X0dBTU1BX1BSRUNJU0lPTl9MRUdB Q1kpIHsKPiArCj4gKwkJaWYgKG51bV9zYW1wbGVzICE9IENIVl84QklUX0dBTU1BX01BWF9WQUxT KSB7Cj4gKwkJCURSTV9FUlJPUigiSW5jb3JyZWN0IG51bWJlciBvZiBzYW1wbGVzIHJlY2VpdmVk XG4iKTsKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICsKPiArCQkvKiBGaXJzdCwgZGlz YWJsZSBDR00gR2FtbWEsIGlmIGFscmVhZHkgc2V0ICovCj4gKwkJY2dtX2NvbnRyb2xfcmVnID0g STkxNV9SRUFEKF9QSVBFX0NHTV9DT05UUk9MKHBpcGUpKTsKPiArCQljZ21fY29udHJvbF9yZWcg Jj0gfkNHTV9HQU1NQV9FTjsKPiArCQlJOTE1X1dSSVRFKF9QSVBFX0NHTV9DT05UUk9MKHBpcGUp LCBjZ21fY29udHJvbF9yZWcpOwo+ICsKPiArCQkvKiBFbmFibGUgKExlZ2FjeSkgR2FtbWEgb24g UGlwZSAqLwo+ICsJCXBhbGV0dGUgPSBfUElQRV9HQU1NQV9CQVNFKHBpcGUpOwo+ICsKPiArCQlj b3VudCA9IDA7Cj4gKwkJY29ycmVjdGlvbl92YWx1ZXMgPSAoc3RydWN0IHJnYl9waXhlbCAqKSZn YW1tYV9kYXRhLT52YWx1ZXM7Cj4gKwkJd2hpbGUgKGNvdW50IDwgbnVtX3NhbXBsZXMpIHsKPiAr CQkJY29ycmVjdF9yZ2IgPSBjb3JyZWN0aW9uX3ZhbHVlc1tjb3VudF07Cj4gKwkJCWJsdWUgPSBj b3JyZWN0aW9uX3ZhbHVlc1tjb3VudF0uYmx1ZTsKPiArCQkJZ3JlZW4gPSBjb3JyZWN0aW9uX3Zh bHVlc1tjb3VudF0uZ3JlZW47Cj4gKwkJCXJlZCA9IGNvcnJlY3Rpb25fdmFsdWVzW2NvdW50XS5y ZWQ7Cj4gKwo+ICsJCQlibHVlID0gYmx1ZSA+PiBDSFZfOEJJVF9HQU1NQV9NU0JfU0hJRlQ7Cj4g KwkJCWdyZWVuID0gZ3JlZW4gPj4gQ0hWXzhCSVRfR0FNTUFfTVNCX1NISUZUOwo+ICsJCQlyZWQg PSByZWQgPj4gQ0hWXzhCSVRfR0FNTUFfTVNCX1NISUZUOwo+ICsKPiArCQkJLyogUmVkICgyMzox NiksIEdyZWVuICgxNTo4KSwgQmx1ZSAoNzowKSAqLwo+ICsJCQl3b3JkID0gKHJlZCA8PCBDSFZf OEJJVF9HQU1NQV9TSElGVF9SRURfUkVHKSB8Cj4gKwkJCQkoZ3JlZW4gPDwKPiArCQkJCSBDSFZf OEJJVF9HQU1NQV9TSElGVF9HUkVFTl9SRUcpIHwKPiArCQkJCWJsdWU7Cj4gKwkJCUk5MTVfV1JJ VEUocGFsZXR0ZSwgd29yZCk7Cj4gKwo+ICsJCQlwYWxldHRlICs9IDQ7Cj4gKwkJCWNvdW50Kys7 Cj4gKwkJfQo+ICsJCXJlZyA9IFBJUEVDT05GKHBpcGUpOwo+ICsJCXZhbCA9IEk5MTVfUkVBRChy ZWcpIHwgUElQRUNPTkZfR0FNTUE7Cj4gKwkJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4gKwo+ICsJ CURSTV9ERUJVR19EUklWRVIoIkdhbW1hIExVVCBsb2FkZWQgc3VjY2Vzc2Z1bGx5IGZvciBQaXBl ICVjXG4iLAo+ICsJCQlwaXBlX25hbWUocGlwZSkpOwo+ICsJCXJldCA9IDA7Cj4gKwl9IGVsc2Ug aWYgKGdhbW1hX2RhdGEtPmdhbW1hX3ByZWNpc2lvbiA9PSBJOTE1X0dBTU1BX1BSRUNJU0lPTl8x MEJJVCkgewo+ICsKPiArCQlpZiAobnVtX3NhbXBsZXMgIT0gQ0hWXzEwQklUX0dBTU1BX01BWF9W QUxTKSB7Cj4gKwkJCURSTV9FUlJPUigiSW5jb3JyZWN0IG51bWJlciBvZiBzYW1wbGVzIHJlY2Vp dmVkXG4iKTsKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICsKPiArCQkvKiBFbmFibGUg KENHTSkgR2FtbWEgb24gUGlwZSAqLwo+ICsJCWNnbV9nYW1tYV9yZWcgPSBfUElQRV9HQU1NQV9C QVNFKHBpcGUpOwo+ICsKPiArCQljb3VudCA9IDA7Cj4gKwkJY29ycmVjdGlvbl92YWx1ZXMgPSAo c3RydWN0IHJnYl9waXhlbCAqKSZnYW1tYV9kYXRhLT52YWx1ZXM7Cj4gKwkJd2hpbGUgKGNvdW50 IDwgbnVtX3NhbXBsZXMpIHsKPiArCQkJY29ycmVjdF9yZ2IgPSBjb3JyZWN0aW9uX3ZhbHVlc1tj b3VudF07Cj4gKwkJCWJsdWUgPSBjb3JyZWN0aW9uX3ZhbHVlc1tjb3VudF0uYmx1ZTsKPiArCQkJ Z3JlZW4gPSBjb3JyZWN0aW9uX3ZhbHVlc1tjb3VudF0uZ3JlZW47Cj4gKwkJCXJlZCA9IGNvcnJl Y3Rpb25fdmFsdWVzW2NvdW50XS5yZWQ7Cj4gKwo+ICsJCQlibHVlID0gYmx1ZSA+PiBDSFZfMTBC SVRfR0FNTUFfTVNCX1NISUZUOwo+ICsJCQlncmVlbiA9IGdyZWVuID4+IENIVl8xMEJJVF9HQU1N QV9NU0JfU0hJRlQ7Cj4gKwkJCXJlZCA9IHJlZCA+PiBDSFZfMTBCSVRfR0FNTUFfTVNCX1NISUZU Owo+ICsKPiArCQkJLyogR3JlZW4gKDI1OjE2KSBhbmQgQmx1ZSAoOTowKSB0byBiZSB3cml0dGVu ICovCj4gKwkJCXdvcmQgPSAoZ3JlZW4gPDwgQ0hWX0dBTU1BX1NISUZUX0dSRUVOKSB8IGJsdWU7 Cj4gKwkJCUk5MTVfV1JJVEUoY2dtX2dhbW1hX3JlZywgd29yZCk7Cj4gKwkJCWNnbV9nYW1tYV9y ZWcgKz0gNDsKPiArCj4gKwkJCS8qIFJlZCAoOTowKSB0byBiZSB3cml0dGVuICovCj4gKwkJCXdv cmQgPSByZWQ7Cj4gKwkJCUk5MTVfV1JJVEUoY2dtX2dhbW1hX3JlZywgd29yZCk7Cj4gKwo+ICsJ CQljZ21fZ2FtbWFfcmVnICs9IDQ7Cj4gKwkJCWNvdW50Kys7Cj4gKwkJfQo+ICsKPiArCQlJOTE1 X1dSSVRFKF9QSVBFX0NHTV9DT05UUk9MKHBpcGUpLAo+ICsJCQlJOTE1X1JFQUQoX1BJUEVfQ0dN X0NPTlRST0wocGlwZSkpCj4gKwkJCXwgQ0dNX0dBTU1BX0VOKTsKPiArCj4gKwkJRFJNX0RFQlVH X0RSSVZFUigiR2FtbWEgTFVUIGxvYWRlZCBzdWNjZXNzZnVsbHkgZm9yIFBpcGUgJWNcbiIsCj4g KwkJCXBpcGVfbmFtZShwaXBlKSk7Cj4gKwo+ICsJCXJldCA9IDA7Cj4gKwl9IGVsc2Ugewo+ICsJ CURSTV9FUlJPUigiSW52YWxpZCBnYW1tYV9sZXZlbCByZWNlaXZlZFxuIik7Cj4gKwkJcmV0dXJu IC1FRkFVTFQ7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gZHJtX21vZGVfY3J0Y191cGRhdGVfY29sb3Jf cHJvcGVydHkoJmJsb2IsIGxlbmd0aCwKPiArCQkJKHZvaWQgKikgZ2FtbWFfZGF0YSwgJmNydGMt PmJhc2UsCj4gKwkJCWNvbmZpZy0+Z2FtbWFfcHJvcGVydHkpOwo+ICsKPiArCWlmIChyZXQpIHsK PiArCQlEUk1fRVJST1IoIkVycm9yIHVwZGF0aW5nIEdhbW1hIGJsb2JcbiIpOwo+ICsJCWNydGMt PmdhbW1hX2Jsb2JfaWQgPSBJTlZBTElEX0JMT0JfSUQ7Cj4gKwkJcmV0dXJuIC1FRkFVTFQ7Cj4g Kwl9Cj4gKwo+ICsJLyogU2F2ZSBibG9iIElEIGZvciBmdXR1cmUgdXNlICovCj4gKwljcnRjLT5n YW1tYV9ibG9iX2lkID0gYmxvYi0+YmFzZS5pZDsKRG8geW91IGhhdmUgYSBwYXRjaCB3aGljaCB1 c2VzIHRoaXMgYmxvYl9pZC4gU3RpbGwgbm90IHN1cmUgd2h5IHdpbGwgaXQgCmJlIHVzZWQgaW4g Z2V0X3Byb3BlcnR5LCB3aGVuIHRoZSB1c2VyIHdpbGwgc2VuZCB0aGUgYmxvYiBwcm9wZXJ0eSBh bmQgCmZyb20gdGhhdCB3ZSBjYW4gZ2V0IHRoZSBibG9iX2lkIChibG9iLT5iYXNlLmlkKQoKPiAr CXJldHVybiByZXQ7Cj4gK30KPiArCj4gK2ludCBpbnRlbF9jb2xvcl9tYW5hZ2VyX3NldF9nYW1t YShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9i aiwgdWludDMyX3QgYmxvYl9pZCkKPiArewo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gb2Jq X3RvX2NydGMob2JqKTsKPiArCj4gKwlEUk1fREVCVUdfRFJJVkVSKCJcbiIpOwo+ICsKPiArCWlm IChJU19DSEVSUllWSUVXKGRldikpCj4gKwkJcmV0dXJuIGNodl9zZXRfZ2FtbWEoZGV2LCBibG9i X2lkLCBjcnRjKTsKPiArCj4gKwlyZXR1cm4gLUVJTlZBTDsKPiArfQo+ICsKPiAgIHZvaWQgaW50 ZWxfY29sb3JfbWFuYWdlcl9hdHRhY2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJc3Ry dWN0IGRybV9tb2RlX29iamVjdCAqbW9kZV9vYmopCj4gICB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2NvbG9yX21hbmFnZXIuaAo+IGluZGV4IGE1NWNlMjMuLjBhY2Y4ZTkgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5oCj4gQEAgLTI3LDgg KzI3LDcwIEBACj4KPiAgICNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICAgI2luY2x1ZGUgPGRybS9k cm1fY3J0Y19oZWxwZXIuaD4KPiArI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4gKwo+ICsvKiBDb2xv ciBNYW5hZ2VtZW50IG1hY3JvcyBmb3IgR2FtbWEgKi8KPiArI2RlZmluZSBJOTE1X0dBTU1BX0ZM QUdfREVHQU1NQQkJCSgxIDw8IDApCj4gKyNkZWZpbmUgSTkxNV9QSVBFX0dBTU1BCQkJCSgxIDw8 IDApCj4gKyNkZWZpbmUgSTkxNV9QTEFORV9HQU1NQQkJCSgxIDw8IDEpCj4gKyNkZWZpbmUgSTkx NV9HQU1NQV9QUkVDSVNJT05fVU5LTk9XTgkJMAo+ICsjZGVmaW5lIEk5MTVfR0FNTUFfUFJFQ0lT SU9OX0NVUlJFTlQJCTB4RkZGRkZGRkYKPiArI2RlZmluZSBJOTE1X0dBTU1BX1BSRUNJU0lPTl9M RUdBQ1kJCSgxIDw8IDApCj4gKyNkZWZpbmUgSTkxNV9HQU1NQV9QUkVDSVNJT05fMTBCSVQJCSgx IDw8IDEpCj4gKyNkZWZpbmUgSTkxNV9HQU1NQV9QUkVDSVNJT05fMTJCSVQJCSgxIDw8IDIpCj4g KyNkZWZpbmUgSTkxNV9HQU1NQV9QUkVDSVNJT05fMTRCSVQJCSgxIDw8IDMpCj4gKyNkZWZpbmUg STkxNV9HQU1NQV9QUkVDSVNJT05fMTZCSVQJCSgxIDw8IDQpCj4gKwo+ICsjZGVmaW5lIENIVl9N QVhfUElQRVMJCQkJMwpJOTE1X01BWF9QSVBFUyA/Cj4gKyNkZWZpbmUgQ0hWX0RJU1BMQVlfQkFT RQkJCTB4MTgwMDAwClVzZSBWTFZfRElTUExBWV9CQVNFCgo+ICsjZGVmaW5lIElOVkFMSURfQkxP Ql9JRAkJCQk5OTk5Cj4gKwo+ICtzdHJ1Y3QgcmdiX3BpeGVsIHsKPiArCXUxNiByZWQ7Cj4gKwl1 MTYgZ3JlZW47Cj4gKwl1MTYgYmx1ZTsKPiArfTsKPiArCj4gKy8qIENIViBDR00gQmxvY2sgKi8K PiArLyogQml0IDIgdG8gYmUgZW5hYmxlZCBpbiBDR00gYmxvY2sgZm9yIENIViAqLwo+ICsjZGVm aW5lIENHTV9HQU1NQV9FTgkJCQk0Cj4gKwo+ICsvKiBHYW1tYSAqLwo+ICsjZGVmaW5lIENIVl9H QU1NQV9WQUxTCQkJCTI1Nwo+ICsjZGVmaW5lIENIVl8xMEJJVF9HQU1NQV9NQVhfSU5ERVgJCTI1 Ngo+ICsjZGVmaW5lIENIVl84QklUX0dBTU1BX01BWF9JTkRFWAkJMjU1Cj4gKyNkZWZpbmUgQ0hW XzEwQklUX0dBTU1BX01TQl9TSElGVAkJNgo+ICsjZGVmaW5lIENIVl9HQU1NQV9FVkVOX01BU0sJ CQkweEZGCj4gKyNkZWZpbmUgQ0hWX0dBTU1BX1NISUZUX0JMVUUJCQkwCj4gKyNkZWZpbmUgQ0hW X0dBTU1BX1NISUZUX0dSRUVOCQkJMTYKPiArI2RlZmluZSBDSFZfR0FNTUFfU0hJRlRfUkVECQkJ MAo+ICsjZGVmaW5lIENIVl9HQU1NQV9PRERfU0hJRlQJCQk4Cj4gKyNkZWZpbmUgQ0hWX0NMUk1H Ul9HQU1NQV9HQ01BWF9TSElGVAkJMTcKPiArI2RlZmluZSBDSFZfR0FNTUFfR0NNQVhfTUFTSwkJ CTB4MUZGRkYKPiArI2RlZmluZSBDSFZfR0FNTUFfR0NNQVhfTUFYCQkJMHg0MDAKPiArI2RlZmlu ZSBDSFZfMTBCSVRfR0FNTUFfTUFYX1ZBTFMJCShDSFZfMTBCSVRfR0FNTUFfTUFYX0lOREVYICsg MSkKPiArI2RlZmluZSBDSFZfOEJJVF9HQU1NQV9NQVhfVkFMUwkJCShDSFZfOEJJVF9HQU1NQV9N QVhfSU5ERVggKyAxKQo+ICsjZGVmaW5lIENIVl84QklUX0dBTU1BX01TQl9TSElGVAkJOAo+ICsj ZGVmaW5lIENIVl84QklUX0dBTU1BX1NISUZUX0dSRUVOX1JFRwkJOAo+ICsjZGVmaW5lIENIVl84 QklUX0dBTU1BX1NISUZUX1JFRF9SRUcJCTE2Cj4gKwo+ICsvKiBDR00gUmVnaXN0ZXJzICovCj4g KyNkZWZpbmUgQ0dNX09GRlNFVAkJCQkweDIwMDAKPiArI2RlZmluZSBHQU1NQV9PRkZTRVQJCQkJ MHgyMDAwCj4gKyNkZWZpbmUgUElQRUFfQ0dNX0NPTlRST0wJCQkoQ0hWX0RJU1BMQVlfQkFTRSAr IDB4NjdBMDApCj4gKyNkZWZpbmUgUElQRUFfQ0dNX0dBTU1BX01JTgkJCShDSFZfRElTUExBWV9C QVNFICsgMHg2NzAwMCkKPiArI2RlZmluZSBfUElQRV9DR01fQ09OVFJPTChwaXBlKSBcCj4gKwko UElQRUFfQ0dNX0NPTlRST0wgKyAocGlwZSAqIENHTV9PRkZTRVQpKQo+ICsjZGVmaW5lIF9QSVBF X0dBTU1BX0JBU0UocGlwZSkgXAo+ICsJKFBJUEVBX0NHTV9HQU1NQV9NSU4gKyAocGlwZSAqIEdB TU1BX09GRlNFVCkpCj4KSSB0aGluayBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIHB1dCB0aGVtIGlu IGk5MTVfcmVnLmguCgo+ICAgLyogR2VuZXJpYyBGdW5jdGlvbiBwcm90b3R5cGVzICovCj4gICB2 b2lkIGludGVsX2NvbG9yX21hbmFnZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAg IHZvaWQgaW50ZWxfY29sb3JfbWFuYWdlcl9hdHRhY2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgIAkJc3RydWN0IGRybV9tb2RlX29iamVjdCAqbW9kZV9vYmopOwo+ICtleHRlcm4gaW50IGlu dGVsX2NvbG9yX21hbmFnZXJfc2V0X2dhbW1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJ c3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLCB1aW50MzJfdCBibG9iX2lkKTsKPiArCj4gKy8q IFBsYXRmb3JtIHNwZWNpZmljIGZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KPiArZXh0ZXJuIGludCBj aHZfc2V0X2dhbW1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJdWludDMyX3QgYmxvYl9p ZCwgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=