From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 88BB96F4B5 for ; Fri, 13 Sep 2019 23:46:44 +0000 (UTC) From: Manasi Navare Date: Fri, 13 Sep 2019 16:48:09 -0700 Message-Id: <20190913234809.29030-1-manasi.d.navare@intel.com> In-Reply-To: <20190912232830.13493-1-manasi.d.navare@intel.com> References: <20190912232830.13493-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v5] 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 , Simon Ser List-ID: RnJvbTogTWFkaHVtaXRoYSBUb2xha2FuYWhhbGxpIFByYWRlZXAgPG1hZGh1bWl0aGEudG9sYWth bmFoYWxsaS5wcmFkZWVwQGludGVsLmNvbT4KClRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIHRpbGVk IERQIGRpc3BsYXlzIHRvIGRpc3BsYXkgYSB0ZXN0IHBhdHRlcm4Kc2VhbWxlc3NseSBhY3Jvc3Mg dGhlIHR3byB0aWxlcy4gSXQgdmFsaWRhdGVzIHRoZSB0cmFuc2NvZGVyIHBvcnQKc3luYyBmZWF0 dXJlIG9uIGk5MTUgdG8gZ2V0IGEgdGVhcmZyZWUgdGlsZWQgZGlzcGxheSBvdXRwdXQuCgpSZWxh dGVkIGtlcm5lbCB3b3JrIHBhdGNoZXMtCmh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9y Zy9zZXJpZXMvNjY0MDMvCgpUaGlzIHRlc3QgY2FuIGV2ZW50dWFsbHkgYmUgZXh0ZW5kZWQgdG8g Y292ZXIgdGlsZWQgZGlzcGxheSBzdXBwb3J0Cm9uIG90aGVyIGNvbm5lY3RvciB0eXBlcy4KCnY1 OgoqIEFkZHJlc3NlcyBuZXdsaW5lIG5pdHMgKFNpbW9uKQoqIEFkZCAyMDE5IGNvcHlyaWdodCwg aWd0X2Rlc2NyaWJlIChQZXRyaSkKKiBDaGVjayBhbGwgcHJldiBjb25uZWN0b3JzIGZvciBwaXBl IGFzc2lnbm1lbnRzIChTaW1vbikKKiBDb250aW51ZSBpZiBudW1faF90aWxlcyA9IDAgKFNpbW9u KQp2NDoKKiBBZGQgdGhlIGxvZ2ljIHRvIGNoZWNrIHRoZXJlIGFyZQpwYWdlIGZsaXBzIHBlciBj b25uZWN0b3IgKFNpbW9uKQoqIENhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyB0byBpbml0aWFsaXpl IChNYW5hc2kpCgp2MzoKKiBGaXggdGhlIHBvaW50ZXIgbGVha3MgKFNpbW9uKQoqIENvZGUgaW5k ZW50YXRpb24gKE1hbmFzaSkKKiBDb21wYXJlIHR3byBjb25zZWN1dGl2ZSBmbGlwIHRpbWVzdGFt cHMgKFNpbW9uKQoqIFVzZSBzaW5nbGUgZmIgYWNyb3NzIHRpbGVzIChTaW1vbikKKiBGaXggcmVz ZXQgbW9kZSBsb2dpYyAoTWFuYXNpKQoKdjI6IEFkZGVkIGEgY2hlY2sgZm9yIGNoZWNraW5nIHBh Z2VmbGlwIGV2ZW50IHRpbWVzdGFtcHMgKFNpbW9uLCBNYW5hc2kpCiAgICBNaW5vciBzdHlsZSBj aGFuZ2VzIChTaW1vbikKICAgQ29kZSBjbGVhbi11cCBhbmQgcmVvcmRlcmluZwoKQ2M6IE1hbmFz aSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+CkNjOiBQZXRyaSBMYXR2YWxhIDxw ZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KQ2M6IFNpbW9uIFNlciA8c2ltb24uc2VyQGludGVsLmNv bT4KQ2M6IDxtYWRodW1pdGhhLnRwQGdtYWlsLmNvbT4KQ2M6IFNpbW9uIFNlciA8Y29udGFjdEBl bWVyc2lvbi5mcj4KU2lnbmVkLW9mZi1ieTogTWFkaHVtaXRoYSBUb2xha2FuYWhhbGxpIFByYWRl ZXAgPG1hZGh1bWl0aGEudG9sYWthbmFoYWxsaS5wcmFkZWVwQGludGVsLmNvbT4KU2lnbmVkLW9m Zi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KLS0tCiB0ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzICAgICAgIHwgICAxICsKIHRlc3RzL2ttc19kcF90aWxlZF9kaXNw bGF5LmMgfCA0MjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL21l c29uLmJ1aWxkICAgICAgICAgICAgfCAgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA0MjQgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19kcF90aWxlZF9kaXNwbGF5LmMK CmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291 cmNlcwppbmRleCBjMDJlNGQ5NC4uNzU2MWFiOWIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpAQCAtNDEsNiArNDEsNyBAQCBU RVNUU19wcm9ncyA9IFwKIAlrbXNfY3Vyc29yX2VkZ2Vfd2FsayBcCiAJa21zX2N1cnNvcl9sZWdh Y3kgXAogCWttc19kcF9kc2MgXAorCWttc19kcF90aWxlZF9kaXNwbGF5IFwKIAlrbXNfZHJhd19j cmMgXAogCWttc19mYmNvbl9mYnQgXAogCWttc19mZW5jZV9waW5fbGVhayBcCmRpZmYgLS1naXQg YS90ZXN0cy9rbXNfZHBfdGlsZWRfZGlzcGxheS5jIGIvdGVzdHMva21zX2RwX3RpbGVkX2Rpc3Bs YXkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uOWU5MDQ3YWUKLS0tIC9k ZXYvbnVsbAorKysgYi90ZXN0cy9rbXNfZHBfdGlsZWRfZGlzcGxheS5jCkBAIC0wLDAgKzEsNDIy IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQ ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv biBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv Y3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNv ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24K KyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0 cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoK KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4g YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgor ICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9S IE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAq ICBNYWRodW1pdGhhIFRvbGFrYW5haGFsbGkgUHJhZGVlcAorICogICAgICA8bWFkaHVtaXRoYS50 b2xha2FuYWhhbGxpLnByYWRlZXBAaW50ZWwuY29tPgorICogIE1hbmFzaSBOYXZhcmUgPG1hbmFz aS5kLm5hdmFyZUBpbnRlbC5jb20+CisgKgorICogRGlzcGxheSBQb3J0IFRpbGVkIERpc3BsYXkg VGVzdAorICogVGhpcyB0ZXN0IHBhcnNlcyB0aGUgdGlsZSBpbmZvcm1hdGlvbiBvZiB0aGUgY29u bmVjdG9ycyB0aGF0IGhhdmUgVElMRQorICogcHJvcGVydHkgc2V0LCBzZXRzIHVwIHRoZSBmcmFt ZWJ1ZmZlciB3aXRoIGNvcnJlY3Qgb2Zmc2V0cyBjb3JyZXNwb25kaW5nIHRvCisgKiB0aGUgdGls ZSBvZmZzZXRzIGFuZCBkb2VzIGFuIGF0b21pYyBtb2Rlc2V0IHdpdGggdHdvIENSVENzIGZvciB0 d28KKyAqIGNvbm5lY3RvcnMuIFBhZ2UgZmxpcCBldmVudCB0aW1lc3RhbXAgZnJvbSBlYWNoIENS VEMgaXMgY29sbGVjdGVkIGFuZAorICogY29tcGFyZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhleSBv Y2N1cnJlZCBpbiBhIHN5bmNocm9ub3VzIG1hbm5lci4KKyAqCisgKiBUaGlzIHRlc3QgY3VycmVu dGx5IHN1cHBvcnRzIG9ubHkgaG9yaXpvbnRhbGx5IHRpbGVkIGRpc3BsYXlzLCBpbiBsaW5lIHdp dGgKKyAqIHRoZSBkaXNwbGF5cyBzdXBwb3J0ZWQgYnkgdGhlIGtlcm5lbCBhdCB0aGUgbW9tZW50 LgorICovCisKKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlICJwb2xsLmgiCisjaW5jbHVkZSAi ZHJtX21vZGUuaCIKKyNpbmNsdWRlICJkcm1fZm91cmNjLmgiCisKK0lHVF9URVNUX0RFU0NSSVBU SU9OKCJUZXN0IGZvciBUcmFuc2NvZGVyIFBvcnQgU3luYyBmb3IgRGlzcGxheSBQb3J0IFRpbGVk IERpc3BsYXlzIik7CisKK3R5cGVkZWYgc3RydWN0IHsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsK KwlpZ3RfdGlsZV9pbmZvX3QgdGlsZTsKKwllbnVtIHBpcGUgcGlwZTsKKwlkcm1Nb2RlQ29ubmVj dG9yUHRyIGNvbm5lY3RvcjsKKwlib29sIGdvdF9wYWdlX2ZsaXA7Cit9IGRhdGFfY29ubmVjdG9y X3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKwlpbnQgZHJtX2ZkOworCWludCBudW1faF90aWxlczsK KwlpZ3RfZmJfdCBmYl90ZXN0X3BhdHRlcm47CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheTsKKwlk YXRhX2Nvbm5lY3Rvcl90ICpjb25uczsKKwllbnVtIGlndF9jb21taXRfc3R5bGUgY29tbWl0Owor fSBkYXRhX3Q7CisKK3N0YXRpYyBpbnQgZHJtX3Byb3BlcnR5X2lzX3RpbGUoZHJtTW9kZVByb3Bl cnR5UHRyIHByb3ApCit7CisJcmV0dXJuIChzdHJjbXAocHJvcC0+bmFtZSwgIlRJTEUiKSA/IDAg OiAxKSAmJgorCQkJIGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3AsIERSTV9NT0RFX1BST1BfQkxP Qik7Cit9CisKK3N0YXRpYyB2b2lkIGdldF9jb25uZWN0b3JfdGlsZV9wcm9wcyhkYXRhX3QgKmRh dGEsIGRybU1vZGVDb25uZWN0b3JQdHIgY29ubiwKKwkJCQkgICAgIGlndF90aWxlX2luZm9fdCAq dGlsZSkKK3sKKwlpbnQgaSA9IDA7CisJZHJtTW9kZVByb3BlcnR5UHRyIHByb3A7CisJZHJtTW9k ZVByb3BlcnR5QmxvYlB0ciBibG9iOworCisJZm9yIChpID0gMDsgaSA8IGNvbm4tPmNvdW50X3By b3BzOyBpKyspIHsKKwkJcHJvcCA9IGRybU1vZGVHZXRQcm9wZXJ0eShkYXRhLT5kcm1fZmQsIGNv bm4tPnByb3BzW2ldKTsKKworCQlpZ3RfYXNzZXJ0KHByb3ApOworCisJCWlmICghZHJtX3Byb3Bl cnR5X2lzX3RpbGUocHJvcCkpIHsKKwkJCWRybU1vZGVGcmVlUHJvcGVydHkocHJvcCk7CisJCQlj b250aW51ZTsKKwkJfQorCisJCWJsb2IgPSBkcm1Nb2RlR2V0UHJvcGVydHlCbG9iKGRhdGEtPmRy bV9mZCwKKwkJCQljb25uLT5wcm9wX3ZhbHVlc1tpXSk7CisKKwkJaWYgKCFibG9iKQorCQkJZ290 byBjbGVhbnVwOworCisJCWlndF9wYXJzZV9jb25uZWN0b3JfdGlsZV9ibG9iKGJsb2IsIHRpbGUp OworCQlicmVhazsKKwl9CisKK2NsZWFudXA6CisJZHJtTW9kZUZyZWVQcm9wZXJ0eShwcm9wKTsK Kwlkcm1Nb2RlRnJlZVByb3BlcnR5QmxvYihibG9iKTsKK30KKworc3RhdGljIHZvaWQgZ2V0X251 bWJlcl9vZl9oX3RpbGVzKGRhdGFfdCAqZGF0YSkKK3sKKwlpbnQgaTsKKwlkcm1Nb2RlUmVzUHRy IHJlczsKKwlkcm1Nb2RlQ29ubmVjdG9yUHRyIGNvbm5lY3RvcjsKKwlpZ3RfdGlsZV9pbmZvX3Qg dGlsZSA9IHsubnVtX2hfdGlsZSA9IDB9OworCisJaWd0X2Fzc2VydChyZXMgPSBkcm1Nb2RlR2V0 UmVzb3VyY2VzKGRhdGEtPmRybV9mZCkpOworCisJZm9yIChpID0gMDsgaSA8IHJlcy0+Y291bnRf Y29ubmVjdG9yczsgaSsrKSB7CisJCWNvbm5lY3RvciA9IGRybU1vZGVHZXRDb25uZWN0b3JDdXJy ZW50KGRhdGEtPmRybV9mZCwKKwkJCQkJCSAgICAgICByZXMtPmNvbm5lY3RvcnNbaV0pOworCisJ CWlndF9hc3NlcnQoY29ubmVjdG9yKTsKKworCQlpZiAoY29ubmVjdG9yLT5jb25uZWN0aW9uICE9 IERSTV9NT0RFX0NPTk5FQ1RFRCB8fAorCQkgICAgY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSAh PSBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQpIHsKKwkJCWRybU1vZGVGcmVlQ29ubmVj dG9yKGNvbm5lY3Rvcik7CisJCQljb250aW51ZTsKKwkJfQorCisJCWdldF9jb25uZWN0b3JfdGls ZV9wcm9wcyhkYXRhLCBjb25uZWN0b3IsICZ0aWxlKTsKKworCQlpZiAodGlsZS5udW1faF90aWxl ID09IDApIHsKKwkJCWRybU1vZGVGcmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7CisJCQljb250aW51 ZTsKKwkJfQorCQlkYXRhLT5udW1faF90aWxlcyA9IHRpbGUubnVtX2hfdGlsZTsKKwkJYnJlYWs7 CisJfQorCisJZHJtTW9kZUZyZWVSZXNvdXJjZXMocmVzKTsKKwlkcm1Nb2RlRnJlZUNvbm5lY3Rv cihjb25uZWN0b3IpOworfQorCitzdGF0aWMgdm9pZCBnZXRfY29ubmVjdG9ycyhkYXRhX3QgKmRh dGEpCit7CisJaW50IGNvdW50ID0gMDsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwlkYXRhX2Nv bm5lY3Rvcl90ICpjb25ucyA9IGRhdGEtPmNvbm5zOworCisJZm9yX2VhY2hfY29ubmVjdGVkX291 dHB1dChkYXRhLT5kaXNwbGF5LCBvdXRwdXQpIHsKKwkJY29ubnNbY291bnRdLmNvbm5lY3RvciA9 IGRybU1vZGVHZXRDb25uZWN0b3IoZGF0YS0+ZGlzcGxheS0+ZHJtX2ZkLAorCQkJCQkJCSAgICAg b3V0cHV0LT5pZCk7CisKKwkJaWd0X2Fzc2VydChjb25uc1tjb3VudF0uY29ubmVjdG9yKTsKKwor CQlpZiAoY29ubnNbY291bnRdLmNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgIT0KKwkJICAgIERS TV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkgeworCQkJZHJtTW9kZUZyZWVDb25uZWN0b3Io Y29ubnNbY291bnRdLmNvbm5lY3Rvcik7CisJCQljb250aW51ZTsKKwkJfQorCisJCWdldF9jb25u ZWN0b3JfdGlsZV9wcm9wcyhkYXRhLCBjb25uc1tjb3VudF0uY29ubmVjdG9yLAorCQkJCQkgJmNv bm5zW2NvdW50XS50aWxlKTsKKworCQlpZiAoY29ubnNbY291bnRdLnRpbGUubnVtX2hfdGlsZSA9 PSAwKSB7CisJCQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihjb25uc1tjb3VudF0uY29ubmVjdG9yKTsK KwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyogQ2hlY2sgaWYgdGhlIGNvbm5lY3RvcnMgYmVsb25n IHRvIHRoZSBzYW1lIHRpbGUgZ3JvdXAgKi8KKwkJaWYgKGNvdW50ID4gMCkKKwkJCWlndF9hc3Nl cnQoY29ubnNbY291bnRdLnRpbGUudGlsZV9ncm91cF9pZCA9PQorCQkJCSAgIGNvbm5zW2NvdW50 LTFdLnRpbGUudGlsZV9ncm91cF9pZCk7CisKKwkJY291bnQrKzsKKwl9Cit9CisKK3N0YXRpYyB2 b2lkCityZXNldF9wbGFuZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKK3sKKwlpZ3RfcGxhbmVfdCAq cHJpbWFyeTsKKworCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1dCwg RFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxM KTsKK30KKworc3RhdGljIHZvaWQgcmVzZXRfb3V0cHV0KGlndF9vdXRwdXRfdCAqb3V0cHV0KQor eworCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX05PTkUpOworfQorCitzdGF0aWMg dm9pZCByZXNldF9tb2RlKGRhdGFfdCAqZGF0YSkKK3sKKwlpbnQgY291bnQ7CisJaWd0X291dHB1 dF90ICpvdXRwdXQ7CisJZGF0YV9jb25uZWN0b3JfdCAqY29ubnMgPSBkYXRhLT5jb25uczsKKwor CWZvciAoY291bnQgPSAwOyBjb3VudCA8IGRhdGEtPm51bV9oX3RpbGVzOyBjb3VudCsrKSB7CisJ CW91dHB1dCA9IGlndF9vdXRwdXRfZnJvbV9jb25uZWN0b3IoZGF0YS0+ZGlzcGxheSwKKwkJCQkJ CSAgIGNvbm5zW2NvdW50XS5jb25uZWN0b3IpOworCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1 dCwgUElQRV9OT05FKTsKKwl9CisJaWd0X2Rpc3BsYXlfY29tbWl0MihkYXRhLT5kaXNwbGF5LCBk YXRhLT5jb21taXQpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X2NsZWFudXAoZGF0YV90ICpkYXRh KQoreworCWludCBjb3VudDsKKwlkYXRhX2Nvbm5lY3Rvcl90ICpjb25ucyA9IGRhdGEtPmNvbm5z OworCisJZm9yIChjb3VudCA9IDA7IGNvdW50IDwgZGF0YS0+bnVtX2hfdGlsZXM7IGNvdW50Kysp IHsKKwkJaWYgKGNvbm5zW2NvdW50XS5vdXRwdXQpIHsKKwkJCXJlc2V0X3BsYW5lKGNvbm5zW2Nv dW50XS5vdXRwdXQpOworCQkJcmVzZXRfb3V0cHV0KGNvbm5zW2NvdW50XS5vdXRwdXQpOworCQl9 CisJfQorCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJu KTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKGRhdGEtPmRpc3BsYXksIGRhdGEtPmNvbW1pdCk7CisJ bWVtc2V0KGNvbm5zLCAwLCBzaXplb2YoZGF0YV9jb25uZWN0b3JfdCkgKiBkYXRhLT5udW1faF90 aWxlcyk7Cit9CisKK3N0YXRpYyB2b2lkIHNldHVwX21vZGUoZGF0YV90ICpkYXRhKQoreworCWlu dCBjb3VudCA9IDAsIHByZXYgPSAwOworCWJvb2wgcGlwZV9pbl91c2UgPSBmYWxzZTsKKwllbnVt IHBpcGUgcGlwZTsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwlkYXRhX2Nvbm5lY3Rvcl90ICpj b25ucyA9IGRhdGEtPmNvbm5zOworCisJLyoKKwkgKiBUaGUgb3V0cHV0IGlzIHNldCB0byBQSVBF X05PTkUgYW5kIHRoZW4gYXNzaWduZWQgYSBwaXBlLgorCSAqIFRoaXMgaXMgZG9uZSB0byBlbnN1 cmUgYSBjb21wbGV0ZSBtb2Rlc2V0IG9jY3VyZXMgZXZlcnkKKwkgKiB0aW1lIHRoZSB0ZXN0IGlz IHJ1bi4KKwkgKi8KKwlyZXNldF9tb2RlKGRhdGEpOworCisJZm9yIChjb3VudCA9IDA7IGNvdW50 IDwgZGF0YS0+bnVtX2hfdGlsZXM7IGNvdW50KyspIHsKKwkJb3V0cHV0ID0gaWd0X291dHB1dF9m cm9tX2Nvbm5lY3RvcihkYXRhLT5kaXNwbGF5LAorCQkJCQkJICAgY29ubnNbY291bnRdLmNvbm5l Y3Rvcik7CisKKwkJZm9yX2VhY2hfcGlwZShkYXRhLT5kaXNwbGF5LCBwaXBlKSB7CisJCQlwaXBl X2luX3VzZSA9IGZhbHNlOworCQkJaWYgKGNvdW50ID4gMCkgeworCQkJCWZvciAocHJldiA9IGNv dW50IC0gMTsgcHJldiA+PSAwOyBwcmV2LS0pIHsKKwkJCQkJaWYgKHBpcGUgPT0gY29ubnNbcHJl dl0ucGlwZSkgeworCQkJCQkJcGlwZV9pbl91c2UgPSB0cnVlOworCQkJCQkJYnJlYWs7CisJCQkJ CX0KKwkJCQl9CisJCQkJaWYgKHBpcGVfaW5fdXNlKQorCQkJCQljb250aW51ZTsKKwkJCX0KKwor CQkJaWYgKGlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChwaXBlLCBvdXRwdXQpKSB7CisJCQkJY29u bnNbY291bnRdLnBpcGUgPSBwaXBlOworCQkJCWNvbm5zW2NvdW50XS5vdXRwdXQgPSBvdXRwdXQ7 CisKKwkJCQlpZ3Rfb3V0cHV0X3NldF9waXBlKGNvbm5zW2NvdW50XS5vdXRwdXQsCisJCQkJCQkg ICAgY29ubnNbY291bnRdLnBpcGUpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlndF9hc3Nl cnQoY29ubnNbY291bnRdLnBpcGUgIT0gUElQRV9OT05FKTsKKwl9CisJaWd0X2Rpc3BsYXlfY29t bWl0X2F0b21pYyhkYXRhLT5kaXNwbGF5LCBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwK KwkJCQkgIE5VTEwpOworfQorCitzdGF0aWMgdm9pZCBzZXR1cF9mcmFtZWJ1ZmZlcihkYXRhX3Qg KmRhdGEpCit7CisJaW50IGNvdW50OworCWlndF9wbGFuZV90ICpwcmltYXJ5OworCWludCBmYl9o X3NpemUgPSAwLCBmYl92X3NpemUgPSAwOworCWRhdGFfY29ubmVjdG9yX3QgKmNvbm5zID0gZGF0 YS0+Y29ubnM7CisKKwlmb3IgKGNvdW50ID0gMDsgY291bnQgPCBkYXRhLT5udW1faF90aWxlczsg Y291bnQrKykgeworCisJCWZiX2hfc2l6ZSArPSBjb25uc1tjb3VudF0udGlsZS50aWxlX2hfc2l6 ZTsKKwkJLyogV2Ugc3VwcG9ydCBvbmx5IGhvcml6b250YWwgdGlsZXMsIHNvIHZlcnRpY2FsIHNp emUgaXMgc2FtZQorCQkgKiBmb3IgYWxsIHRpbGVzIGFuZCBuZWVkcyB0byBiZSBhc3NpZ25lZCBv bmx5IG9uY2UuCisJCSAqLworCQlpZiAoIWZiX3Zfc2l6ZSkKKwkJCWZiX3Zfc2l6ZSA9IGNvbm5z W2NvdW50XS50aWxlLnRpbGVfdl9zaXplOworCisJCWlmIChjb3VudCA+IDApCisJCQlpZ3RfYXNz ZXJ0KGNvbm5zW2NvdW50XS50aWxlLnRpbGVfdl9zaXplID09CisJCQkJICAgY29ubnNbY291bnQt MV0udGlsZS50aWxlX3Zfc2l6ZSk7CisJfQorCisJaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGRhdGEt PmRybV9mZCwKKwkJCSAgICAgIGZiX2hfc2l6ZSwKKwkJCSAgICAgIGZiX3Zfc2l6ZSwKKwkJCSAg ICAgIERSTV9GT1JNQVRfWEJHUjg4ODgsCisJCQkgICAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9O T05FLAorCQkJICAgICAgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7CisKKwlmb3IgKGNvdW50ID0g MDsgY291bnQgPCBkYXRhLT5udW1faF90aWxlczsgY291bnQrKykgeworCQlwcmltYXJ5ID0gaWd0 X291dHB1dF9nZXRfcGxhbmVfdHlwZShjb25uc1tjb3VudF0ub3V0cHV0LAorCQkJCQkJICAgIERS TV9QTEFORV9UWVBFX1BSSU1BUlkpOworCisJCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRh dGEtPmZiX3Rlc3RfcGF0dGVybik7CisKKwkJaWd0X2ZiX3NldF9zaXplKCZkYXRhLT5mYl90ZXN0 X3BhdHRlcm4sIHByaW1hcnksCisJCQkJY29ubnNbY291bnRdLnRpbGUudGlsZV9oX3NpemUsCisJ CQkJY29ubnNbY291bnRdLnRpbGUudGlsZV92X3NpemUpOworCisJCWlndF9mYl9zZXRfcG9zaXRp b24oJmRhdGEtPmZiX3Rlc3RfcGF0dGVybiwgcHJpbWFyeSwKKwkJCQkgICAgKGNvbm5zW2NvdW50 XS50aWxlLnRpbGVfaF9zaXplICoKKwkJCQkgICAgIGNvbm5zW2NvdW50XS50aWxlLnRpbGVfaF9s b2MpLAorCQkJCSAgICAoY29ubnNbY291bnRdLnRpbGUudGlsZV92X3NpemUgKgorCQkJCSAgICAg Y29ubnNbY291bnRdLnRpbGUudGlsZV92X2xvYykpOworCisJCWlndF9wbGFuZV9zZXRfc2l6ZShw cmltYXJ5LAorCQkJCSAgIGNvbm5zW2NvdW50XS50aWxlLnRpbGVfaF9zaXplLAorCQkJCSAgIGNv bm5zW2NvdW50XS50aWxlLnRpbGVfdl9zaXplKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHBhZ2Vf ZmxpcF9oYW5kbGVyKGludCBmZCwgdW5zaWduZWQgaW50IHNlcSwKKwkJCSAgICAgIHVuc2lnbmVk IGludCB0dl9zZWMsIHVuc2lnbmVkIGludCB0dl91c2VjLAorCQkJICAgICAgdW5zaWduZWQgaW50 IGNydGNfaWQsIHZvaWQgKl9kYXRhKQoreworCWRhdGFfdCAqZGF0YSA9IF9kYXRhOworCWRhdGFf Y29ubmVjdG9yX3QgKmNvbm47CisJYm9vbCBpc19vbl90aW1lID0gZmFsc2U7CisJc3RhdGljIHVu c2lnbmVkIGludCBfdHZfc2VjLCBfdHZfdXNlYzsKKwlpbnQgaTsKKworCWlndF9kZWJ1ZygiUGFn ZSBGbGlwIEV2ZW50IHJlY2VpdmVkIGZyb20gQ1JUQzolZCBhdCAldToldVxuIiwgY3J0Y19pZCwK KwkJICB0dl9zZWMsIHR2X3VzZWMpOworCisJZm9yIChpID0gMDsgaSA8IGRhdGEtPm51bV9oX3Rp bGVzOyBpKyspIHsKKworCQljb25uID0gJmRhdGEtPmNvbm5zW2ldOworCQlpZiAoZGF0YS0+ZGlz cGxheS0+cGlwZXNbY29ubi0+cGlwZV0uY3J0Y19pZCA9PSBjcnRjX2lkKSB7CisJCQlpZ3RfYXNz ZXJ0X2YoIWNvbm4tPmdvdF9wYWdlX2ZsaXAsCisJCQkJICAgICAiR290IHR3byBwYWdlLWZsaXBz IGZvciBDUlRDICV1XG4iLAorCQkJCSAgICAgY3J0Y19pZCk7CisJCQljb25uLT5nb3RfcGFnZV9m bGlwID0gdHJ1ZTsKKworCQkJLyogU2tpcCB0aGUgZm9sbG93aW5nIGNoZWNrcyBmb3IgdGhlIGZp cnN0IHBhZ2UgZmxpcCBldmVudCAqLworCQkJaWYgKF90dl9zZWMgPT0gMCB8fCBfdHZfdXNlYyA9 PSAwKSB7CisJCQkJX3R2X3NlYyA9IHR2X3NlYzsKKwkJCQlfdHZfdXNlYyA9IHR2X3VzZWM7CisJ CQkJcmV0dXJuOworCQkJfQorCQkJLyoKKwkJCSAqIEZvciBzZWFtbGVzcyB0ZWFyLWZyZWUgZGlz cGxheSwgdGhlIHBhZ2UgZmxpcCBldmVudCB0aW1lc3RhbXBzCisJCQkgKiBmcm9tIGFsbCB0aGUg dGlsZXMgc2hvdWxkIG5vdCBkaWZmZXIgYnkgbW9yZSB0aGFuIDEwdXMuCisJCQkgKi8KKwkJCWlz X29uX3RpbWUgPSB0dl9zZWMgPT0gX3R2X3NlYyAmJiAoYWJzKHR2X3VzZWMgLSBfdHZfdXNlYykg PCAxMCk7CisKKwkJCWlndF9mYWlsX29uX2YoIWlzX29uX3RpbWUsICJEZWxheWVkIHBhZ2UgZmxp cCBldmVudCBmcm9tIENSVEM6JWQgYXQgJXU6JXVcbiIsCisJCQkJICAgICAgY3J0Y19pZCwgdHZf c2VjLCB0dl91c2VjKTsKKwkJCXJldHVybjsKKwkJfQorCX0KKworCWlndF9hc3NlcnRfZihmYWxz ZSwgIkdvdCBwYWdlLWZsaXAgZXZlbnQgZm9yIHVuZXhwZWN0ZWQgQ1JUQyAldVxuIiwKKwkJICAg ICBjcnRjX2lkKTsKK30KKworc3RhdGljIGJvb2wgZ290X2FsbF9wYWdlX2ZsaXBzKGRhdGFfdCAq ZGF0YSkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5udW1faF90aWxlczsg aSsrKSB7CisJCWlmICghZGF0YS0+Y29ubnNbaV0uZ290X3BhZ2VfZmxpcCkKKwkJCXJldHVybiBm YWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworaWd0X21haW4KK3sKKwlpZ3RfZGlzcGxh eV90IGRpc3BsYXk7CisJZGF0YV90IGRhdGEgPSB7MH07CisJc3RydWN0IHBvbGxmZCBwZmQgPSB7 MH07CisJZHJtRXZlbnRDb250ZXh0IGRybV9ldmVudCA9IHswfTsKKwlpbnQgcmV0OworCisJaWd0 X2ZpeHR1cmUgeworCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVS X0FOWSk7CisKKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOworCQlpZ3RfZGlzcGxh eV9yZXF1aXJlKCZkaXNwbGF5LCBkYXRhLmRybV9mZCk7CisJCWlndF9kaXNwbGF5X3Jlc2V0KCZk aXNwbGF5KTsKKworCQlkYXRhLmRpc3BsYXkgPSAmZGlzcGxheTsKKwkJcGZkLmZkID0gZGF0YS5k cm1fZmQ7CisJCXBmZC5ldmVudHMgPSBQT0xMSU47CisJCWRybV9ldmVudC52ZXJzaW9uID0gMzsK KwkJZHJtX2V2ZW50LnBhZ2VfZmxpcF9oYW5kbGVyMiA9IHBhZ2VfZmxpcF9oYW5kbGVyOworCQlk YXRhLmNvbW1pdCA9IGRhdGEuZGlzcGxheS0+aXNfYXRvbWljID8gQ09NTUlUX0FUT01JQyA6IENP TU1JVF9MRUdBQ1k7CisJCWlndF9yZXF1aXJlKGRhdGEuY29tbWl0ID09IENPTU1JVF9BVE9NSUMp OworCisJCWdldF9udW1iZXJfb2ZfaF90aWxlcygmZGF0YSk7CisJCWlndF9kZWJ1ZygiTnVtYmVy IG9mIEhvcml6b250YWwgVGlsZXM6ICVkXG4iLCBkYXRhLm51bV9oX3RpbGVzKTsKKwkJaWd0X3Jl cXVpcmUoZGF0YS5udW1faF90aWxlcyA+IDApOworCQlkYXRhLmNvbm5zID0gY2FsbG9jKGRhdGEu bnVtX2hfdGlsZXMsIHNpemVvZihkYXRhX2Nvbm5lY3Rvcl90KSk7CisJfQorCisJaWd0X2Rlc2Ny aWJlKCJNYWtlIHN1cmUgdGhlIFRpbGVkIENSVENzIGFyZSBzeW5jaHJvbml6ZWQgYW5kIHdlIGdl dCAiCisJCSAgICAgInBhZ2UgZmxpcHMgZm9yIGFsbCB0aWxlZCBDUlRDcyBpbiBvbmUgdmJsYW5r LiIpOworCWlndF9zdWJ0ZXN0KCJiYXNpYy10ZXN0LXBhdHRlcm4iKSB7CisJCWlndF9hc3NlcnQo ZGF0YS5jb25ucyk7CisKKwkJZ2V0X2Nvbm5lY3RvcnMoJmRhdGEpOworCQlzZXR1cF9tb2RlKCZk YXRhKTsKKwkJc2V0dXBfZnJhbWVidWZmZXIoJmRhdGEpOworCQlpZ3RfZGlzcGxheV9jb21taXRf YXRvbWljKGRhdGEuZGlzcGxheSwgRFJNX01PREVfQVRPTUlDX05PTkJMT0NLIHwKKwkJCQkJICBE Uk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQsICZkYXRhKTsKKwkJd2hpbGUgKCFnb3RfYWxsX3BhZ2Vf ZmxpcHMoJmRhdGEpKSB7CisJCQlyZXQgPSBwb2xsKCZwZmQsIDEsIDEwMDApOworCQkJaWd0X2Fz c2VydChyZXQgPT0gMSk7CisJCQlkcm1IYW5kbGVFdmVudChkYXRhLmRybV9mZCwgJmRybV9ldmVu dCk7CisJCX0KKworCQl0ZXN0X2NsZWFudXAoJmRhdGEpOworCX0KKworCWlndF9maXh0dXJlIHsK KwkJZnJlZShkYXRhLmNvbm5zKTsKKwkJY2xvc2UoZGF0YS5kcm1fZmQpOworCQlrbXN0ZXN0X3Jl c3RvcmVfdnRfbW9kZSgpOworCQlpZ3RfZGlzcGxheV9maW5pKGRhdGEuZGlzcGxheSk7CisJfQor fQpkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRl eCBhN2IyYjMyMi4uNTAyOTJkZjggMTAwNjQ0Ci0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBi L3Rlc3RzL21lc29uLmJ1aWxkCkBAIC0yNiw2ICsyNiw3IEBAIHRlc3RfcHJvZ3MgPSBbCiAJJ2tt c19jdXJzb3JfZWRnZV93YWxrJywKIAkna21zX2N1cnNvcl9sZWdhY3knLAogCSdrbXNfZHBfZHNj JywKKwkna21zX2RwX3RpbGVkX2Rpc3BsYXknLAogCSdrbXNfZHJhd19jcmMnLAogCSdrbXNfZmJj b25fZmJ0JywKIAkna21zX2ZlbmNlX3Bpbl9sZWFrJywKLS0gCjIuMTkuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QK aWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2