From mboxrd@z Thu Jan 1 00:00:00 1970 From: robert.foss@collabora.com Subject: [PATCH i-g-t v6 5/7] kms_vblank: Switch from using crtc0 statically to explicitly setting mode. Date: Wed, 18 May 2016 20:07:07 -0400 Message-ID: <1463616429-13079-6-git-send-email-robert.foss@collabora.com> References: <1463616429-13079-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 C0F066E056 for ; Thu, 19 May 2016 00:07:27 +0000 (UTC) In-Reply-To: <1463616429-13079-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@ffwll.ch, daniel.stone@collabora.com, marius.c.vlad@intel.com, ville.syrjala@linux.intel.com, jani.nikula@intel.com, chris@chris-wilson.co.uk Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGNvbGxhYm9yYS5jb20+CgpQcmV2aW91c2x5 IGNydGMwIHdhcyBzdGF0aWNhbGx5IHVzZWQgZm9yIFZCTEFOSyB0ZXN0cywgYnV0CnRoYXQgYXNz dW1wdGlvbiBpcyBub3QgdmFsaWQgZm9yIHRoZSBWQzQgcGxhdGZvcm0uCkluc3RlYWQgd2UncmUg bm93IGV4cGxpY2l0bHkgc2V0dGluZyB0aGUgbW9kZS4KCkFsc28gYWRkIHN1cHBvcnQgZm9yIHRl c3RpbmcgYWxsIGNvbm5lY3RlZCBjb25uZWN0b3JzIGR1cmluZwp0aGUgc2FtZSB0ZXN0LgoKU2ln bmVkLW9mZi1ieTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGNvbGxhYm9yYS5jb20+Ci0tLQog dGVzdHMva21zX3ZibGFuay5jIHwgMTYxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTM2IGluc2VydGlvbnMoKyks IDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc192YmxhbmsuYyBiL3Rlc3Rz L2ttc192YmxhbmsuYwppbmRleCA0MGFiNmZkLi45YmM0OTI5IDEwMDY0NAotLS0gYS90ZXN0cy9r bXNfdmJsYW5rLmMKKysrIGIvdGVzdHMva21zX3ZibGFuay5jCkBAIC00NCw2ICs0NCwxNCBAQAog CiBJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBzcGVlZCBvZiBXYWl0VmJsYW5rLiIpOwogCit0 eXBlZGVmIHN0cnVjdCB7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworCXN0cnVjdCBpZ3RfZmIg cHJpbWFyeV9mYjsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwllbnVtIHBpcGUgcGlwZTsKKwl1 aW50OF90IG1vZGVfYnVzeToxOworfSBkYXRhX3Q7CisKIHN0YXRpYyBkb3VibGUgZWxhcHNlZChj b25zdCBzdHJ1Y3QgdGltZXNwZWMgKnN0YXJ0LAogCQkgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNw ZWMgKmVuZCwKIAkJICAgICAgaW50IGxvb3ApCkBAIC01MSwzOCArNTksMTE5IEBAIHN0YXRpYyBk b3VibGUgZWxhcHNlZChjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnN0YXJ0LAogCXJldHVybiAoMWU2 KihlbmQtPnR2X3NlYyAtIHN0YXJ0LT50dl9zZWMpICsgKGVuZC0+dHZfbnNlYyAtIHN0YXJ0LT50 dl9uc2VjKS8xMDAwKS9sb29wOwogfQogCi1zdGF0aWMgYm9vbCBjcnRjMF9hY3RpdmUoaW50IGZk KQorc3RhdGljIGJvb2wgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwgaW50IGZkLCBpZ3Rfb3V0 cHV0X3QgKm91dHB1dCkKIHsKLQl1bmlvbiBkcm1fd2FpdF92YmxhbmsgdmJsOworCWRybU1vZGVN b2RlSW5mbyAqbW9kZTsKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7 CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7CisKKwkvKiBzZWxlY3QgdGhlIHBpcGUgd2Ugd2FudCB0 byB1c2UgKi8KKwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgZGF0YS0+cGlwZSk7CisJaWd0 X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkpOworCisJaWYgKCFvdXRwdXQtPnZhbGlkKSB7CisJCWln dF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7CisJCWlndF9kaXNwbGF5X2NvbW1p dChkaXNwbGF5KTsKKwkJcmV0dXJuIGZhbHNlOworCX0KIAotCW1lbXNldCgmdmJsLCAwLCBzaXpl b2YodmJsKSk7Ci0JdmJsLnJlcXVlc3QudHlwZSA9IERSTV9WQkxBTktfUkVMQVRJVkU7Ci0JcmV0 dXJuIGRybUlvY3RsKGZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpID09IDA7CisJLyog Y3JlYXRlIGFuZCBzZXQgdGhlIHByaW1hcnkgcGxhbmUgZmIgKi8KKwltb2RlID0gaWd0X291dHB1 dF9nZXRfbW9kZShvdXRwdXQpOworCWlndF9jcmVhdGVfY29sb3JfZmIoZmQsIG1vZGUtPmhkaXNw bGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJCSAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAorCQkJICAg IExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCisJCQkgICAgMC4wLCAwLjAsIDAuMCwKKwkJCSAg ICAmZGF0YS0+cHJpbWFyeV9mYik7CisKKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmUo b3V0cHV0LCBJR1RfUExBTkVfUFJJTUFSWSk7CisJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAm ZGF0YS0+cHJpbWFyeV9mYik7CisKKwlpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7CisKKwlp Z3Rfd2FpdF9mb3JfdmJsYW5rKGZkLCBkYXRhLT5waXBlKTsKKworCXJldHVybiB0cnVlOworfQor CitzdGF0aWMgdm9pZCBjbGVhbnVwX2NydGMoZGF0YV90ICpkYXRhLCBpbnQgZmQsIGlndF9vdXRw dXRfdCAqb3V0cHV0KQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxh eTsKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKworCWlndF9yZW1vdmVfZmIoZmQsICZkYXRhLT5w cmltYXJ5X2ZiKTsKKworCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQsIElH VF9QTEFORV9QUklNQVJZKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOworCisJ aWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfQU5ZKTsKKwlpZ3RfZGlzcGxheV9jb21t aXQoZGlzcGxheSk7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bl90ZXN0KGRhdGFfdCAqZGF0YSwgaW50 IGZkLCB2b2lkICgqdGVzdGZ1bmMpKGRhdGFfdCAqLCBpbnQpKQoreworCWlndF9kaXNwbGF5X3Qg KmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwllbnVt IHBpcGUgcDsKKwl1bnNpZ25lZCBpbnQgdmFsaWRfdGVzdHMgPSAwOworCisJZm9yX2VhY2hfY29u bmVjdGVkX291dHB1dChkaXNwbGF5LCBvdXRwdXQpIHsKKwkJZm9yX2VhY2hfcGlwZShkaXNwbGF5 LCBwKSB7CisJCQlkYXRhLT5waXBlID0gcDsKKworCQkJaWYgKCFwcmVwYXJlX2NydGMoZGF0YSwg ZmQsIG91dHB1dCkpCisJCQkJY29udGludWU7CisKKwkJCXZhbGlkX3Rlc3RzKys7CisKKwkJCWln dF9pbmZvKCJCZWdpbm5pbmcgJXMgb24gcGlwZSAlcywgY29ubmVjdG9yICVzXG4iLAorCQkJCSBp Z3Rfc3VidGVzdF9uYW1lKCksCisJCQkJIGttc3Rlc3RfcGlwZV9uYW1lKGRhdGEtPnBpcGUpLAor CQkJCSBpZ3Rfb3V0cHV0X25hbWUob3V0cHV0KSk7CisKKwkJCXRlc3RmdW5jKGRhdGEsIGZkKTsK KworCQkJaWd0X2luZm8oIlxuJXMgb24gcGlwZSAlcywgY29ubmVjdG9yICVzOiBQQVNTRURcblxu IiwKKwkJCQkgaWd0X3N1YnRlc3RfbmFtZSgpLAorCQkJCSBrbXN0ZXN0X3BpcGVfbmFtZShkYXRh LT5waXBlKSwKKwkJCQkgaWd0X291dHB1dF9uYW1lKG91dHB1dCkpOworCisJCQkvKiBjbGVhbnVw IHdoYXQgcHJlcGFyZV9jcnRjKCkgaGFzIGRvbmUgKi8KKwkJCWNsZWFudXBfY3J0YyhkYXRhLCBm ZCwgb3V0cHV0KTsKKwkJfQorCX0KKworCWlndF9yZXF1aXJlX2YodmFsaWRfdGVzdHMsICJubyB2 YWxpZCBjcnRjL2Nvbm5lY3RvciBjb21iaW5hdGlvbnMgZm91bmRcbiIpOwogfQogCi1zdGF0aWMg dm9pZCBhY2N1cmFjeShpbnQgZmQpCitzdGF0aWMgdm9pZCBhY2N1cmFjeShkYXRhX3QgKmRhdGEs IGludCBmZCkKIHsKIAl1bmlvbiBkcm1fd2FpdF92YmxhbmsgdmJsOwogCXVuc2lnbmVkIGxvbmcg dGFyZ2V0OworCXVpbnQzMl90IHBpcGVfaWRfZmxhZzsKIAlpbnQgbjsKIAogCW1lbXNldCgmdmJs LCAwLCBzaXplb2YodmJsKSk7CisJcGlwZV9pZF9mbGFnID0ga21zdGVzdF9nZXRfdmJsX2ZsYWco ZGF0YS0+cGlwZSk7CiAKIAl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRTsK Kwl2YmwucmVxdWVzdC50eXBlIHw9IHBpcGVfaWRfZmxhZzsKIAl2YmwucmVxdWVzdC5zZXF1ZW5j ZSA9IDE7CiAJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAKIAl0 YXJnZXQgPSB2YmwucmVwbHkuc2VxdWVuY2UgKyA2MDsKIAlmb3IgKG4gPSAwOyBuIDwgNjA7IG4r KykgewogCQl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRTsKKwkJdmJsLnJl cXVlc3QudHlwZSB8PSBwaXBlX2lkX2ZsYWc7CiAJCXZibC5yZXF1ZXN0LnNlcXVlbmNlID0gMTsK IAkJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAKIAkJdmJsLnJl cXVlc3QudHlwZSA9IERSTV9WQkxBTktfQUJTT0xVVEUgfCBEUk1fVkJMQU5LX0VWRU5UOworCQl2 YmwucmVxdWVzdC50eXBlIHw9IHBpcGVfaWRfZmxhZzsKIAkJdmJsLnJlcXVlc3Quc2VxdWVuY2Ug PSB0YXJnZXQ7CiAJCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOwog CX0KIAl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRTsKKwl2YmwucmVxdWVz dC50eXBlIHw9IHBpcGVfaWRfZmxhZzsKIAl2YmwucmVxdWVzdC5zZXF1ZW5jZSA9IDA7CiAJZG9f aW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAJaWd0X2Fzc2VydF9lcSh2 YmwucmVwbHkuc2VxdWVuY2UsIHRhcmdldCk7CkBAIC05NCwyMiArMTgzLDI2IEBAIHN0YXRpYyB2 b2lkIGFjY3VyYWN5KGludCBmZCkKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIHZibGFua19xdWVyeShp bnQgZmQsIGJvb2wgYnVzeSkKK3N0YXRpYyB2b2lkIHZibGFua19xdWVyeShkYXRhX3QgKmRhdGEs IGludCBmZCkKIHsKIAl1bmlvbiBkcm1fd2FpdF92YmxhbmsgdmJsOwogCXN0cnVjdCB0aW1lc3Bl YyBzdGFydCwgZW5kOwogCXVuc2lnbmVkIGxvbmcgc3EsIGNvdW50ID0gMDsKIAlzdHJ1Y3QgZHJt X2V2ZW50X3ZibGFuayBidWY7CisJdWludDMyX3QgcGlwZV9pZF9mbGFnOwogCiAJbWVtc2V0KCZ2 YmwsIDAsIHNpemVvZih2YmwpKTsKKwlwaXBlX2lkX2ZsYWcgPSBrbXN0ZXN0X2dldF92YmxfZmxh ZyhkYXRhLT5waXBlKTsKIAotCWlmIChidXN5KSB7CisJaWYgKGRhdGEtPm1vZGVfYnVzeSkgewog CQl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRSB8IERSTV9WQkxBTktfRVZF TlQ7CisJCXZibC5yZXF1ZXN0LnR5cGUgfD0gcGlwZV9pZF9mbGFnOwogCQl2YmwucmVxdWVzdC5z ZXF1ZW5jZSA9IDcyOwogCQlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCAmdmJs KTsKIAl9CiAKIAl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRTsKKwl2Ymwu cmVxdWVzdC50eXBlIHw9IHBpcGVfaWRfZmxhZzsKIAl2YmwucmVxdWVzdC5zZXF1ZW5jZSA9IDA7 CiAJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAKQEAgLTExOCw2 ICsyMTEsNyBAQCBzdGF0aWMgdm9pZCB2YmxhbmtfcXVlcnkoaW50IGZkLCBib29sIGJ1c3kpCiAJ Y2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZzdGFydCk7CiAJZG8gewogCQl2YmwucmVx dWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRTsKKwkJdmJsLnJlcXVlc3QudHlwZSB8PSBw aXBlX2lkX2ZsYWc7CiAJCXZibC5yZXF1ZXN0LnNlcXVlbmNlID0gMDsKIAkJZG9faW9jdGwoZmQs IERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAJCWNvdW50Kys7CkBAIC0xMjUsMjggKzIx OSwzMiBAQCBzdGF0aWMgdm9pZCB2YmxhbmtfcXVlcnkoaW50IGZkLCBib29sIGJ1c3kpCiAJY2xv Y2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZlbmQpOwogCiAJaWd0X2luZm8oIlRpbWUgdG8g cXVlcnkgY3VycmVudCBjb3VudGVyICglcyk6CQklNy4zZsK1c1xuIiwKLQkJIGJ1c3kgPyAiYnVz eSIgOiAiaWRsZSIsIGVsYXBzZWQoJnN0YXJ0LCAmZW5kLCBjb3VudCkpOworCQkgZGF0YS0+bW9k ZV9idXN5ID8gImJ1c3kiIDogImlkbGUiLCBlbGFwc2VkKCZzdGFydCwgJmVuZCwgY291bnQpKTsK IAotCWlmIChidXN5KQorCWlmIChkYXRhLT5tb2RlX2J1c3kpCiAJCWlndF9hc3NlcnRfZXEocmVh ZChmZCwgJmJ1Ziwgc2l6ZW9mKGJ1ZikpLCBzaXplb2YoYnVmKSk7CiB9CiAKLXN0YXRpYyB2b2lk IHZibGFua193YWl0KGludCBmZCwgYm9vbCBidXN5KQorc3RhdGljIHZvaWQgdmJsYW5rX3dhaXQo ZGF0YV90ICpkYXRhLCBpbnQgZmQpCiB7CiAJdW5pb24gZHJtX3dhaXRfdmJsYW5rIHZibDsKIAlz dHJ1Y3QgdGltZXNwZWMgc3RhcnQsIGVuZDsKIAl1bnNpZ25lZCBsb25nIHNxLCBjb3VudCA9IDA7 CiAJc3RydWN0IGRybV9ldmVudF92YmxhbmsgYnVmOworCXVpbnQzMl90IHBpcGVfaWRfZmxhZzsK IAogCW1lbXNldCgmdmJsLCAwLCBzaXplb2YodmJsKSk7CisJcGlwZV9pZF9mbGFnID0ga21zdGVz dF9nZXRfdmJsX2ZsYWcoZGF0YS0+cGlwZSk7CiAKLQlpZiAoYnVzeSkgeworCWlmIChkYXRhLT5t b2RlX2J1c3kpIHsKIAkJdmJsLnJlcXVlc3QudHlwZSA9IERSTV9WQkxBTktfUkVMQVRJVkUgfCBE Uk1fVkJMQU5LX0VWRU5UOworCQl2YmwucmVxdWVzdC50eXBlIHw9IHBpcGVfaWRfZmxhZzsKIAkJ dmJsLnJlcXVlc3Quc2VxdWVuY2UgPSA3MjsKIAkJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9XQUlU X1ZCTEFOSywgJnZibCk7CiAJfQogCiAJdmJsLnJlcXVlc3QudHlwZSA9IERSTV9WQkxBTktfUkVM QVRJVkU7CisJdmJsLnJlcXVlc3QudHlwZSB8PSBwaXBlX2lkX2ZsYWc7CiAJdmJsLnJlcXVlc3Qu c2VxdWVuY2UgPSAwOwogCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2Ymwp OwogCkBAIC0xNTUsNiArMjUzLDcgQEAgc3RhdGljIHZvaWQgdmJsYW5rX3dhaXQoaW50IGZkLCBi b29sIGJ1c3kpCiAJY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZzdGFydCk7CiAJZG8g ewogCQl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRTsKKwkJdmJsLnJlcXVl c3QudHlwZSB8PSBwaXBlX2lkX2ZsYWc7CiAJCXZibC5yZXF1ZXN0LnNlcXVlbmNlID0gMTsKIAkJ ZG9faW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAJCWNvdW50Kys7CkBA IC0xNjMsMzYgKzI2Miw0OCBAQCBzdGF0aWMgdm9pZCB2Ymxhbmtfd2FpdChpbnQgZmQsIGJvb2wg YnVzeSkKIAogCWlndF9pbmZvKCJUaW1lIHRvIHdhaXQgZm9yICVsZC8lZCB2YmxhbmtzICglcyk6 CQklNy4zZsK1c1xuIiwKIAkJIGNvdW50LCAoaW50KSh2YmwucmVwbHkuc2VxdWVuY2UgLSBzcSks Ci0JCSBidXN5ID8gImJ1c3kiIDogImlkbGUiLAorCQkgZGF0YS0+bW9kZV9idXN5ID8gImJ1c3ki IDogImlkbGUiLAogCQkgZWxhcHNlZCgmc3RhcnQsICZlbmQsIGNvdW50KSk7CiAKLQlpZiAoYnVz eSkKKwlpZiAoZGF0YS0+bW9kZV9idXN5KQogCQlpZ3RfYXNzZXJ0X2VxKHJlYWQoZmQsICZidWYs IHNpemVvZihidWYpKSwgc2l6ZW9mKGJ1ZikpOwogfQogCiBpZ3RfbWFpbgogewogCWludCBmZDsK KwlkYXRhX3QgZGF0YTsKIAogCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKIAogCWlndF9maXh0 dXJlIHsKIAkJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0FOWSk7Ci0JCWlndF9yZXF1aXJl KGNydGMwX2FjdGl2ZShmZCkpOworCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisJ CWlndF9kaXNwbGF5X2luaXQoJmRhdGEuZGlzcGxheSwgZmQpOwogCX0KIAotCWlndF9zdWJ0ZXN0 KCJhY2N1cmFjeSIpCi0JCWFjY3VyYWN5KGZkKTsKKwlpZ3Rfc3VidGVzdCgiYWNjdXJhY3kiKSB7 CisJCWRhdGEubW9kZV9idXN5ID0gMDsKKwkJcnVuX3Rlc3QoJmRhdGEsIGZkLCBhY2N1cmFjeSk7 CisJfQogCi0JaWd0X3N1YnRlc3QoInF1ZXJ5LWlkbGUiKQotCQl2YmxhbmtfcXVlcnkoZmQsIGZh bHNlKTsKKwlpZ3Rfc3VidGVzdCgicXVlcnktaWRsZSIpIHsKKwkJZGF0YS5tb2RlX2J1c3kgPSAw OworCQlydW5fdGVzdCgmZGF0YSwgZmQsIHZibGFua19xdWVyeSk7CisJfQogCi0JaWd0X3N1YnRl c3QoInF1ZXJ5LWJ1c3kiKQotCQl2YmxhbmtfcXVlcnkoZmQsIHRydWUpOworCWlndF9zdWJ0ZXN0 KCJxdWVyeS1idXN5IikgeworCQlkYXRhLm1vZGVfYnVzeSA9IDE7CisJCXJ1bl90ZXN0KCZkYXRh LCBmZCwgdmJsYW5rX3F1ZXJ5KTsKKwl9CiAKLQlpZ3Rfc3VidGVzdCgid2FpdC1pZGxlIikKLQkJ dmJsYW5rX3dhaXQoZmQsIGZhbHNlKTsKKwlpZ3Rfc3VidGVzdCgid2FpdC1pZGxlIikgeworCQlk YXRhLm1vZGVfYnVzeSA9IDA7CisJCXJ1bl90ZXN0KCZkYXRhLCBmZCwgdmJsYW5rX3dhaXQpOwor CX0KIAotCWlndF9zdWJ0ZXN0KCJ3YWl0LWJ1c3kiKQotCQl2Ymxhbmtfd2FpdChmZCwgdHJ1ZSk7 CisJaWd0X3N1YnRlc3QoIndhaXQtYnVzeSIpIHsKKwkJZGF0YS5tb2RlX2J1c3kgPSAxOworCQly dW5fdGVzdCgmZGF0YSwgZmQsIHZibGFua193YWl0KTsKKwl9CiB9Ci0tIAoyLjcuNAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==