From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 5/5] drm/i915: Implement color management on chv Date: Thu, 25 Feb 2016 16:53:18 -0800 Message-ID: <20160226005318.GG23428@intel.com> References: <1456414423-7079-1-git-send-email-lionel.g.landwerlin@intel.com> <1456414423-7079-6-git-send-email-lionel.g.landwerlin@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: <1456414423-7079-6-git-send-email-lionel.g.landwerlin@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lionel Landwerlin Cc: intel-gfx@lists.freedesktop.org, kausalmalladi@gmail.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBGZWIgMjUsIDIwMTYgYXQgMDM6MzM6NDNQTSArMDAwMCwgTGlvbmVsIExhbmR3ZXJs aW4gd3JvdGU6Cj4gUGF0Y2ggYmFzZWQgb24gYSBwcmV2aW91cyBzZXJpZXMgYnkgU2hhc2hhbmsg U2hhcm1hLgo+IAo+IHYyOiBVcGRhdGUgY29udHJpYnV0b3JzCj4gCj4gdjM6IFJlZmFjdG9yIGRl Z2FtbWEvZ2FtbWEgTFVUcyBsb2FkIGludG8gYSBzaW5nbGUgZnVuY3Rpb24KPiAKPiB2NDogUmVt b3ZlIHVudXNlZCB2YXJpYWJsZQo+IAo+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8 c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMaW9uZWwgTGFuZHdl cmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogS3Vt YXIsIEtpcmFuIFMgPGtpcmFuLnMua3VtYXJAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEth dXNhbCBNYWxsYWRpIDxrYXVzYWxtYWxsYWRpQGdtYWlsLmNvbT4KClJldmlld2VkLWJ5OiBNYXR0 IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYyAgICB8ICAgMyArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggICAgfCAgMzEgKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NvbG9yLmMgfCAxMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ICAz IGZpbGVzIGNoYW5nZWQsIDE2MSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwo+IGluZGV4IDM4MDdiNzMuLjhhMmFhYTcgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMKPiBAQCAtNjgsNiArNjgsOCBAQCBzdGF0aWMgc3RydWN0IGRybV9k cml2ZXIgZHJpdmVyOwo+ICAKPiAgI2RlZmluZSBCRFdfQ09MT1JTIFwKPiAgCS5jb2xvciA9IHsg LmRlZ2FtbWFfbHV0X3NpemUgPSA1MTIsIC5nYW1tYV9sdXRfc2l6ZSA9IDUxMiB9Cj4gKyNkZWZp bmUgQ0hWX0NPTE9SUyBcCj4gKwkuY29sb3IgPSB7IC5kZWdhbW1hX2x1dF9zaXplID0gNjUsIC5n YW1tYV9sdXRfc2l6ZSA9IDI1NyB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rl dmljZV9pbmZvIGludGVsX2k4MzBfaW5mbyA9IHsKPiAgCS5nZW4gPSAyLCAuaXNfbW9iaWxlID0g MSwgLmN1cnNvcl9uZWVkc19waHlzaWNhbCA9IDEsIC5udW1fcGlwZXMgPSAyLAo+IEBAIC0zMjUs NiArMzI3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9j aGVycnl2aWV3X2luZm8gPSB7Cj4gIAkuZGlzcGxheV9tbWlvX29mZnNldCA9IFZMVl9ESVNQTEFZ X0JBU0UsCj4gIAlHRU5fQ0hWX1BJUEVPRkZTRVRTLAo+ICAJQ1VSU09SX09GRlNFVFMsCj4gKwlD SFZfQ09MT1JTLAo+ICB9Owo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2Vf aW5mbyBpbnRlbF9za3lsYWtlX2luZm8gPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5k ZXggNzZhOWU0OS4uZWE1OTlhOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC03 NjczLDYgKzc2NzMsMzcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gICNkZWZpbmUg UFJFQ19QQUxfR0NfTUFYKHBpcGUsIGkpCV9NTUlPKF9QSVBFKHBpcGUsIF9QQUxfUFJFQ19HQ19N QVhfQSwgX1BBTF9QUkVDX0dDX01BWF9CKSArIChpKSAqIDQpCj4gICNkZWZpbmUgUFJFQ19QQUxf RVhUX0dDX01BWChwaXBlLCBpKQlfTU1JTyhfUElQRShwaXBlLCBfUEFMX1BSRUNfRVhUX0dDX01B WF9BLCBfUEFMX1BSRUNfRVhUX0dDX01BWF9CKSArIChpKSAqIDQpCj4gIAo+ICsvKiBwaXBlIENT QyAmIGRlZ2FtbWEvZ2FtbWEgTFVUcyBvbiBDSFYgKi8KPiArI2RlZmluZSBfQ0dNX1BJUEVfQV9D U0NfQ09FRkYwMQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4Njc5MDApCj4gKyNkZWZpbmUgX0NHTV9Q SVBFX0FfQ1NDX0NPRUZGMjMJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDY3OTA0KQo+ICsjZGVmaW5l IF9DR01fUElQRV9BX0NTQ19DT0VGRjQ1CShWTFZfRElTUExBWV9CQVNFICsgMHg2NzkwOCkKPiAr I2RlZmluZSBfQ0dNX1BJUEVfQV9DU0NfQ09FRkY2NwkoVkxWX0RJU1BMQVlfQkFTRSArIDB4Njc5 MEMpCj4gKyNkZWZpbmUgX0NHTV9QSVBFX0FfQ1NDX0NPRUZGOAkoVkxWX0RJU1BMQVlfQkFTRSAr IDB4Njc5MTApCj4gKyNkZWZpbmUgX0NHTV9QSVBFX0FfREVHQU1NQQkoVkxWX0RJU1BMQVlfQkFT RSArIDB4NjYwMDApCj4gKyNkZWZpbmUgX0NHTV9QSVBFX0FfR0FNTUEJKFZMVl9ESVNQTEFZX0JB U0UgKyAweDY3MDAwKQo+ICsjZGVmaW5lIF9DR01fUElQRV9BX01PREUJKFZMVl9ESVNQTEFZX0JB U0UgKyAweDY3QTAwKQo+ICsjZGVmaW5lICAgQ0dNX1BJUEVfTU9ERV9HQU1NQQkoMSA8PCAyKQo+ ICsjZGVmaW5lICAgQ0dNX1BJUEVfTU9ERV9DU0MJKDEgPDwgMSkKPiArI2RlZmluZSAgIENHTV9Q SVBFX01PREVfREVHQU1NQQkoMSA8PCAwKQo+ICsKPiArI2RlZmluZSBfQ0dNX1BJUEVfQl9DU0Nf Q09FRkYwMQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4Njk5MDApCj4gKyNkZWZpbmUgX0NHTV9QSVBF X0JfQ1NDX0NPRUZGMjMJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDY5OTA0KQo+ICsjZGVmaW5lIF9D R01fUElQRV9CX0NTQ19DT0VGRjQ1CShWTFZfRElTUExBWV9CQVNFICsgMHg2OTkwOCkKPiArI2Rl ZmluZSBfQ0dNX1BJUEVfQl9DU0NfQ09FRkY2NwkoVkxWX0RJU1BMQVlfQkFTRSArIDB4Njk5MEMp Cj4gKyNkZWZpbmUgX0NHTV9QSVBFX0JfQ1NDX0NPRUZGOAkoVkxWX0RJU1BMQVlfQkFTRSArIDB4 Njk5MTApCj4gKyNkZWZpbmUgX0NHTV9QSVBFX0JfREVHQU1NQQkoVkxWX0RJU1BMQVlfQkFTRSAr IDB4NjgwMDApCj4gKyNkZWZpbmUgX0NHTV9QSVBFX0JfR0FNTUEJKFZMVl9ESVNQTEFZX0JBU0Ug KyAweDY5MDAwKQo+ICsjZGVmaW5lIF9DR01fUElQRV9CX01PREUJKFZMVl9ESVNQTEFZX0JBU0Ug KyAweDY5QTAwKQo+ICsKPiArI2RlZmluZSBDR01fUElQRV9DU0NfQ09FRkYwMShwaXBlKQlfTU1J T19QSVBFKHBpcGUsIF9DR01fUElQRV9BX0NTQ19DT0VGRjAxLCBfQ0dNX1BJUEVfQl9DU0NfQ09F RkYwMSkKPiArI2RlZmluZSBDR01fUElQRV9DU0NfQ09FRkYyMyhwaXBlKQlfTU1JT19QSVBFKHBp cGUsIF9DR01fUElQRV9BX0NTQ19DT0VGRjIzLCBfQ0dNX1BJUEVfQl9DU0NfQ09FRkYyMykKPiAr I2RlZmluZSBDR01fUElQRV9DU0NfQ09FRkY0NShwaXBlKQlfTU1JT19QSVBFKHBpcGUsIF9DR01f UElQRV9BX0NTQ19DT0VGRjQ1LCBfQ0dNX1BJUEVfQl9DU0NfQ09FRkY0NSkKPiArI2RlZmluZSBD R01fUElQRV9DU0NfQ09FRkY2NyhwaXBlKQlfTU1JT19QSVBFKHBpcGUsIF9DR01fUElQRV9BX0NT Q19DT0VGRjY3LCBfQ0dNX1BJUEVfQl9DU0NfQ09FRkY2NykKPiArI2RlZmluZSBDR01fUElQRV9D U0NfQ09FRkY4KHBpcGUpCV9NTUlPX1BJUEUocGlwZSwgX0NHTV9QSVBFX0FfQ1NDX0NPRUZGOCwg X0NHTV9QSVBFX0JfQ1NDX0NPRUZGOCkKPiArI2RlZmluZSBDR01fUElQRV9ERUdBTU1BKHBpcGUs IGksIHcpCV9NTUlPKF9QSVBFKHBpcGUsIF9DR01fUElQRV9BX0RFR0FNTUEsIF9DR01fUElQRV9C X0RFR0FNTUEpICsgKGkpICogOCArICh3KSAqIDQpCj4gKyNkZWZpbmUgQ0dNX1BJUEVfR0FNTUEo cGlwZSwgaSwgdykJX01NSU8oX1BJUEUocGlwZSwgX0NHTV9QSVBFX0FfR0FNTUEsIF9DR01fUElQ RV9CX0dBTU1BKSArIChpKSAqIDggKyAodykgKiA0KQo+ICsjZGVmaW5lIENHTV9QSVBFX01PREUo cGlwZSkJCV9NTUlPX1BJUEUocGlwZSwgX0NHTV9QSVBFX0FfTU9ERSwgX0NHTV9QSVBFX0JfTU9E RSkKPiArCj4gIC8qIE1JUEkgRFNJIHJlZ2lzdGVycyAqLwo+ICAKPiAgI2RlZmluZSBfTUlQSV9Q T1JUKHBvcnQsIGEsIGMpCV9QT1JUMyhwb3J0LCBhLCAwLCBjKQkvKiBwb3J0cyBBIGFuZCBDIG9u bHkgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiBpbmRleCBhNmRjMmFmLi45YWQz N2U1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gQEAgLTI5LDYgKzI5LDcg QEAKPiAgI2RlZmluZSBDVE1fQ09FRkZfMV8wCSgxVUxMIDw8IDMyKQo+ICAjZGVmaW5lIENUTV9D T0VGRl8yXzAJKENUTV9DT0VGRl8xXzAgPDwgMSkKPiAgI2RlZmluZSBDVE1fQ09FRkZfNF8wCShD VE1fQ09FRkZfMl8wIDw8IDEpCj4gKyNkZWZpbmUgQ1RNX0NPRUZGXzhfMAkoQ1RNX0NPRUZGXzRf MCA8PCAxKQo+ICAjZGVmaW5lIENUTV9DT0VGRl8wXzUJKENUTV9DT0VGRl8xXzAgPj4gMSkKPiAg I2RlZmluZSBDVE1fQ09FRkZfMF8yNQkoQ1RNX0NPRUZGXzBfNSA+PiAxKQo+ICAjZGVmaW5lIENU TV9DT0VGRl8wXzEyNQkoQ1RNX0NPRUZGXzBfMjUgPj4gMSkKPiBAQCAtMTk5LDYgKzIwMCw1OCBA QCBzdGF0aWMgdm9pZCBpOXh4X2xvYWRfY3NjX21hdHJpeChzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gIAl9Cj4gIH0KPiAgCj4gKy8qCj4gKyAqIFNldCB1cCB0aGUgcGlwZSBDU0MgdW5pdCBvbiBD aGVycnlWaWV3Lgo+ICsgKi8KPiArc3RhdGljIHZvaWQgY2hlcnJ5dmlld19sb2FkX2NzY19tYXRy aXgoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+ZGV2Owo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSA9IGNydGMtPnN0 YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiArCWludCBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKPiArCXVpbnQz Ml90IG1vZGU7Cj4gKwo+ICsJaWYgKHN0YXRlLT5jdG0pIHsKPiArCQlzdHJ1Y3QgZHJtX2NvbG9y X2N0bSAqY3RtID0KPiArCQkJKHN0cnVjdCBkcm1fY29sb3JfY3RtICopIHN0YXRlLT5jdG0tPmRh dGE7Cj4gKwkJdWludDE2X3QgY29lZmZzWzldID0geyAwLCB9Owo+ICsJCWludCBpOwo+ICsKPiAr CQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjb2VmZnMpOyBpKyspIHsKPiArCQkJdWludDY0 X3QgYWJzX2NvZWZmID0KPiArCQkJCSgoMVVMTCA8PCA2MykgLSAxKSAmIGN0bS0+bWF0cml4W2ld Owo+ICsKPiArCQkJLyogUm91bmQgY29lZmZpY2llbnQuICovCj4gKwkJCWFic19jb2VmZiArPSAx IDw8ICgzMiAtIDEzKTsKPiArCQkJLyogQ2xhbXAgdG8gaGFyZHdhcmUgbGltaXRzLiAqLwo+ICsJ CQlhYnNfY29lZmYgPSBjbGFtcF92YWwoYWJzX2NvZWZmLCAwLCBDVE1fQ09FRkZfOF8wIC0gMSk7 Cj4gKwo+ICsJCQkvKiBXcml0ZSBjb2VmZmljaWVudHMgaW4gUzMuMTIgZm9ybWF0LiAqLwo+ICsJ CQlpZiAoY3RtLT5tYXRyaXhbaV0gJiAoMVVMTCA8PCA2MykpCj4gKwkJCQljb2VmZnNbaV0gPSAx IDw8IDE1Owo+ICsJCQljb2VmZnNbaV0gfD0gKChhYnNfY29lZmYgPj4gMzIpICYgNykgPDwgMTI7 Cj4gKwkJCWNvZWZmc1tpXSB8PSAoYWJzX2NvZWZmID4+IDIwKSAmIDB4ZmZmOwo+ICsJCX0KPiAr Cj4gKwkJSTkxNV9XUklURShDR01fUElQRV9DU0NfQ09FRkYwMShwaXBlKSwKPiArCQkJICAgY29l ZmZzWzFdIDw8IDE2IHwgY29lZmZzWzBdKTsKPiArCQlJOTE1X1dSSVRFKENHTV9QSVBFX0NTQ19D T0VGRjIzKHBpcGUpLAo+ICsJCQkgICBjb2VmZnNbM10gPDwgMTYgfCBjb2VmZnNbMl0pOwo+ICsJ CUk5MTVfV1JJVEUoQ0dNX1BJUEVfQ1NDX0NPRUZGNDUocGlwZSksCj4gKwkJCSAgIGNvZWZmc1s1 XSA8PCAxNiB8IGNvZWZmc1s0XSk7Cj4gKwkJSTkxNV9XUklURShDR01fUElQRV9DU0NfQ09FRkY2 NyhwaXBlKSwKPiArCQkJICAgY29lZmZzWzddIDw8IDE2IHwgY29lZmZzWzZdKTsKPiArCQlJOTE1 X1dSSVRFKENHTV9QSVBFX0NTQ19DT0VGRjgocGlwZSksIGNvZWZmc1s4XSk7Cj4gKwl9Cj4gKwo+ ICsJbW9kZSA9IChzdGF0ZS0+Y3RtID8gQ0dNX1BJUEVfTU9ERV9DU0MgOiAwKTsKPiArCWlmICgh Y3J0Y19zdGF0ZV9pc19sZWdhY3koc3RhdGUpKSB7Cj4gKwkJbW9kZSB8PSAoc3RhdGUtPmRlZ2Ft bWFfbHV0ID8gQ0dNX1BJUEVfTU9ERV9ERUdBTU1BIDogMCkgfAo+ICsJCQkoc3RhdGUtPmdhbW1h X2x1dCA/IENHTV9QSVBFX01PREVfR0FNTUEgOiAwKTsKPiArCX0KPiArCUk5MTVfV1JJVEUoQ0dN X1BJUEVfTU9ERShwaXBlKSwgbW9kZSk7Cj4gK30KPiArCj4gIHZvaWQgaW50ZWxfY29sb3Jfc2V0 X2NzYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjLT5kZXY7Cj4gQEAgLTIwOSwxMCArMjYyLDEwIEBAIHZvaWQgaW50ZWxfY29sb3Jf c2V0X2NzYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIH0KPiAgCj4gIC8qIExvYWRzIHRoZSBs ZWdhY3kgcGFsZXR0ZS9nYW1tYSB1bml0IGZvciB0aGUgQ1JUQy4gKi8KPiAtc3RhdGljIHZvaWQg aTl4eF9sb2FkX2x1dHMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICtzdGF0aWMgdm9pZCBpOXh4 X2xvYWRfbHV0c19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKwkJCQkgICAgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+ZGV2Owo+IC0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSA9IGNydGMt PnN0YXRlOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjKTsKPiAgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiBAQCAtMjI1 LDkgKzI3OCw4IEBAIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKPiAgCQkJYXNzZXJ0X3BsbF9lbmFibGVkKGRldl9wcml2LCBwaXBlKTsKPiAgCX0KPiAg Cj4gLQlpZiAoc3RhdGUtPmdhbW1hX2x1dCkgewo+IC0JCXN0cnVjdCBkcm1fY29sb3JfbHV0ICps dXQgPQo+IC0JCQkoc3RydWN0IGRybV9jb2xvcl9sdXQgKikgc3RhdGUtPmdhbW1hX2x1dC0+ZGF0 YTsKPiArCWlmIChibG9iKSB7Cj4gKwkJc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IChzdHJ1 Y3QgZHJtX2NvbG9yX2x1dCAqKSBibG9iLT5kYXRhOwo+ICAJCWZvciAoaSA9IDA7IGkgPCAyNTY7 IGkrKykgewo+ICAJCQl1aW50MzJfdCB3b3JkID0KPiAgCQkJCShkcm1fY29sb3JfbHV0X2V4dHJh Y3QobHV0W2ldLnJlZCwgOCkgPDwgMTYpIHwKPiBAQCAtMjUxLDYgKzMwMywxMSBAQCBzdGF0aWMg dm9pZCBpOXh4X2xvYWRfbHV0cyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAl9Cj4gIH0KPiAg Cj4gK3N0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAr ewo+ICsJaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoY3J0YywgY3J0Yy0+c3RhdGUtPmdhbW1hX2x1 dCk7Cj4gK30KPiArCj4gIC8qIExvYWRzIHRoZSBsZWdhY3kgcGFsZXR0ZS9nYW1tYSB1bml0IGZv ciB0aGUgQ1JUQyBvbiBIYXN3ZWxsLiAqLwo+ICBzdGF0aWMgdm9pZCBoYXN3ZWxsX2xvYWRfbHV0 cyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiBAQCAtMzYzLDYgKzQyMCw2NyBAQCBzdGF0 aWMgdm9pZCBicm9hZHdlbGxfbG9hZF9sdXRzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCUk5 MTVfV1JJVEUoUFJFQ19QQUxfSU5ERVgocGlwZSksIDApOwo+ICB9Cj4gIAo+ICsvKiBMb2FkcyB0 aGUgcGFsZXR0ZS9nYW1tYSB1bml0IGZvciB0aGUgQ1JUQyBvbiBDaGVycnlWaWV3LiAqLwo+ICtz dGF0aWMgdm9pZCBjaGVycnl2aWV3X2xvYWRfbHV0cyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g K3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRy bV9jcnRjX3N0YXRlICpzdGF0ZSA9IGNydGMtPnN0YXRlOwo+ICsJZW51bSBwaXBlIHBpcGUgPSB0 b19pbnRlbF9jcnRjKGNydGMpLT5waXBlOwo+ICsJc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dDsK PiArCXVpbnQzMl90IGksIGx1dF9zaXplOwo+ICsJdWludDMyX3Qgd29yZDAsIHdvcmQxOwo+ICsK PiArCWlmIChjcnRjX3N0YXRlX2lzX2xlZ2FjeShzdGF0ZSkpIHsKPiArCQkvKiBUdXJuIG9mZiBk ZWdhbW1hL2dhbW1hIG9uIENHTSBibG9jay4gKi8KPiArCQlJOTE1X1dSSVRFKENHTV9QSVBFX01P REUocGlwZSksCj4gKwkJCSAgIChzdGF0ZS0+Y3RtID8gQ0dNX1BJUEVfTU9ERV9DU0MgOiAwKSk7 Cj4gKwkJaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoY3J0Yywgc3RhdGUtPmdhbW1hX2x1dCk7Cj4g KwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCWlmIChzdGF0ZS0+ZGVnYW1tYV9sdXQpIHsKPiArCQls dXQgPSAoc3RydWN0IGRybV9jb2xvcl9sdXQgKikgc3RhdGUtPmRlZ2FtbWFfbHV0LT5kYXRhOwo+ ICsJCWx1dF9zaXplID0gSU5URUxfSU5GTyhkZXYpLT5jb2xvci5kZWdhbW1hX2x1dF9zaXplOwo+ ICsJCWZvciAoaSA9IDA7IGkgPCBsdXRfc2l6ZTsgaSsrKSB7Cj4gKwkJCS8qIFdyaXRlIExVVCBp biBVMC4xNCBmb3JtYXQuICovCj4gKwkJCXdvcmQwID0KPiArCQkJKGRybV9jb2xvcl9sdXRfZXh0 cmFjdChsdXRbaV0uZ3JlZW4sIDE0KSA8PCAxNikgfAo+ICsJCQlkcm1fY29sb3JfbHV0X2V4dHJh Y3QobHV0W2ldLmJsdWUsIDE0KTsKPiArCQkJd29yZDEgPSBkcm1fY29sb3JfbHV0X2V4dHJhY3Qo bHV0W2ldLnJlZCwgMTQpOwo+ICsKPiArCQkJSTkxNV9XUklURShDR01fUElQRV9ERUdBTU1BKHBp cGUsIGksIDApLCB3b3JkMCk7Cj4gKwkJCUk5MTVfV1JJVEUoQ0dNX1BJUEVfREVHQU1NQShwaXBl LCBpLCAxKSwgd29yZDEpOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZiAoc3RhdGUtPmdhbW1hX2x1 dCkgewo+ICsJCWx1dCA9IChzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqKSBzdGF0ZS0+Z2FtbWFfbHV0 LT5kYXRhOwo+ICsJCWx1dF9zaXplID0gSU5URUxfSU5GTyhkZXYpLT5jb2xvci5nYW1tYV9sdXRf c2l6ZTsKPiArCQlmb3IgKGkgPSAwOyBpIDwgbHV0X3NpemU7IGkrKykgewo+ICsJCQkvKiBXcml0 ZSBMVVQgaW4gVTAuMTAgZm9ybWF0LiAqLwo+ICsJCQl3b3JkMCA9Cj4gKwkJCShkcm1fY29sb3Jf bHV0X2V4dHJhY3QobHV0W2ldLmdyZWVuLCAxMCkgPDwgMTYpIHwKPiArCQkJZHJtX2NvbG9yX2x1 dF9leHRyYWN0KGx1dFtpXS5ibHVlLCAxMCk7Cj4gKwkJCXdvcmQxID0gZHJtX2NvbG9yX2x1dF9l eHRyYWN0KGx1dFtpXS5yZWQsIDEwKTsKPiArCj4gKwkJCUk5MTVfV1JJVEUoQ0dNX1BJUEVfR0FN TUEocGlwZSwgaSwgMCksIHdvcmQwKTsKPiArCQkJSTkxNV9XUklURShDR01fUElQRV9HQU1NQShw aXBlLCBpLCAxKSwgd29yZDEpOwo+ICsJCX0KPiArCX0KPiArCj4gKwlJOTE1X1dSSVRFKENHTV9Q SVBFX01PREUocGlwZSksCj4gKwkJICAgKHN0YXRlLT5jdG0gPyBDR01fUElQRV9NT0RFX0NTQyA6 IDApIHwKPiArCQkgICAoc3RhdGUtPmRlZ2FtbWFfbHV0ID8gQ0dNX1BJUEVfTU9ERV9ERUdBTU1B IDogMCkgfAo+ICsJCSAgIChzdGF0ZS0+Z2FtbWFfbHV0ID8gQ0dNX1BJUEVfTU9ERV9HQU1NQSA6 IDApKTsKPiArCj4gKwkvKgo+ICsJICogQWxzbyBwcm9ncmFtIGEgbGluZWFyIExVVCBpbiB0aGUg bGVnYWN5IGJsb2NrIChiZWhpbmQgdGhlCj4gKwkgKiBDR00gYmxvY2spLgo+ICsJICovCj4gKwlp OXh4X2xvYWRfbHV0c19pbnRlcm5hbChjcnRjLCBOVUxMKTsKPiArfQo+ICsKPiAgdm9pZCBpbnRl bF9jb2xvcl9sb2FkX2x1dHMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+IEBAIC00MTUsNyArNTMzLDEwIEBAIHZvaWQg aW50ZWxfY29sb3JfaW5pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAo+ICAJZHJtX21vZGVf Y3J0Y19zZXRfZ2FtbWFfc2l6ZShjcnRjLCAyNTYpOwo+ICAKPiAtCWlmIChJU19IQVNXRUxMKGRl dikpIHsKPiArCWlmIChJU19DSEVSUllWSUVXKGRldikpIHsKPiArCQlkZXZfcHJpdi0+ZGlzcGxh eS5sb2FkX2NzY19tYXRyaXggPSBjaGVycnl2aWV3X2xvYWRfY3NjX21hdHJpeDsKPiArCQlkZXZf cHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBjaGVycnl2aWV3X2xvYWRfbHV0czsKPiArCX0gZWxz ZSBpZiAoSVNfSEFTV0VMTChkZXYpKSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9jc2Nf bWF0cml4ID0gaTl4eF9sb2FkX2NzY19tYXRyaXg7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubG9h ZF9sdXRzID0gaGFzd2VsbF9sb2FkX2x1dHM7Cj4gIAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChk ZXYpIHx8IElTX1NLWUxBS0UoZGV2KSB8fAo+IC0tIAo+IDIuNy4wCj4gCj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBs aXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKTWF0dCBSb3BlcgpH cmFwaGljcyBTb2Z0d2FyZSBFbmdpbmVlcgpJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxv cG1lbnQKSW50ZWwgQ29ycG9yYXRpb24KKDkxNikgMzU2LTI3OTUKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==