From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH 09/18] drm/i915: Pipe level Gamma correction for CHV/BSW Date: Sat, 22 Aug 2015 11:48:55 +0530 Message-ID: <55D8144F.3070700@intel.com> References: <1438879107-22819-1-git-send-email-shashank.sharma@intel.com> <1438879107-22819-10-git-send-email-shashank.sharma@intel.com> <20150821224103.GJ13406@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150821224103.GJ13406@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Matt Roper Cc: annie.j.matheson@intel.com, robert.bradford@intel.com, kausalmalladi@gmail.com, avinash.reddy.palleti@intel.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, vijay.a.purushothaman@intel.com, jesse.barnes@intel.com, gary.k.smith@intel.com, jim.bish@intel.com, daniel.vetter@intel.com, kiran.s.kumar@intel.com, susanta.bhattacharjee@intel.com List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwpTaGFzaGFuawoKT24gOC8yMi8yMDE1IDQ6MTEgQU0sIE1hdHQgUm9wZXIgd3JvdGU6 Cj4gT24gVGh1LCBBdWcgMDYsIDIwMTUgYXQgMTA6MDg6MThQTSArMDUzMCwgU2hhc2hhbmsgU2hh cm1hIHdyb3RlOgo+PiBGcm9tOiBLYXVzYWwgTWFsbGFkaSA8a2F1c2FsbWFsbGFkaUBnbWFpbC5j b20+Cj4+Cj4+IENIVi9CU1cgcGxhdGZvcm0gc3VwcG9ydHMgdHdvIGRpZmZlcmVudCBwaXBlIGxl dmVsIGdhbW1hCj4+IGNvcnJlY3Rpb24gbW9kZXMsIHdoaWNoIGFyZToKPj4gMS4gTGVnYWN5IDgt Yml0IG1vZGUKPj4gMi4gMTAtYml0IENHTSAoQ29sb3IgR2FtdXQgTWFwcGluZykgbW9kZQo+Pgo+ PiBUaGlzIHBhdGNoIGRvZXMgdGhlIGZvbGxvd2luZzoKPj4gMS4gQXR0YWNoZXMgR2FtbWEgcHJv cGVydHkgdG8gQ1JUQwo+PiAzLiBBZGRzIHRoZSBjb3JlIEdhbW1hIGNvcnJlY3Rpb24gZnVuY3Rp b24gZm9yIENIVi9CU1cKPj4gNC4gQWRkcyBHYW1tYSBjb3JyZWN0aW9uIG1hY3Jvcwo+Pgo+PiBT aWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+ Cj4+IFNpZ25lZC1vZmYtYnk6IEthdXNhbCBNYWxsYWRpIDxrYXVzYWxtYWxsYWRpQGdtYWlsLmNv bT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICAg IHwgIDEyICsrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIu YyB8IDE0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuaCB8ICAyMCArKysrCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgIHwgICAyICsKPj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgfCAgIDIgKwo+PiAgIDUgZmlsZXMgY2hhbmdl ZCwgMTgyIGluc2VydGlvbnMoKykKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IGluZGV4 IDNhNzc2NzguLjQ5OTdlYmQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBAQCAt NzkyMSw0ICs3OTIxLDE2IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+PiAgICNkZWZp bmUgR0VOOV9WRUJPWF9NT0NTXzAJMHhjYjAwCS8qIFZpZGVvIE1PQ1MgYmFzZSByZWdpc3Rlciov Cj4+ICAgI2RlZmluZSBHRU45X0JMVF9NT0NTXzAJCTB4Y2MwMAkvKiBCbGl0dGVyIE1PQ1MgYmFz ZSByZWdpc3RlciovCj4+Cj4+ICsvKiBDb2xvciBNYW5hZ2VtZW50ICovCj4+ICsjZGVmaW5lIFBJ UEVBX0NHTV9DT05UUk9MCQkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDY3QTAwKQo+PiArI2RlZmlu ZSBQSVBFQl9DR01fQ09OVFJPTAkJCShWTFZfRElTUExBWV9CQVNFICsgMHg2OUEwMCkKPj4gKyNk ZWZpbmUgUElQRUNfQ0dNX0NPTlRST0wJCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NkJBMDApCj4+ ICsjZGVmaW5lIFBJUEVBX0NHTV9HQU1NQQkJCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NjcwMDAp Cj4+ICsjZGVmaW5lIFBJUEVCX0NHTV9HQU1NQQkJCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4Njkw MDApCj4+ICsjZGVmaW5lIFBJUEVDX0NHTV9HQU1NQQkJCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4 NkIwMDApCj4+ICsjZGVmaW5lIF9QSVBFX0NHTV9DT05UUk9MKHBpcGUpIFwKPj4gKwkoX1BJUEUz KHBpcGUsIFBJUEVBX0NHTV9DT05UUk9MLCBQSVBFQl9DR01fQ09OVFJPTCwgUElQRUNfQ0dNX0NP TlRST0wpKQo+PiArI2RlZmluZSBfUElQRV9HQU1NQV9CQVNFKHBpcGUpIFwKPj4gKwkoX1BJUEUz KHBpcGUsIFBJUEVBX0NHTV9HQU1NQSwgUElQRUJfQ0dNX0dBTU1BLCBQSVBFQ19DR01fR0FNTUEp KQo+PiArCj4+ICAgI2VuZGlmIC8qIF9JOTE1X1JFR19IXyAqLwo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5jCj4+IGluZGV4IDlhNjEyNmMuLmY4YzhkMjYgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmMKPj4gQEAg LTI3LDYgKzI3LDE0OSBAQAo+Pgo+PiAgICNpbmNsdWRlICJpbnRlbF9jb2xvcl9tYW5hZ2VyLmgi Cj4+Cj4+ICtpbnQgY2h2X3NldF9nYW1tYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IsCj4+ICsJCSAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ Cj4gSXQgbG9va3MgbGlrZSB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGZyb20gdGhpcyBm aWxlLCByaWdodD8gIFdlCj4gY2FuIHByb2JhYmx5IG1ha2UgaXQgc3RhdGljIGluIHRoYXQgY2Fz ZS4KPgpZZWFoLCB0aGlzIHdhcyB0aGUgcGxhbi4gV2Uga2VwdCB0aGlzIG5vbi1zdGF0aWMgaW5p dGlhbGx5IHNvIHRoYXQgd2UgCmNhbiBkZWJ1ZyB3aXRoIEtHREIgd2hlbiByZXF1aXJlZCwgYnV0 IHRoZW4gZm9yZ290IHRvIGFkZCBzdGF0aWMgaW4gdGhlIAplbmQgOikuIFdpbGwgZG8gaXQgZm9y IGFsbCBwbGF0Zm9ybSBzcGVjaWZpYyBjb3JlIGZ1bmN0aW9ucywgZm9yIGFsbCAKcHJvcGVydGll cy4KPj4gK3sKPj4gKwlib29sIGZsYWcgPSBmYWxzZTsKPj4gKwllbnVtIHBpcGUgcGlwZTsKPj4g Kwl1OCByZWRfaW50LCBibHVlX2ludCwgZ3JlZW5faW50Owo+PiArCXUxNiByZWRfZnJhY3QsIGdy ZWVuX2ZyYWN0LCBibHVlX2ZyYWN0Owo+PiArCXUzMiByZWQsIGdyZWVuLCBibHVlOwo+PiArCXUz MiBjZ21fY29udHJvbF9yZWcgPSAwOwo+PiArCXUzMiBjZ21fZ2FtbWFfcmVnID0gMDsKPj4gKwl1 MzIgY291bnQgPSAwLCBudW1fc2FtcGxlcywgd29yZDsKPj4gKwlpbnQgcmV0ID0gMCwgbGVuZ3Ro Owo+PiArCXN0cnVjdCBkcm1fcjMyZzMyYjMyICpjb3JyZWN0aW9uX3ZhbHVlcyA9IE5VTEw7Cj4+ ICsJc3RydWN0IGRybV9wYWxldHRlICpnYW1tYV9kYXRhOwo+PiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ICsKPj4gKwlpZiAoIWJsb2Ip IHsKPj4gKwkJRFJNX0VSUk9SKCJOVUxMIEJsb2JcbiIpOwo+PiArCQlyZXR1cm4gLUVJTlZBTDsK Pj4gKwl9Cj4KPiBUaGUgd2F5IHRoZSBjb2RlIHN0YW5kcyByaWdodCBub3csIHRoaXMgc2hvdWxk IG5ldmVyIGJlIHBvc3NpYmxlIHNpbmNlCj4gd2UgZG9uJ3QgZXZlbiBjYWxsIHRoaXMgZnVuY3Rp b24gaWYgdGhlIGJsb2IgaXMgTlVMTCwgcmlnaHQ/ICBJbiB0aGF0Cj4gY2FzZSB3ZSB1c3VhbGx5 IGp1c3QgaGFuZGxlIHRoaXMgYXMKPgo+ICAgICAgICAgIGlmIChXQVJOX09OKCFibG9iKSkKPiAg ICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Cj4gdG8gbWFrZSBpdCBhIGxpdHRsZSBt b3JlIG9idmlvdXMgdGhhdCB0aGlzIGlzIHRydWx5IGEgInRoaXMgY2FuIG5ldmVyCj4gaGFwcGVu IiB0eXBlIG9mIGFzc2VydGlvbi4KPgo+IEFsc28sIHNlZSBteSBjb21tZW50IG5lYXIgdGhlIGJv dHRvbSBhYm91dCB3aGV0aGVyIHRoaXMgd291bGQgYmUgYSBtb3JlCj4gaW50dWl0aXZlIHdheSB0 byBkaXNhYmxlIHRoZSBjdXJyZW50IGdhbW1hIHZhbHVlcy4KPgpHb3QgaXQuIEFncmVlLgo+Cj4+ ICsKPj4gKwlnYW1tYV9kYXRhID0gKHN0cnVjdCBkcm1fcGFsZXR0ZSAqKWJsb2ItPmRhdGE7Cj4+ ICsKPj4gKwlpZiAoZ2FtbWFfZGF0YS0+dmVyc2lvbiAhPSBDSFZfR0FNTUFfREFUQV9TVFJVQ1Rf VkVSU0lPTikgewo+PiArCQlEUk1fRVJST1IoIkludmFsaWQgR2FtbWEgRGF0YSBzdHJ1Y3QgdmVy c2lvblxuIik7Cj4KPiBBIHVzZXIgY2FuIHRyaWdnZXIgdGhpcyBvbi1kZW1hbmQgKGFuZCB0aHVz IHNwYW0geW91ciBrZXJuZWwgbG9nKSwgc28KPiB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSBhIERS TV9ERUJVR19LTVMgcmF0aGVyIHRoYW4gYSBEUk1fRVJST1IuCj4KV2UgdGhvdWdoIHdlIHdpbGwg a2VlcCB0aGlzIGNoZWNrIG9ubHkgdW50aWwgdGhlIGZpcnN0IHJldmlzaW9uIG9mIHRoZSAKc3Ry dWN0dXJlIGlzIHVzZWQsIGFuZCBvbmNlIHdlIGhhdmUgdGhlIG5leHQgcG9zc2libGUgdmVyc2lv biwgd2Ugd2lsbCAKcmVtb3ZlIHRoaXMuIERvIHlvdSB0aGluayB3ZSBjYW4ga2VlcCBpdCBieSB0 aGVuID8KPj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+ICsJfQo+PiArCj4+ICsJcGlwZSA9IHRvX2lu dGVsX2NydGMoY3J0YyktPnBpcGU7Cj4+ICsJbnVtX3NhbXBsZXMgPSBnYW1tYV9kYXRhLT5udW1f c2FtcGxlczsKPj4gKwlsZW5ndGggPSBudW1fc2FtcGxlcyAqIHNpemVvZihzdHJ1Y3QgZHJtX3Iz MmczMmIzMik7Cj4+ICsKPj4gKwlzd2l0Y2ggKG51bV9zYW1wbGVzKSB7Cj4+ICsJY2FzZSAwOgo+ PiArCj4+ICsJCS8qIERpc2FibGUgR2FtbWEgZnVuY3Rpb25hbGl0eSBvbiBQaXBlIC0gQ0dNIEJs b2NrICovCj4+ICsJCWNnbV9jb250cm9sX3JlZyA9IEk5MTVfUkVBRChfUElQRV9DR01fQ09OVFJP TChwaXBlKSk7Cj4+ICsJCWNnbV9jb250cm9sX3JlZyAmPSB+Q0dNX0dBTU1BX0VOOwo+PiArCQlJ OTE1X1dSSVRFKF9QSVBFX0NHTV9DT05UUk9MKHBpcGUpLCBjZ21fY29udHJvbF9yZWcpOwo+PiAr Cj4+ICsJCURSTV9ERUJVR19EUklWRVIoIkdhbW1hIGRpc2FibGVkIG9uIFBpcGUgJWNcbiIsCj4+ ICsJCQkJcGlwZV9uYW1lKHBpcGUpKTsKPj4gKwkJcmV0ID0gMDsKPj4gKwkJYnJlYWs7Cj4+ICsK Pj4gKwljYXNlIENIVl84QklUX0dBTU1BX01BWF9WQUxTOgo+PiArCWNhc2UgQ0hWXzEwQklUX0dB TU1BX01BWF9WQUxTOgo+PiArCj4+ICsJCWNvdW50ID0gMDsKPj4gKwkJY2dtX2dhbW1hX3JlZyA9 IF9QSVBFX0dBTU1BX0JBU0UocGlwZSk7Cj4+ICsJCWNvcnJlY3Rpb25fdmFsdWVzID0gKHN0cnVj dCBkcm1fcjMyZzMyYjMyICopJmdhbW1hX2RhdGEtPmx1dDsKPj4gKwo+PiArCQl3aGlsZSAoY291 bnQgPCBudW1fc2FtcGxlcykgewo+PiArCQkJYmx1ZSA9IGNvcnJlY3Rpb25fdmFsdWVzW2NvdW50 XS5iMzI7Cj4+ICsJCQlncmVlbiA9IGNvcnJlY3Rpb25fdmFsdWVzW2NvdW50XS5nMzI7Cj4+ICsJ CQlyZWQgPSBjb3JyZWN0aW9uX3ZhbHVlc1tjb3VudF0ucjMyOwo+PiArCj4+ICsJCQlibHVlX2lu dCA9IF9HQU1NQV9JTlRfUEFSVChibHVlKTsKPj4gKwkJCWlmIChibHVlX2ludCA+IEdBTU1BX0lO VF9NQVgpCj4+ICsJCQkJYmx1ZSA9IENIVl9NQVhfR0FNTUE7Cj4+ICsKPj4gKwkJCWdyZWVuX2lu dCA9IF9HQU1NQV9JTlRfUEFSVChncmVlbik7Cj4+ICsJCQlpZiAoZ3JlZW5faW50ID4gR0FNTUFf SU5UX01BWCkKPj4gKwkJCQlncmVlbiA9IENIVl9NQVhfR0FNTUE7Cj4+ICsKPj4gKwkJCXJlZF9p bnQgPSBfR0FNTUFfSU5UX1BBUlQocmVkKTsKPj4gKwkJCWlmIChyZWRfaW50ID4gR0FNTUFfSU5U X01BWCkKPj4gKwkJCQlyZWQgPSBDSFZfTUFYX0dBTU1BOwo+PiArCj4+ICsJCQlibHVlX2ZyYWN0 ID0gX0dBTU1BX0ZSQUNUX1BBUlQoYmx1ZSk7Cj4+ICsJCQlncmVlbl9mcmFjdCA9IF9HQU1NQV9G UkFDVF9QQVJUKGdyZWVuKTsKPj4gKwkJCXJlZF9mcmFjdCA9IF9HQU1NQV9GUkFDVF9QQVJUKHJl ZCk7Cj4+ICsKPj4gKwkJCWJsdWVfZnJhY3QgPj49IENIVl8xMEJJVF9HQU1NQV9NU0JfU0hJRlQ7 Cj4+ICsJCQlncmVlbl9mcmFjdCA+Pj0gQ0hWXzEwQklUX0dBTU1BX01TQl9TSElGVDsKPj4gKwkJ CXJlZF9mcmFjdCA+Pj0gQ0hWXzEwQklUX0dBTU1BX01TQl9TSElGVDsKPj4gKwo+PiArCQkJLyog R3JlZW4gKDI1OjE2KSBhbmQgQmx1ZSAoOTowKSB0byBiZSB3cml0dGVuICovCj4+ICsJCQl3b3Jk ID0gZ3JlZW5fZnJhY3Q7Cj4+ICsJCQl3b3JkIDw8PSBDSFZfR0FNTUFfU0hJRlRfR1JFRU47Cj4+ ICsJCQl3b3JkIHw9IGJsdWVfZnJhY3Q7Cj4+ICsJCQlJOTE1X1dSSVRFKGNnbV9nYW1tYV9yZWcs IHdvcmQpOwo+PiArCQkJY2dtX2dhbW1hX3JlZyArPSA0Owo+PiArCj4+ICsJCQkvKiBSZWQgKDk6 MCkgdG8gYmUgd3JpdHRlbiAqLwo+PiArCQkJd29yZCA9IHJlZF9mcmFjdDsKPj4gKwkJCUk5MTVf V1JJVEUoY2dtX2dhbW1hX3JlZywgd29yZCk7Cj4+ICsKPj4gKwkJCWNnbV9nYW1tYV9yZWcgKz0g NDsKPj4gKwkJCWNvdW50Kys7Cj4+ICsKPj4gKwkJCS8qCj4+ICsJCQkgKiBPbiBDSFYsIHRoZSBi ZXN0IHN1cHBvcnRlZCBHYW1tYSBjYXBhYmlsaXR5IGlzCj4+ICsJCQkgKiBDR00gYmxvY2ssIHRo YXQgdGFrZXMgMjU3IHNhbXBsZXMuCj4+ICsJCQkgKiBJZiB1c2VyIGdpdmVzIDI1NiBzYW1wbGVz IChsZWdhY3kgbW9kZSksIHRoZW4KPj4gKwkJCSAqIGR1cGxpY2F0ZSB0aGUgMjU2dGggdmFsdWUg dG8gMjU3dGguCj4+ICsJCQkgKiAiZmxhZyIgaXMgdXNlZCB0byBtYWtlIHN1cmUgaXQgaGFwcGVu cyBvbmx5IG9uY2UKPj4gKwkJCSAqLwo+PiArCQkJaWYgKG51bV9zYW1wbGVzID09IENIVl84QklU X0dBTU1BX01BWF9WQUxTCj4+ICsJCQkJCSYmIGNvdW50ID09IENIVl84QklUX0dBTU1BX01BWF9W QUxTCj4+ICsJCQkJCSYmICFmbGFnKSB7Cj4+ICsJCQkJY291bnQtLTsKPj4gKwkJCQlmbGFnID0g dHJ1ZTsKPj4gKwkJCX0KPj4gKwkJfQo+PiArCj4+ICsJCS8qIEVuYWJsZSAoQ0dNKSBHYW1tYSBv biBQaXBlICovCj4+ICsJCUk5MTVfV1JJVEUoX1BJUEVfQ0dNX0NPTlRST0wocGlwZSksCj4+ICsJ CQlJOTE1X1JFQUQoX1BJUEVfQ0dNX0NPTlRST0wocGlwZSkpCj4+ICsJCQkJfCBDR01fR0FNTUFf RU4pOwo+PiArCQlEUk1fREVCVUdfRFJJVkVSKCJDR00gR2FtbWEgZW5hYmxlZCBvbiBQaXBlICVj XG4iLAo+PiArCQkJCXBpcGVfbmFtZShwaXBlKSk7Cj4+ICsJCXJldCA9IDA7Cj4+ICsJCWJyZWFr Owo+PiArCj4+ICsJZGVmYXVsdDoKPj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIG51bWJlciBvZiBz YW1wbGVzIGZvciBHYW1tYSBMVVRcbiIpOwo+PiArCQlyZXQgPSAtRUlOVkFMOwo+PiArCX0KPj4g Kwo+PiArCXJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3ZvaWQgaW50ZWxfY29sb3JfbWFuYWdl cl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiArCQlzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+ICt7Cj4+ICsJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9i ICpibG9iOwo+PiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNydGNfc3RhdGUtPmNydGM7Cj4+ ICsJaW50IHJldCA9IC1FSU5WQUw7Cj4+ICsKPj4gKwlibG9iID0gY3J0Y19zdGF0ZS0+cGFsZXR0 ZV9hZnRlcl9jdG1fYmxvYjsKPj4gKwlpZiAoYmxvYikgewo+PiArCQkvKiBHYW1tYSBjb3JyZWN0 aW9uIGlzIHBsYXRmb3JtIHNwZWNpZmljICovCj4+ICsJCWlmIChJU19DSEVSUllWSUVXKGRldikp Cj4+ICsJCQlyZXQgPSBjaHZfc2V0X2dhbW1hKGRldiwgYmxvYiwgY3J0Yyk7Cj4+ICsKPj4gKwkJ aWYgKHJldCkKPj4gKwkJCURSTV9FUlJPUigic2V0IEdhbW1hIGNvcnJlY3Rpb24gZmFpbGVkXG4i KTsKPj4gKwkJZWxzZQo+PiArCQkJRFJNX0RFQlVHX0RSSVZFUigiR2FtbWEgY29ycmVjdGlvbiBz dWNjZXNzXG4iKTsKPj4gKwl9Cj4KPiBJZiBJJ20gdW5kZXJzdGFuZGluZyB0aGUgY29kZSBwcm9w ZXJseSwgdGhlbiBpdCBsb29rcyBsaWtlIEkgY2FuJ3QKPiBkaXNhYmxlIGdhbW1hIGNvcnJlY3Rp b24gYnkganVzdCByZW1vdmluZyB0aGUgY3VycmVudCBibG9iIChpLmUuLCBieQo+IHVwZGF0aW5n IHRoZSBibG9iIElEIHRvIGJlIDApPyAgSW5zdGVhZCBJIGhhdmUgdG8gYWN0dWFsbHkgY3JlYXRl IGEgbmV3LAo+IHZhbGlkIGJsb2IgdGhhdCBoYXMgbnVtX3NhbXBsZXMgc2V0IHRvIHplcm8gaW5z aWRlIHRoZSBibG9iIGluIG9yZGVyIHRvCj4gZGlzYWJsZSB0aGUgZnVuY3Rpb25hbGl0eS4gIFRo YXQgaXNuJ3QgdGhlIGJlaGF2aW9yIEkgd291bGQgaGF2ZQo+IGludHVpdGl2ZWx5IGV4cGVjdGVk LCBidXQgdGhhdCdzIHByb2JhYmx5IG1vcmUgb2YgYSBjYWxsIGZvciB0aGUgZ3V5cwo+IHdvcmtp bmcgb24gdGhlIHVzZXJzcGFjZSBjb2RlIHRoYXQgYWN0dWFsbHkgdXNlcyB0aGlzIGZ1bmN0aW9u YWxpdHkuCj4gSnVzdCB0aG91Z2h0IEknZCBtYWtlIGEgbm90ZSBvZiBpdCBzaW5jZSBpdCBzZWVt ZWQgYSBiaXQgc3VycHJpc2luZyB0bwo+IG1lLgo+CkFjdHVhbGx5LCB0aGUgd2F5IHRvIGRpc2Fi bGUgZ2FtbWEvZGVnYW1tYSBpcyB0byBwYXNzIG51bV9zYW1wbGVzPTAgaW4gCnRoZSBibG9iLiBU aGUgc2FtZSBpcyBhZ3JlZWQgd2hlbiB3ZSBoYWQgdGhpcyBkZXNpZ24gZGlzY3Vzc2lvbi4gRG8g eW91IAp0aGluayBpdCBtYWtlcyBzZW5zZSBub3cgPwo+IChidHcsIEkgdGhpbmsgYWxsIHRoZSBj b21tZW50cyBvbiB0aGlzIHBhdGNoIGFsc28gYXBwbHkgdG8gcGF0Y2hlcyAjMTEKPiBhbmQgMTQp Cj4KT2ssIHdpbGwgdGFrZSBjYXJlIG9mIHRoYXQuCj4gTWF0dAo+Cj4+ICt9Cj4+ICsKPj4gICBp bnQgaW50ZWxfY29sb3JfbWFuYWdlcl9zZXRfcGlwZV9nYW1tYShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+PiAgIAkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+PiAgIAkJc3Ry dWN0IGRybV9tb2RlX29iamVjdCAqb2JqLCB1aW50MzJfdCBibG9iX2lkKQo+PiBAQCAtOTksNSAr MjQyLDggQEAgdm9pZCBpbnRlbF9hdHRhY2hfY29sb3JfcHJvcGVydGllc190b19jcnRjKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgCQkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkobW9k ZV9vYmosCj4+ICAgCQkJCWNvbmZpZy0+Y21fY3J0Y19wYWxldHRlX2NhcGFiaWxpdGllc19wcm9w ZXJ0eSwKPj4gICAJCQkJY2FwYWJpbGl0aWVzX2Jsb2JfaWQpOwo+PiArCQlpZiAoY29uZmlnLT5j bV9wYWxldHRlX2FmdGVyX2N0bV9wcm9wZXJ0eSkKPj4gKwkJCWRybV9vYmplY3RfYXR0YWNoX3By b3BlcnR5KG1vZGVfb2JqLAo+PiArCQkJCWNvbmZpZy0+Y21fcGFsZXR0ZV9hZnRlcl9jdG1fcHJv cGVydHksIDApOwo+PiAgIAl9Cj4+ICAgfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29sb3JfbWFuYWdlci5oCj4+IGluZGV4IDUxYWViOTEuLjhiYmFjMjAgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuaAo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvcl9tYW5hZ2VyLmgKPj4gQEAgLTI4LDYgKzI4LDI2 IEBACj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPj4gICAjaW5jbHVkZSAi aTkxNV9kcnYuaCIKPj4KPj4gKyNkZWZpbmUgX0dBTU1BX0lOVF9QQVJUKHZhbHVlKQkJCSh2YWx1 ZSA+PiBHQU1NQV9JTlRfU0hJRlQpCj4+ICsjZGVmaW5lIF9HQU1NQV9GUkFDVF9QQVJUKHZhbHVl KQkJKHZhbHVlID4+IEdBTU1BX0ZSQUNUX1NISUZUKQo+PiArCj4+ICAgI2RlZmluZSBDSFZfUEFM RVRURV9TVFJVQ1RfVkVSU0lPTgkJMQo+PiAgICNkZWZpbmUgQ0hWX0RFR0FNTUFfTUFYX1ZBTFMJ CQk2NQo+PiAgICNkZWZpbmUgQ0hWXzEwQklUX0dBTU1BX01BWF9WQUxTCQkyNTcKPj4gKwo+PiAr LyogR2FtbWEgY29ycmVjdGlvbiAqLwo+PiArI2RlZmluZSBDSFZfR0FNTUFfREFUQV9TVFJVQ1Rf VkVSU0lPTgkJMQo+PiArI2RlZmluZSBDSFZfMTBCSVRfR0FNTUFfTUFYX1ZBTFMJCTI1Nwo+PiAr I2RlZmluZSBDSFZfOEJJVF9HQU1NQV9NQVhfVkFMUwkJCTI1Ngo+PiArI2RlZmluZSBDSFZfMTBC SVRfR0FNTUFfTVNCX1NISUZUCQk2Cj4+ICsjZGVmaW5lIENIVl9HQU1NQV9TSElGVF9HUkVFTgkJ CTE2Cj4+ICsvKiBHYW1tYSB2YWx1ZXMgYXJlIHU4LjI0IGZvcm1hdCAqLwo+PiArI2RlZmluZSBH QU1NQV9JTlRfU0hJRlQJCQkJMjQKPj4gKyNkZWZpbmUgR0FNTUFfRlJBQ1RfU0hJRlQJCQk4Cj4+ ICsvKiBNYXggaW50IHZhbHVlIGZvciBHYW1tYSBpcyAxICovCj4+ICsjZGVmaW5lIEdBTU1BX0lO VF9NQVgJCQkJMQo+PiArLyogTWF4IHZhbHVlIGZvciBHYW1tYSBvbiBDSFYgKi8KPj4gKyNkZWZp bmUgQ0hWX01BWF9HQU1NQQkJCQkweDEwMDAwCj4+ICsKPj4gKy8qIENIViBDR00gQmxvY2sgKi8K Pj4gKyNkZWZpbmUgQ0dNX0dBTU1BX0VOCQkJCSgxIDw8IDIpCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPj4gaW5kZXggMzQ5YTFjMi4uOWQxYTZjMyAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtMTM2NDEsNiArMTM2NDEsOCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+ Cj4+ICAgCWlmICghbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkgJiYgSU5URUxfSU5GTyhkZXYp LT5nZW4gPj0gOSkKPj4gICAJCXNrbF9kZXRhY2hfc2NhbGVycyhpbnRlbF9jcnRjKTsKPj4gKwo+ PiArCWludGVsX2NvbG9yX21hbmFnZXJfY3J0Y19jb21taXQoZGV2LCBjcnRjLT5zdGF0ZSk7Cj4+ ICAgfQo+Pgo+PiAgIHN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IGluZGV4IDgyMGRl ZDcuLmRlM2U2ZTcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IEBAIC0xNDQ0 LDUgKzE0NDQsNyBAQCB2b2lkIGludGVsX2F0dGFjaF9jb2xvcl9wcm9wZXJ0aWVzX3RvX2NydGMo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICBpbnQgaW50ZWxfY29sb3JfbWFuYWdlcl9zZXRf cGlwZV9nYW1tYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgIAkJc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+PiAgIAkJc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLCB1 aW50MzJfdCBibG9iX2lkKTsKPj4gK3ZvaWQgaW50ZWxfY29sb3JfbWFuYWdlcl9jcnRjX2NvbW1p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiArCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpOwo+Pgo+PiAgICNlbmRpZiAvKiBfX0lOVEVMX0RSVl9IX18gKi8KPj4gLS0KPj4g MS45LjEKPj4KPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=