From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 2/6] drm/i915: Don't use split gamma when we don't have to Date: Thu, 28 Mar 2019 23:05:01 +0200 Message-ID: <20190328210505.10429-3-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 mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 603186E438 for ; Thu, 28 Mar 2019 21:05:15 +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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClVz aW5nIHRoZSBzcGxpdCBnYW1tYSBtb2RlIHdoZW4gd2UgZG9uJ3QgaGF2ZSB0byBoYXMgdGhlIGFu bm95aW5nCnJlcXVpcmVtZW50IG9mIGxvYWRpbmcgYSBsaW5lYXIgTFVUIHRvIHRoZSB1bnVzZWQg aGFsZi4gSW5zdGVhZApsZXQncyBtYWtlIGxpZmUgc2ltcGxlciBieSBzd2l0Y2hpbmcgdG8gdGhl IDEwYml0IGdhbW1hIG1vZGUKYW5kIGR1cGxpY2F0aW5nIGVhY2ggZW50cnkuCgpUaGlzIGFsc28g YWxsb3dzIHVzIHRvIGxvYWQgdGhlIHNvZnR3YXJlIGdhbW1hIExVVCBpbnRvIHRoZQpoYXJkd2Fy ZSBkZWdhbW1hIExVVCwgdGh1cyByZW1vdmluZyBzb21lIG9mIHRoZSBidWdneQpjb25maWd1cmF0 aW9ucyB3ZSBjdXJyZW50bHkgYWxsb3cgKFlDYkNyL2xpbWl0ZWQgcmFuZ2UgUkdCCisgZ2FtbWEg TFVUKS4gV2UgZG8gc3RpbGwgaGF2ZSBvdGhlciBjb25maWd1cmF0aW9ucyB0aGF0IGFyZQphbHNv IGJ1Z2d5LCBidXQgdGhvc2Ugd2lsbCBuZWVkIG1vcmUgY29tcGxpY2F0ZWQgZml4ZXMKb3IgdGhl eSBqdXN0IG5lZWQgdG8gYmUgcmVqZWN0ZWQuIFNhZGx5IEdMSyBkb2Vzbid0IGhhdmUKdGhpcyBm bGV4aWJpbGl0eSBhbnltb3JlIGFuZCB0aGUgZGVnYW1tYSBhbmQgZ2FtbWEgTFVUcwphcmUgdmVy eSBkaWZmZXJlbnQgc28gbm8gaGVscCB0aGVyZS4KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaCAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j b2xvci5jIHwgMTU5ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDg2IGluc2VydGlvbnMoKyksIDc0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCmluZGV4IGM4NjYzNzlhNTIxYi4uZWI3ZTkzMzU0Y2ZlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKQEAgLTEwMTI3LDYgKzEwMTI3LDcgQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7CiAjZGVm aW5lICAgUEFMX1BSRUNfU1BMSVRfTU9ERQkJKDEgPDwgMzEpCiAjZGVmaW5lICAgUEFMX1BSRUNf QVVUT19JTkNSRU1FTlQJKDEgPDwgMTUpCiAjZGVmaW5lICAgUEFMX1BSRUNfSU5ERVhfVkFMVUVf TUFTSwkoMHgzZmYgPDwgMCkKKyNkZWZpbmUgICBQQUxfUFJFQ19JTkRFWF9WQUxVRSh4KQkoKHgp IDw8IDApCiAjZGVmaW5lIF9QQUxfUFJFQ19EQVRBX0EJMHg0QTQwNAogI2RlZmluZSBfUEFMX1BS RUNfREFUQV9CCTB4NEFDMDQKICNkZWZpbmUgX1BBTF9QUkVDX0RBVEFfQwkweDRCNDA0CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY29sb3IuYwppbmRleCBkN2MzOGEyYmJkOGYuLmVkNGJkOWJkMTVmNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCkBAIC00NjYsNzIgKzQ2NiwzMiBAQCBzdGF0 aWMgdm9pZCBza2xfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogCQlpbGtfbG9hZF9jc2NfbWF0cml4KGNydGNfc3RhdGUpOwogfQogCi1zdGF0 aWMgdm9pZCBiZHdfbG9hZF9kZWdhbW1hX2x1dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKK3N0YXRpYyB2b2lkIGJkd19sb2FkX2x1dF8xMChzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKKwkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2Is CisJCQkgICAgdTMyIHByZWNfaW5kZXgsIGJvb2wgZHVwbGljYXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp OwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0 YXRlLT5iYXNlLmRlZ2FtbWFfbHV0OwotCXUzMiBpLCBsdXRfc2l6ZSA9IElOVEVMX0lORk8oZGV2 X3ByaXYpLT5jb2xvci5kZWdhbW1hX2x1dF9zaXplOworCWNvbnN0IHN0cnVjdCBkcm1fY29sb3Jf bHV0ICpsdXQgPSBibG9iLT5kYXRhOworCWludCBpLCBsdXRfc2l6ZSA9IGRybV9jb2xvcl9sdXRf c2l6ZShibG9iKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKLQlJOTE1X1dSSVRF KFBSRUNfUEFMX0lOREVYKHBpcGUpLAotCQkgICBQQUxfUFJFQ19TUExJVF9NT0RFIHwgUEFMX1BS RUNfQVVUT19JTkNSRU1FTlQpOwotCi0JaWYgKGRlZ2FtbWFfbHV0KSB7Ci0JCWNvbnN0IHN0cnVj dCBkcm1fY29sb3JfbHV0ICpsdXQgPSBkZWdhbW1hX2x1dC0+ZGF0YTsKKwlJOTE1X1dSSVRFKFBS RUNfUEFMX0lOREVYKHBpcGUpLCBwcmVjX2luZGV4IHwKKwkJICAgUEFMX1BSRUNfQVVUT19JTkNS RU1FTlQpOwogCi0JCWZvciAoaSA9IDA7IGkgPCBsdXRfc2l6ZTsgaSsrKQotCQkJSTkxNV9XUklU RShQUkVDX1BBTF9EQVRBKHBpcGUpLCBpbGtfbHV0XzEwKCZsdXRbaV0pKTsKLQl9IGVsc2Ugewor CS8qCisJICogV2UgYWR2ZXJ0aXplIHRoZSBzcGxpdCBnYW1tYSBzaXplcy4gV2hlbiBub3QgdXNp bmcgc3BsaXQKKwkgKiBnYW1tYSB3ZSBqdXN0IGR1cGxpY2F0ZSBlYWNoIGVudHJ5LgorCSAqCisJ ICogVE9ETzogZXhwb3NlIHRoZSBmdWxsIExVVCB0byB1c2Vyc3BhY2UKKwkgKi8KKwlpZiAoZHVw bGljYXRlKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBsdXRfc2l6ZTsgaSsrKSB7Ci0JCQl1MzIgdiA9 IChpICogKCgxIDw8IDEwKSAtIDEpKSAvIChsdXRfc2l6ZSAtIDEpOwotCi0JCQlJOTE1X1dSSVRF KFBSRUNfUEFMX0RBVEEocGlwZSksCi0JCQkJICAgKHYgPDwgMjApIHwgKHYgPDwgMTApIHwgdik7 CisJCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlwZSksIGlsa19sdXRfMTAoJmx1dFtpXSkp OworCQkJSTkxNV9XUklURShQUkVDX1BBTF9EQVRBKHBpcGUpLCBpbGtfbHV0XzEwKCZsdXRbaV0p KTsKIAkJfQotCX0KLX0KLQotc3RhdGljIHZvaWQgYmR3X2xvYWRfZ2FtbWFfbHV0KGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCB1MzIgb2Zmc2V0KQotewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0 Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Ci0JdTMyIGksIGx1dF9zaXplID0gSU5URUxfSU5GTyhk ZXZfcHJpdiktPmNvbG9yLmdhbW1hX2x1dF9zaXplOwotCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+ cGlwZTsKLQotCVdBUk5fT04ob2Zmc2V0ICYgflBBTF9QUkVDX0lOREVYX1ZBTFVFX01BU0spOwot Ci0JSTkxNV9XUklURShQUkVDX1BBTF9JTkRFWChwaXBlKSwKLQkJICAgKG9mZnNldCA/IFBBTF9Q UkVDX1NQTElUX01PREUgOiAwKSB8Ci0JCSAgIFBBTF9QUkVDX0FVVE9fSU5DUkVNRU5UIHwKLQkJ ICAgb2Zmc2V0KTsKLQotCWlmIChnYW1tYV9sdXQpIHsKLQkJY29uc3Qgc3RydWN0IGRybV9jb2xv cl9sdXQgKmx1dCA9IGdhbW1hX2x1dC0+ZGF0YTsKLQorCX0gZWxzZSB7CiAJCWZvciAoaSA9IDA7 IGkgPCBsdXRfc2l6ZTsgaSsrKQogCQkJSTkxNV9XUklURShQUkVDX1BBTF9EQVRBKHBpcGUpLCBp bGtfbHV0XzEwKCZsdXRbaV0pKTsKLQotCQkvKiBQcm9ncmFtIHRoZSBtYXggcmVnaXN0ZXIgdG8g Y2xhbXAgdmFsdWVzID4gMS4wLiAqLwotCQlpID0gbHV0X3NpemUgLSAxOwotCQlJOTE1X1dSSVRF KFBSRUNfUEFMX0dDX01BWChwaXBlLCAwKSwKLQkJCSAgIGRybV9jb2xvcl9sdXRfZXh0cmFjdChs dXRbaV0ucmVkLCAxNikpOwotCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0dDX01BWChwaXBlLCAxKSwK LQkJCSAgIGRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbaV0uZ3JlZW4sIDE2KSk7Ci0JCUk5MTVf V1JJVEUoUFJFQ19QQUxfR0NfTUFYKHBpcGUsIDIpLAotCQkJICAgZHJtX2NvbG9yX2x1dF9leHRy YWN0KGx1dFtpXS5ibHVlLCAxNikpOwotCX0gZWxzZSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBsdXRf c2l6ZTsgaSsrKSB7Ci0JCQl1MzIgdiA9IChpICogKCgxIDw8IDEwKSAtIDEpKSAvIChsdXRfc2l6 ZSAtIDEpOwotCi0JCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0RBVEEocGlwZSksCi0JCQkJICAgKHYg PDwgMjApIHwgKHYgPDwgMTApIHwgdik7Ci0JCX0KLQotCQlJOTE1X1dSSVRFKFBSRUNfUEFMX0dD X01BWChwaXBlLCAwKSwgKDEgPDwgMTYpIC0gMSk7Ci0JCUk5MTVfV1JJVEUoUFJFQ19QQUxfR0Nf TUFYKHBpcGUsIDEpLCAoMSA8PCAxNikgLSAxKTsKLQkJSTkxNV9XUklURShQUkVDX1BBTF9HQ19N QVgocGlwZSwgMiksICgxIDw8IDE2KSAtIDEpOwogCX0KIAogCS8qCkBAIC01NDEsMTggKzUwMSw0 MyBAQCBzdGF0aWMgdm9pZCBiZHdfbG9hZF9nYW1tYV9sdXQoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsIHUzMiBvZgogCUk5MTVfV1JJVEUoUFJFQ19QQUxfSU5ERVgo cGlwZSksIDApOwogfQogCi0vKiBMb2FkcyB0aGUgcGFsZXR0ZS9nYW1tYSB1bml0IGZvciB0aGUg Q1JUQyBvbiBCcm9hZHdlbGwrLiAqLwotc3RhdGljIHZvaWQgYnJvYWR3ZWxsX2xvYWRfbHV0cyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3N0YXRpYyB2b2lkIGJk d19sb2FkX2x1dF8xMF9tYXgoc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJY29uc3Qgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOworCWNvbnN0IHN0 cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBibG9iLT5kYXRhOworCWludCBpID0gZHJtX2NvbG9y X2x1dF9zaXplKGJsb2IpIC0gMTsKKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKLQlp ZiAoY3J0Y19zdGF0ZV9pc19sZWdhY3lfZ2FtbWEoY3J0Y19zdGF0ZSkpIHsKKwkvKiBQcm9ncmFt IHRoZSBtYXggcmVnaXN0ZXIgdG8gY2xhbXAgdmFsdWVzID4gMS4wLiAqLworCUk5MTVfV1JJVEUo UFJFQ19QQUxfR0NfTUFYKHBpcGUsIDApLAorCQkgICBkcm1fY29sb3JfbHV0X2V4dHJhY3QobHV0 W2ldLnJlZCwgMTYpKTsKKwlJOTE1X1dSSVRFKFBSRUNfUEFMX0dDX01BWChwaXBlLCAxKSwKKwkJ ICAgZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1dFtpXS5ncmVlbiwgMTYpKTsKKwlJOTE1X1dSSVRF KFBSRUNfUEFMX0dDX01BWChwaXBlLCAyKSwKKwkJICAgZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1 dFtpXS5ibHVlLCAxNikpOworfQorCitzdGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQoreworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCWNvbnN0IHN0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1t YV9sdXQ7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNy dGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQ7CisKKwlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9k ZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJVCkgewogCQlpOXh4X2xvYWRfbHV0cyhjcnRjX3N0YXRl KTsKKwl9IGVsc2UgaWYgKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RF X1NQTElUKSB7CisJCWJkd19sb2FkX2x1dF8xMChjcnRjLCBkZWdhbW1hX2x1dCwgUEFMX1BSRUNf U1BMSVRfTU9ERSB8CisJCQkJUEFMX1BSRUNfSU5ERVhfVkFMVUUoMCksIGZhbHNlKTsKKwkJYmR3 X2xvYWRfbHV0XzEwKGNydGMsIGdhbW1hX2x1dCwgUEFMX1BSRUNfU1BMSVRfTU9ERSB8CisJCQkJ UEFMX1BSRUNfSU5ERVhfVkFMVUUoNTEyKSwgIGZhbHNlKTsKKwkJYmR3X2xvYWRfbHV0XzEwX21h eChjcnRjLCBnYW1tYV9sdXQpOwogCX0gZWxzZSB7Ci0JCWJkd19sb2FkX2RlZ2FtbWFfbHV0KGNy dGNfc3RhdGUpOwotCQliZHdfbG9hZF9nYW1tYV9sdXQoY3J0Y19zdGF0ZSwKLQkJCQkgICBJTlRF TF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZSk7CisJCWNvbnN0IHN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYiA9IGdhbW1hX2x1dCA/OiBkZWdhbW1hX2x1dDsKKwor CQliZHdfbG9hZF9sdXRfMTAoY3J0YywgYmxvYiwKKwkJCQlQQUxfUFJFQ19JTkRFWF9WQUxVRSgw KSwgdHJ1ZSk7CisJCWJkd19sb2FkX2x1dF8xMF9tYXgoY3J0YywgYmxvYik7CiAJfQogfQogCkBA IC02MjQsNiArNjA5LDkgQEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfZGVnYW1tYV9sdXRfbGluZWFy KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXQKIAogc3RhdGljIHZvaWQg Z2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3Rh dGUtPmJhc2UuZ2FtbWFfbHV0OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCiAJLyoKIAkgKiBPbiBHTEsrIGJvdGggcGlw ZSBDU0MgYW5kIGRlZ2FtbWEgTFVUIGFyZSBjb250cm9sbGVkCiAJICogYnkgY3NjX2VuYWJsZS4g SGVuY2UgZm9yIHRoZSBjYXNlcyB3aGVyZSB0aGUgQ1NDIGlzCkBAIC02MzcsMjIgKzYyNSwyOCBA QCBzdGF0aWMgdm9pZCBnbGtfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogCWVsc2UKIAkJZ2xrX2xvYWRfZGVnYW1tYV9sdXRfbGluZWFyKGNydGNf c3RhdGUpOwogCi0JaWYgKGNydGNfc3RhdGVfaXNfbGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKQor CWlmIChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV84QklUKSB7CiAJ CWk5eHhfbG9hZF9sdXRzKGNydGNfc3RhdGUpOwotCWVsc2UKLQkJYmR3X2xvYWRfZ2FtbWFfbHV0 KGNydGNfc3RhdGUsIDApOworCX0gZWxzZSB7CisJCWJkd19sb2FkX2x1dF8xMChjcnRjLCBnYW1t YV9sdXQsIFBBTF9QUkVDX0lOREVYX1ZBTFVFKDApLCBmYWxzZSk7CisJCWJkd19sb2FkX2x1dF8x MF9tYXgoY3J0YywgZ2FtbWFfbHV0KTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGljbF9sb2FkX2x1 dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CisJY29uc3Qg c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmdh bW1hX2x1dDsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwogCWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KQog CQlnbGtfbG9hZF9kZWdhbW1hX2x1dChjcnRjX3N0YXRlKTsKIAotCWlmIChjcnRjX3N0YXRlX2lz X2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkKKwlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9 PSBHQU1NQV9NT0RFX01PREVfOEJJVCkgewogCQlpOXh4X2xvYWRfbHV0cyhjcnRjX3N0YXRlKTsK LQllbHNlCi0JCS8qIFRvRG86IEFkZCBzdXBwb3J0IGZvciBtdWx0aSBzZWdtZW50IGdhbW1hIExV VCAqLwotCQliZHdfbG9hZF9nYW1tYV9sdXQoY3J0Y19zdGF0ZSwgMCk7CisJfSBlbHNlIHsKKwkJ YmR3X2xvYWRfbHV0XzEwKGNydGMsIGdhbW1hX2x1dCwgUEFMX1BSRUNfSU5ERVhfVkFMVUUoMCks IGZhbHNlKTsKKwkJYmR3X2xvYWRfbHV0XzEwX21heChjcnRjLCBnYW1tYV9sdXQpOworCX0KIH0K IAogc3RhdGljIHZvaWQgY2hlcnJ5dmlld19sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCkBAIC05MzcsOCArOTMxLDI1IEBAIHN0YXRpYyB1MzIgYmR3 X2dhbW1hX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJ aWYgKCFjcnRjX3N0YXRlLT5nYW1tYV9lbmFibGUgfHwKIAkgICAgY3J0Y19zdGF0ZV9pc19sZWdh Y3lfZ2FtbWEoY3J0Y19zdGF0ZSkpCiAJCXJldHVybiBHQU1NQV9NT0RFX01PREVfOEJJVDsKLQll bHNlCisJZWxzZSBpZiAoY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgJiYKKwkJIGNydGNfc3Rh dGUtPmJhc2UuZGVnYW1tYV9sdXQpCiAJCXJldHVybiBHQU1NQV9NT0RFX01PREVfU1BMSVQ7CisJ ZWxzZQorCQlyZXR1cm4gR0FNTUFfTU9ERV9NT0RFXzEwQklUOworfQorCitzdGF0aWMgdTMyIGJk d19jc2NfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sK KwkvKgorCSAqIENTQyBjb21lcyBhZnRlciB0aGUgTFVUIGluIGRlZ2FtbWEsIFJHQi0+WUNiQ3Is CisJICogYW5kIFJHQiBmdWxsLT5saW1pdGVkIHJhbmdlIG1vZGUuCisJICovCisJaWYgKGNydGNf c3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQgfHwKKwkgICAgY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1h dCAhPSBJTlRFTF9PVVRQVVRfRk9STUFUX1JHQiB8fAorCSAgICBjcnRjX3N0YXRlLT5saW1pdGVk X2NvbG9yX3JhbmdlKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBDU0NfUE9TSVRJT05fQkVGT1JF X0dBTU1BOwogfQogCiBzdGF0aWMgaW50IGJkd19jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKQEAgLTk2MCw3ICs5NzEsNyBAQCBzdGF0aWMgaW50IGJkd19j b2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogCWNydGNf c3RhdGUtPmdhbW1hX21vZGUgPSBiZHdfZ2FtbWFfbW9kZShjcnRjX3N0YXRlKTsKIAotCWNydGNf c3RhdGUtPmNzY19tb2RlID0gMDsKKwljcnRjX3N0YXRlLT5jc2NfbW9kZSA9IGJkd19jc2NfbW9k ZShjcnRjX3N0YXRlKTsKIAogCXJldCA9IGludGVsX2NvbG9yX2FkZF9hZmZlY3RlZF9wbGFuZXMo Y3J0Y19zdGF0ZSk7CiAJaWYgKHJldCkKQEAgLTEwOTQsNyArMTEwNSw3IEBAIHZvaWQgaW50ZWxf Y29sb3JfaW5pdChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkJZWxzZSBpZiAoSVNfQ0FOTk9O TEFLRShkZXZfcHJpdikgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCiAJCQlkZXZfcHJpdi0+ ZGlzcGxheS5sb2FkX2x1dHMgPSBnbGtfbG9hZF9sdXRzOwogCQllbHNlIGlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDkgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKLQkJCWRldl9wcml2LT5k aXNwbGF5LmxvYWRfbHV0cyA9IGJyb2Fkd2VsbF9sb2FkX2x1dHM7CisJCQlkZXZfcHJpdi0+ZGlz cGxheS5sb2FkX2x1dHMgPSBiZHdfbG9hZF9sdXRzOwogCQllbHNlCiAJCQlkZXZfcHJpdi0+ZGlz cGxheS5sb2FkX2x1dHMgPSBpOXh4X2xvYWRfbHV0czsKIAl9Ci0tIAoyLjE5LjIKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==