From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 3/6] drm/i915: Implement split/10bit gamma for ivb/hsw Date: Thu, 28 Mar 2019 23:05:02 +0200 Message-ID: <20190328210505.10429-4-ville.syrjala@linux.intel.com> References: <20190328210505.10429-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8621E6E438 for ; Thu, 28 Mar 2019 21:05:18 +0000 (UTC) In-Reply-To: <20190328210505.10429-1-ville.syrjala@linux.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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClJl dXNlIHRoZSBiZHcrIGNvZGUgdG8gZ2V0IHNwbGl0LzEwYml0IGdhbW1hIGZvcgppdmIvaHN3LiBU aGUgaGFyZHdhcmUgaXMgbmVhcmx5IGlkZW50aWNhbC4gVGhlCm9ubHkgc2xpZ2h0IHNuYWcgaXMg dGhhdCBvbiBpdmIvaHN3IHRoZSBwcmVjaXNpb24KcGFsZXR0ZSBhdXRvIGluY3JlbWVudCBtb2Rl IGRvZXMgbm90IHdvcmsuIFNvIHdlCm11c3QgaW5jcmVtZW50IHRoZSBpbmRleCBtYW51YWxseS4g V2UnbGwgcHJvYmFibHkKd2FudCB0byBzdGljayB0byB0aGUgYXV0byBpbmNyZW1lbnQgbW9kZSBv biBiZHcrCmluIHRoZSBuYW1lIG9mIGVmZmljaWVuY3kuCgpBbHNvIHdlIHdhbnQgdG8gYXZvaWQg dXNpbmcgdGhlIENTQyBmb3IgbGltaXRlZCByYW5nZQpSR0Igb3V0cHV0IGFzIFBJUEVDT05GIHdp bGwgdGFrZSBjYXJlIG9mIHRoYXQgb24gSVZCLgoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BjaS5jICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j b2xvci5jIHwgMTEzICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDk1IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bj aS5jCmluZGV4IGE3ZTE2MTFhZjI2ZC4uMzg1MDU2NzUyOTM5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGNpLmMKQEAgLTExNiw3ICsxMTYsNyBAQAogCQlbUElQRV9DXSA9IElWQl9DVVJTT1JfQ19PRkZT RVQsIFwKIAl9CiAKLSNkZWZpbmUgQkRXX0NPTE9SUyBcCisjZGVmaW5lIElWQl9DT0xPUlMgXAog CS5jb2xvciA9IHsgLmRlZ2FtbWFfbHV0X3NpemUgPSA1MTIsIC5nYW1tYV9sdXRfc2l6ZSA9IDUx MiB9CiAjZGVmaW5lIENIVl9DT0xPUlMgXAogCS5jb2xvciA9IHsgLmRlZ2FtbWFfbHV0X3NpemUg PSA2NSwgLmdhbW1hX2x1dF9zaXplID0gMjU3LCBcCkBAIC0zOTksNiArMzk5LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9zYW5keWJyaWRnZV9tX2d0Ml9p bmZvID0gewogCS5wcGd0dF9zaXplID0gMzEsIFwKIAlJVkJfUElQRV9PRkZTRVRTLCBcCiAJSVZC X0NVUlNPUl9PRkZTRVRTLCBcCisJSVZCX0NPTE9SUywgXAogCUdFTl9ERUZBVUxUX1BBR0VfU0la RVMKIAogI2RlZmluZSBJVkJfRF9QTEFURk9STSBcCkBAIC00OTQsNyArNDk1LDYgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9oYXN3ZWxsX2d0M19pbmZvID0g ewogI2RlZmluZSBHRU44X0ZFQVRVUkVTIFwKIAlHNzVfRkVBVFVSRVMsIFwKIAlHRU4oOCksIFwK LQlCRFdfQ09MT1JTLCBcCiAJLnBhZ2Vfc2l6ZXMgPSBJOTE1X0dUVF9QQUdFX1NJWkVfNEsgfCBc CiAJCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV8yTSwgXAogCS5oYXNfbG9naWNhbF9yaW5nX2Nv bnRleHRzID0gMSwgXApAQCAtNjI5LDcgKzYyOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50 ZWxfZGV2aWNlX2luZm8gaW50ZWxfc2t5bGFrZV9ndDRfaW5mbyA9IHsKIAkuZGlzcGxheS5oYXNf aXBjID0gMSwgXAogCUhTV19QSVBFX09GRlNFVFMsIFwKIAlJVkJfQ1VSU09SX09GRlNFVFMsIFwK LQlCRFdfQ09MT1JTLCBcCisJSVZCX0NPTE9SUywgXAogCUdFTjlfREVGQVVMVF9QQUdFX1NJWkVT CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfYnJveHRvbl9p bmZvID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKaW5kZXggZWQ0YmQ5YmQxNWY1Li43 MGE3MWM5MmUzZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9y LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwpAQCAtNDI4LDYgKzQy OCw4IEBAIHN0YXRpYyB2b2lkIGlsa19jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJdmFsICY9IH5QSVBFQ09ORl9HQU1NQV9NT0RFX01BU0tf SUxLOwogCXZhbCB8PSBQSVBFQ09ORl9HQU1NQV9NT0RFKGNydGNfc3RhdGUtPmdhbW1hX21vZGUp OwogCUk5MTVfV1JJVEUoUElQRUNPTkYocGlwZSksIHZhbCk7CisKKwlpbGtfbG9hZF9jc2NfbWF0 cml4KGNydGNfc3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZCBoc3dfY29sb3JfY29tbWl0KGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQpAQCAtNDY2LDYgKzQ2OCw0OCBA QCBzdGF0aWMgdm9pZCBza2xfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogCQlpbGtfbG9hZF9jc2NfbWF0cml4KGNydGNfc3RhdGUpOwogfQog CisvKgorICogSVZCL0hTVyBCc3BlYyAvIFBBTF9QUkVDX0lOREVYOgorICogIlJlc3RyaWN0aW9u IDogSW5kZXggYXV0byBpbmNyZW1lbnQgbW9kZSBpcyBub3QKKyAqICBzdXBwb3J0ZWQgYW5kIG11 c3Qgbm90IGJlIGVuYWJsZWQuIgorICovCitzdGF0aWMgdm9pZCBpdmJfbG9hZF9sdXRfMTAoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgICAgY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpibG9iLAorCQkJICAgIHUzMiBwcmVjX2luZGV4LCBib29sIGR1cGxpY2F0ZSkKK3sKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKKwljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gYmxvYi0+ZGF0YTsKKwlpbnQg aSwgbHV0X3NpemUgPSBkcm1fY29sb3JfbHV0X3NpemUoYmxvYik7CisJZW51bSBwaXBlIHBpcGUg PSBjcnRjLT5waXBlOworCisJLyoKKwkgKiBXZSBhZHZlcnRpemUgdGhlIHNwbGl0IGdhbW1hIHNp emVzLiBXaGVuIG5vdCB1c2luZyBzcGxpdAorCSAqIGdhbW1hIHdlIGp1c3QgZHVwbGljYXRlIGVh Y2ggZW50cnkuCisJICoKKwkgKiBUT0RPOiBleHBvc2UgdGhlIGZ1bGwgTFVUIHRvIHVzZXJzcGFj ZQorCSAqLworCWlmIChkdXBsaWNhdGUpIHsKKwkJZm9yIChpID0gMDsgaSA8IGx1dF9zaXplOyBp KyspIHsKKwkJCUk5MTVfV1JJVEUoUFJFQ19QQUxfSU5ERVgocGlwZSksIHByZWNfaW5kZXgrKyk7 CisJCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlwZSksIGlsa19sdXRfMTAoJmx1dFtpXSkp OworCQkJSTkxNV9XUklURShQUkVDX1BBTF9JTkRFWChwaXBlKSwgcHJlY19pbmRleCsrKTsKKwkJ CUk5MTVfV1JJVEUoUFJFQ19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8xMCgmbHV0W2ldKSk7CisJ CX0KKwl9IGVsc2UgeworCQlmb3IgKGkgPSAwOyBpIDwgbHV0X3NpemU7IGkrKykgeworCQkJSTkx NV9XUklURShQUkVDX1BBTF9JTkRFWChwaXBlKSwgcHJlY19pbmRleCsrKTsKKwkJCUk5MTVfV1JJ VEUoUFJFQ19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8xMCgmbHV0W2ldKSk7CisJCX0KKwl9CisK KwkvKgorCSAqIFJlc2V0IHRoZSBpbmRleCwgb3RoZXJ3aXNlIGl0IHByZXZlbnRzIHRoZSBsZWdh Y3kgcGFsZXR0ZSB0byBiZQorCSAqIHdyaXR0ZW4gcHJvcGVybHkuCisJICovCisJSTkxNV9XUklU RShQUkVDX1BBTF9JTkRFWChwaXBlKSwgMCk7Cit9CisKKy8qIE9uIEJEVysgdGhlIGluZGV4IGF1 dG8gaW5jcmVtZW50IG1vZGUgYWN0dWFsbHkgd29ya3MgKi8KIHN0YXRpYyB2b2lkIGJkd19sb2Fk X2x1dF8xMChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCSAgICBjb25zdCBzdHJ1Y3QgZHJt X3Byb3BlcnR5X2Jsb2IgKmJsb2IsCiAJCQkgICAgdTMyIHByZWNfaW5kZXgsIGJvb2wgZHVwbGlj YXRlKQpAQCAtNTAxLDcgKzU0NSw3IEBAIHN0YXRpYyB2b2lkIGJkd19sb2FkX2x1dF8xMChzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlJOTE1X1dSSVRFKFBSRUNfUEFMX0lOREVYKHBpcGUpLCAw KTsKIH0KIAotc3RhdGljIHZvaWQgYmR3X2xvYWRfbHV0XzEwX21heChzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKK3N0YXRpYyB2b2lkIGl2Yl9sb2FkX2x1dF8xMF9tYXgoc3RydWN0IGludGVsX2Ny dGMgKmNydGMsCiAJCQkJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwpAQCAtNTE4LDYgKzU2MiwyOSBAQCBzdGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRfMTBfbWF4 KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkgICBkcm1fY29sb3JfbHV0X2V4dHJhY3QobHV0 W2ldLmJsdWUsIDE2KSk7CiB9CiAKK3N0YXRpYyB2b2lkIGl2Yl9sb2FkX2x1dHMoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJY29uc3Qgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmdhbW1h X2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0 Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dDsKKworCWlmIChjcnRjX3N0YXRlLT5nYW1tYV9tb2Rl ID09IEdBTU1BX01PREVfTU9ERV84QklUKSB7CisJCWk5eHhfbG9hZF9sdXRzKGNydGNfc3RhdGUp OworCX0gZWxzZSBpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVf U1BMSVQpIHsKKwkJaXZiX2xvYWRfbHV0XzEwKGNydGMsIGRlZ2FtbWFfbHV0LCBQQUxfUFJFQ19T UExJVF9NT0RFIHwKKwkJCQlQQUxfUFJFQ19JTkRFWF9WQUxVRSgwKSwgZmFsc2UpOworCQlpdmJf bG9hZF9sdXRfMTAoY3J0YywgZ2FtbWFfbHV0LCBQQUxfUFJFQ19TUExJVF9NT0RFIHwKKwkJCQlQ QUxfUFJFQ19JTkRFWF9WQUxVRSg1MTIpLCAgZmFsc2UpOworCQlpdmJfbG9hZF9sdXRfMTBfbWF4 KGNydGMsIGdhbW1hX2x1dCk7CisJfSBlbHNlIHsKKwkJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0 eV9ibG9iICpibG9iID0gZ2FtbWFfbHV0ID86IGRlZ2FtbWFfbHV0OworCisJCWl2Yl9sb2FkX2x1 dF8xMChjcnRjLCBibG9iLAorCQkJCVBBTF9QUkVDX0lOREVYX1ZBTFVFKDApLCB0cnVlKTsKKwkJ aXZiX2xvYWRfbHV0XzEwX21heChjcnRjLCBibG9iKTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGJk d19sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CkBAIC01MzEsMTMgKzU5OCwxMyBAQCBzdGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRz KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQkJCVBBTF9QUkVD X0lOREVYX1ZBTFVFKDApLCBmYWxzZSk7CiAJCWJkd19sb2FkX2x1dF8xMChjcnRjLCBnYW1tYV9s dXQsIFBBTF9QUkVDX1NQTElUX01PREUgfAogCQkJCVBBTF9QUkVDX0lOREVYX1ZBTFVFKDUxMiks ICBmYWxzZSk7Ci0JCWJkd19sb2FkX2x1dF8xMF9tYXgoY3J0YywgZ2FtbWFfbHV0KTsKKwkJaXZi X2xvYWRfbHV0XzEwX21heChjcnRjLCBnYW1tYV9sdXQpOwogCX0gZWxzZSB7CiAJCWNvbnN0IHN0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYiA9IGdhbW1hX2x1dCA/OiBkZWdhbW1hX2x1dDsK IAogCQliZHdfbG9hZF9sdXRfMTAoY3J0YywgYmxvYiwKIAkJCQlQQUxfUFJFQ19JTkRFWF9WQUxV RSgwKSwgdHJ1ZSk7Ci0JCWJkd19sb2FkX2x1dF8xMF9tYXgoY3J0YywgYmxvYik7CisJCWl2Yl9s b2FkX2x1dF8xMF9tYXgoY3J0YywgYmxvYik7CiAJfQogfQogCkBAIC02MjksNyArNjk2LDcgQEAg c3RhdGljIHZvaWQgZ2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIAkJaTl4eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CiAJfSBlbHNlIHsKIAkJ YmR3X2xvYWRfbHV0XzEwKGNydGMsIGdhbW1hX2x1dCwgUEFMX1BSRUNfSU5ERVhfVkFMVUUoMCks IGZhbHNlKTsKLQkJYmR3X2xvYWRfbHV0XzEwX21heChjcnRjLCBnYW1tYV9sdXQpOworCQlpdmJf bG9hZF9sdXRfMTBfbWF4KGNydGMsIGdhbW1hX2x1dCk7CiAJfQogfQogCkBAIC02NDUsNyArNzEy LDcgQEAgc3RhdGljIHZvaWQgaWNsX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIAkJaTl4eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CiAJfSBlbHNl IHsKIAkJYmR3X2xvYWRfbHV0XzEwKGNydGMsIGdhbW1hX2x1dCwgUEFMX1BSRUNfSU5ERVhfVkFM VUUoMCksIGZhbHNlKTsKLQkJYmR3X2xvYWRfbHV0XzEwX21heChjcnRjLCBnYW1tYV9sdXQpOwor CQlpdmJfbG9hZF9sdXRfMTBfbWF4KGNydGMsIGdhbW1hX2x1dCk7CiAJfQogfQogCkBAIC05MDcs MTQgKzk3NCwxMyBAQCBzdGF0aWMgaW50IGlsa19jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJIWNydGNfc3RhdGUtPmM4X3BsYW5lczsKIAogCS8qCi0J ICogV2UgZG9uJ3QgZXhwb3NlIHRoZSBjdG0gb24gaWxrLWhzdyBjdXJyZW50bHksCi0JICogbm9y IGRvIHdlIGVuYWJsZSBZQ2JDciBvdXRwdXQuIE9ubHkgaHN3IHVzZXMKLQkgKiB0aGUgY3NjIGZv ciBSR0IgbGltaXRlZCByYW5nZSBvdXRwdXQuCisJICogV2UgZG9uJ3QgZXhwb3NlIHRoZSBjdG0g b24gaWxrL3NuYiBjdXJyZW50bHksCisJICogbm9yIGRvIHdlIGVuYWJsZSBZQ2JDciBvdXRwdXQu IEFsc28gUkdCIGxpbWl0ZWQKKwkgKiByYW5nZSBvdXRwdXQgaXMgaGFuZGxlZCBieSB0aGUgaHcg YXV0b21hZ2ljYWxseS4KIAkgKi8KLQljcnRjX3N0YXRlLT5jc2NfZW5hYmxlID0KLQkJaWxrX2Nz Y19saW1pdGVkX3JhbmdlKGNydGNfc3RhdGUpOworCWNydGNfc3RhdGUtPmNzY19lbmFibGUgPSBm YWxzZTsKIAotCS8qIFdlIGRvbid0IGV4cG9zZSBmYW5jeSBnYW1tYSBtb2RlcyBvbiBpbGstaHN3 IGN1cnJlbnRseSAqLworCS8qIFdlIGRvbid0IGV4cG9zZSBmYW5jeSBnYW1tYSBtb2RlcyBvbiBp bGsvc25iIGN1cnJlbnRseSAqLwogCWNydGNfc3RhdGUtPmdhbW1hX21vZGUgPSBHQU1NQV9NT0RF X01PREVfOEJJVDsKIAogCWNydGNfc3RhdGUtPmNzY19tb2RlID0gMDsKQEAgLTkyNiw3ICs5OTIs NyBAQCBzdGF0aWMgaW50IGlsa19jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHUzMiBiZHdfZ2FtbWFfbW9kZShj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3N0YXRpYyB1MzIgaXZi X2dhbW1hX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 CiAJaWYgKCFjcnRjX3N0YXRlLT5nYW1tYV9lbmFibGUgfHwKIAkgICAgY3J0Y19zdGF0ZV9pc19s ZWdhY3lfZ2FtbWEoY3J0Y19zdGF0ZSkpCkBAIC05MzgsMjIgKzEwMDQsMjUgQEAgc3RhdGljIHUz MiBiZHdfZ2FtbWFfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIAkJcmV0dXJuIEdBTU1BX01PREVfTU9ERV8xMEJJVDsKIH0KIAotc3RhdGljIHUzMiBiZHdf Y3NjX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCitzdGF0 aWMgdTMyIGl2Yl9jc2NfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKKwlib29sIGxpbWl0ZWRfY29sb3JfcmFuZ2UgPSBpbGtfY3NjX2xpbWl0ZWRfcmFu Z2UoY3J0Y19zdGF0ZSk7CisKIAkvKgogCSAqIENTQyBjb21lcyBhZnRlciB0aGUgTFVUIGluIGRl Z2FtbWEsIFJHQi0+WUNiQ3IsCiAJICogYW5kIFJHQiBmdWxsLT5saW1pdGVkIHJhbmdlIG1vZGUu CiAJICovCiAJaWYgKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQgfHwKIAkgICAgY3J0Y19z dGF0ZS0+b3V0cHV0X2Zvcm1hdCAhPSBJTlRFTF9PVVRQVVRfRk9STUFUX1JHQiB8fAotCSAgICBj cnRjX3N0YXRlLT5saW1pdGVkX2NvbG9yX3JhbmdlKQorCSAgICBsaW1pdGVkX2NvbG9yX3Jhbmdl KQogCQlyZXR1cm4gMDsKIAogCXJldHVybiBDU0NfUE9TSVRJT05fQkVGT1JFX0dBTU1BOwogfQog Ci1zdGF0aWMgaW50IGJkd19jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKK3N0YXRpYyBpbnQgaXZiX2NvbG9yX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogeworCWJvb2wgbGltaXRlZF9jb2xvcl9yYW5nZSA9IGlsa19jc2Nf bGltaXRlZF9yYW5nZShjcnRjX3N0YXRlKTsKIAlpbnQgcmV0OwogCiAJcmV0ID0gY2hlY2tfbHV0 cyhjcnRjX3N0YXRlKTsKQEAgLTk2NywxMSArMTAzNiwxMSBAQCBzdGF0aWMgaW50IGJkd19jb2xv cl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogCWNydGNfc3Rh dGUtPmNzY19lbmFibGUgPQogCQljcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ICE9IElOVEVMX09V VFBVVF9GT1JNQVRfUkdCIHx8Ci0JCWNydGNfc3RhdGUtPmJhc2UuY3RtIHx8IGNydGNfc3RhdGUt PmxpbWl0ZWRfY29sb3JfcmFuZ2U7CisJCWNydGNfc3RhdGUtPmJhc2UuY3RtIHx8IGxpbWl0ZWRf Y29sb3JfcmFuZ2U7CiAKLQljcnRjX3N0YXRlLT5nYW1tYV9tb2RlID0gYmR3X2dhbW1hX21vZGUo Y3J0Y19zdGF0ZSk7CisJY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9IGl2Yl9nYW1tYV9tb2RlKGNy dGNfc3RhdGUpOwogCi0JY3J0Y19zdGF0ZS0+Y3NjX21vZGUgPSBiZHdfY3NjX21vZGUoY3J0Y19z dGF0ZSk7CisJY3J0Y19zdGF0ZS0+Y3NjX21vZGUgPSBpdmJfY3NjX21vZGUoY3J0Y19zdGF0ZSk7 CiAKIAlyZXQgPSBpbnRlbF9jb2xvcl9hZGRfYWZmZWN0ZWRfcGxhbmVzKGNydGNfc3RhdGUpOwog CWlmIChyZXQpCkBAIC0xMDg4LDggKzExNTcsOCBAQCB2b2lkIGludGVsX2NvbG9yX2luaXQoc3Ry dWN0IGludGVsX2NydGMgKmNydGMpCiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jaGVjayA9 IGljbF9jb2xvcl9jaGVjazsKIAkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCB8 fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkKIAkJCWRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2No ZWNrID0gZ2xrX2NvbG9yX2NoZWNrOwotCQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49 IDgpCi0JCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jaGVjayA9IGJkd19jb2xvcl9jaGVjazsK KwkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA3KQorCQkJZGV2X3ByaXYtPmRpc3Bs YXkuY29sb3JfY2hlY2sgPSBpdmJfY29sb3JfY2hlY2s7CiAJCWVsc2UKIAkJCWRldl9wcml2LT5k aXNwbGF5LmNvbG9yX2NoZWNrID0gaWxrX2NvbG9yX2NoZWNrOwogCkBAIC0xMTA0LDggKzExNzMs MTAgQEAgdm9pZCBpbnRlbF9jb2xvcl9pbml0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCQkJ ZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gaWNsX2xvYWRfbHV0czsKIAkJZWxzZSBpZiAo SVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCiAJCQlk ZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBnbGtfbG9hZF9sdXRzOwotCQllbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDkgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKKwkJZWxz ZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQogCQkJZGV2X3ByaXYtPmRpc3BsYXkubG9h ZF9sdXRzID0gYmR3X2xvYWRfbHV0czsKKwkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA3KQorCQkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gaXZiX2xvYWRfbHV0czsKIAkJ ZWxzZQogCQkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gaTl4eF9sb2FkX2x1dHM7CiAJ fQotLSAKMi4xOS4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=