From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 09/18] drm/i915: Pipe level Gamma correction for CHV/BSW Date: Fri, 21 Aug 2015 15:41:03 -0700 Message-ID: <20150821224103.GJ13406@intel.com> References: <1438879107-22819-1-git-send-email-shashank.sharma@intel.com> <1438879107-22819-10-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1438879107-22819-10-git-send-email-shashank.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: Shashank Sharma Cc: annie.j.matheson@intel.com, kausalmalladi@gmail.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, vijay.a.purushothaman@intel.com, hverkuil@xs4all.nl, thierry.reding@gmail.com, jesse.barnes@intel.com, daniel.vetter@intel.com, susanta.bhattacharjee@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMDYsIDIwMTUgYXQgMTA6MDg6MThQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IEZyb206IEthdXNhbCBNYWxsYWRpIDxrYXVzYWxtYWxsYWRpQGdtYWlsLmNvbT4K PiAKPiBDSFYvQlNXIHBsYXRmb3JtIHN1cHBvcnRzIHR3byBkaWZmZXJlbnQgcGlwZSBsZXZlbCBn YW1tYQo+IGNvcnJlY3Rpb24gbW9kZXMsIHdoaWNoIGFyZToKPiAxLiBMZWdhY3kgOC1iaXQgbW9k ZQo+IDIuIDEwLWJpdCBDR00gKENvbG9yIEdhbXV0IE1hcHBpbmcpIG1vZGUKPiAKPiBUaGlzIHBh dGNoIGRvZXMgdGhlIGZvbGxvd2luZzoKPiAxLiBBdHRhY2hlcyBHYW1tYSBwcm9wZXJ0eSB0byBD UlRDCj4gMy4gQWRkcyB0aGUgY29yZSBHYW1tYSBjb3JyZWN0aW9uIGZ1bmN0aW9uIGZvciBDSFYv QlNXCj4gNC4gQWRkcyBHYW1tYSBjb3JyZWN0aW9uIG1hY3Jvcwo+IAo+IFNpZ25lZC1vZmYtYnk6 IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiBTaWduZWQtb2Zm LWJ5OiBLYXVzYWwgTWFsbGFkaSA8a2F1c2FsbWFsbGFkaUBnbWFpbC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICAgICB8ICAxMiArKysKPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5jIHwgMTQ2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21h bmFnZXIuaCB8ICAyMCArKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyAgICAgICB8ICAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAg ICAgICB8ICAgMiArCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTgyIGluc2VydGlvbnMoKykKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCAzYTc3Njc4Li40OTk3ZWJkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTc5MjEsNCArNzkyMSwxNiBAQCBlbnVtIHNrbF9kaXNw X3Bvd2VyX3dlbGxzIHsKPiAgI2RlZmluZSBHRU45X1ZFQk9YX01PQ1NfMAkweGNiMDAJLyogVmlk ZW8gTU9DUyBiYXNlIHJlZ2lzdGVyKi8KPiAgI2RlZmluZSBHRU45X0JMVF9NT0NTXzAJCTB4Y2Mw MAkvKiBCbGl0dGVyIE1PQ1MgYmFzZSByZWdpc3RlciovCj4gIAo+ICsvKiBDb2xvciBNYW5hZ2Vt ZW50ICovCj4gKyNkZWZpbmUgUElQRUFfQ0dNX0NPTlRST0wJCQkoVkxWX0RJU1BMQVlfQkFTRSAr IDB4NjdBMDApCj4gKyNkZWZpbmUgUElQRUJfQ0dNX0NPTlRST0wJCQkoVkxWX0RJU1BMQVlfQkFT RSArIDB4NjlBMDApCj4gKyNkZWZpbmUgUElQRUNfQ0dNX0NPTlRST0wJCQkoVkxWX0RJU1BMQVlf QkFTRSArIDB4NkJBMDApCj4gKyNkZWZpbmUgUElQRUFfQ0dNX0dBTU1BCQkJCShWTFZfRElTUExB WV9CQVNFICsgMHg2NzAwMCkKPiArI2RlZmluZSBQSVBFQl9DR01fR0FNTUEJCQkJKFZMVl9ESVNQ TEFZX0JBU0UgKyAweDY5MDAwKQo+ICsjZGVmaW5lIFBJUEVDX0NHTV9HQU1NQQkJCQkoVkxWX0RJ U1BMQVlfQkFTRSArIDB4NkIwMDApCj4gKyNkZWZpbmUgX1BJUEVfQ0dNX0NPTlRST0wocGlwZSkg XAo+ICsJKF9QSVBFMyhwaXBlLCBQSVBFQV9DR01fQ09OVFJPTCwgUElQRUJfQ0dNX0NPTlRST0ws IFBJUEVDX0NHTV9DT05UUk9MKSkKPiArI2RlZmluZSBfUElQRV9HQU1NQV9CQVNFKHBpcGUpIFwK PiArCShfUElQRTMocGlwZSwgUElQRUFfQ0dNX0dBTU1BLCBQSVBFQl9DR01fR0FNTUEsIFBJUEVD X0NHTV9HQU1NQSkpCj4gKwo+ICAjZW5kaWYgLyogX0k5MTVfUkVHX0hfICovCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuYwo+IGluZGV4IDlhNjEyNmMuLmY4Yzhk MjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdl ci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5jCj4g QEAgLTI3LDYgKzI3LDE0OSBAQAo+ICAKPiAgI2luY2x1ZGUgImludGVsX2NvbG9yX21hbmFnZXIu aCIKPiAgCj4gK2ludCBjaHZfc2V0X2dhbW1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYiwKPiArCQkgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK Ckl0IGxvb2tzIGxpa2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBmcm9tIHRoaXMgZmls ZSwgcmlnaHQ/ICBXZQpjYW4gcHJvYmFibHkgbWFrZSBpdCBzdGF0aWMgaW4gdGhhdCBjYXNlLgoK PiArewo+ICsJYm9vbCBmbGFnID0gZmFsc2U7Cj4gKwllbnVtIHBpcGUgcGlwZTsKPiArCXU4IHJl ZF9pbnQsIGJsdWVfaW50LCBncmVlbl9pbnQ7Cj4gKwl1MTYgcmVkX2ZyYWN0LCBncmVlbl9mcmFj dCwgYmx1ZV9mcmFjdDsKPiArCXUzMiByZWQsIGdyZWVuLCBibHVlOwo+ICsJdTMyIGNnbV9jb250 cm9sX3JlZyA9IDA7Cj4gKwl1MzIgY2dtX2dhbW1hX3JlZyA9IDA7Cj4gKwl1MzIgY291bnQgPSAw LCBudW1fc2FtcGxlcywgd29yZDsKPiArCWludCByZXQgPSAwLCBsZW5ndGg7Cj4gKwlzdHJ1Y3Qg ZHJtX3IzMmczMmIzMiAqY29ycmVjdGlvbl92YWx1ZXMgPSBOVUxMOwo+ICsJc3RydWN0IGRybV9w YWxldHRlICpnYW1tYV9kYXRhOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCj4gKwlpZiAoIWJsb2IpIHsKPiArCQlEUk1fRVJST1Io Ik5VTEwgQmxvYlxuIik7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9CgpUaGUgd2F5IHRoZSBj b2RlIHN0YW5kcyByaWdodCBub3csIHRoaXMgc2hvdWxkIG5ldmVyIGJlIHBvc3NpYmxlIHNpbmNl CndlIGRvbid0IGV2ZW4gY2FsbCB0aGlzIGZ1bmN0aW9uIGlmIHRoZSBibG9iIGlzIE5VTEwsIHJp Z2h0PyAgSW4gdGhhdApjYXNlIHdlIHVzdWFsbHkganVzdCBoYW5kbGUgdGhpcyBhcwoKICAgICAg ICBpZiAoV0FSTl9PTighYmxvYikpCiAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKCnRv IG1ha2UgaXQgYSBsaXR0bGUgbW9yZSBvYnZpb3VzIHRoYXQgdGhpcyBpcyB0cnVseSBhICJ0aGlz IGNhbiBuZXZlcgpoYXBwZW4iIHR5cGUgb2YgYXNzZXJ0aW9uLgoKQWxzbywgc2VlIG15IGNvbW1l bnQgbmVhciB0aGUgYm90dG9tIGFib3V0IHdoZXRoZXIgdGhpcyB3b3VsZCBiZSBhIG1vcmUKaW50 dWl0aXZlIHdheSB0byBkaXNhYmxlIHRoZSBjdXJyZW50IGdhbW1hIHZhbHVlcy4KCgo+ICsKPiAr CWdhbW1hX2RhdGEgPSAoc3RydWN0IGRybV9wYWxldHRlICopYmxvYi0+ZGF0YTsKPiArCj4gKwlp ZiAoZ2FtbWFfZGF0YS0+dmVyc2lvbiAhPSBDSFZfR0FNTUFfREFUQV9TVFJVQ1RfVkVSU0lPTikg ewo+ICsJCURSTV9FUlJPUigiSW52YWxpZCBHYW1tYSBEYXRhIHN0cnVjdCB2ZXJzaW9uXG4iKTsK CkEgdXNlciBjYW4gdHJpZ2dlciB0aGlzIG9uLWRlbWFuZCAoYW5kIHRodXMgc3BhbSB5b3VyIGtl cm5lbCBsb2cpLCBzbwp0aGlzIHNob3VsZCBwcm9iYWJseSBiZSBhIERSTV9ERUJVR19LTVMgcmF0 aGVyIHRoYW4gYSBEUk1fRVJST1IuCgo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiAr CXBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlOwo+ICsJbnVtX3NhbXBsZXMgPSBnYW1t YV9kYXRhLT5udW1fc2FtcGxlczsKPiArCWxlbmd0aCA9IG51bV9zYW1wbGVzICogc2l6ZW9mKHN0 cnVjdCBkcm1fcjMyZzMyYjMyKTsKPiArCj4gKwlzd2l0Y2ggKG51bV9zYW1wbGVzKSB7Cj4gKwlj YXNlIDA6Cj4gKwo+ICsJCS8qIERpc2FibGUgR2FtbWEgZnVuY3Rpb25hbGl0eSBvbiBQaXBlIC0g Q0dNIEJsb2NrICovCj4gKwkJY2dtX2NvbnRyb2xfcmVnID0gSTkxNV9SRUFEKF9QSVBFX0NHTV9D T05UUk9MKHBpcGUpKTsKPiArCQljZ21fY29udHJvbF9yZWcgJj0gfkNHTV9HQU1NQV9FTjsKPiAr CQlJOTE1X1dSSVRFKF9QSVBFX0NHTV9DT05UUk9MKHBpcGUpLCBjZ21fY29udHJvbF9yZWcpOwo+ ICsKPiArCQlEUk1fREVCVUdfRFJJVkVSKCJHYW1tYSBkaXNhYmxlZCBvbiBQaXBlICVjXG4iLAo+ ICsJCQkJcGlwZV9uYW1lKHBpcGUpKTsKPiArCQlyZXQgPSAwOwo+ICsJCWJyZWFrOwo+ICsKPiAr CWNhc2UgQ0hWXzhCSVRfR0FNTUFfTUFYX1ZBTFM6Cj4gKwljYXNlIENIVl8xMEJJVF9HQU1NQV9N QVhfVkFMUzoKPiArCj4gKwkJY291bnQgPSAwOwo+ICsJCWNnbV9nYW1tYV9yZWcgPSBfUElQRV9H QU1NQV9CQVNFKHBpcGUpOwo+ICsJCWNvcnJlY3Rpb25fdmFsdWVzID0gKHN0cnVjdCBkcm1fcjMy ZzMyYjMyICopJmdhbW1hX2RhdGEtPmx1dDsKPiArCj4gKwkJd2hpbGUgKGNvdW50IDwgbnVtX3Nh bXBsZXMpIHsKPiArCQkJYmx1ZSA9IGNvcnJlY3Rpb25fdmFsdWVzW2NvdW50XS5iMzI7Cj4gKwkJ CWdyZWVuID0gY29ycmVjdGlvbl92YWx1ZXNbY291bnRdLmczMjsKPiArCQkJcmVkID0gY29ycmVj dGlvbl92YWx1ZXNbY291bnRdLnIzMjsKPiArCj4gKwkJCWJsdWVfaW50ID0gX0dBTU1BX0lOVF9Q QVJUKGJsdWUpOwo+ICsJCQlpZiAoYmx1ZV9pbnQgPiBHQU1NQV9JTlRfTUFYKQo+ICsJCQkJYmx1 ZSA9IENIVl9NQVhfR0FNTUE7Cj4gKwo+ICsJCQlncmVlbl9pbnQgPSBfR0FNTUFfSU5UX1BBUlQo Z3JlZW4pOwo+ICsJCQlpZiAoZ3JlZW5faW50ID4gR0FNTUFfSU5UX01BWCkKPiArCQkJCWdyZWVu ID0gQ0hWX01BWF9HQU1NQTsKPiArCj4gKwkJCXJlZF9pbnQgPSBfR0FNTUFfSU5UX1BBUlQocmVk KTsKPiArCQkJaWYgKHJlZF9pbnQgPiBHQU1NQV9JTlRfTUFYKQo+ICsJCQkJcmVkID0gQ0hWX01B WF9HQU1NQTsKPiArCj4gKwkJCWJsdWVfZnJhY3QgPSBfR0FNTUFfRlJBQ1RfUEFSVChibHVlKTsK PiArCQkJZ3JlZW5fZnJhY3QgPSBfR0FNTUFfRlJBQ1RfUEFSVChncmVlbik7Cj4gKwkJCXJlZF9m cmFjdCA9IF9HQU1NQV9GUkFDVF9QQVJUKHJlZCk7Cj4gKwo+ICsJCQlibHVlX2ZyYWN0ID4+PSBD SFZfMTBCSVRfR0FNTUFfTVNCX1NISUZUOwo+ICsJCQlncmVlbl9mcmFjdCA+Pj0gQ0hWXzEwQklU X0dBTU1BX01TQl9TSElGVDsKPiArCQkJcmVkX2ZyYWN0ID4+PSBDSFZfMTBCSVRfR0FNTUFfTVNC X1NISUZUOwo+ICsKPiArCQkJLyogR3JlZW4gKDI1OjE2KSBhbmQgQmx1ZSAoOTowKSB0byBiZSB3 cml0dGVuICovCj4gKwkJCXdvcmQgPSBncmVlbl9mcmFjdDsKPiArCQkJd29yZCA8PD0gQ0hWX0dB TU1BX1NISUZUX0dSRUVOOwo+ICsJCQl3b3JkIHw9IGJsdWVfZnJhY3Q7Cj4gKwkJCUk5MTVfV1JJ VEUoY2dtX2dhbW1hX3JlZywgd29yZCk7Cj4gKwkJCWNnbV9nYW1tYV9yZWcgKz0gNDsKPiArCj4g KwkJCS8qIFJlZCAoOTowKSB0byBiZSB3cml0dGVuICovCj4gKwkJCXdvcmQgPSByZWRfZnJhY3Q7 Cj4gKwkJCUk5MTVfV1JJVEUoY2dtX2dhbW1hX3JlZywgd29yZCk7Cj4gKwo+ICsJCQljZ21fZ2Ft bWFfcmVnICs9IDQ7Cj4gKwkJCWNvdW50Kys7Cj4gKwo+ICsJCQkvKgo+ICsJCQkgKiBPbiBDSFYs IHRoZSBiZXN0IHN1cHBvcnRlZCBHYW1tYSBjYXBhYmlsaXR5IGlzCj4gKwkJCSAqIENHTSBibG9j aywgdGhhdCB0YWtlcyAyNTcgc2FtcGxlcy4KPiArCQkJICogSWYgdXNlciBnaXZlcyAyNTYgc2Ft cGxlcyAobGVnYWN5IG1vZGUpLCB0aGVuCj4gKwkJCSAqIGR1cGxpY2F0ZSB0aGUgMjU2dGggdmFs dWUgdG8gMjU3dGguCj4gKwkJCSAqICJmbGFnIiBpcyB1c2VkIHRvIG1ha2Ugc3VyZSBpdCBoYXBw ZW5zIG9ubHkgb25jZQo+ICsJCQkgKi8KPiArCQkJaWYgKG51bV9zYW1wbGVzID09IENIVl84QklU X0dBTU1BX01BWF9WQUxTCj4gKwkJCQkJJiYgY291bnQgPT0gQ0hWXzhCSVRfR0FNTUFfTUFYX1ZB TFMKPiArCQkJCQkmJiAhZmxhZykgewo+ICsJCQkJY291bnQtLTsKPiArCQkJCWZsYWcgPSB0cnVl Owo+ICsJCQl9Cj4gKwkJfQo+ICsKPiArCQkvKiBFbmFibGUgKENHTSkgR2FtbWEgb24gUGlwZSAq Lwo+ICsJCUk5MTVfV1JJVEUoX1BJUEVfQ0dNX0NPTlRST0wocGlwZSksCj4gKwkJCUk5MTVfUkVB RChfUElQRV9DR01fQ09OVFJPTChwaXBlKSkKPiArCQkJCXwgQ0dNX0dBTU1BX0VOKTsKPiArCQlE Uk1fREVCVUdfRFJJVkVSKCJDR00gR2FtbWEgZW5hYmxlZCBvbiBQaXBlICVjXG4iLAo+ICsJCQkJ cGlwZV9uYW1lKHBpcGUpKTsKPiArCQlyZXQgPSAwOwo+ICsJCWJyZWFrOwo+ICsKPiArCWRlZmF1 bHQ6Cj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIG51bWJlciBvZiBzYW1wbGVzIGZvciBHYW1tYSBM VVRcbiIpOwo+ICsJCXJldCA9IC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiAr fQo+ICsKPiArdm9pZCBpbnRlbF9jb2xvcl9tYW5hZ2VyX2NydGNfY29tbWl0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2I7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMg KmNydGMgPSBjcnRjX3N0YXRlLT5jcnRjOwo+ICsJaW50IHJldCA9IC1FSU5WQUw7Cj4gKwo+ICsJ YmxvYiA9IGNydGNfc3RhdGUtPnBhbGV0dGVfYWZ0ZXJfY3RtX2Jsb2I7Cj4gKwlpZiAoYmxvYikg ewo+ICsJCS8qIEdhbW1hIGNvcnJlY3Rpb24gaXMgcGxhdGZvcm0gc3BlY2lmaWMgKi8KPiArCQlp ZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJCQlyZXQgPSBjaHZfc2V0X2dhbW1hKGRldiwgYmxv YiwgY3J0Yyk7Cj4gKwo+ICsJCWlmIChyZXQpCj4gKwkJCURSTV9FUlJPUigic2V0IEdhbW1hIGNv cnJlY3Rpb24gZmFpbGVkXG4iKTsKPiArCQllbHNlCj4gKwkJCURSTV9ERUJVR19EUklWRVIoIkdh bW1hIGNvcnJlY3Rpb24gc3VjY2Vzc1xuIik7Cj4gKwl9CgpJZiBJJ20gdW5kZXJzdGFuZGluZyB0 aGUgY29kZSBwcm9wZXJseSwgdGhlbiBpdCBsb29rcyBsaWtlIEkgY2FuJ3QKZGlzYWJsZSBnYW1t YSBjb3JyZWN0aW9uIGJ5IGp1c3QgcmVtb3ZpbmcgdGhlIGN1cnJlbnQgYmxvYiAoaS5lLiwgYnkK dXBkYXRpbmcgdGhlIGJsb2IgSUQgdG8gYmUgMCk/ICBJbnN0ZWFkIEkgaGF2ZSB0byBhY3R1YWxs eSBjcmVhdGUgYSBuZXcsCnZhbGlkIGJsb2IgdGhhdCBoYXMgbnVtX3NhbXBsZXMgc2V0IHRvIHpl cm8gaW5zaWRlIHRoZSBibG9iIGluIG9yZGVyIHRvCmRpc2FibGUgdGhlIGZ1bmN0aW9uYWxpdHku ICBUaGF0IGlzbid0IHRoZSBiZWhhdmlvciBJIHdvdWxkIGhhdmUKaW50dWl0aXZlbHkgZXhwZWN0 ZWQsIGJ1dCB0aGF0J3MgcHJvYmFibHkgbW9yZSBvZiBhIGNhbGwgZm9yIHRoZSBndXlzCndvcmtp bmcgb24gdGhlIHVzZXJzcGFjZSBjb2RlIHRoYXQgYWN0dWFsbHkgdXNlcyB0aGlzIGZ1bmN0aW9u YWxpdHkuCkp1c3QgdGhvdWdodCBJJ2QgbWFrZSBhIG5vdGUgb2YgaXQgc2luY2UgaXQgc2VlbWVk IGEgYml0IHN1cnByaXNpbmcgdG8KbWUuCgooYnR3LCBJIHRoaW5rIGFsbCB0aGUgY29tbWVudHMg b24gdGhpcyBwYXRjaCBhbHNvIGFwcGx5IHRvIHBhdGNoZXMgIzExCmFuZCAxNCkKCk1hdHQKCj4g K30KPiArCj4gIGludCBpbnRlbF9jb2xvcl9tYW5hZ2VyX3NldF9waXBlX2dhbW1hKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gIAkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ ICAJCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaiwgdWludDMyX3QgYmxvYl9pZCkKPiBAQCAt OTksNSArMjQyLDggQEAgdm9pZCBpbnRlbF9hdHRhY2hfY29sb3JfcHJvcGVydGllc190b19jcnRj KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5 KG1vZGVfb2JqLAo+ICAJCQkJY29uZmlnLT5jbV9jcnRjX3BhbGV0dGVfY2FwYWJpbGl0aWVzX3By b3BlcnR5LAo+ICAJCQkJY2FwYWJpbGl0aWVzX2Jsb2JfaWQpOwo+ICsJCWlmIChjb25maWctPmNt X3BhbGV0dGVfYWZ0ZXJfY3RtX3Byb3BlcnR5KQo+ICsJCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9w ZXJ0eShtb2RlX29iaiwKPiArCQkJCWNvbmZpZy0+Y21fcGFsZXR0ZV9hZnRlcl9jdG1fcHJvcGVy dHksIDApOwo+ICAJfQo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2NvbG9yX21hbmFnZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21h bmFnZXIuaAo+IGluZGV4IDUxYWViOTEuLjhiYmFjMjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5oCj4gQEAgLTI4LDYgKzI4LDI2IEBACj4gICNpbmNs dWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICAK PiArI2RlZmluZSBfR0FNTUFfSU5UX1BBUlQodmFsdWUpCQkJKHZhbHVlID4+IEdBTU1BX0lOVF9T SElGVCkKPiArI2RlZmluZSBfR0FNTUFfRlJBQ1RfUEFSVCh2YWx1ZSkJCSh2YWx1ZSA+PiBHQU1N QV9GUkFDVF9TSElGVCkKPiArCj4gICNkZWZpbmUgQ0hWX1BBTEVUVEVfU1RSVUNUX1ZFUlNJT04J CTEKPiAgI2RlZmluZSBDSFZfREVHQU1NQV9NQVhfVkFMUwkJCTY1Cj4gICNkZWZpbmUgQ0hWXzEw QklUX0dBTU1BX01BWF9WQUxTCQkyNTcKPiArCj4gKy8qIEdhbW1hIGNvcnJlY3Rpb24gKi8KPiAr I2RlZmluZSBDSFZfR0FNTUFfREFUQV9TVFJVQ1RfVkVSU0lPTgkJMQo+ICsjZGVmaW5lIENIVl8x MEJJVF9HQU1NQV9NQVhfVkFMUwkJMjU3Cj4gKyNkZWZpbmUgQ0hWXzhCSVRfR0FNTUFfTUFYX1ZB TFMJCQkyNTYKPiArI2RlZmluZSBDSFZfMTBCSVRfR0FNTUFfTVNCX1NISUZUCQk2Cj4gKyNkZWZp bmUgQ0hWX0dBTU1BX1NISUZUX0dSRUVOCQkJMTYKPiArLyogR2FtbWEgdmFsdWVzIGFyZSB1OC4y NCBmb3JtYXQgKi8KPiArI2RlZmluZSBHQU1NQV9JTlRfU0hJRlQJCQkJMjQKPiArI2RlZmluZSBH QU1NQV9GUkFDVF9TSElGVAkJCTgKPiArLyogTWF4IGludCB2YWx1ZSBmb3IgR2FtbWEgaXMgMSAq Lwo+ICsjZGVmaW5lIEdBTU1BX0lOVF9NQVgJCQkJMQo+ICsvKiBNYXggdmFsdWUgZm9yIEdhbW1h IG9uIENIViAqLwo+ICsjZGVmaW5lIENIVl9NQVhfR0FNTUEJCQkJMHgxMDAwMAo+ICsKPiArLyog Q0hWIENHTSBCbG9jayAqLwo+ICsjZGVmaW5lIENHTV9HQU1NQV9FTgkJCQkoMSA8PCAyKQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAzNDlhMWMyLi45ZDFhNmMzIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMzY0MSw2ICsxMzY0 MSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPiAgCj4gIAlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpICYmIElOVEVM X0lORk8oZGV2KS0+Z2VuID49IDkpCj4gIAkJc2tsX2RldGFjaF9zY2FsZXJzKGludGVsX2NydGMp Owo+ICsKPiArCWludGVsX2NvbG9yX21hbmFnZXJfY3J0Y19jb21taXQoZGV2LCBjcnRjLT5zdGF0 ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA4MjBk ZWQ3Li5kZTNlNmU3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTQ0NCw1 ICsxNDQ0LDcgQEAgdm9pZCBpbnRlbF9hdHRhY2hfY29sb3JfcHJvcGVydGllc190b19jcnRjKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIGludCBpbnRlbF9jb2xvcl9tYW5hZ2VyX3NldF9waXBl X2dhbW1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAo+ICAJCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaiwgdWludDMyX3Qg YmxvYl9pZCk7Cj4gK3ZvaWQgaW50ZWxfY29sb3JfbWFuYWdlcl9jcnRjX2NvbW1pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICsJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7 Cj4gIAo+ICAjZW5kaWYgLyogX19JTlRFTF9EUlZfSF9fICovCj4gLS0gCj4gMS45LjEKPiAKCi0t IApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5h YmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=