From mboxrd@z Thu Jan 1 00:00:00 1970 From: robert.foss@collabora.com Subject: [PATCH i-g-t v2 6/6] kms_vblank: Switch from using crtc0 statically to explicitly setting mode. Date: Fri, 22 Apr 2016 09:54:56 -0400 Message-ID: <1461333296-9226-7-git-send-email-robert.foss@collabora.com> References: <1461333296-9226-1-git-send-email-robert.foss@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7207A6EEF1 for ; Fri, 22 Apr 2016 13:55:06 +0000 (UTC) In-Reply-To: <1461333296-9226-1-git-send-email-robert.foss@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: daniel.vetter@intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGNvbGxhYm9yYS5jb20+CgpQcmV2aW91c2x5 IGNydGMwIHdhcyBzdGF0aWNhbGx5IHVzZWQgZm9yIFZCTEFOSyB0ZXN0cywgYnV0CnRoYXQgYXNz dW1wdGlvbiBpcyBub3QgdmFsaWQgZm9yIHRoZSBWQzQgcGxhdGZvcm0uCkluc3RlYWQgd2UncmUg bm93IGV4cGxpY2l0bHkgc2V0dGluZyB0aGUgbW9kZS4KCkFsc28gYWRkIHN1cHBvcnQgZm9yIHRl c3RpbmcgYWxsIGNvbm5lY3RlZCBjb25uZWN0b3JzIGR1cmluZwp0aGUgc2FtZSB0ZXN0LgoKU2ln bmVkLW9mZi1ieTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGNvbGxhYm9yYS5jb20+Ci0tLQog dGVzdHMva21zX3ZibGFuay5jIHwgMTc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMoKyks IDM5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc192YmxhbmsuYyBiL3Rlc3Rz L2ttc192YmxhbmsuYwppbmRleCA0MGFiNmZkLi45NzBmZWZlIDEwMDY0NAotLS0gYS90ZXN0cy9r bXNfdmJsYW5rLmMKKysrIGIvdGVzdHMva21zX3ZibGFuay5jCkBAIC00NCw2ICs0NCwxNCBAQAog CiBJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBzcGVlZCBvZiBXYWl0VmJsYW5rLiIpOwogCit0 eXBlZGVmIHN0cnVjdCB7CisJaW50IGRybV9mZDsKKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7CisJ c3RydWN0IGlndF9mYiBwcmltYXJ5X2ZiOworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWVudW0g cGlwZSBwaXBlOworfSBkYXRhX3Q7CisKIHN0YXRpYyBkb3VibGUgZWxhcHNlZChjb25zdCBzdHJ1 Y3QgdGltZXNwZWMgKnN0YXJ0LAogCQkgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKmVuZCwK IAkJICAgICAgaW50IGxvb3ApCkBAIC01MSw3NSArNTksMTY0IEBAIHN0YXRpYyBkb3VibGUgZWxh cHNlZChjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnN0YXJ0LAogCXJldHVybiAoMWU2KihlbmQtPnR2 X3NlYyAtIHN0YXJ0LT50dl9zZWMpICsgKGVuZC0+dHZfbnNlYyAtIHN0YXJ0LT50dl9uc2VjKS8x MDAwKS9sb29wOwogfQogCi1zdGF0aWMgYm9vbCBjcnRjMF9hY3RpdmUoaW50IGZkKQorc3RhdGlj IHVpbnQzMl90IGNydGNfaWRfdG9fZmxhZyh1aW50MzJfdCBjcnRjX2lkKQogewotCXVuaW9uIGRy bV93YWl0X3ZibGFuayB2Ymw7CisJaWYgKGNydGNfaWQgPT0gMCkKKwkJcmV0dXJuIDA7CisJZWxz ZSBpZiAoY3J0Y19pZCA9PSAxKQorCQlyZXR1cm4gMSB8IF9EUk1fVkJMQU5LX1NFQ09OREFSWTsK KwllbHNlCisJCXJldHVybiBjcnRjX2lkIDw8IDE7Cit9CiAKLQltZW1zZXQoJnZibCwgMCwgc2l6 ZW9mKHZibCkpOwotCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJMQU5LX1JFTEFUSVZFOwotCXJl dHVybiBkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCAmdmJsKSA9PSAwOworc3Rh dGljIGJvb2wgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQp Cit7CisJZHJtTW9kZU1vZGVJbmZvICptb2RlOworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAm ZGF0YS0+ZGlzcGxheTsKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKworCS8qIHNlbGVjdCB0aGUg cGlwZSB3ZSB3YW50IHRvIHVzZSAqLworCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBkYXRh LT5waXBlKTsKKwlpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7CisKKwlpZiAoIW91dHB1dC0+ dmFsaWQpIHsKKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfQU5ZKTsKKwkJaWd0 X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyogY3Jl YXRlIGFuZCBzZXQgdGhlIHByaW1hcnkgcGxhbmUgZmIgKi8KKwltb2RlID0gaWd0X291dHB1dF9n ZXRfbW9kZShvdXRwdXQpOworCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLCBtb2Rl LT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksCisJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwK KwkJCSAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAorCQkJICAgIDAuMCwgMC4wLCAwLjAs CisJCQkgICAgJmRhdGEtPnByaW1hcnlfZmIpOworCisJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0 X3BsYW5lKG91dHB1dCwgSUdUX1BMQU5FX1BSSU1BUlkpOworCWlndF9wbGFuZV9zZXRfZmIocHJp bWFyeSwgJmRhdGEtPnByaW1hcnlfZmIpOworCisJaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkp OworCisJaWd0X3dhaXRfZm9yX3ZibGFuayhkYXRhLT5kcm1fZmQsIGRhdGEtPnBpcGUpOworCisJ cmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFudXBfY3J0YyhkYXRhX3QgKmRhdGEs IGlndF9vdXRwdXRfdCAqb3V0cHV0KQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0 YS0+ZGlzcGxheTsKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKworCWlndF9yZW1vdmVfZmIoZGF0 YS0+ZHJtX2ZkLCAmZGF0YS0+cHJpbWFyeV9mYik7CisKKwlwcmltYXJ5ID0gaWd0X291dHB1dF9n ZXRfcGxhbmUob3V0cHV0LCBJR1RfUExBTkVfUFJJTUFSWSk7CisJaWd0X3BsYW5lX3NldF9mYihw cmltYXJ5LCBOVUxMKTsKKworCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7 CisJaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkpOwogfQogCi1zdGF0aWMgdm9pZCBhY2N1cmFj eShpbnQgZmQpCitzdGF0aWMgdm9pZCBydW5fdGVzdChkYXRhX3QgKmRhdGEsIHZvaWQgKCp0ZXN0 ZnVuYykoZGF0YV90ICosIGJvb2wpLCBib29sIGJvb2xlYW4pCit7CisJaWd0X2Rpc3BsYXlfdCAq ZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWVudW0g cGlwZSBwOworCWludCB2YWxpZF90ZXN0cyA9IDA7CisKKwlmb3JfZWFjaF9jb25uZWN0ZWRfb3V0 cHV0KGRpc3BsYXksIG91dHB1dCkgeworCQlmb3JfZWFjaF9waXBlKGRpc3BsYXksIHApIHsKKwkJ CWRhdGEtPnBpcGUgPSBwOworCisJCQlpZiAoIXByZXBhcmVfY3J0YyhkYXRhLCBvdXRwdXQpKQor CQkJCWNvbnRpbnVlOworCisJCQl2YWxpZF90ZXN0cysrOworCisJCQlpZ3RfaW5mbygiQmVnaW5u aW5nICVzIG9uIHBpcGUgJXMsIGNvbm5lY3RvciAlc1xuIiwKKwkJCQkgaWd0X3N1YnRlc3RfbmFt ZSgpLAorCQkJCSBrbXN0ZXN0X3BpcGVfbmFtZShkYXRhLT5waXBlKSwKKwkJCQkgaWd0X291dHB1 dF9uYW1lKG91dHB1dCkpOworCisJCQl0ZXN0ZnVuYyhkYXRhLCBib29sZWFuKTsKKworCQkJaWd0 X2luZm8oIlxuJXMgb24gcGlwZSAlcywgY29ubmVjdG9yICVzOiBQQVNTRURcblxuIiwKKwkJCQkg aWd0X3N1YnRlc3RfbmFtZSgpLAorCQkJCSBrbXN0ZXN0X3BpcGVfbmFtZShkYXRhLT5waXBlKSwK KwkJCQkgaWd0X291dHB1dF9uYW1lKG91dHB1dCkpOworCisJCQkvKiBjbGVhbnVwIHdoYXQgcHJl cGFyZV9jcnRjKCkgaGFzIGRvbmUgKi8KKwkJCWNsZWFudXBfY3J0YyhkYXRhLCBvdXRwdXQpOwor CQl9CisJfQorCisJaWd0X3JlcXVpcmVfZih2YWxpZF90ZXN0cywgIm5vIHZhbGlkIGNydGMvY29u bmVjdG9yIGNvbWJpbmF0aW9ucyBmb3VuZFxuIik7Cit9CisKK3N0YXRpYyB2b2lkIGFjY3VyYWN5 KGRhdGFfdCAqZGF0YSwgYm9vbCBidXN5KQogewogCXVuaW9uIGRybV93YWl0X3ZibGFuayB2Ymw7 CiAJdW5zaWduZWQgbG9uZyB0YXJnZXQ7CisJdWludDMyX3QgY3J0Y19pZF9mbGFnOwogCWludCBu OwogCiAJbWVtc2V0KCZ2YmwsIDAsIHNpemVvZih2YmwpKTsKKwljcnRjX2lkX2ZsYWcgPSBjcnRj X2lkX3RvX2ZsYWcoZGF0YS0+cGlwZSk7CiAKLQl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFO S19SRUxBVElWRTsKKwl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRSB8IGNy dGNfaWRfZmxhZzsKIAl2YmwucmVxdWVzdC5zZXF1ZW5jZSA9IDE7Ci0JZG9faW9jdGwoZmQsIERS TV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CisJZG9faW9jdGwoZGF0YS0+ZHJtX2ZkLCBEUk1f SU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOwogCiAJdGFyZ2V0ID0gdmJsLnJlcGx5LnNlcXVlbmNl ICsgNjA7CiAJZm9yIChuID0gMDsgbiA8IDYwOyBuKyspIHsKLQkJdmJsLnJlcXVlc3QudHlwZSA9 IERSTV9WQkxBTktfUkVMQVRJVkU7CisJCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJMQU5LX1JF TEFUSVZFIHwgY3J0Y19pZF9mbGFnOwogCQl2YmwucmVxdWVzdC5zZXF1ZW5jZSA9IDE7Ci0JCWRv X2lvY3RsKGZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOworCQlkb19pb2N0bChkYXRh LT5kcm1fZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAKLQkJdmJsLnJlcXVlc3Qu dHlwZSA9IERSTV9WQkxBTktfQUJTT0xVVEUgfCBEUk1fVkJMQU5LX0VWRU5UOworCQl2YmwucmVx dWVzdC50eXBlID0gRFJNX1ZCTEFOS19BQlNPTFVURSB8IERSTV9WQkxBTktfRVZFTlQgfCBjcnRj X2lkX2ZsYWc7CiAJCXZibC5yZXF1ZXN0LnNlcXVlbmNlID0gdGFyZ2V0OwotCQlkb19pb2N0bChm ZCwgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCAmdmJsKTsKKwkJZG9faW9jdGwoZGF0YS0+ZHJtX2Zk LCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOwogCX0KLQl2YmwucmVxdWVzdC50eXBlID0g RFJNX1ZCTEFOS19SRUxBVElWRTsKKwl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxB VElWRSB8IGNydGNfaWRfZmxhZzsKIAl2YmwucmVxdWVzdC5zZXF1ZW5jZSA9IDA7Ci0JZG9faW9j dGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CisJZG9faW9jdGwoZGF0YS0+ZHJt X2ZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOwogCWlndF9hc3NlcnRfZXEodmJsLnJl cGx5LnNlcXVlbmNlLCB0YXJnZXQpOwogCiAJZm9yIChuID0gMDsgbiA8IDYwOyBuKyspIHsKIAkJ c3RydWN0IGRybV9ldmVudF92YmxhbmsgZXY7Ci0JCWlndF9hc3NlcnRfZXEocmVhZChmZCwgJmV2 LCBzaXplb2YoZXYpKSwgc2l6ZW9mKGV2KSk7CisJCWlndF9hc3NlcnRfZXEocmVhZChkYXRhLT5k cm1fZmQsICZldiwgc2l6ZW9mKGV2KSksIHNpemVvZihldikpOwogCQlpZ3RfYXNzZXJ0X2VxKGV2 LnNlcXVlbmNlLCB0YXJnZXQpOwogCX0KIH0KIAotc3RhdGljIHZvaWQgdmJsYW5rX3F1ZXJ5KGlu dCBmZCwgYm9vbCBidXN5KQorc3RhdGljIHZvaWQgdmJsYW5rX3F1ZXJ5KGRhdGFfdCAqZGF0YSwg Ym9vbCBidXN5KQogewogCXVuaW9uIGRybV93YWl0X3ZibGFuayB2Ymw7CiAJc3RydWN0IHRpbWVz cGVjIHN0YXJ0LCBlbmQ7CiAJdW5zaWduZWQgbG9uZyBzcSwgY291bnQgPSAwOwogCXN0cnVjdCBk cm1fZXZlbnRfdmJsYW5rIGJ1ZjsKKwl1aW50MzJfdCBjcnRjX2lkX2ZsYWc7CiAKIAltZW1zZXQo JnZibCwgMCwgc2l6ZW9mKHZibCkpOworCWNydGNfaWRfZmxhZyA9IGNydGNfaWRfdG9fZmxhZyhk YXRhLT5waXBlKTsKIAogCWlmIChidXN5KSB7Ci0JCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJM QU5LX1JFTEFUSVZFIHwgRFJNX1ZCTEFOS19FVkVOVDsKKwkJdmJsLnJlcXVlc3QudHlwZSA9IERS TV9WQkxBTktfUkVMQVRJVkUgfCBEUk1fVkJMQU5LX0VWRU5UIHwgY3J0Y19pZF9mbGFnOwogCQl2 YmwucmVxdWVzdC5zZXF1ZW5jZSA9IDcyOwotCQlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX1dBSVRf VkJMQU5LLCAmdmJsKTsKKwkJZG9faW9jdGwoZGF0YS0+ZHJtX2ZkLCBEUk1fSU9DVExfV0FJVF9W QkxBTkssICZ2YmwpOwogCX0KIAotCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJMQU5LX1JFTEFU SVZFOworCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJMQU5LX1JFTEFUSVZFIHwgY3J0Y19pZF9m bGFnOwogCXZibC5yZXF1ZXN0LnNlcXVlbmNlID0gMDsKLQlkb19pb2N0bChmZCwgRFJNX0lPQ1RM X1dBSVRfVkJMQU5LLCAmdmJsKTsKKwlkb19pb2N0bChkYXRhLT5kcm1fZmQsIERSTV9JT0NUTF9X QUlUX1ZCTEFOSywgJnZibCk7CiAKIAlzcSA9IHZibC5yZXBseS5zZXF1ZW5jZTsKIAogCWNsb2Nr X2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmc3RhcnQpOwogCWRvIHsKLQkJdmJsLnJlcXVlc3Qu dHlwZSA9IERSTV9WQkxBTktfUkVMQVRJVkU7CisJCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJM QU5LX1JFTEFUSVZFIHwgY3J0Y19pZF9mbGFnOwogCQl2YmwucmVxdWVzdC5zZXF1ZW5jZSA9IDA7 Ci0JCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOworCQlkb19pb2N0 bChkYXRhLT5kcm1fZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAJCWNvdW50Kys7 CiAJfSB3aGlsZSAoKHZibC5yZXBseS5zZXF1ZW5jZSAtIHNxKSA8PSA2MCk7CiAJY2xvY2tfZ2V0 dGltZShDTE9DS19NT05PVE9OSUMsICZlbmQpOwpAQCAtMTI4LDM1ICsyMjUsMzcgQEAgc3RhdGlj IHZvaWQgdmJsYW5rX3F1ZXJ5KGludCBmZCwgYm9vbCBidXN5KQogCQkgYnVzeSA/ICJidXN5IiA6 ICJpZGxlIiwgZWxhcHNlZCgmc3RhcnQsICZlbmQsIGNvdW50KSk7CiAKIAlpZiAoYnVzeSkKLQkJ aWd0X2Fzc2VydF9lcShyZWFkKGZkLCAmYnVmLCBzaXplb2YoYnVmKSksIHNpemVvZihidWYpKTsK KwkJaWd0X2Fzc2VydF9lcShyZWFkKGRhdGEtPmRybV9mZCwgJmJ1Ziwgc2l6ZW9mKGJ1ZikpLCBz aXplb2YoYnVmKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHZibGFua193YWl0KGludCBmZCwgYm9vbCBi dXN5KQorc3RhdGljIHZvaWQgdmJsYW5rX3dhaXQoZGF0YV90ICpkYXRhLCBib29sIGJ1c3kpCiB7 CiAJdW5pb24gZHJtX3dhaXRfdmJsYW5rIHZibDsKIAlzdHJ1Y3QgdGltZXNwZWMgc3RhcnQsIGVu ZDsKIAl1bnNpZ25lZCBsb25nIHNxLCBjb3VudCA9IDA7CiAJc3RydWN0IGRybV9ldmVudF92Ymxh bmsgYnVmOworCXVpbnQzMl90IGNydGNfaWRfZmxhZzsKIAogCW1lbXNldCgmdmJsLCAwLCBzaXpl b2YodmJsKSk7CisJY3J0Y19pZF9mbGFnID0gY3J0Y19pZF90b19mbGFnKGRhdGEtPnBpcGUpOwog CiAJaWYgKGJ1c3kpIHsKLQkJdmJsLnJlcXVlc3QudHlwZSA9IERSTV9WQkxBTktfUkVMQVRJVkUg fCBEUk1fVkJMQU5LX0VWRU5UOworCQl2YmwucmVxdWVzdC50eXBlIHw9IERSTV9WQkxBTktfUkVM QVRJVkUgfCBEUk1fVkJMQU5LX0VWRU5UIHwgY3J0Y19pZF9mbGFnOwogCQl2YmwucmVxdWVzdC5z ZXF1ZW5jZSA9IDcyOwotCQlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCAmdmJs KTsKKwkJZG9faW9jdGwoZGF0YS0+ZHJtX2ZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2Ymwp OwogCX0KIAotCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJMQU5LX1JFTEFUSVZFOworCXZibC5y ZXF1ZXN0LnR5cGUgfD0gRFJNX1ZCTEFOS19SRUxBVElWRSB8IGNydGNfaWRfZmxhZzsKIAl2Ymwu cmVxdWVzdC5zZXF1ZW5jZSA9IDA7Ci0JZG9faW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFO SywgJnZibCk7CisJZG9faW9jdGwoZGF0YS0+ZHJtX2ZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkss ICZ2YmwpOwogCiAJc3EgPSB2YmwucmVwbHkuc2VxdWVuY2U7CiAKIAljbG9ja19nZXR0aW1lKENM T0NLX01PTk9UT05JQywgJnN0YXJ0KTsKIAlkbyB7Ci0JCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1f VkJMQU5LX1JFTEFUSVZFOworCQl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElW RSB8IGNydGNfaWRfZmxhZzsKIAkJdmJsLnJlcXVlc3Quc2VxdWVuY2UgPSAxOwotCQlkb19pb2N0 bChmZCwgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCAmdmJsKTsKKwkJZG9faW9jdGwoZGF0YS0+ZHJt X2ZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOwogCQljb3VudCsrOwogCX0gd2hpbGUg KCh2YmwucmVwbHkuc2VxdWVuY2UgLSBzcSkgPD0gNjApOwogCWNsb2NrX2dldHRpbWUoQ0xPQ0tf TU9OT1RPTklDLCAmZW5kKTsKQEAgLTE2NywzMiArMjY2LDM0IEBAIHN0YXRpYyB2b2lkIHZibGFu a193YWl0KGludCBmZCwgYm9vbCBidXN5KQogCQkgZWxhcHNlZCgmc3RhcnQsICZlbmQsIGNvdW50 KSk7CiAKIAlpZiAoYnVzeSkKLQkJaWd0X2Fzc2VydF9lcShyZWFkKGZkLCAmYnVmLCBzaXplb2Yo YnVmKSksIHNpemVvZihidWYpKTsKKwkJaWd0X2Fzc2VydF9lcShyZWFkKGRhdGEtPmRybV9mZCwg JmJ1Ziwgc2l6ZW9mKGJ1ZikpLCBzaXplb2YoYnVmKSk7CiB9CiAKIGlndF9tYWluCiB7Ci0JaW50 IGZkOworCWRhdGFfdCBkYXRhOwogCiAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwogCiAJaWd0 X2ZpeHR1cmUgewotCQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfQU5ZKTsKLQkJaWd0X3Jl cXVpcmUoY3J0YzBfYWN0aXZlKGZkKSk7CisJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVy KERSSVZFUl9BTlkpOworCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisJCWlndF9k aXNwbGF5X2luaXQoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOwogCX0KIAogCWlndF9zdWJ0 ZXN0KCJhY2N1cmFjeSIpCi0JCWFjY3VyYWN5KGZkKTsKKwkJcnVuX3Rlc3QoJmRhdGEsIGFjY3Vy YWN5LCBmYWxzZSk7CiAKIAlpZ3Rfc3VidGVzdCgicXVlcnktaWRsZSIpCi0JCXZibGFua19xdWVy eShmZCwgZmFsc2UpOworCQlydW5fdGVzdCgmZGF0YSwgdmJsYW5rX3F1ZXJ5LCBmYWxzZSk7CiAK IAlpZ3Rfc3VidGVzdCgicXVlcnktYnVzeSIpCi0JCXZibGFua19xdWVyeShmZCwgdHJ1ZSk7CisJ CXJ1bl90ZXN0KCZkYXRhLCB2YmxhbmtfcXVlcnksIHRydWUpOwogCiAJaWd0X3N1YnRlc3QoIndh aXQtaWRsZSIpCi0JCXZibGFua193YWl0KGZkLCBmYWxzZSk7CisJCXJ1bl90ZXN0KCZkYXRhLCB2 Ymxhbmtfd2FpdCwgZmFsc2UpOwogCiAJaWd0X3N1YnRlc3QoIndhaXQtYnVzeSIpCi0JCXZibGFu a193YWl0KGZkLCB0cnVlKTsKKwkJcnVuX3Rlc3QoJmRhdGEsIHZibGFua193YWl0LCB0cnVlKTsK IH0KKwotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=