From mboxrd@z Thu Jan 1 00:00:00 1970 From: robert.foss@collabora.com Subject: [PATCH i-g-t v4 4/5] kms_vblank: Switch from using crtc0 statically to explicitly setting mode. Date: Tue, 26 Apr 2016 11:54:21 -0400 Message-ID: <1461686062-24630-5-git-send-email-robert.foss@collabora.com> References: <1461686062-24630-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 6CF576E869 for ; Tue, 26 Apr 2016 15:54:31 +0000 (UTC) In-Reply-To: <1461686062-24630-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: marius.c.vlad@intel.com, daniel.vetter@ffwll.ch, tomeu.vizoso@collabora.com, daniel.stone@collabora.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGNvbGxhYm9yYS5jb20+CgpQcmV2aW91c2x5 IGNydGMwIHdhcyBzdGF0aWNhbGx5IHVzZWQgZm9yIFZCTEFOSyB0ZXN0cywgYnV0CnRoYXQgYXNz dW1wdGlvbiBpcyBub3QgdmFsaWQgZm9yIHRoZSBWQzQgcGxhdGZvcm0uCkluc3RlYWQgd2UncmUg bm93IGV4cGxpY2l0bHkgc2V0dGluZyB0aGUgbW9kZS4KCkFsc28gYWRkIHN1cHBvcnQgZm9yIHRl c3RpbmcgYWxsIGNvbm5lY3RlZCBjb25uZWN0b3JzIGR1cmluZwp0aGUgc2FtZSB0ZXN0LgoKU2ln bmVkLW9mZi1ieTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGNvbGxhYm9yYS5jb20+Ci0tLQog dGVzdHMva21zX3ZibGFuay5jIHwgMTYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMoKyks IDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc192YmxhbmsuYyBiL3Rlc3Rz L2ttc192YmxhbmsuYwppbmRleCA0MGFiNmZkLi42YzMyYzU3IDEwMDY0NAotLS0gYS90ZXN0cy9r 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 Z3Rfd2FpdF9mb3JfdmJsYW5rKGZkLCBkYXRhLT5waXBlKTsKKworCXJldHVybiB0cnVlOwogfQog Ci1zdGF0aWMgdm9pZCBhY2N1cmFjeShpbnQgZmQpCitzdGF0aWMgdm9pZCBjbGVhbnVwX2NydGMo ZGF0YV90ICpkYXRhLCBpbnQgZmQsIGlndF9vdXRwdXRfdCAqb3V0cHV0KQoreworCWlndF9kaXNw bGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsK KworCWlndF9yZW1vdmVfZmIoZmQsICZkYXRhLT5wcmltYXJ5X2ZiKTsKKworCXByaW1hcnkgPSBp Z3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQsIElHVF9QTEFORV9QUklNQVJZKTsKKwlpZ3RfcGxh bmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOworCisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQs IFBJUEVfQU5ZKTsKKwlpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7Cit9CisKK3N0YXRpYyB2 b2lkIHJ1bl90ZXN0KGRhdGFfdCAqZGF0YSwgaW50IGZkLCB2b2lkICgqdGVzdGZ1bmMpKGRhdGFf dCAqLCBpbnQpKQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsK KwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwllbnVtIHBpcGUgcDsKKwl1bnNpZ25lZCBpbnQgdmFs aWRfdGVzdHMgPSAwOworCisJZm9yX2VhY2hfY29ubmVjdGVkX291dHB1dChkaXNwbGF5LCBvdXRw dXQpIHsKKwkJZm9yX2VhY2hfcGlwZShkaXNwbGF5LCBwKSB7CisJCQlkYXRhLT5waXBlID0gcDsK KworCQkJaWYgKCFwcmVwYXJlX2NydGMoZGF0YSwgZmQsIG91dHB1dCkpCisJCQkJY29udGludWU7 CisKKwkJCXZhbGlkX3Rlc3RzKys7CisKKwkJCWlndF9pbmZvKCJCZWdpbm5pbmcgJXMgb24gcGlw ZSAlcywgY29ubmVjdG9yICVzXG4iLAorCQkJCSBpZ3Rfc3VidGVzdF9uYW1lKCksCisJCQkJIGtt c3Rlc3RfcGlwZV9uYW1lKGRhdGEtPnBpcGUpLAorCQkJCSBpZ3Rfb3V0cHV0X25hbWUob3V0cHV0 KSk7CisKKwkJCXRlc3RmdW5jKGRhdGEsIGZkKTsKKworCQkJaWd0X2luZm8oIlxuJXMgb24gcGlw ZSAlcywgY29ubmVjdG9yICVzOiBQQVNTRURcblxuIiwKKwkJCQkgaWd0X3N1YnRlc3RfbmFtZSgp LAorCQkJCSBrbXN0ZXN0X3BpcGVfbmFtZShkYXRhLT5waXBlKSwKKwkJCQkgaWd0X291dHB1dF9u YW1lKG91dHB1dCkpOworCisJCQkvKiBjbGVhbnVwIHdoYXQgcHJlcGFyZV9jcnRjKCkgaGFzIGRv bmUgKi8KKwkJCWNsZWFudXBfY3J0YyhkYXRhLCBmZCwgb3V0cHV0KTsKKwkJfQorCX0KKworCWln dF9yZXF1aXJlX2YodmFsaWRfdGVzdHMsICJubyB2YWxpZCBjcnRjL2Nvbm5lY3RvciBjb21iaW5h dGlvbnMgZm91bmRcbiIpOworfQorCitzdGF0aWMgdm9pZCBhY2N1cmFjeShkYXRhX3QgKmRhdGEs IGludCBmZCkKIHsKIAl1bmlvbiBkcm1fd2FpdF92YmxhbmsgdmJsOwogCXVuc2lnbmVkIGxvbmcg dGFyZ2V0OworCXVpbnQzMl90IHBpcGVfaWRfZmxhZzsKIAlpbnQgbjsKIAogCW1lbXNldCgmdmJs LCAwLCBzaXplb2YodmJsKSk7CisJcGlwZV9pZF9mbGFnID0gcGlwZV9pZF90b192YmxfZmxhZyhk YXRhLT5waXBlKTsKIAogCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJMQU5LX1JFTEFUSVZFOwor CXZibC5yZXF1ZXN0LnR5cGUgfD0gcGlwZV9pZF9mbGFnOwogCXZibC5yZXF1ZXN0LnNlcXVlbmNl ID0gMTsKIAlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCAmdmJsKTsKIAogCXRh cmdldCA9IHZibC5yZXBseS5zZXF1ZW5jZSArIDYwOwogCWZvciAobiA9IDA7IG4gPCA2MDsgbisr KSB7CiAJCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJMQU5LX1JFTEFUSVZFOworCQl2YmwucmVx dWVzdC50eXBlIHw9IHBpcGVfaWRfZmxhZzsKIAkJdmJsLnJlcXVlc3Quc2VxdWVuY2UgPSAxOwog CQlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCAmdmJsKTsKIAogCQl2YmwucmVx dWVzdC50eXBlID0gRFJNX1ZCTEFOS19BQlNPTFVURSB8IERSTV9WQkxBTktfRVZFTlQ7CisJCXZi bC5yZXF1ZXN0LnR5cGUgfD0gcGlwZV9pZF9mbGFnOwogCQl2YmwucmVxdWVzdC5zZXF1ZW5jZSA9 IHRhcmdldDsKIAkJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAJ fQogCXZibC5yZXF1ZXN0LnR5cGUgPSBEUk1fVkJMQU5LX1JFTEFUSVZFOworCXZibC5yZXF1ZXN0 LnR5cGUgfD0gcGlwZV9pZF9mbGFnOwogCXZibC5yZXF1ZXN0LnNlcXVlbmNlID0gMDsKIAlkb19p b2N0bChmZCwgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCAmdmJsKTsKIAlpZ3RfYXNzZXJ0X2VxKHZi bC5yZXBseS5zZXF1ZW5jZSwgdGFyZ2V0KTsKQEAgLTk0LDIyICsxODMsMjYgQEAgc3RhdGljIHZv aWQgYWNjdXJhY3koaW50IGZkKQogCX0KIH0KIAotc3RhdGljIHZvaWQgdmJsYW5rX3F1ZXJ5KGlu dCBmZCwgYm9vbCBidXN5KQorc3RhdGljIHZvaWQgdmJsYW5rX3F1ZXJ5KGRhdGFfdCAqZGF0YSwg aW50IGZkKQogewogCXVuaW9uIGRybV93YWl0X3ZibGFuayB2Ymw7CiAJc3RydWN0IHRpbWVzcGVj IHN0YXJ0LCBlbmQ7CiAJdW5zaWduZWQgbG9uZyBzcSwgY291bnQgPSAwOwogCXN0cnVjdCBkcm1f ZXZlbnRfdmJsYW5rIGJ1ZjsKKwl1aW50MzJfdCBwaXBlX2lkX2ZsYWc7CiAKIAltZW1zZXQoJnZi bCwgMCwgc2l6ZW9mKHZibCkpOworCXBpcGVfaWRfZmxhZyA9IHBpcGVfaWRfdG9fdmJsX2ZsYWco ZGF0YS0+cGlwZSk7CiAKLQlpZiAoYnVzeSkgeworCWlmIChkYXRhLT5tb2RlX2J1c3kpIHsKIAkJ dmJsLnJlcXVlc3QudHlwZSA9IERSTV9WQkxBTktfUkVMQVRJVkUgfCBEUk1fVkJMQU5LX0VWRU5U OworCQl2YmwucmVxdWVzdC50eXBlIHw9IHBpcGVfaWRfZmxhZzsKIAkJdmJsLnJlcXVlc3Quc2Vx dWVuY2UgPSA3MjsKIAkJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7 CiAJfQogCiAJdmJsLnJlcXVlc3QudHlwZSA9IERSTV9WQkxBTktfUkVMQVRJVkU7CisJdmJsLnJl cXVlc3QudHlwZSB8PSBwaXBlX2lkX2ZsYWc7CiAJdmJsLnJlcXVlc3Quc2VxdWVuY2UgPSAwOwog CWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOwogCkBAIC0xMTgsNiAr MjExLDcgQEAgc3RhdGljIHZvaWQgdmJsYW5rX3F1ZXJ5KGludCBmZCwgYm9vbCBidXN5KQogCWNs b2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmc3RhcnQpOwogCWRvIHsKIAkJdmJsLnJlcXVl c3QudHlwZSA9IERSTV9WQkxBTktfUkVMQVRJVkU7CisJCXZibC5yZXF1ZXN0LnR5cGUgfD0gcGlw ZV9pZF9mbGFnOwogCQl2YmwucmVxdWVzdC5zZXF1ZW5jZSA9IDA7CiAJCWRvX2lvY3RsKGZkLCBE Uk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOwogCQljb3VudCsrOwpAQCAtMTI1LDI4ICsyMTks MzIgQEAgc3RhdGljIHZvaWQgdmJsYW5rX3F1ZXJ5KGludCBmZCwgYm9vbCBidXN5KQogCWNsb2Nr X2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmZW5kKTsKIAogCWlndF9pbmZvKCJUaW1lIHRvIHF1 ZXJ5IGN1cnJlbnQgY291bnRlciAoJXMpOgkJJTcuM2bCtXNcbiIsCi0JCSBidXN5ID8gImJ1c3ki IDogImlkbGUiLCBlbGFwc2VkKCZzdGFydCwgJmVuZCwgY291bnQpKTsKKwkJIGRhdGEtPm1vZGVf YnVzeSA/ICJidXN5IiA6ICJpZGxlIiwgZWxhcHNlZCgmc3RhcnQsICZlbmQsIGNvdW50KSk7CiAK LQlpZiAoYnVzeSkKKwlpZiAoZGF0YS0+bW9kZV9idXN5KQogCQlpZ3RfYXNzZXJ0X2VxKHJlYWQo ZmQsICZidWYsIHNpemVvZihidWYpKSwgc2l6ZW9mKGJ1ZikpOwogfQogCi1zdGF0aWMgdm9pZCB2 Ymxhbmtfd2FpdChpbnQgZmQsIGJvb2wgYnVzeSkKK3N0YXRpYyB2b2lkIHZibGFua193YWl0KGRh dGFfdCAqZGF0YSwgaW50IGZkKQogewogCXVuaW9uIGRybV93YWl0X3ZibGFuayB2Ymw7CiAJc3Ry dWN0IHRpbWVzcGVjIHN0YXJ0LCBlbmQ7CiAJdW5zaWduZWQgbG9uZyBzcSwgY291bnQgPSAwOwog CXN0cnVjdCBkcm1fZXZlbnRfdmJsYW5rIGJ1ZjsKKwl1aW50MzJfdCBwaXBlX2lkX2ZsYWc7CiAK IAltZW1zZXQoJnZibCwgMCwgc2l6ZW9mKHZibCkpOworCXBpcGVfaWRfZmxhZyA9IHBpcGVfaWRf dG9fdmJsX2ZsYWcoZGF0YS0+cGlwZSk7CiAKLQlpZiAoYnVzeSkgeworCWlmIChkYXRhLT5tb2Rl X2J1c3kpIHsKIAkJdmJsLnJlcXVlc3QudHlwZSA9IERSTV9WQkxBTktfUkVMQVRJVkUgfCBEUk1f VkJMQU5LX0VWRU5UOworCQl2YmwucmVxdWVzdC50eXBlIHw9IHBpcGVfaWRfZmxhZzsKIAkJdmJs LnJlcXVlc3Quc2VxdWVuY2UgPSA3MjsKIAkJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZC TEFOSywgJnZibCk7CiAJfQogCiAJdmJsLnJlcXVlc3QudHlwZSA9IERSTV9WQkxBTktfUkVMQVRJ VkU7CisJdmJsLnJlcXVlc3QudHlwZSB8PSBwaXBlX2lkX2ZsYWc7CiAJdmJsLnJlcXVlc3Quc2Vx dWVuY2UgPSAwOwogCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkssICZ2YmwpOwog CkBAIC0xNTUsNiArMjUzLDcgQEAgc3RhdGljIHZvaWQgdmJsYW5rX3dhaXQoaW50IGZkLCBib29s IGJ1c3kpCiAJY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZzdGFydCk7CiAJZG8gewog CQl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRTsKKwkJdmJsLnJlcXVlc3Qu dHlwZSB8PSBwaXBlX2lkX2ZsYWc7CiAJCXZibC5yZXF1ZXN0LnNlcXVlbmNlID0gMTsKIAkJZG9f aW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCk7CiAJCWNvdW50Kys7CkBAIC0x NjMsMzYgKzI2Miw0OSBAQCBzdGF0aWMgdm9pZCB2Ymxhbmtfd2FpdChpbnQgZmQsIGJvb2wgYnVz eSkKIAogCWlndF9pbmZvKCJUaW1lIHRvIHdhaXQgZm9yICVsZC8lZCB2YmxhbmtzICglcyk6CQkl Ny4zZsK1c1xuIiwKIAkJIGNvdW50LCAoaW50KSh2YmwucmVwbHkuc2VxdWVuY2UgLSBzcSksCi0J CSBidXN5ID8gImJ1c3kiIDogImlkbGUiLAorCQkgZGF0YS0+bW9kZV9idXN5ID8gImJ1c3kiIDog ImlkbGUiLAogCQkgZWxhcHNlZCgmc3RhcnQsICZlbmQsIGNvdW50KSk7CiAKLQlpZiAoYnVzeSkK KwlpZiAoZGF0YS0+bW9kZV9idXN5KQogCQlpZ3RfYXNzZXJ0X2VxKHJlYWQoZmQsICZidWYsIHNp emVvZihidWYpKSwgc2l6ZW9mKGJ1ZikpOwogfQogCiBpZ3RfbWFpbgogewogCWludCBmZDsKKwlk YXRhX3QgZGF0YTsKIAogCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKIAogCWlndF9maXh0dXJl IHsKIAkJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0FOWSk7Ci0JCWlndF9yZXF1aXJlKGNy dGMwX2FjdGl2ZShmZCkpOworCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisJCWln dF9kaXNwbGF5X2luaXQoJmRhdGEuZGlzcGxheSwgZmQpOwogCX0KIAotCWlndF9zdWJ0ZXN0KCJh Y2N1cmFjeSIpCi0JCWFjY3VyYWN5KGZkKTsKKwlpZ3Rfc3VidGVzdCgiYWNjdXJhY3kiKSB7CisJ CWRhdGEubW9kZV9idXN5ID0gMDsKKwkJcnVuX3Rlc3QoJmRhdGEsIGZkLCBhY2N1cmFjeSk7CisJ fQogCi0JaWd0X3N1YnRlc3QoInF1ZXJ5LWlkbGUiKQotCQl2YmxhbmtfcXVlcnkoZmQsIGZhbHNl KTsKKwlpZ3Rfc3VidGVzdCgicXVlcnktaWRsZSIpIHsKKwkJZGF0YS5tb2RlX2J1c3kgPSAwOwor CQlydW5fdGVzdCgmZGF0YSwgZmQsIHZibGFua19xdWVyeSk7CisJfQogCi0JaWd0X3N1YnRlc3Qo InF1ZXJ5LWJ1c3kiKQotCQl2YmxhbmtfcXVlcnkoZmQsIHRydWUpOworCWlndF9zdWJ0ZXN0KCJx dWVyeS1idXN5IikgeworCQlkYXRhLm1vZGVfYnVzeSA9IDE7CisJCXJ1bl90ZXN0KCZkYXRhLCBm ZCwgdmJsYW5rX3F1ZXJ5KTsKKwl9CiAKLQlpZ3Rfc3VidGVzdCgid2FpdC1pZGxlIikKLQkJdmJs YW5rX3dhaXQoZmQsIGZhbHNlKTsKKwlpZ3Rfc3VidGVzdCgid2FpdC1pZGxlIikgeworCQlkYXRh Lm1vZGVfYnVzeSA9IDA7CisJCXJ1bl90ZXN0KCZkYXRhLCBmZCwgdmJsYW5rX3dhaXQpOworCX0K IAotCWlndF9zdWJ0ZXN0KCJ3YWl0LWJ1c3kiKQotCQl2Ymxhbmtfd2FpdChmZCwgdHJ1ZSk7CisJ aWd0X3N1YnRlc3QoIndhaXQtYnVzeSIpIHsKKwkJZGF0YS5tb2RlX2J1c3kgPSAxOworCQlydW5f dGVzdCgmZGF0YSwgZmQsIHZibGFua193YWl0KTsKKwl9CiB9CisKLS0gCjIuNS4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK