From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id BA1F66E216 for ; Tue, 18 Jun 2019 18:01:10 +0000 (UTC) From: Anshuman Gupta Date: Tue, 18 Jun 2019 23:26:13 +0530 Message-Id: <20190618175617.22546-3-anshuman.gupta@intel.com> In-Reply-To: <20190618175617.22546-1-anshuman.gupta@intel.com> References: <20190618175617.22546-1-anshuman.gupta@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 2/6] tests/i915/i915_pm_dc: Added new test to verify Display C States List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: jyoti.r.yadav@intel.com List-ID: RnJvbTogSnlvdGkgWWFkYXYgPGp5b3RpLnIueWFkYXZAaW50ZWwuY29tPgoKQ3VycmVudGx5IHRo aXMgdGVzdCB2YWxpZGF0ZXMgREM1IHVwb24gUFNSIGVudHJ5IGZvciBzdXBwb3J0ZWQgcGxhdGZv cm1zLgpBZGRlZCBuZXcgZmlsZSBmb3IgY29tcGlsYXRpb24gaW5zaWRlIE1ha2VmaWxlIGFuZCBN ZXNvbi4KCnYyOiBVc2VkIHRoZSBkZWJ1Z2ZzIGVudHJ5IGZvciBEQyBjb3VudGVycyBpbnN0ZWFk IG9mIFJlZ2lzdGVycy4KICAgIFVzZWQgc2hvcnRlciBuYW1lcyBmb3IgdmFyaWFibGVzLgogICAg SW50cm9kdWNlZCB0aW1lb3V0IHRvIHJlYWQgREMgY291bnRlcnMuCnYzOiBvbmUgc2Vjb25kIHRp bWVvdXQgaXMgaW50cm9kdWNlZCB0byByZWFkIERDIGNvdW50ZXJzLgogICAgU2tpcCB0aGUgc3Vi dGVzdCBpZiBjb3VudGVycyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgdGhhdCBwbGF0Zm9ybS4KdjQ6 IFJlYmFzZWQsIHRvIGZpeCBjb21waWxhdGlvbiBlcnJvciBpbiBwc3JfZW5hYmxlKCksIHBzcl93 YWl0X2VudHJ5KCkKICAgIGFuZCByZXBsYWNlZCBpZ3RfZGlzcGxheV9pbml0KCkgYnkgaWd0X2Rp c3BsYXlfcmVxdWlyZSgpIGluIHBtX3JwbS5jLgogICAgQWRkcmVzc2VkIHRoZSByZXZpZXcgY29t bWVudCBieSByZW1vdmluZyB1bnVzZWQgZnVuY3Rpb24gZGlzcGxheV9pbml0LAogICAgcmVtb3Zp bmcgcmVkdW5kYW50IGlndCBjb21taXQgc3VnZ2VzdGVkIGJ5IEltcmUuCiAgICBGaXhlZCB0eXBv IGluIHJlYWRfZGNfY291bnRlcigpLgp2NTogQWRkcmVzc2VkIHRoZSByZXZpZXcgY29tbWVudCBi eSByZW1vdmluZyByZWR1bmRhbnQgcmVhZF9kY19jb3VudGVyKCksCiAgICBjbHViYmVkIGNsZWFu dXAoKSBmdW5jdGlvbiBpbiB0ZXN0X2RjX3N0YXRlX3BzcigpIHN1Z2dlc3RlZCBieSBJbXJlLgog ICAgUmVhcnJhbmdlZCAgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgYXQgb25lIHBsYWNlLgogICAg Rml4ZWQgY29tcGlsYXRpb24gd2FybmluZyBieSBhZGRpbmcgZnVuY3Rpb24gcHJvdG90eXBlIGZv cgogICAgZGNfc3RhdGVfd2FpdF9lbnRyeSgpIGFuZCBjaGVja19kY19jb3VudGVyKCkuCiAgICBM aXN0aW5nIGFjdHVhbCBjaGFuZ2UgaW4gcGF0Y2ggc2V0IGNoYW5nZWxvZyB0byBtYWtlIHJldmll dyBlYXNpZXIuCnY2OiBGaXhlZCAiaTkxNV9lZHBfcHNyX3N0YXR1cyIgc3RyaW5nIHRvICJTaW5r IHN1cHBvcnQ6IHllcyIuCnY3OiBSZWJhc2VkIHNpbmNlIHRlc3QgbmFtZSBjaGFuZ2VkIGZyb20g InBtX2RjIiB0byAiaTkxNV9wbV9kYyIsCiAgICB0aGlzIHdpbGwgYWxpZ24gd2l0aCBvdGhlciBQ TSB0ZXN0cy4KICAgIGFsc28gY2hhbmdlZCB0aGUgREM1LzYgY291bnRlciBjaGVjayB0aW1lb3V0 IHRvIDMgc2Vjb25kLgp2ODogT24gZmV3IHBsYXRmb3JtIFNBVEEgaS9wIGlzIGJsb2NraW5nIGRl ZXBlciBwYWNrYWdlIEMgc3RhdGVzLgogICAgdXNlZCBpZ3RfcG1fZW5hYmxlX3NhdGFfbGlua19w b3dlcl9tYW5hZ2VtZW50KCkgZnVuY3Rpb24gaW4gb3JkZXIKICAgIHRvIHVzZSBtaW5fcG93ZXIg cG9saWN5Lgp2OTogUmVtb3ZpbmcgcmVkdW5kYW50IGlndF9wbV9yZW1vdmVfc2F0YV9saW5rX3Bv d2VyX21hbmFnZW1lbnQoKQogICAgYXMgc2F0YSBsaW5rIHBvbGljeSB2bGF1ZXMgd2lsbCBiZSBy ZXN0b3JlZCBieSBleGl0IGhhbmRsZXIuCgpTaWduZWQtb2ZmLWJ5OiBKeW90aSBZYWRhdiA8anlv dGkuci55YWRhdkBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuc2h1bWFuIEd1cHRhIDxhbnNo dW1hbi5ndXB0YUBpbnRlbC5jb20+Ci0tLQogdGVzdHMvTWFrZWZpbGUuc291cmNlcyAgfCAgIDMg KwogdGVzdHMvaTkxNS9pOTE1X3BtX2RjLmMgfCAyNTcgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogdGVzdHMvbWVzb24uYnVpbGQgICAgICAgfCAgIDEgKwogMyBmaWxl cyBjaGFuZ2VkLCAyNjEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2k5 MTUvaTkxNV9wbV9kYy5jCgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rl c3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggMjE0Njk4ZGEuLjIxZmViNzMyIDEwMDY0NAotLS0g YS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKQEAg LTQ4OSw2ICs0ODksOSBAQCBpOTE1X3BtX3JjNl9yZXNpZGVuY3lfU09VUkNFUyA9IGk5MTUvaTkx NV9wbV9yYzZfcmVzaWRlbmN5LmMKIFRFU1RTX3Byb2dzICs9IGk5MTVfcG1fcnBtCiBpOTE1X3Bt X3JwbV9TT1VSQ0VTID0gaTkxNS9pOTE1X3BtX3JwbS5jCiAKK1RFU1RTX3Byb2dzICs9IGk5MTVf cG1fZGMKK2k5MTVfcG1fZGNfU09VUkNFUyA9IGk5MTUvaTkxNV9wbV9kYy5jCisKIFRFU1RTX3By b2dzICs9IGk5MTVfcG1fcnBzCiBpOTE1X3BtX3Jwc19TT1VSQ0VTID0gaTkxNS9pOTE1X3BtX3Jw cy5jCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvaTkxNV9wbV9kYy5jIGIvdGVzdHMvaTkxNS9p OTE1X3BtX2RjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjVkNjA4MzM3 Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvaTkxNS9pOTE1X3BtX2RjLmMKQEAgLTAsMCArMSwy NTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUg U29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlv bgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3 YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cisg KgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBp biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUu CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVW RU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1 ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF9zeXNmcy5oIgorI2luY2x1ZGUgImlndF9wc3IuaCIK KyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzdGRp by5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSAi aW50ZWxfYnVmbWdyLmgiCisjaW5jbHVkZSAiaW50ZWxfaW8uaCIKKyNpbmNsdWRlICJsaW1pdHMu aCIKKyNpbmNsdWRlICJpZ3Rfa21vZC5oIgorCisvKiBEQyBTdGF0ZSBGbGFncyAqLworI2RlZmlu ZSBDSEVDS19EQzUJMQorI2RlZmluZSBDSEVDS19EQzYJMgorCisjZGVmaW5lIE1TUl9QS0dfQ1NU X0NPTkZJR19DT05UUk9MCTB4RTIKKy8qIEhTVy9CRFc6ICovCisjZGVmaW5lICBQS0dfQ1NUX0xJ TUlUX01BU0sJCTB4RgorI2RlZmluZSAgUEtHX0NTVF9MSU1JVF9DOAkJMHg2CisKKyNkZWZpbmUg TVNSX1BDOF9SRVMJMHg2MzAKKyNkZWZpbmUgTVNSX1BDOV9SRVMJMHg2MzEKKyNkZWZpbmUgTVNS X1BDMTBfUkVTCTB4NjMyCisKK3R5cGVkZWYgc3RydWN0IHsKKwlpbnQgZHJtX2ZkOworCWludCBk ZWJ1Z2ZzX2ZkOworCXVpbnQzMl90IGRldmlkOworCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKKwlz dHJ1Y3QgaWd0X2ZiIGZiX3doaXRlOworCWVudW0gcHNyX21vZGUgb3BfcHNyX21vZGU7CisJZHJt TW9kZU1vZGVJbmZvICptb2RlOworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworfSBkYXRhX3Q7CisK K2ludCBtc3JfZmQ7CisKK2Jvb2wgZGNfc3RhdGVfd2FpdF9lbnRyeShpbnQgZHJtX2ZkLCBpbnQg ZGNfZmxhZywgaW50IHByZXZfZGNfY291bnQpOwordm9pZCBjaGVja19kY19jb3VudGVyKGludCBk cm1fZmQsIGludCBkY19mbGFnLCB1aW50MzJfdCBwcmV2X2RjX2NvdW50KTsKKworLyogSWYgdGhl IHJlYWQgZmFpbHMsIHRoZW4gdGhlIG1hY2hpbmUgZG9lc24ndCBzdXBwb3J0IFBDOCsgcmVzaWRl bmNpZXMuICovCitzdGF0aWMgYm9vbCBzdXBwb3J0c19wYzhfcGx1c19yZXNpZGVuY2llcyh2b2lk KQoreworCWludCByYzsKKwl1aW50NjRfdCB2YWw7CisKKwlyYyA9IHByZWFkKG1zcl9mZCwgJnZh bCwgc2l6ZW9mKHVpbnQ2NF90KSwgTVNSX1BDOF9SRVMpOworCWlmIChyYyAhPSBzaXplb2YodmFs KSkKKwkJcmV0dXJuIGZhbHNlOworCXJjID0gcHJlYWQobXNyX2ZkLCAmdmFsLCBzaXplb2YodWlu dDY0X3QpLCBNU1JfUEM5X1JFUyk7CisJaWYgKHJjICE9IHNpemVvZih2YWwpKQorCQlyZXR1cm4g ZmFsc2U7CisJcmMgPSBwcmVhZChtc3JfZmQsICZ2YWwsIHNpemVvZih1aW50NjRfdCksIE1TUl9Q QzEwX1JFUyk7CisJaWYgKHJjICE9IHNpemVvZih2YWwpKQorCQlyZXR1cm4gZmFsc2U7CisKKwly YyA9IHByZWFkKG1zcl9mZCwgJnZhbCwgc2l6ZW9mKHVpbnQ2NF90KSwgTVNSX1BLR19DU1RfQ09O RklHX0NPTlRST0wpOworCWlmIChyYyAhPSBzaXplb2YodmFsKSkKKwkJcmV0dXJuIGZhbHNlOwor CWlmICgodmFsICYgUEtHX0NTVF9MSU1JVF9NQVNLKSA8IFBLR19DU1RfTElNSVRfQzgpIHsKKwkJ aWd0X2luZm8oIlBLRyBDLXN0YXRlcyBsaW1pdGVkIGJlbG93IFBDOCBieSB0aGUgQklPU1xuIik7 CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQg c2V0dXBfb3V0cHV0KGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0g JmRhdGEtPmRpc3BsYXk7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJZW51bSBwaXBlIHBpcGU7 CisKKwlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KGRpc3BsYXksIHBpcGUsIG91dHB1 dCkgeworCQlkcm1Nb2RlQ29ubmVjdG9yUHRyIGMgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7 CisKKwkJaWYgKGMtPmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFApCisJ CQljb250aW51ZTsKKworCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisJCWRh dGEtPm91dHB1dCA9IG91dHB1dDsKKwkJZGF0YS0+bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUo b3V0cHV0KTsKKworCQlyZXR1cm47CisJfQorfQorCitzdGF0aWMgdm9pZCBkaXNwbGF5X2Zpbmko ZGF0YV90ICpkYXRhKQoreworCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEtPmRpc3BsYXkpOworfQor CitzdGF0aWMgYm9vbCBlZHBfcHNyX3Npbmtfc3VwcG9ydChkYXRhX3QgKmRhdGEpCit7CisJY2hh ciBidWZbNTEyXTsKKworCWlndF9kZWJ1Z2ZzX3NpbXBsZV9yZWFkKGRhdGEtPmRlYnVnZnNfZmQs ICJpOTE1X2VkcF9wc3Jfc3RhdHVzIiwKKwkJCQlidWYsIHNpemVvZihidWYpKTsKKworCXJldHVy biBzdHJzdHIoYnVmLCAiU2luayBzdXBwb3J0OiB5ZXMiKTsKK30KKworc3RhdGljIHZvaWQgY2xl YW51cChkYXRhX3QgKmRhdGEpCit7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7CisKKwlwcmltYXJ5 ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJCQkJCSAgICBEUk1f UExBTkVfVFlQRV9QUklNQVJZKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOwor CWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CisJaWd0X3JlbW92ZV9mYihkYXRh LT5kcm1fZmQsICZkYXRhLT5mYl93aGl0ZSk7Cit9CisKK3N0YXRpYyB2b2lkIHNldHVwX3ByaW1h cnkoZGF0YV90ICpkYXRhKQoreworCWlndF9wbGFuZV90ICpwcmltYXJ5OworCisJcHJpbWFyeSA9 IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAorCQkJCQkgICAgRFJNX1BM QU5FX1RZUEVfUFJJTUFSWSk7CisJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsKKwlp Z3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwKKwkJCSAgICBkYXRhLT5tb2RlLT5oZGlz cGxheSwgZGF0YS0+bW9kZS0+dmRpc3BsYXksCisJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwK KwkJCSAgICBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKKwkJCSAgICAxLjAsIDEuMCwg MS4wLAorCQkJICAgICZkYXRhLT5mYl93aGl0ZSk7CisJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5 LCAmZGF0YS0+ZmJfd2hpdGUpOworCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7 Cit9CisKK3N0YXRpYyB1aW50MzJfdCBnZXRfZGNfY291bnRlcihjaGFyICpkY19kYXRhKQorewor CWNoYXIgKmU7CisJbG9uZyByZXQ7CisJY2hhciAqcyA9IHN0cmNocihkY19kYXRhLCAnOicpOwor CisJYXNzZXJ0KHMpOworCXMrKzsKKwlyZXQgPSBzdHJ0b2wocywgJmUsIDEwKTsKKwlhc3NlcnQo KChyZXQgIT0gTE9OR19NSU4gJiYgcmV0ICE9IExPTkdfTUFYKSB8fCBlcnJubyAhPSBFUkFOR0Up ICYmCisJICAgICAgIGUgPiBzICYmICplID09ICdcbicgJiYgcmV0ID49IDApOworCXJldHVybiBy ZXQ7Cit9CisKK3N0YXRpYyB1aW50MzJfdCByZWFkX2RjX2NvdW50ZXIodWludDMyX3QgZHJtX2Zk LCBpbnQgZGNfZmxhZykKK3sKKwljaGFyIGJ1Zls0MDk2XTsKKwljaGFyICpzdHI7CisKKwlpZ3Rf ZGVidWdmc19yZWFkKGRybV9mZCwgImk5MTVfZG1jX2luZm8iLCBidWYpOworCisJaWYgKGRjX2Zs YWcgJiBDSEVDS19EQzUpCisJCXN0ciA9IHN0cnN0cihidWYsICJEQzMgLT4gREM1IGNvdW50Iik7 CisJZWxzZSBpZiAoZGNfZmxhZyAmIENIRUNLX0RDNikKKwkJc3RyID0gc3Ryc3RyKGJ1ZiwgIkRD NSAtPiBEQzYgY291bnQiKTsKKworCS8qIENoZWNrIERDNS9EQzYgY291bnRlciBpcyBhdmFpbGFi bGUgZm9yIHRoZSBwbGF0Zm9ybS4KKwkgKiBTa2lwIHRoZSB0ZXN0IGlmIGNvdW50ZXIgaXMgbm90 IGF2YWlsYWJsZS4KKwkgKi8KKwlpZ3Rfc2tpcF9vbl9mKCFzdHIsICJEQyVkIGNvdW50ZXIgaXMg bm90IGF2YWlsYWJsZVxuIiwKKwkJICAgICAgZGNfZmxhZyAmIENIRUNLX0RDNSA/IDUgOiA2KTsK KwlyZXR1cm4gZ2V0X2RjX2NvdW50ZXIoc3RyKTsKK30KKworYm9vbCBkY19zdGF0ZV93YWl0X2Vu dHJ5KGludCBkcm1fZmQsIGludCBkY19mbGFnLCBpbnQgcHJldl9kY19jb3VudCkKK3sKKwlyZXR1 cm4gaWd0X3dhaXQocmVhZF9kY19jb3VudGVyKGRybV9mZCwgZGNfZmxhZykgPgorCQkJcHJldl9k Y19jb3VudCwgMzAwMCwgMTAwKTsKK30KKwordm9pZCBjaGVja19kY19jb3VudGVyKGludCBkcm1f ZmQsIGludCBkY19mbGFnLCB1aW50MzJfdCBwcmV2X2RjX2NvdW50KQoreworCWlndF9hc3NlcnRf ZihkY19zdGF0ZV93YWl0X2VudHJ5KGRybV9mZCwgZGNfZmxhZywgcHJldl9kY19jb3VudCksCisJ CSAgICAgIkRDJWQgc3RhdGUgaXMgbm90IGFjaGlldmVkXG4iLAorCQkgICAgIGRjX2ZsYWcgJiBD SEVDS19EQzUgPyA1IDogNik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfZGNfc3RhdGVfcHNyKGRh dGFfdCAqZGF0YSwgaW50IGRjX2ZsYWcpCit7CisJdWludDMyX3QgZGNfY291bnRlcl9iZWZvcmVf cHNyOworCisJZGNfY291bnRlcl9iZWZvcmVfcHNyID0gcmVhZF9kY19jb3VudGVyKGRhdGEtPmRy bV9mZCwgZGNfZmxhZyk7CisJc2V0dXBfb3V0cHV0KGRhdGEpOworCXNldHVwX3ByaW1hcnkoZGF0 YSk7CisJaWd0X2Fzc2VydChwc3Jfd2FpdF9lbnRyeShkYXRhLT5kZWJ1Z2ZzX2ZkLCBkYXRhLT5v cF9wc3JfbW9kZSkpOworCWNoZWNrX2RjX2NvdW50ZXIoZGF0YS0+ZHJtX2ZkLCBkY19mbGFnLCBk Y19jb3VudGVyX2JlZm9yZV9wc3IpOworCWNsZWFudXAoZGF0YSk7Cit9CisKK2ludCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJYm9vbCBoYXNfcnVudGltZV9wbTsKKwlkYXRhX3Qg ZGF0YSA9IHt9OworCisJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOworCWlndF9zdWJ0ZXN0X2lu aXQoYXJnYywgYXJndik7CisJaWd0X2ZpeHR1cmUgeworCQlkYXRhLmRybV9mZCA9IGRybV9vcGVu X2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsKKwkJZGF0YS5kZWJ1Z2ZzX2ZkID0gaWd0X2Rl YnVnZnNfZGlyKGRhdGEuZHJtX2ZkKTsKKwkJaWd0X3JlcXVpcmUoZGF0YS5kZWJ1Z2ZzX2ZkICE9 IC0xKTsKKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOworCQlkYXRhLmRldmlkID0g aW50ZWxfZ2V0X2RybV9kZXZpZChkYXRhLmRybV9mZCk7CisJCWlndF9wbV9lbmFibGVfc2F0YV9s aW5rX3Bvd2VyX21hbmFnZW1lbnQoKTsKKwkJaGFzX3J1bnRpbWVfcG0gPSBpZ3Rfc2V0dXBfcnVu dGltZV9wbSgpOworCQlpZ3RfaW5mbygiUnVudGltZSBQTSBzdXBwb3J0OiAlZFxuIiwgaGFzX3J1 bnRpbWVfcG0pOworCQlpZ3RfcmVxdWlyZShoYXNfcnVudGltZV9wbSk7CisJCWlndF9yZXF1aXJl KGlndF9wbV9kbWNfbG9hZGVkKGRhdGEuZGVidWdmc19mZCkpOworCQlpZ3RfZGlzcGxheV9yZXF1 aXJlKCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsKKwkJLyogTWFrZSBzdXJlIG91ciBLZXJu ZWwgc3VwcG9ydHMgTVNSIGFuZCB0aGUgbW9kdWxlIGlzIGxvYWRlZC4gKi8KKwkJaWd0X3JlcXVp cmUoaWd0X2ttb2RfbG9hZCgibXNyIiwgTlVMTCkgPT0gMCk7CisKKwkJbXNyX2ZkID0gb3Blbigi L2Rldi9jcHUvMC9tc3IiLCBPX1JET05MWSk7CisJCWlndF9hc3NlcnRfZihtc3JfZmQgPj0gMCwK KwkJCSAgICAgIkNhbid0IG9wZW4gL2Rldi9jcHUvMC9tc3IuXG4iKTsKKwl9CisKKwlpZ3Rfc3Vi dGVzdCgiZGM1LXBzciIpIHsKKwkJZGF0YS5vcF9wc3JfbW9kZSA9IFBTUl9NT0RFXzE7CisJCXBz cl9lbmFibGUoZGF0YS5kZWJ1Z2ZzX2ZkLCBkYXRhLm9wX3Bzcl9tb2RlKTsKKwkJaWd0X3JlcXVp cmVfZihlZHBfcHNyX3Npbmtfc3VwcG9ydCgmZGF0YSksCisJCQkgICAgICAiU2luayBkb2VzIG5v dCBzdXBwb3J0IFBTUlxuIik7CisJCXRlc3RfZGNfc3RhdGVfcHNyKCZkYXRhLCBDSEVDS19EQzUp OworCX0KKworCWlndF9maXh0dXJlIHsKKwkJY2xvc2UoZGF0YS5kZWJ1Z2ZzX2ZkKTsKKwkJZGlz cGxheV9maW5pKCZkYXRhKTsKKwl9CisKKwlpZ3RfZXhpdCgpOworfQpkaWZmIC0tZ2l0IGEvdGVz dHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRleCA1MTY3YTZjYy4uZjMwN2Nm YjIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBiL3Rlc3RzL21lc29uLmJ1aWxk CkBAIC0yMjAsNiArMjIwLDcgQEAgaTkxNV9wcm9ncyA9IFsKIAknaTkxNV9wbV9scHNwJywKIAkn aTkxNV9wbV9yYzZfcmVzaWRlbmN5JywKIAknaTkxNV9wbV9ycG0nLAorCSdpOTE1X3BtX2RjJywK IAknaTkxNV9wbV9ycHMnLAogCSdpOTE1X3BtX3NzZXUnLAogCSdpOTE1X3F1ZXJ5JywKLS0gCjIu MjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0 LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2