From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4FF666E029 for ; Thu, 12 Sep 2019 01:30:17 +0000 (UTC) From: Manasi Navare Date: Wed, 11 Sep 2019 18:31:39 -0700 Message-Id: <20190912013139.30869-1-manasi.d.navare@intel.com> In-Reply-To: <20190823182351.25822-3-madhumitha.tolakanahalli.pradeep@intel.com> References: <20190823182351.25822-3-madhumitha.tolakanahalli.pradeep@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3] igt/tests/kms_dp_tiled_display: kms test for display port tiled displays 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: madhumitha.tp@gmail.com, Petri Latvala List-ID: RnJvbTogTWFkaHVtaXRoYSBUb2xha2FuYWhhbGxpIFByYWRlZXAgPG1hZGh1bWl0aGEudG9sYWth bmFoYWxsaS5wcmFkZWVwQGludGVsLmNvbT4KClRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIHRpbGVk IERQIGRpc3BsYXlzIHRvIGRpc3BsYXkgYSB0ZXN0IHBhdHRlcm4Kc2VhbWxlc3NseSBhY3Jvc3Mg dGhlIHR3byB0aWxlcy4gSXQgdmFsaWRhdGVzIHRoZSB0cmFuc2NvZGVyIHBvcnQKc3luYyBmZWF0 dXJlIG9uIGk5MTUgdG8gZ2V0IGEgdGVhcmZyZWUgdGlsZWQgZGlzcGxheSBvdXRwdXQuCgpSZWxh dGVkIGtlcm5lbCB3b3JrIHBhdGNoZXMtCmh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9y Zy9zZXJpZXMvNjY0MDMvCgpUaGlzIHRlc3QgY2FuIGV2ZW50dWFsbHkgYmUgZXh0ZW5kZWQgdG8g Y292ZXIgdGlsZWQgZGlzcGxheSBzdXBwb3J0Cm9uIG90aGVyIGNvbm5lY3RvciB0eXBlcy4KCnYz OgoqIEZpeCB0aGUgcG9pbnRlciBsZWFrcyAoU2ltb24pCiogQ29kZSBpbmRlbnRhdGlvbiAoTWFu YXNpKQoqIENvbXBhcmUgdHdvIGNvbnNlY3V0aXZlIGZsaXAgdGltZXN0YW1wcyAoU2ltb24pCiog VXNlIHNpbmdsZSBmYiBhY3Jvc3MgdGlsZXMgKFNpbW9uKQoqIEZpeCByZXNldCBtb2RlIGxvZ2lj IChNYW5hc2kpCgp2MjogQWRkZWQgYSBjaGVjayBmb3IgY2hlY2tpbmcgcGFnZWZsaXAgZXZlbnQg dGltZXN0YW1wcyAoU2ltb24sIE1hbmFzaSkKICAgIE1pbm9yIHN0eWxlIGNoYW5nZXMgKFNpbW9u KQogICBDb2RlIGNsZWFuLXVwIGFuZCByZW9yZGVyaW5nCgpDYzogTWFuYXNpIE5hdmFyZSA8bWFu YXNpLmQubmF2YXJlQGludGVsLmNvbT4KQ2M6IFBldHJpIExhdHZhbGEgPHBldHJpLmxhdHZhbGFA aW50ZWwuY29tPgpDYzogU2ltb24gU2VyIDxzaW1vbi5zZXJAaW50ZWwuY29tPgpDYzogPG1hZGh1 bWl0aGEudHBAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYWRodW1pdGhhIFRvbGFrYW5haGFs bGkgUHJhZGVlcCA8bWFkaHVtaXRoYS50b2xha2FuYWhhbGxpLnByYWRlZXBAaW50ZWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgot LS0KIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICAgICAgfCAgIDEgKwogdGVzdHMva21zX2RwX3Rp bGVkX2Rpc3BsYXkuYyB8IDM3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog dGVzdHMvbWVzb24uYnVpbGQgICAgICAgICAgICB8ICAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDM3 OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX2RwX3RpbGVkX2Rp c3BsYXkuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtl ZmlsZS5zb3VyY2VzCmluZGV4IGMwMmU0ZDk0Li43NTYxYWI5YiAxMDA2NDQKLS0tIGEvdGVzdHMv TWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC00MSw2ICs0 MSw3IEBAIFRFU1RTX3Byb2dzID0gXAogCWttc19jdXJzb3JfZWRnZV93YWxrIFwKIAlrbXNfY3Vy c29yX2xlZ2FjeSBcCiAJa21zX2RwX2RzYyBcCisJa21zX2RwX3RpbGVkX2Rpc3BsYXkgXAogCWtt c19kcmF3X2NyYyBcCiAJa21zX2ZiY29uX2ZidCBcCiAJa21zX2ZlbmNlX3Bpbl9sZWFrIFwKZGlm ZiAtLWdpdCBhL3Rlc3RzL2ttc19kcF90aWxlZF9kaXNwbGF5LmMgYi90ZXN0cy9rbXNfZHBfdGls ZWRfZGlzcGxheS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5kZTI2NjJk NAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2ttc19kcF90aWxlZF9kaXNwbGF5LmMKQEAgLTAs MCArMSwzNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgor ICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBp biB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt aXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJl IGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29m dHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICog RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElO IE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVU SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcK KyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI RSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRo b3JzOgorICogIE1hZGh1bWl0aGEgVG9sYWthbmFoYWxsaSBQcmFkZWVwCisgKiAgICAgIDxtYWRo dW1pdGhhLnRvbGFrYW5haGFsbGkucHJhZGVlcEBpbnRlbC5jb20+CisgKiAgTWFuYXNpIE5hdmFy ZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KKyAqCisgKiBEaXNwbGF5IFBvcnQgVGlsZWQg RGlzcGxheSBUZXN0CisgKiBUaGlzIHRlc3QgcGFyc2VzIHRoZSB0aWxlIGluZm9ybWF0aW9uIG9m IHRoZSBjb25uZWN0b3JzIHRoYXQgaGF2ZSBUSUxFCisgKiBwcm9wZXJ0eSBzZXQsIHNldHMgdXAg dGhlIGZyYW1lYnVmZmVyIHdpdGggY29ycmVjdCBvZmZzZXRzIGNvcnJlc3BvbmRpbmcgdG8KKyAq IHRoZSB0aWxlIG9mZnNldHMgYW5kIGRvZXMgYW4gYXRvbWljIG1vZGVzZXQgd2l0aCB0d28gQ1JU Q3MgZm9yIHR3bworICogY29ubmVjdG9ycy4gUGFnZSBmbGlwIGV2ZW50IHRpbWVzdGFtcCBmcm9t IGVhY2ggQ1JUQyBpcyBjb2xsZWN0ZWQgYW5kCisgKiBjb21wYXJlZCB0byBtYWtlIHN1cmUgdGhh dCB0aGV5IG9jY3VycmVkIGluIGEgc3luY2hyb25vdXMgbWFubmVyLgorICoKKyAqIFRoaXMgdGVz dCBjdXJyZW50bHkgc3VwcG9ydHMgb25seSBob3Jpem9udGFsbHkgdGlsZWQgZGlzcGxheXMsIGlu IGxpbmUgd2l0aAorICogdGhlIGRpc3BsYXlzIHN1cHBvcnRlZCBieSB0aGUga2VybmVsIGF0IHRo ZSBtb21lbnQuCisgKi8KKworI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgInBvbGwuaCIKKyNp bmNsdWRlICJkcm1fbW9kZS5oIgorI2luY2x1ZGUgImRybV9mb3VyY2MuaCIKKworSUdUX1RFU1Rf REVTQ1JJUFRJT04oIlRlc3QgZm9yIFRyYW5zY29kZXIgUG9ydCBTeW5jIGZvciBEaXNwbGF5IFBv cnQgVGlsZWQgRGlzcGxheXMiKTsKKwordHlwZWRlZiBzdHJ1Y3QgeworCWludCBkcm1fZmQ7CisJ aW50IG51bV9oX3RpbGVzOworCWlndF9mYl90IGZiX3Rlc3RfcGF0dGVybjsKKwlpZ3RfZGlzcGxh eV90ICpkaXNwbGF5OworCWVudW0gaWd0X2NvbW1pdF9zdHlsZSBjb21taXQ7Cit9IGRhdGFfdDsK KwordHlwZWRlZiBzdHJ1Y3QgeworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWlndF90aWxlX2lu Zm9fdCB0aWxlOworCWVudW0gcGlwZSBwaXBlOworCWVudW0gaWd0X2NvbW1pdF9zdHlsZSBjb21t aXQ7CisJZHJtTW9kZUNvbm5lY3RvclB0ciBjb25uZWN0b3I7Cit9IGRhdGFfY29ubmVjdG9yX3Q7 CisKK3N0YXRpYyBpbnQgZHJtX3Byb3BlcnR5X2lzX3RpbGUoZHJtTW9kZVByb3BlcnR5UHRyIHBy b3ApCit7CisJcmV0dXJuIChzdHJjbXAocHJvcC0+bmFtZSwgIlRJTEUiKSA/IDAgOiAxKSAmJgor CQkJIGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3AsIERSTV9NT0RFX1BST1BfQkxPQik7Cit9CisK K3N0YXRpYyB2b2lkIGdldF9jb25uZWN0b3JfdGlsZV9wcm9wcyhkYXRhX3QgKmRhdGEsIGRybU1v ZGVDb25uZWN0b3JQdHIgY29ubiwKKwkJaWd0X3RpbGVfaW5mb190ICp0aWxlKQoreworCWludCBp ID0gMDsKKwlkcm1Nb2RlUHJvcGVydHlQdHIgcHJvcDsKKwlkcm1Nb2RlUHJvcGVydHlCbG9iUHRy IGJsb2I7CisKKwlmb3IgKGkgPSAwOyBpIDwgY29ubi0+Y291bnRfcHJvcHM7IGkrKykgeworCQlw cm9wID0gZHJtTW9kZUdldFByb3BlcnR5KGRhdGEtPmRybV9mZCwgY29ubi0+cHJvcHNbaV0pOwor CisJCWlndF9hc3NlcnQocHJvcCk7CisKKwkJaWYgKCFkcm1fcHJvcGVydHlfaXNfdGlsZShwcm9w KSkgeworCQkJZHJtTW9kZUZyZWVQcm9wZXJ0eShwcm9wKTsKKwkJCWNvbnRpbnVlOworCQl9CisK KwkJYmxvYiA9IGRybU1vZGVHZXRQcm9wZXJ0eUJsb2IoZGF0YS0+ZHJtX2ZkLAorCQkJCWNvbm4t PnByb3BfdmFsdWVzW2ldKTsKKworCQlpZiAoIWJsb2IpCisJCQlnb3RvIGNsZWFudXA7CisKKwkJ aWd0X3BhcnNlX2Nvbm5lY3Rvcl90aWxlX2Jsb2IoYmxvYiwgdGlsZSk7CisJCWJyZWFrOworCX0K KworY2xlYW51cDoKKwlkcm1Nb2RlRnJlZVByb3BlcnR5KHByb3ApOworCWRybU1vZGVGcmVlUHJv cGVydHlCbG9iKGJsb2IpOworfQorCitzdGF0aWMgdm9pZCBnZXRfbnVtYmVyX29mX2hfdGlsZXMo ZGF0YV90ICpkYXRhKQoreworCWludCBpOworCWRybU1vZGVSZXNQdHIgcmVzOworCWRybU1vZGVD b25uZWN0b3JQdHIgY29ubmVjdG9yOworCWlndF90aWxlX2luZm9fdCB0aWxlID0gey5udW1faF90 aWxlID0gMH07CisKKwlpZ3RfYXNzZXJ0KHJlcyA9IGRybU1vZGVHZXRSZXNvdXJjZXMoZGF0YS0+ ZHJtX2ZkKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgcmVzLT5jb3VudF9jb25uZWN0b3JzOyBpKysp IHsKKwkJY29ubmVjdG9yID0gZHJtTW9kZUdldENvbm5lY3RvckN1cnJlbnQoZGF0YS0+ZHJtX2Zk LAorCQkJCXJlcy0+Y29ubmVjdG9yc1tpXSk7CisKKwkJaWd0X2Fzc2VydChjb25uZWN0b3IpOwor CisJCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rpb24gIT0gRFJNX01PREVfQ09OTkVDVEVEIHx8CisJ CSAgICBjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNw bGF5UG9ydCkgeworCQkJZHJtTW9kZUZyZWVDb25uZWN0b3IoY29ubmVjdG9yKTsKKwkJCWNvbnRp bnVlOworCQl9CisKKwkJZ2V0X2Nvbm5lY3Rvcl90aWxlX3Byb3BzKGRhdGEsIGNvbm5lY3Rvciwg JnRpbGUpOworCQlkYXRhLT5udW1faF90aWxlcyA9IHRpbGUubnVtX2hfdGlsZTsKKwkJYnJlYWs7 CisJfQorCisJZHJtTW9kZUZyZWVSZXNvdXJjZXMocmVzKTsKKwlkcm1Nb2RlRnJlZUNvbm5lY3Rv cihjb25uZWN0b3IpOworfQorCitzdGF0aWMgdm9pZCBnZXRfY29ubmVjdG9ycyhkYXRhX3QgKmRh dGEsIGRhdGFfY29ubmVjdG9yX3QgKmNvbm5zKQoreworCWludCBjb3VudCA9IDA7CisJaWd0X291 dHB1dF90ICpvdXRwdXQ7CisKKwlmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0KGRhdGEtPmRpc3Bs YXksIG91dHB1dCkgeworCQljb25uc1tjb3VudF0uY29ubmVjdG9yID0gZHJtTW9kZUdldENvbm5l Y3RvcihkYXRhLT5kaXNwbGF5LT5kcm1fZmQsCisJCQkJCQkJICAgICBvdXRwdXQtPmlkKTsKKwor CQlpZ3RfYXNzZXJ0KGNvbm5zW2NvdW50XS5jb25uZWN0b3IpOworCisJCWlmIChjb25uc1tjb3Vu dF0uY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSAhPQorCQkgICAgRFJNX01PREVfQ09OTkVDVE9S X0Rpc3BsYXlQb3J0KSB7CisJCQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihjb25uc1tjb3VudF0uY29u bmVjdG9yKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJZ2V0X2Nvbm5lY3Rvcl90aWxlX3Byb3Bz KGRhdGEsIGNvbm5zW2NvdW50XS5jb25uZWN0b3IsCisJCQkJCSAmY29ubnNbY291bnRdLnRpbGUp OworCisJCS8qIENoZWNrIGlmIHRoZSBjb25uZWN0b3JzIGJlbG9uZyB0byB0aGUgc2FtZSB0aWxl IGdyb3VwICovCisJCWlmIChjb3VudCA+IDApCisJCQlpZ3RfYXNzZXJ0KGNvbm5zW2NvdW50XS50 aWxlLnRpbGVfZ3JvdXBfaWQgPT0KKwkJCQkgICBjb25uc1tjb3VudC0xXS50aWxlLnRpbGVfZ3Jv dXBfaWQpOworCisJCWNvdW50Kys7CisJfQorfQorCitzdGF0aWMgdm9pZAorcmVzZXRfcGxhbmUo aWd0X291dHB1dF90ICpvdXRwdXQpCit7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7CisKKwlwcmlt YXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX1BS SU1BUlkpOworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7Cit9CisKK3N0YXRpYyB2 b2lkIHJlc2V0X291dHB1dChpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKK3sKKwlpZ3Rfb3V0cHV0X3Nl dF9waXBlKG91dHB1dCwgUElQRV9OT05FKTsKK30KKworc3RhdGljIHZvaWQgcmVzZXRfbW9kZShk YXRhX3QgKmRhdGEsIGRhdGFfY29ubmVjdG9yX3QgKmNvbm5zKQoreworCWludCBjb3VudDsKKwlp Z3Rfb3V0cHV0X3QgKm91dHB1dDsKKworCWZvciAoY291bnQgPSAwOyBjb3VudCA8IGRhdGEtPm51 bV9oX3RpbGVzOyBjb3VudCsrKSB7CisJCW91dHB1dCA9IGlndF9vdXRwdXRfZnJvbV9jb25uZWN0 b3IoZGF0YS0+ZGlzcGxheSwKKwkJCQkJCSAgIGNvbm5zW2NvdW50XS5jb25uZWN0b3IpOworCQlp Z3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9OT05FKTsKKwl9CisJaWd0X2Rpc3BsYXlf Y29tbWl0MihkYXRhLT5kaXNwbGF5LCBkYXRhLT5jb21taXQpOworfQorCitzdGF0aWMgdm9pZCB0 ZXN0X2NsZWFudXAoZGF0YV90ICpkYXRhLCBkYXRhX2Nvbm5lY3Rvcl90ICpjb25ucykKK3sKKwlp bnQgY291bnQ7CisKKwlmb3IgKGNvdW50ID0gMDsgY291bnQgPCBkYXRhLT5udW1faF90aWxlczsg Y291bnQrKykgeworCQlpZiAoY29ubnNbY291bnRdLm91dHB1dCkgeworCQkJcmVzZXRfcGxhbmUo Y29ubnNbY291bnRdLm91dHB1dCk7CisJCQlyZXNldF9vdXRwdXQoY29ubnNbY291bnRdLm91dHB1 dCk7CisJCX0KKwl9CisJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYl90ZXN0 X3BhdHRlcm4pOworCWlndF9kaXNwbGF5X2NvbW1pdDIoZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29t bWl0KTsKK30KKworc3RhdGljIHZvaWQgc2V0dXBfbW9kZShkYXRhX3QgKmRhdGEsIGRhdGFfY29u bmVjdG9yX3QgKmNvbm5zKQoreworCWludCBjb3VudCA9IDA7CisJZW51bSBwaXBlIHBpcGU7CisJ aWd0X291dHB1dF90ICpvdXRwdXQ7CisKKwkvKgorCSAqIFRoZSBvdXRwdXQgaXMgc2V0IHRvIFBJ UEVfTk9ORSBhbmQgdGhlbiBhc3NpZ25lZCBhIHBpcGUuCisJICogVGhpcyBpcyBkb25lIHRvIGVu c3VyZSBhIGNvbXBsZXRlIG1vZGVzZXQgb2NjdXJlcyBldmVyeQorCSAqIHRpbWUgdGhlIHRlc3Qg aXMgcnVuLgorCSAqLworCXJlc2V0X21vZGUoZGF0YSwgY29ubnMpOworCisJZm9yIChjb3VudCA9 IDA7IGNvdW50IDwgZGF0YS0+bnVtX2hfdGlsZXM7IGNvdW50KyspIHsKKwkJb3V0cHV0ID0gaWd0 X291dHB1dF9mcm9tX2Nvbm5lY3RvcihkYXRhLT5kaXNwbGF5LAorCQkJCQkJICAgY29ubnNbY291 bnRdLmNvbm5lY3Rvcik7CisKKwkJZm9yX2VhY2hfcGlwZShkYXRhLT5kaXNwbGF5LCBwaXBlKSB7 CisJCQlpZiAoY291bnQgPiAwICYmIHBpcGUgPT0gY29ubnNbY291bnQtMV0ucGlwZSkKKwkJCQlj b250aW51ZTsKKworCQkJaWYgKGlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChwaXBlLCBvdXRwdXQp KSB7CisKKwkJCQljb25uc1tjb3VudF0ucGlwZSA9IHBpcGU7CisJCQkJY29ubnNbY291bnRdLm91 dHB1dCA9IG91dHB1dDsKKworCQkJCWlndF9vdXRwdXRfc2V0X3BpcGUoY29ubnNbY291bnRdLm91 dHB1dCwKKwkJCQkJCSAgICBjb25uc1tjb3VudF0ucGlwZSk7CisJCQkJYnJlYWs7CisJCQl9CisJ CX0KKwl9CisJaWd0X2Rpc3BsYXlfY29tbWl0X2F0b21pYyhkYXRhLT5kaXNwbGF5LCBEUk1fTU9E RV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwKKwkJTlVMTCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldHVw X2ZyYW1lYnVmZmVyKGRhdGFfdCAqZGF0YSwgZGF0YV9jb25uZWN0b3JfdCAqY29ubnMpCit7CisJ aW50IGNvdW50OworCWlndF9wbGFuZV90ICpwcmltYXJ5OworCWludCBmYl9oX3NpemUgPSAwLCBm Yl92X3NpemUgPSAwOworCisJZm9yIChjb3VudCA9IDA7IGNvdW50IDwgZGF0YS0+bnVtX2hfdGls ZXM7IGNvdW50KyspIHsKKworCQlmYl9oX3NpemUgKz0gY29ubnNbY291bnRdLnRpbGUudGlsZV9o X3NpemU7CisJCS8qIFdlIHN1cHBvcnQgb25seSBob3Jpem9udGFsIHRpbGVzLCBzbyB2ZXJ0aWNh bCBzaXplIGlzIHNhbWUKKwkJICogZm9yIGFsbCB0aWxlcyBhbmQgbmVlZHMgdG8gYmUgYXNzaWdu ZWQgb25seSBvbmNlLgorCQkgKi8KKwkJaWYgKCFmYl92X3NpemUpCisJCQlmYl92X3NpemUgPSBj b25uc1tjb3VudF0udGlsZS50aWxlX3Zfc2l6ZTsKKwl9CisKKwlpZ3RfY3JlYXRlX3BhdHRlcm5f ZmIoZGF0YS0+ZHJtX2ZkLAorCQkJICAgICAgZmJfaF9zaXplLAorCQkJICAgICAgZmJfdl9zaXpl LAorCQkJICAgICAgRFJNX0ZPUk1BVF9YQkdSODg4OCwKKwkJCSAgICAgIExPQ0FMX0RSTV9GT1JN QVRfTU9EX05PTkUsCisJCQkgICAgICAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKKworCWZvciAo Y291bnQgPSAwOyBjb3VudCA8IGRhdGEtPm51bV9oX3RpbGVzOyBjb3VudCsrKSB7CisKKwkJcHJp bWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoY29ubnNbY291bnRdLm91dHB1dCwKKwkJ CQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKworCQlpZ3RfcGxhbmVfc2V0X2ZiKHBy aW1hcnksICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOworCisJCWlndF9mYl9zZXRfc2l6ZSgmZGF0 YS0+ZmJfdGVzdF9wYXR0ZXJuLCBwcmltYXJ5LAorCQkJCWNvbm5zW2NvdW50XS50aWxlLnRpbGVf aF9zaXplLAorCQkJCWNvbm5zW2NvdW50XS50aWxlLnRpbGVfdl9zaXplKTsKKworCQlpZ3RfZmJf c2V0X3Bvc2l0aW9uKCZkYXRhLT5mYl90ZXN0X3BhdHRlcm4sIHByaW1hcnksCisJCQkJICAgIChj b25uc1tjb3VudF0udGlsZS50aWxlX2hfc2l6ZSAqCisJCQkJICAgICBjb25uc1tjb3VudF0udGls ZS50aWxlX2hfbG9jKSwKKwkJCQkgICAgKGNvbm5zW2NvdW50XS50aWxlLnRpbGVfdl9zaXplICoK KwkJCQkgICAgIGNvbm5zW2NvdW50XS50aWxlLnRpbGVfdl9sb2MpKTsKKworCQlpZ3RfcGxhbmVf c2V0X3NpemUocHJpbWFyeSwKKwkJCQkgICBjb25uc1tjb3VudF0udGlsZS50aWxlX2hfc2l6ZSwK KwkJCQkgICBjb25uc1tjb3VudF0udGlsZS50aWxlX3Zfc2l6ZSk7CisJfQorfQorCitzdGF0aWMg dm9pZCBwYWdlX2ZsaXBfaGFuZGxlcihpbnQgZmQsIHVuc2lnbmVkIGludCBzZXEsCisJCQkgICAg ICB1bnNpZ25lZCBpbnQgdHZfc2VjLCB1bnNpZ25lZCBpbnQgdHZfdXNlYywKKwkJCSAgICAgIHVu c2lnbmVkIGludCBjcnRjX2lkLCB2b2lkICpkYXRhKQoreworCWJvb2wgaXNfb25fdGltZSA9IGZh bHNlOworCXN0YXRpYyB1bnNpZ25lZCBpbnQgX3R2X3NlYywgX3R2X3VzZWM7CisKKwlpZ3RfZGVi dWcoIlBhZ2UgRmxpcCBFdmVudCByZWNlaXZlZCBmcm9tIENSVEM6JWQgYXQgJXU6JXVcbiIsIGNy dGNfaWQsCisJCSAgdHZfc2VjLCB0dl91c2VjKTsKKworCS8qIFNraXAgdGhlIGZvbGxvd2luZyBj aGVja3MgZm9yIHRoZSBmaXJzdCBwYWdlIGZsaXAgZXZlbnQgKi8KKwlpZiAoX3R2X3NlYyA9PSAw IHx8IF90dl91c2VjID09IDApIHsKKwkJX3R2X3NlYyA9IHR2X3NlYzsKKwkJX3R2X3VzZWMgPSB0 dl91c2VjOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBGb3Igc2VhbWxlc3MgdGVhci1mcmVl IGRpc3BsYXksIHRoZSBwYWdlIGZsaXAgZXZlbnQgdGltZXN0YW1wcworCSAqIGZyb20gYWxsIHRo ZSB0aWxlcyBzaG91bGQgbm90IGRpZmZlciBieSBtb3JlIHRoYW4gMTB1cy4KKwkgKi8KKwlpc19v bl90aW1lID0gdHZfc2VjID09IF90dl9zZWMgJiYgKGFicyh0dl91c2VjIC0gX3R2X3VzZWMpIDwg MTApOworCisJaWd0X2ZhaWxfb25fZighaXNfb25fdGltZSwgIkRlbGF5ZWQgcGFnZSBmbGlwIGV2 ZW50IGZyb20gQ1JUQzolZCBhdCAldToldVxuIiwKKwkJICAgICAgY3J0Y19pZCwgdHZfc2VjLCB0 dl91c2VjKTsKK30KKworc3RhdGljIHZvaWQgd2FpdF9mb3JfcGFnZWZsaXAoaW50IGRybV9mZCkK K3sKKwlpbnQgcmM7CisJc3RydWN0IHBvbGxmZCBwZmQgPSB7MH07CisJZHJtRXZlbnRDb250ZXh0 IGRybV9ldmVudDsKKworCWRybV9ldmVudC52ZXJzaW9uID0gMzsKKwlkcm1fZXZlbnQucGFnZV9m bGlwX2hhbmRsZXIyID0gcGFnZV9mbGlwX2hhbmRsZXI7CisKKwlwZmQuZmQgPSBkcm1fZmQ7CisJ cGZkLmV2ZW50cyA9IFBPTExJTjsKKwlwZmQucmV2ZW50cyA9IDA7CisKKwlyYyA9IHBvbGwoJnBm ZCwgMSwgMTAwMCk7CisJaWd0X2Fzc2VydChyYyA+IDApOworCisJaWYgKHBmZC5yZXZlbnRzICYg UE9MTElOKSB7CisJCXJjID0gZHJtSGFuZGxlRXZlbnQoZHJtX2ZkLCAmZHJtX2V2ZW50KTsKKwkJ aWd0X2Fzc2VydF9lcShyYywgMCk7CisJfSBlbHNlCisJCWlndF9hc3NlcnQoMCk7Cit9CisKK2ln dF9tYWluCit7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworCWRhdGFfY29ubmVjdG9yX3QgKmNv bm5fZGF0YSA9IE5VTEw7CisJZGF0YV90IGRhdGEgPSB7MH07CisKKwlpZ3RfZml4dHVyZSB7CisJ CWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfQU5ZKTsKKworCQlr bXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisJCWlndF9kaXNwbGF5X3JlcXVpcmUoJmRp c3BsYXksIGRhdGEuZHJtX2ZkKTsKKwkJaWd0X2Rpc3BsYXlfcmVzZXQoJmRpc3BsYXkpOworCisJ CWRhdGEuZGlzcGxheSA9ICZkaXNwbGF5OworCisJCWdldF9udW1iZXJfb2ZfaF90aWxlcygmZGF0 YSk7CisJCWlndF9kZWJ1ZygiTnVtYmVyIG9mIEhvcml6b250YWwgVGlsZXM6ICVkXG4iLCBkYXRh Lm51bV9oX3RpbGVzKTsKKworCQlkYXRhLmNvbW1pdCA9IGRhdGEuZGlzcGxheS0+aXNfYXRvbWlj ID8gQ09NTUlUX0FUT01JQyA6IENPTU1JVF9MRUdBQ1k7CisKKwkJaWYgKGRhdGEubnVtX2hfdGls ZXMgPiAwKQorCQkJY29ubl9kYXRhID0gbWFsbG9jKGRhdGEubnVtX2hfdGlsZXMgKiBzaXplb2Yo ZGF0YV9jb25uZWN0b3JfdCkpOworCX0KKworCWlndF9zdWJ0ZXN0KCJiYXNpYy10ZXN0LXBhdHRl cm4iKSB7CisJCWlndF9za2lwX29uKGRhdGEuY29tbWl0ID09IENPTU1JVF9MRUdBQ1kpOworCQlp Z3Rfc2tpcF9vbihkYXRhLm51bV9oX3RpbGVzID09IDApOworCQlpZ3RfYXNzZXJ0KGNvbm5fZGF0 YSk7CisKKwkJZ2V0X2Nvbm5lY3RvcnMoJmRhdGEsIGNvbm5fZGF0YSk7CisJCXNldHVwX21vZGUo JmRhdGEsIGNvbm5fZGF0YSk7CisJCXNldHVwX2ZyYW1lYnVmZmVyKCZkYXRhLCBjb25uX2RhdGEp OworCQlpZ3RfZGlzcGxheV9jb21taXRfYXRvbWljKGRhdGEuZGlzcGxheSwgRFJNX01PREVfQVRP TUlDX05PTkJMT0NLIHwKKwkJCURSTV9NT0RFX1BBR0VfRkxJUF9FVkVOVCwgTlVMTCk7CisJCXdh aXRfZm9yX3BhZ2VmbGlwKGRhdGEuZHJtX2ZkKTsKKworCQl0ZXN0X2NsZWFudXAoJmRhdGEsIGNv bm5fZGF0YSk7CisJfQorCisJaWd0X2ZpeHR1cmUgeworCQlmcmVlKGNvbm5fZGF0YSk7CisJCWNs b3NlKGRhdGEuZHJtX2ZkKTsKKwkJa21zdGVzdF9yZXN0b3JlX3Z0X21vZGUoKTsKKwkJaWd0X2Rp c3BsYXlfZmluaShkYXRhLmRpc3BsYXkpOworCX0KK30KZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29u LmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKaW5kZXggYTdiMmIzMjIuLjUwMjkyZGY4IDEwMDY0 NAotLS0gYS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90ZXN0cy9tZXNvbi5idWlsZApAQCAtMjYs NiArMjYsNyBAQCB0ZXN0X3Byb2dzID0gWwogCSdrbXNfY3Vyc29yX2VkZ2Vfd2FsaycsCiAJJ2tt c19jdXJzb3JfbGVnYWN5JywKIAkna21zX2RwX2RzYycsCisJJ2ttc19kcF90aWxlZF9kaXNwbGF5 JywKIAkna21zX2RyYXdfY3JjJywKIAkna21zX2ZiY29uX2ZidCcsCiAJJ2ttc19mZW5jZV9waW5f bGVhaycsCi0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dg==