From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH 6/6] drm/i915: Implement color management on chv Date: Mon, 1 Feb 2016 15:18:37 +0000 Message-ID: <1454339917-31569-7-git-send-email-lionel.g.landwerlin@intel.com> References: <1454339917-31569-1-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: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 8E2546E492 for ; Mon, 1 Feb 2016 07:18:56 -0800 (PST) In-Reply-To: <1454339917-31569-1-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UGF0Y2ggYmFzZWQgb24gYSBwcmV2aW91cyBzZXJpZSBieSBTaGFzaGFuayBTaGFybWEuCgpTaWdu ZWQtb2ZmLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICB8ICAgMyArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgIHwgIDQwICsrKysrKysrKysrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jIHwgMTM5ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggMzYzN2ZkMi4uNTAyY2ZiYyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC02NSw2ICs2NSw4IEBAIHN0YXRpYyBzdHJ1Y3Qg ZHJtX2RyaXZlciBkcml2ZXI7CiAKICNkZWZpbmUgQkRXX0NPTE9SUyBcCiAJLmNvbG9yID0geyAu ZGVnYW1tYV9sdXRfc2l6ZSA9IDUxMiwgLmdhbW1hX2x1dF9zaXplID0gNTEyIH0KKyNkZWZpbmUg Q0hWX0NPTE9SUyBcCisJLmNvbG9yID0geyAuZGVnYW1tYV9sdXRfc2l6ZSA9IDY1LCAuZ2FtbWFf bHV0X3NpemUgPSAyNTcgfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZv IGludGVsX2k4MzBfaW5mbyA9IHsKIAkuZ2VuID0gMiwgLmlzX21vYmlsZSA9IDEsIC5jdXJzb3Jf bmVlZHNfcGh5c2ljYWwgPSAxLCAubnVtX3BpcGVzID0gMiwKQEAgLTMyMiw2ICszMjQsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2NoZXJyeXZpZXdfaW5m byA9IHsKIAkuZGlzcGxheV9tbWlvX29mZnNldCA9IFZMVl9ESVNQTEFZX0JBU0UsCiAJR0VOX0NI Vl9QSVBFT0ZGU0VUUywKIAlDVVJTT1JfT0ZGU0VUUywKKwlDSFZfQ09MT1JTLAogfTsKIAogc3Rh dGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9za3lsYWtlX2luZm8gPSB7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCA1NjI2ZWQ2Li5lMzE5ZGFlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKQEAgLTc2NzAsNiArNzY3MCw0NiBAQCBlbnVtIHNrbF9kaXNwX3Bvd2Vy X3dlbGxzIHsKICNkZWZpbmUgUFJFQ19QQUxfR0NfTUFYKHBpcGUsIGkpCV9NTUlPKF9QSVBFMyhw aXBlLCBfUEFMX1BSRUNfR0NfTUFYX0EsIF9QQUxfUFJFQ19HQ19NQVhfQiwgX1BBTF9QUkVDX0dD X01BWF9DKSArIChpKSAqIDQpCiAjZGVmaW5lIFBSRUNfUEFMX0VYVF9HQ19NQVgocGlwZSwgaSkJ X01NSU8oX1BJUEUzKHBpcGUsIF9QQUxfUFJFQ19FWFRfR0NfTUFYX0EsIF9QQUxfUFJFQ19FWFRf R0NfTUFYX0IsIF9QQUxfUFJFQ19FWFRfR0NfTUFYX0MpICsgKGkpICogNCkKIAorLyogcGlwZSBD U0MgJiBkZWdhbW1hL2dhbW1hIExVVHMgb24gQ0hWICovCisjZGVmaW5lIF9DR01fUElQRV9BX0NT Q19DT0VGRjAxCShWTFZfRElTUExBWV9CQVNFICsgMHg2NzkwMCkKKyNkZWZpbmUgX0NHTV9QSVBF X0FfQ1NDX0NPRUZGMjMJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDY3OTA0KQorI2RlZmluZSBfQ0dN X1BJUEVfQV9DU0NfQ09FRkY0NQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4Njc5MDgpCisjZGVmaW5l IF9DR01fUElQRV9BX0NTQ19DT0VGRjY3CShWTFZfRElTUExBWV9CQVNFICsgMHg2NzkwQykKKyNk ZWZpbmUgX0NHTV9QSVBFX0FfQ1NDX0NPRUZGOAkoVkxWX0RJU1BMQVlfQkFTRSArIDB4Njc5MTAp CisjZGVmaW5lIF9DR01fUElQRV9BX0RFR0FNTUEJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDY2MDAw KQorI2RlZmluZSBfQ0dNX1BJUEVfQV9HQU1NQQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NjcwMDAp CisjZGVmaW5lIF9DR01fUElQRV9BX01PREUJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDY3QTAwKQor I2RlZmluZSAgIENHTV9QSVBFX01PREVfR0FNTUEJKDEgPDwgMikKKyNkZWZpbmUgICBDR01fUElQ RV9NT0RFX0NTQwkoMSA8PCAxKQorI2RlZmluZSAgIENHTV9QSVBFX01PREVfREVHQU1NQQkoMSA8 PCAwKQorCisjZGVmaW5lIF9DR01fUElQRV9CX0NTQ19DT0VGRjAxCShWTFZfRElTUExBWV9CQVNF ICsgMHg2OTkwMCkKKyNkZWZpbmUgX0NHTV9QSVBFX0JfQ1NDX0NPRUZGMjMJKFZMVl9ESVNQTEFZ X0JBU0UgKyAweDY5OTA0KQorI2RlZmluZSBfQ0dNX1BJUEVfQl9DU0NfQ09FRkY0NQkoVkxWX0RJ U1BMQVlfQkFTRSArIDB4Njk5MDgpCisjZGVmaW5lIF9DR01fUElQRV9CX0NTQ19DT0VGRjY3CShW TFZfRElTUExBWV9CQVNFICsgMHg2OTkwQykKKyNkZWZpbmUgX0NHTV9QSVBFX0JfQ1NDX0NPRUZG OAkoVkxWX0RJU1BMQVlfQkFTRSArIDB4Njk5MTApCisjZGVmaW5lIF9DR01fUElQRV9CX0RFR0FN TUEJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDY4MDAwKQorI2RlZmluZSBfQ0dNX1BJUEVfQl9HQU1N QQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NjkwMDApCisjZGVmaW5lIF9DR01fUElQRV9CX01PREUJ KFZMVl9ESVNQTEFZX0JBU0UgKyAweDY5QTAwKQorCisjZGVmaW5lIF9DR01fUElQRV9DX0NTQ19D T0VGRjAxCShWTFZfRElTUExBWV9CQVNFICsgMHg2QjkwMCkKKyNkZWZpbmUgX0NHTV9QSVBFX0Nf Q1NDX0NPRUZGMjMJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDZCOTA0KQorI2RlZmluZSBfQ0dNX1BJ UEVfQ19DU0NfQ09FRkY0NQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NkI5MDgpCisjZGVmaW5lIF9D R01fUElQRV9DX0NTQ19DT0VGRjY3CShWTFZfRElTUExBWV9CQVNFICsgMHg2QjkwQykKKyNkZWZp bmUgX0NHTV9QSVBFX0NfQ1NDX0NPRUZGOAkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NkI5MTApCisj ZGVmaW5lIF9DR01fUElQRV9DX0RFR0FNTUEJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDZBMDAwKQor I2RlZmluZSBfQ0dNX1BJUEVfQ19HQU1NQQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NkIwMDApCisj ZGVmaW5lIF9DR01fUElQRV9DX01PREUJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDZCQTAwKQorCisj ZGVmaW5lIENHTV9QSVBFX0NTQ19DT0VGRjAxKHBpcGUpCV9NTUlPX1BJUEUzKHBpcGUsIF9DR01f UElQRV9BX0NTQ19DT0VGRjAxLCBfQ0dNX1BJUEVfQl9DU0NfQ09FRkYwMSwgX0NHTV9QSVBFX0Nf Q1NDX0NPRUZGMDEpCisjZGVmaW5lIENHTV9QSVBFX0NTQ19DT0VGRjIzKHBpcGUpCV9NTUlPX1BJ UEUzKHBpcGUsIF9DR01fUElQRV9BX0NTQ19DT0VGRjIzLCBfQ0dNX1BJUEVfQl9DU0NfQ09FRkYy MywgX0NHTV9QSVBFX0NfQ1NDX0NPRUZGMjMpCisjZGVmaW5lIENHTV9QSVBFX0NTQ19DT0VGRjQ1 KHBpcGUpCV9NTUlPX1BJUEUzKHBpcGUsIF9DR01fUElQRV9BX0NTQ19DT0VGRjQ1LCBfQ0dNX1BJ UEVfQl9DU0NfQ09FRkY0NSwgX0NHTV9QSVBFX0NfQ1NDX0NPRUZGNDUpCisjZGVmaW5lIENHTV9Q SVBFX0NTQ19DT0VGRjY3KHBpcGUpCV9NTUlPX1BJUEUzKHBpcGUsIF9DR01fUElQRV9BX0NTQ19D T0VGRjY3LCBfQ0dNX1BJUEVfQl9DU0NfQ09FRkY2NywgX0NHTV9QSVBFX0NfQ1NDX0NPRUZGNjcp CisjZGVmaW5lIENHTV9QSVBFX0NTQ19DT0VGRjgocGlwZSkJX01NSU9fUElQRTMocGlwZSwgX0NH TV9QSVBFX0FfQ1NDX0NPRUZGOCwgX0NHTV9QSVBFX0JfQ1NDX0NPRUZGOCwgX0NHTV9QSVBFX0Nf Q1NDX0NPRUZGOCkKKyNkZWZpbmUgQ0dNX1BJUEVfREVHQU1NQShwaXBlLCBpLCB3KQlfTU1JTyhf UElQRTMocGlwZSwgX0NHTV9QSVBFX0FfREVHQU1NQSwgX0NHTV9QSVBFX0JfREVHQU1NQSwgX0NH TV9QSVBFX0NfREVHQU1NQSkgKyAoaSkgKiA0ICsgKHcpICogNCkKKyNkZWZpbmUgQ0dNX1BJUEVf R0FNTUEocGlwZSwgaSwgdykJX01NSU8oX1BJUEUzKHBpcGUsIF9DR01fUElQRV9BX0dBTU1BLCBf Q0dNX1BJUEVfQl9HQU1NQSwgX0NHTV9QSVBFX0NfR0FNTUEpICsgKGkpICogNCArICh3KSAqIDQp CisjZGVmaW5lIENHTV9QSVBFX01PREUocGlwZSkJCV9NTUlPX1BJUEUzKHBpcGUsIF9DR01fUElQ RV9BX01PREUsIF9DR01fUElQRV9CX01PREUsIF9DR01fUElQRV9DX01PREUpCisKIC8qIE1JUEkg RFNJIHJlZ2lzdGVycyAqLwogCiAjZGVmaW5lIF9NSVBJX1BPUlQocG9ydCwgYSwgYykJX1BPUlQz KHBvcnQsIGEsIDAsIGMpCS8qIHBvcnRzIEEgYW5kIEMgb25seSAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2NvbG9yLmMKaW5kZXggNzgyYjlkOC4uZGE2ZmYwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jb2xvci5jCkBAIC0yMTMsNiArMjEzLDU0IEBAIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9jc2Nf bWF0cml4KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAl9CiB9CiAKKy8qCisgKiBTZXQgdXAgdGhl IHBpcGUgQ1NDIHVuaXQgb24gQ2hlcnJ5Vmlldy4KKyAqLworc3RhdGljIHZvaWQgY2hlcnJ5dmll d19sb2FkX2NzY19tYXRyaXgoc3RydWN0IGRybV9jcnRjICpjcnRjKQoreworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlID0gY3J0Yy0+c3RhdGU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7CisJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCisKKwlpZiAo Y3J0Y19zdGF0ZS0+Y3RtX21hdHJpeCkgeworCQlzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0K KwkJCShzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqKWNydGNfc3RhdGUtPmN0bV9tYXRyaXgtPmRhdGE7 CisJCXVpbnQxNl90IGNvZWZmc1s5XSA9IHsgMCwgfTsKKwkJaW50IGk7CisKKwkJZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUoY29lZmZzKTsgaSsrKSB7CisJCQl1aW50NjRfdCBhYnNfY29lZmYg PQorCQkJCSgoMVVMTCA8PCA2MykgLSAxKSAmIGN0bS0+bWF0cml4W2ldOworCisJCQlhYnNfY29l ZmYgPSBjbGFtcF92YWwoYWJzX2NvZWZmLCAwLCAoMSA8PCAxNSkgLSAxKTsKKworCQkJLyogV3Jp dGUgY29lZmZpY2llbnRzIGluIFMzLjEyIGZvcm1hdC4gKi8KKwkJCWlmIChjdG0tPm1hdHJpeFtp XSAmICgxVUxMIDw8IDYzKSkKKwkJCQljb2VmZnNbaV0gPSAxIDw8IDE1OworCQkJY29lZmZzW2ld IHw9ICgoYWJzX2NvZWZmID4+IDMyKSAmIDcpIDw8IDEyOworCQkJY29lZmZzW2ldIHw9ICgoKGFi c19jb2VmZiA+PiAxOSkgKyAxKSA+PiAxKSAmIDB4ZmZmOworCQl9CisKKwkJSTkxNV9XUklURShD R01fUElQRV9DU0NfQ09FRkYwMShwaXBlKSwKKwkJCSAgIGNvZWZmc1sxXSA8PCAxNiB8IGNvZWZm c1swXSk7CisJCUk5MTVfV1JJVEUoQ0dNX1BJUEVfQ1NDX0NPRUZGMjMocGlwZSksCisJCQkgICBj b2VmZnNbM10gPDwgMTYgfCBjb2VmZnNbMl0pOworCQlJOTE1X1dSSVRFKENHTV9QSVBFX0NTQ19D T0VGRjQ1KHBpcGUpLAorCQkJICAgY29lZmZzWzVdIDw8IDE2IHwgY29lZmZzWzRdKTsKKwkJSTkx NV9XUklURShDR01fUElQRV9DU0NfQ09FRkY2NyhwaXBlKSwKKwkJCSAgIGNvZWZmc1s3XSA8PCAx NiB8IGNvZWZmc1s2XSk7CisJCUk5MTVfV1JJVEUoQ0dNX1BJUEVfQ1NDX0NPRUZGOChwaXBlKSwg Y29lZmZzWzhdKTsKKwl9CisKKwlJOTE1X1dSSVRFKENHTV9QSVBFX01PREUocGlwZSksCisJCSAg IChjcnRjX3N0YXRlLT5jdG1fbWF0cml4ID8gQ0dNX1BJUEVfTU9ERV9DU0MgOiAwKSB8CisJCSAg IChjcnRjX3N0YXRlLT5kZWdhbW1hX2x1dCA/IENHTV9QSVBFX01PREVfREVHQU1NQSA6IDApIHwK KwkJICAgKGNydGNfc3RhdGUtPmdhbW1hX2x1dCA/IENHTV9QSVBFX01PREVfR0FNTUEgOiAwKSk7 Cit9CisKIC8qKiBMb2FkcyB0aGUgbGVnYWN5IHBhbGV0dGUvZ2FtbWEgdW5pdCBmb3IgdGhlIENS VEMgd2l0aCB0aGUgcHJlcGFyZWQKICAqIHZhbHVlcy4KICAqLwpAQCAtMjgyLDYgKzMzMCw0NyBA QCBzdGF0aWMgdm9pZCBicm9hZHdlbGxfbG9hZF9kZWdhbW1hX2x1dChzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiAJSTkxNV9XUklURShQUkVDX1BBTF9JTkRFWChwaXBlKSwgMCk7CiB9CiAKK3N0YXRp YyB2b2lkIGNoZXJyeXZpZXdfbG9hZF9kZWdhbW1hX2x1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqc3RhdGUgPSBjcnRjLT5zdGF0ZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVs X2NydGMoY3J0YyktPnBpcGU7CisKKwlpZiAoc3RhdGUtPmRlZ2FtbWFfbHV0KSB7CisJCXN0cnVj dCBkcm1fY29sb3JfbHV0ICpsdXQgPQorCQkJKHN0cnVjdCBkcm1fY29sb3JfbHV0ICopIHN0YXRl LT5kZWdhbW1hX2x1dC0+ZGF0YTsKKwkJdWludDMyX3QgaSwgbHV0X3NpemUgPSBJTlRFTF9JTkZP KGRldiktPmNvbG9yLmRlZ2FtbWFfbHV0X3NpemU7CisJCXVpbnQzMl90IHdvcmQwLCB3b3JkMTsK KworCQlmb3IgKGkgPSAwOyBpIDwgbHV0X3NpemU7IGkrKykgeworCQkJLyogV3JpdGUgTFVUIGlu IFUwLjE0IGZvcm1hdC4gKi8KKwkJCXdvcmQwID0KKwkJCShkcm1fY29sb3JfbHV0X2V4dHJhY3Qo bHV0W2ldLmdyZWVuLCAxNCkgPDwgMTYpIHwKKwkJCWRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRb aV0uYmx1ZSwgMTQpOworCQkJd29yZDEgPSBkcm1fY29sb3JfbHV0X2V4dHJhY3QobHV0W2ldLnJl ZCwgMTQpOworCisJCQlJOTE1X1dSSVRFKENHTV9QSVBFX0RFR0FNTUEocGlwZSwgaSwgMCksIHdv cmQwKTsKKwkJCUk5MTVfV1JJVEUoQ0dNX1BJUEVfREVHQU1NQShwaXBlLCBpLCAxKSwgd29yZDEp OworCQl9CisJCS8qIFdyaXRlIHRoZSA2NSdzIGVudHJ5IG9mIHRoZSBMVVQgd2l0aCB0aGUgbGFz dCBlbnRyeSBnaXZlbgorCQkgKiBieSB1c2VyIHNwYWNlIHRvIGNsYW1wIHZhbHVlcyA+IDEuMC4K KwkJICovCisJCXdvcmQwID0KKwkJKGRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbbHV0X3NpemUg LSAxXS5ncmVlbiwgMTQpIDw8IDE2KSB8CisJCWRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbbHV0 X3NpemUgLSAxXS5ibHVlLCAxNCk7CisJCXdvcmQxID0gZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1 dFtsdXRfc2l6ZSAtIDFdLnJlZCwgMTQpOworCisJCUk5MTVfV1JJVEUoQ0dNX1BJUEVfREVHQU1N QShwaXBlLCBsdXRfc2l6ZSwgMCksIHdvcmQwKTsKKwkJSTkxNV9XUklURShDR01fUElQRV9ERUdB TU1BKHBpcGUsIGx1dF9zaXplLCAxKSwgd29yZDEpOworCX0KKworCUk5MTVfV1JJVEUoQ0dNX1BJ UEVfTU9ERShwaXBlKSwKKwkJICAgKHN0YXRlLT5jdG1fbWF0cml4ID8gQ0dNX1BJUEVfTU9ERV9D U0MgOiAwKSB8CisJCSAgIChzdGF0ZS0+ZGVnYW1tYV9sdXQgPyBDR01fUElQRV9NT0RFX0RFR0FN TUEgOiAwKSB8CisJCSAgIChzdGF0ZS0+Z2FtbWFfbHV0ID8gQ0dNX1BJUEVfTU9ERV9HQU1NQSA6 IDApKTsKK30KKwogc3RhdGljIHZvaWQgYnJvYWR3ZWxsX2xvYWRfZ2FtbWFfbHV0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwpA QCAtMzM5LDYgKzQyOCw0NyBAQCBzdGF0aWMgdm9pZCBicm9hZHdlbGxfbG9hZF9nYW1tYV9sdXQo c3RydWN0IGRybV9jcnRjICpjcnRjKQogCUk5MTVfV1JJVEUoUFJFQ19QQUxfSU5ERVgocGlwZSks IDApOwogfQogCitzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2xvYWRfZ2FtbWFfbHV0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJ c3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSA9IGNydGMtPnN0YXRlOworCWVudW0gcGlwZSBw aXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKKworCWlmIChzdGF0ZS0+Z2FtbWFfbHV0 KSB7CisJCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPQorCQkJKHN0cnVjdCBkcm1fY29sb3Jf bHV0ICopIHN0YXRlLT5nYW1tYV9sdXQtPmRhdGE7CisJCXVpbnQzMl90IGksIGx1dF9zaXplID0g SU5URUxfSU5GTyhkZXYpLT5jb2xvci5nYW1tYV9sdXRfc2l6ZTsKKwkJdWludDMyX3Qgd29yZDAs IHdvcmQxOworCisJCWZvciAoaSA9IDA7IGkgPCBsdXRfc2l6ZTsgaSsrKSB7CisJCQkvKiBXcml0 ZSBMVVQgaW4gVTAuMTAgZm9ybWF0LiAqLworCQkJd29yZDAgPQorCQkJKGRybV9jb2xvcl9sdXRf ZXh0cmFjdChsdXRbaV0uZ3JlZW4sIDEwKSA8PCAxNikgfAorCQkJZHJtX2NvbG9yX2x1dF9leHRy YWN0KGx1dFtpXS5ibHVlLCAxMCk7CisJCQl3b3JkMSA9IGRybV9jb2xvcl9sdXRfZXh0cmFjdChs dXRbaV0ucmVkLCAxMCk7CisKKwkJCUk5MTVfV1JJVEUoQ0dNX1BJUEVfR0FNTUEocGlwZSwgaSwg MCksIHdvcmQwKTsKKwkJCUk5MTVfV1JJVEUoQ0dNX1BJUEVfR0FNTUEocGlwZSwgaSwgMSksIHdv cmQxKTsKKwkJfQorCQkvKiBXcml0ZSB0aGUgMjU3J3MgZW50cnkgb2YgdGhlIExVVCB3aXRoIHRo ZSBsYXN0IGVudHJ5IGdpdmVuCisJCSAqIGJ5IHVzZXIgc3BhY2UgdG8gY2xhbXAgdmFsdWVzID4g MS4wLgorCQkgKi8KKwkJd29yZDAgPQorCQkoZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1dFtsdXRf c2l6ZSAtIDFdLmdyZWVuLCAxMCkgPDwgMTYpIHwKKwkJZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1 dFtsdXRfc2l6ZSAtIDFdLmJsdWUsIDEwKTsKKwkJd29yZDEgPSBkcm1fY29sb3JfbHV0X2V4dHJh Y3QobHV0W2x1dF9zaXplIC0gMV0ucmVkLCAxMCk7CisKKwkJSTkxNV9XUklURShDR01fUElQRV9H QU1NQShwaXBlLCBsdXRfc2l6ZSwgMCksIHdvcmQwKTsKKwkJSTkxNV9XUklURShDR01fUElQRV9H QU1NQShwaXBlLCBsdXRfc2l6ZSwgMSksIHdvcmQxKTsKKwl9CisKKwlJOTE1X1dSSVRFKENHTV9Q SVBFX01PREUocGlwZSksCisJCSAgIChzdGF0ZS0+Y3RtX21hdHJpeCA/IENHTV9QSVBFX01PREVf Q1NDIDogMCkgfAorCQkgICAoc3RhdGUtPmRlZ2FtbWFfbHV0ID8gQ0dNX1BJUEVfTU9ERV9ERUdB TU1BIDogMCkgfAorCQkgICAoc3RhdGUtPmdhbW1hX2x1dCA/IENHTV9QSVBFX01PREVfR0FNTUEg OiAwKSk7Cit9CisKIHN0YXRpYyB2b2lkIGludGVsX2NvbG9yX2xvYWRfbHV0c19pbnRlcm5hbChz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJCSAgYm9vbCBsZWdhY3kpCiB7CkBAIC00MzAsOCAr NTYwLDEzIEBAIHZvaWQgaW50ZWxfY29sb3JfaW5pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJ CWludGVsX2NydGMtPmx1dF9iW2ldID0gaTsKIAl9CiAKLQlpZiAoSVNfQlJPQURXRUxMKGRldikg fHwgSVNfU0tZTEFLRShkZXYpIHx8Ci0JICAgIElTX0JST1hUT04oZGV2KSB8fCBJU19LQUJZTEFL RShkZXYpKSB7CisJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgeworCQlkZXZfcHJpdi0+ZGlzcGxh eS5sb2FkX2RlZ2FtbWFfbHV0ID0KKwkJCWNoZXJyeXZpZXdfbG9hZF9kZWdhbW1hX2x1dDsKKwkJ ZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9nYW1tYV9sdXQgPSBjaGVycnl2aWV3X2xvYWRfZ2FtbWFf bHV0OworCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2NzY19tYXRyaXggPSBjaGVycnl2aWV3X2xv YWRfY3NjX21hdHJpeDsKKwl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpIHx8IElTX1NLWUxB S0UoZGV2KSB8fAorCQkgICBJU19CUk9YVE9OKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgewog CQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2RlZ2FtbWFfbHV0ID0gYnJvYWR3ZWxsX2xvYWRfZGVn YW1tYV9sdXQ7CiAJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfZ2FtbWFfbHV0ID0gYnJvYWR3ZWxs X2xvYWRfZ2FtbWFfbHV0OwogCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2NzY19tYXRyaXggPSBp OXh4X2xvYWRfY3NjX21hdHJpeDsKLS0gCjIuNy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=