From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH] drm/i915: Add plane alpha blending support, v2. Date: Wed, 15 Aug 2018 12:34:05 +0200 Message-ID: <20180815103405.22679-1-maarten.lankhorst@linux.intel.com> References: <1534314933-23182-1-git-send-email-lowry.li@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1534314933-23182-1-git-send-email-lowry.li@arm.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 Cc: Lowry Li , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QWRkIHBsYW5lIGFscGhhIGJsZW5kaW5nIHN1cHBvcnQgd2l0aCB0aGUgZGlmZmVyZW50IGJsZW5k IG1vZGVzLgpUaGlzIGhhcyBiZWVuIHRlc3RlZCBvbiBhIGljbCB0byBzaG93IHRoZSBjb3JyZWN0 IHJlc3VsdHMsCm9uIGVhcmxpZXIgcGxhdGZvcm1zIHNtYWxsIHJvdW5kaW5nIGVycm9ycyBjYXVz ZSBpc3N1ZXMuIEJ1dCB0aGlzCmFscmVhZHkgaGFwcGVucyBjYXNlIHdpdGggZnVsbHkgdHJhbnNw YXJhbnQgb3IgZnVsbHkgb3BhcXVlIFJHQjg4ODgKZmIncy4KClRoZSByZWNvbW1lbmRlZCBIVyB3 b3JrYXJvdW5kIGlzIHRvIGRpc2FibGUgYWxwaGEgYmxlbmRpbmcgd2hlbiB0aGUKcGxhbmUgYWxw aGEgaXMgMCAodHJhbnNwYXJhbnQsIGhpZGUgcGxhbmUpIG9yIDB4ZmYgKG9wYXF1ZSwgZGlzYWJs ZSBibGVuZGluZykuClRoaXMgaXMgZWFzeSB0byBpbXBsZW1lbnQgb24gYW55IHBsYXRmb3JtLCBz byBqdXN0IGRvIHRoYXQuCgpUaGUgdGVzdHMgZm9yIHVzZXJzcGFjZSBhcmUgYWxzbyBhdmFpbGFi bGUsIGFuZCBwYXNzIG9uIGdlbjExLgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBDaGFuZ2UgbWlzdGFr ZW4gPCAweGZmMCB0byAweGZmMDAuCi0gT25seSBzZXQgUExBTkVfS0VZTVNLX0FMUEhBX0VOQUJM RSB3aGVuIHBsYW5lIGFscGhhIDwgMHhmZjAwLCBpZ25vcmUgYmxlbmQgbW9kZS4KLSBSZXdvcmsg ZGlzYWJsaW5nIEZCQyB3aGVuIHBlciBwaXhlbCBhbHBoYSBpcyB1c2VkLgoKU2lnbmVkLW9mZi1i eTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgMiArCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgfCA1OCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAgfCAgOCArKysrCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAyMyArKysrKysrKysrLQogNSBmaWxlcyBjaGFuZ2Vk LCA3MyBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAppbmRleCAzZmE1NmI5NjBlZjIuLjI5Zjc1ZGE1ZmE4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCkBAIC01NDUsNiArNTQ1LDggQEAgc3RydWN0IGludGVsX2ZiYyB7CiAJCQlpbnQgYWRqdXN0 ZWRfeTsKIAogCQkJaW50IHk7CisKKwkJCXVpbnQxNl90IHBpeGVsX2JsZW5kX21vZGU7CiAJCX0g cGxhbmU7CiAKIAkJc3RydWN0IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDBjOWYwM2Rk YTU2OS4uOTNhMWQ4N2NkZWIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTY1NjEsOCAr NjU2MSwxMCBAQCBlbnVtIHsKICNkZWZpbmUgX1BMQU5FX0tFWVZBTF8yX0EJCQkweDcwMjk0CiAj ZGVmaW5lIF9QTEFORV9LRVlNU0tfMV9BCQkJMHg3MDE5OAogI2RlZmluZSBfUExBTkVfS0VZTVNL XzJfQQkJCTB4NzAyOTgKKyNkZWZpbmUgIFBMQU5FX0tFWU1TS19BTFBIQV9FTkFCTEUJCSgxIDw8 IDMxKQogI2RlZmluZSBfUExBTkVfS0VZTUFYXzFfQQkJCTB4NzAxYTAKICNkZWZpbmUgX1BMQU5F X0tFWU1BWF8yX0EJCQkweDcwMmEwCisjZGVmaW5lICBQTEFORV9LRVlNQVhfQUxQSEFfU0hJRlQJ CTI0CiAjZGVmaW5lIF9QTEFORV9BVVhfRElTVF8xX0EJCQkweDcwMWMwCiAjZGVmaW5lIF9QTEFO RV9BVVhfRElTVF8yX0EJCQkweDcwMmMwCiAjZGVmaW5lIF9QTEFORV9BVVhfT0ZGU0VUXzFfQQkJ CTB4NzAxYzQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBhMDM0NWU3ZDNj MmIuLmFlZGFkMzY3NGIwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAt MzE2Nyw2ICszMTY3LDEyIEBAIGludCBza2xfY2hlY2tfcGxhbmVfc3VyZmFjZShjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQog CisJLyogSFcgb25seSBoYXMgOCBiaXRzIHBpeGVsIHByZWNpc2lvbiwgZGlzYWJsZSBwbGFuZSBp ZiBpbnZpc2libGUgKi8KKwlpZiAoIShwbGFuZV9zdGF0ZS0+YmFzZS5hbHBoYSA+PiA4KSkgewor CQlwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlID0gZmFsc2U7CisJCXJldHVybiAwOworCX0KKwog CWlmICghcGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSkKIAkJcmV0dXJuIDA7CiAKQEAgLTM1MTIs MzAgKzM1MTgsMzkgQEAgc3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX2Zvcm1hdCh1aW50MzJfdCBw aXhlbF9mb3JtYXQpCiAJcmV0dXJuIDA7CiB9CiAKLS8qCi0gKiBYWFg6IEZvciBBUkJHL0FCR1Ig Zm9ybWF0cyB3ZSBkZWZhdWx0IHRvIGV4cGVjdGluZyBzY2Fub3V0IGJ1ZmZlcnMKLSAqIHRvIGJl IGFscmVhZHkgcHJlLW11bHRpcGxpZWQuIFdlIG5lZWQgdG8gYWRkIGEga25vYiAob3IgYSBkaWZm ZXJlbnQKLSAqIERSTV9GT1JNQVQpIGZvciB1c2VyLXNwYWNlIHRvIGNvbmZpZ3VyZSB0aGF0Lgot ICovCi1zdGF0aWMgdTMyIHNrbF9wbGFuZV9jdGxfYWxwaGEodWludDMyX3QgcGl4ZWxfZm9ybWF0 KQorc3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX2FscGhhKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0Jc3dpdGNoIChwaXhlbF9mb3JtYXQpIHsKLQljYXNl IERSTV9GT1JNQVRfQUJHUjg4ODg6Ci0JY2FzZSBEUk1fRk9STUFUX0FSR0I4ODg4OgorCWlmICgh cGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+aGFzX2FscGhhKQorCQlyZXR1cm4gUExBTkVf Q1RMX0FMUEhBX0RJU0FCTEU7CisKKwlzd2l0Y2ggKHBsYW5lX3N0YXRlLT5iYXNlLnBpeGVsX2Js ZW5kX21vZGUpIHsKKwljYXNlIERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkU6CisJCXJldHVybiBQ TEFORV9DVExfQUxQSEFfRElTQUJMRTsKKwljYXNlIERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJOgog CQlyZXR1cm4gUExBTkVfQ1RMX0FMUEhBX1NXX1BSRU1VTFRJUExZOworCWNhc2UgRFJNX01PREVf QkxFTkRfQ09WRVJBR0U6CisJCXJldHVybiBQTEFORV9DVExfQUxQSEFfSFdfUFJFTVVMVElQTFk7 CiAJZGVmYXVsdDoKLQkJcmV0dXJuIFBMQU5FX0NUTF9BTFBIQV9ESVNBQkxFOworCQlNSVNTSU5H X0NBU0UocGxhbmVfc3RhdGUtPmJhc2UucGl4ZWxfYmxlbmRfbW9kZSk7CisJCXJldHVybiAwOwog CX0KIH0KIAotc3RhdGljIHUzMiBnbGtfcGxhbmVfY29sb3JfY3RsX2FscGhhKHVpbnQzMl90IHBp eGVsX2Zvcm1hdCkKK3N0YXRpYyB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bF9hbHBoYShjb25zdCBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCXN3aXRjaCAocGl4ZWxf Zm9ybWF0KSB7Ci0JY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgotCWNhc2UgRFJNX0ZPUk1BVF9B UkdCODg4ODoKKwlpZiAoIXBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmhhc19hbHBoYSkK KwkJcmV0dXJuIFBMQU5FX0NPTE9SX0FMUEhBX0RJU0FCTEU7CisKKwlzd2l0Y2ggKHBsYW5lX3N0 YXRlLT5iYXNlLnBpeGVsX2JsZW5kX21vZGUpIHsKKwljYXNlIERSTV9NT0RFX0JMRU5EX1BJWEVM X05PTkU6CisJCXJldHVybiBQTEFORV9DT0xPUl9BTFBIQV9ESVNBQkxFOworCWNhc2UgRFJNX01P REVfQkxFTkRfUFJFTVVMVEk6CiAJCXJldHVybiBQTEFORV9DT0xPUl9BTFBIQV9TV19QUkVNVUxU SVBMWTsKKwljYXNlIERSTV9NT0RFX0JMRU5EX0NPVkVSQUdFOgorCQlyZXR1cm4gUExBTkVfQ09M T1JfQUxQSEFfSFdfUFJFTVVMVElQTFk7CiAJZGVmYXVsdDoKLQkJcmV0dXJuIFBMQU5FX0NPTE9S X0FMUEhBX0RJU0FCTEU7CisJCU1JU1NJTkdfQ0FTRShwbGFuZV9zdGF0ZS0+YmFzZS5waXhlbF9i bGVuZF9tb2RlKTsKKwkJcmV0dXJuIDA7CiAJfQogfQogCkBAIC0zNjExLDcgKzM2MjYsNyBAQCB1 MzIgc2tsX3BsYW5lX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAlwbGFuZV9jdGwgPSBQTEFORV9DVExfRU5BQkxFOwogCiAJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPCAxMCAmJiAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHsKLQkJcGxhbmVfY3RsIHw9 IHNrbF9wbGFuZV9jdGxfYWxwaGEoZmItPmZvcm1hdC0+Zm9ybWF0KTsKKwkJcGxhbmVfY3RsIHw9 IHNrbF9wbGFuZV9jdGxfYWxwaGEocGxhbmVfc3RhdGUpOwogCQlwbGFuZV9jdGwgfD0KIAkJCVBM QU5FX0NUTF9QSVBFX0dBTU1BX0VOQUJMRSB8CiAJCQlQTEFORV9DVExfUElQRV9DU0NfRU5BQkxF IHwKQEAgLTM2NTMsNyArMzY2OCw3IEBAIHUzMiBnbGtfcGxhbmVfY29sb3JfY3RsKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlwbGFuZV9jb2xvcl9jdGwgfD0g UExBTkVfQ09MT1JfUElQRV9DU0NfRU5BQkxFOwogCX0KIAlwbGFuZV9jb2xvcl9jdGwgfD0gUExB TkVfQ09MT1JfUExBTkVfR0FNTUFfRElTQUJMRTsKLQlwbGFuZV9jb2xvcl9jdGwgfD0gZ2xrX3Bs YW5lX2NvbG9yX2N0bF9hbHBoYShmYi0+Zm9ybWF0LT5mb3JtYXQpOworCXBsYW5lX2NvbG9yX2N0 bCB8PSBnbGtfcGxhbmVfY29sb3JfY3RsX2FscGhhKHBsYW5lX3N0YXRlKTsKIAogCWlmIChmYi0+ Zm9ybWF0LT5pc195dXYpIHsKIAkJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX2VuY29kaW5n ID09IERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkKQEAgLTEzNzkyLDcgKzEzODA3LDcgQEAgaW50ZWxf cHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBl bnVtIHBpcGUgcGlwZSkKIAkJCQkJCSAgIERSTV9NT0RFX1JPVEFURV8wLAogCQkJCQkJICAgc3Vw cG9ydGVkX3JvdGF0aW9ucyk7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQorCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKIAkJZHJtX3BsYW5lX2NyZWF0ZV9jb2xvcl9w cm9wZXJ0aWVzKCZwcmltYXJ5LT5iYXNlLAogCQkJCQkJICBCSVQoRFJNX0NPTE9SX1lDQkNSX0JU NjAxKSB8CiAJCQkJCQkgIEJJVChEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkpLApAQCAtMTM4MDEsNiAr MTM4MTYsMTMgQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKIAkJCQkJCSAgRFJNX0NPTE9SX1lDQkNS X0JUNzA5LAogCQkJCQkJICBEUk1fQ09MT1JfWUNCQ1JfTElNSVRFRF9SQU5HRSk7CiAKKwkJZHJt X3BsYW5lX2NyZWF0ZV9hbHBoYV9wcm9wZXJ0eSgmcHJpbWFyeS0+YmFzZSk7CisJCWRybV9wbGFu ZV9jcmVhdGVfYmxlbmRfbW9kZV9wcm9wZXJ0eSgmcHJpbWFyeS0+YmFzZSwKKwkJCQkJCSAgICAg QklUKERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkUpIHwKKwkJCQkJCSAgICAgQklUKERSTV9NT0RF X0JMRU5EX1BSRU1VTFRJKSB8CisJCQkJCQkgICAgIEJJVChEUk1fTU9ERV9CTEVORF9DT1ZFUkFH RSkpOworCX0KKwogCWRybV9wbGFuZV9oZWxwZXJfYWRkKCZwcmltYXJ5LT5iYXNlLCAmaW50ZWxf cGxhbmVfaGVscGVyX2Z1bmNzKTsKIAogCXJldHVybiBwcmltYXJ5OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmMuYwppbmRleCA3NWE2YmJmM2FkYTEuLjQyYTQ5ZmUzNGJhMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJjLmMKQEAgLTY3NCw2ICs2NzQsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfdXBk YXRlX3N0YXRlX2NhY2hlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWNhY2hlLT5wbGFuZS5h ZGp1c3RlZF95ID0gcGxhbmVfc3RhdGUtPm1haW4ueTsKIAljYWNoZS0+cGxhbmUueSA9IHBsYW5l X3N0YXRlLT5iYXNlLnNyYy55MSA+PiAxNjsKIAorCWNhY2hlLT5wbGFuZS5waXhlbF9ibGVuZF9t b2RlID0gcGxhbmVfc3RhdGUtPmJhc2UucGl4ZWxfYmxlbmRfbW9kZTsKKwogCWlmICghY2FjaGUt PnBsYW5lLnZpc2libGUpCiAJCXJldHVybjsKIApAQCAtNzQ4LDYgKzc1MCwxMiBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9mYmNfY2FuX2FjdGl2YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCQly ZXR1cm4gZmFsc2U7CiAJfQogCisJaWYgKGNhY2hlLT5wbGFuZS5waXhlbF9ibGVuZF9tb2RlICE9 IERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkUgJiYKKwkgICAgY2FjaGUtPmZiLmZvcm1hdC0+aGFz X2FscGhhKSB7CisJCWZiYy0+bm9fZmJjX3JlYXNvbiA9ICJwZXItcGl4ZWwgYWxwaGEgYmxlbmRp bmcgaXMgaW5jb21wYXRpYmxlIHdpdGggRkJDIjsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwogCS8q IFdhRmJjRXhjZWVkQ2RDbG9ja1RocmVzaG9sZDpoc3csYmR3ICovCiAJaWYgKChJU19IQVNXRUxM KGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSAmJgogCSAgICBjYWNoZS0+Y3J0 Yy5oc3dfYmR3X3BpeGVsX3JhdGUgPj0gZGV2X3ByaXYtPmNkY2xrLmh3LmNkY2xrICogOTUgLyAx MDApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggZjcwMjZlODg3ZmE5Li40 NjM5ZWY5YmRlOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCkBAIC0yNTIsNiAr MjUyLDcgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCXVp bnQzMl90IHNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5iYXNlLnNyYykgPj4g MTY7CiAJdWludDMyX3Qgc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5iYXNl LnNyYykgPj4gMTY7CiAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKwl1MzIga2V5bXNrID0gMCwg a2V5bWF4ID0gMDsKIAogCS8qIFNpemVzIGFyZSAwIGJhc2VkICovCiAJc3JjX3ctLTsKQEAgLTI2 NywxMCArMjY4LDE5IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZSwKIAogCWlmIChrZXktPmZsYWdzKSB7CiAJCUk5MTVfV1JJVEVfRlcoUExBTkVfS0VZVkFMKHBp cGUsIHBsYW5lX2lkKSwga2V5LT5taW5fdmFsdWUpOwotCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0tF WU1BWChwaXBlLCBwbGFuZV9pZCksIGtleS0+bWF4X3ZhbHVlKTsKLQkJSTkxNV9XUklURV9GVyhQ TEFORV9LRVlNU0socGlwZSwgcGxhbmVfaWQpLCBrZXktPmNoYW5uZWxfbWFzayk7CisKKwkJa2V5 bWF4IHw9IGtleS0+bWF4X3ZhbHVlICYgMHhmZmZmZmY7CisJCWtleW1zayB8PSBrZXktPmNoYW5u ZWxfbWFzayAmIDB4M2ZmZmZmZjsKIAl9CiAKKwlrZXltYXggfD0gKHBsYW5lX3N0YXRlLT5iYXNl LmFscGhhID4+IDgpIDw8IFBMQU5FX0tFWU1BWF9BTFBIQV9TSElGVDsKKworCWlmIChwbGFuZV9z dGF0ZS0+YmFzZS5hbHBoYSA8IDB4ZmYwMCkKKwkJa2V5bXNrIHw9IFBMQU5FX0tFWU1TS19BTFBI QV9FTkFCTEU7CisKKwlJOTE1X1dSSVRFX0ZXKFBMQU5FX0tFWU1BWChwaXBlLCBwbGFuZV9pZCks IGtleW1heCk7CisJSTkxNV9XUklURV9GVyhQTEFORV9LRVlNU0socGlwZSwgcGxhbmVfaWQpLCBr ZXltc2spOworCiAJSTkxNV9XUklURV9GVyhQTEFORV9PRkZTRVQocGlwZSwgcGxhbmVfaWQpLCAo eSA8PCAxNikgfCB4KTsKIAlJOTE1X1dSSVRFX0ZXKFBMQU5FX1NUUklERShwaXBlLCBwbGFuZV9p ZCksIHN0cmlkZSk7CiAJSTkxNV9XUklURV9GVyhQTEFORV9TSVpFKHBpcGUsIHBsYW5lX2lkKSwg KHNyY19oIDw8IDE2KSB8IHNyY193KTsKQEAgLTE2NTAsNiArMTY2MCwxNSBAQCBpbnRlbF9zcHJp dGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJ ICBEUk1fQ09MT1JfWUNCQ1JfQlQ3MDksCiAJCQkJCSAgRFJNX0NPTE9SX1lDQkNSX0xJTUlURURf UkFOR0UpOwogCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgeworCQlkcm1fcGxhbmVf Y3JlYXRlX2FscGhhX3Byb3BlcnR5KCZpbnRlbF9wbGFuZS0+YmFzZSk7CisKKwkJZHJtX3BsYW5l X2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KCZpbnRlbF9wbGFuZS0+YmFzZSwKKwkJCQkJCSAg ICAgQklUKERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkUpIHwKKwkJCQkJCSAgICAgQklUKERSTV9N T0RFX0JMRU5EX1BSRU1VTFRJKSB8CisJCQkJCQkgICAgIEJJVChEUk1fTU9ERV9CTEVORF9DT1ZF UkFHRSkpOworCX0KKwogCWRybV9wbGFuZV9oZWxwZXJfYWRkKCZpbnRlbF9wbGFuZS0+YmFzZSwg JmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7CiAKIAlyZXR1cm4gaW50ZWxfcGxhbmU7Ci0tIAoy LjE4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=