From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 08B6A89332 for ; Fri, 26 Apr 2019 16:21:17 +0000 (UTC) From: Simon Ser Date: Fri, 26 Apr 2019 19:21:06 +0300 Message-Id: <20190426162110.1768-4-simon.ser@intel.com> In-Reply-To: <20190426162110.1768-1-simon.ser@intel.com> References: <20190426162110.1768-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 3/7] tests/kms_chamelium: generate an EDID with audio support 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: Martin Peres List-ID: VGhlIGRlZmF1bHQgQ2hhbWVsaXVtIEVESUQgd29ya3MgZ3JlYXQgd2l0aCBEaXNwbGF5UG9ydCBi dXQgaGFzIGlzc3VlcyB3aXRoCkhETUkuIFRoZSBFRElEIGFkdmVydGlzZXMgaXRzZWxmIGFzIGEg RGlzcGxheVBvcnQtb25seSBkZXZpY2UsIHdoaWNoIGNhdXNlcwppc3N1ZXMgd2l0aCBIRE1JIGF1 ZGlvLiBBZGRpdGlvbmFsbHksIHRoZSBFRElEIGRvZXNuJ3QgY29udGFpbiBhIG1hZ2ljCmluY2Fu dGF0aW9uIHdpdGhpbiBhIHZlbmRvci1zcGVjaWZpYyBkYXRhIGJsb2NrIHRoYXQgaXMgbmVlZGVk IGZvciBhdWRpbyB0bwp3b3JrLgoKVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyBhbiBFRElEIGlzIGdl bmVyYXRlZCBhbmQgc2V0IGJ5IElHVC4gVGhlIEVESUQgaXMgdGhlCmJhc2UgSUdUIEVESUQgcGF0 Y2hlZCB0byBhcHBlbmQgYSBTaG9ydCBBdWRpbyBEZXNjcmlwdG9yIGFuZCBWZW5kb3IgU3BlY2lm aWMKRGF0YSBibG9jayBleHRlbnNpb24uCgpUaGlzIGdlbmVyYXRlZCBpcyBzdWl0YWJsZSBmb3Ig SERNSSBhdWRpby4gRm9yIERpc3BsYXlQb3J0IGF1ZGlvLCB3ZSBrZWVwIHVzaW5nCnRoZSBDaGFt ZWxpdW0ncyBkZWZhdWx0IEVESUQuCgpUaGUgZ2xvYmFsIHZhcmlhYmxlIGhvbGRpbmcgdGhlIHRl c3QgZnJlcXVlbmNpZXMgaGFzIGJlZW4gcmVuYW1lZCB0byBwcmV2ZW50CnNoYWRvd2luZyBsb2Nh bCB2YXJpYWJsZXMuCgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBTZXIgPHNpbW9uLnNlckBpbnRlbC5j b20+Ci0tLQogbGliL2lndF9jaGFtZWxpdW0uYyAgIHwgICA5ICsrKy0KIHRlc3RzL2ttc19jaGFt ZWxpdW0uYyB8IDEyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbGliL2lndF9jaGFtZWxpdW0uYyBiL2xpYi9pZ3RfY2hhbWVsaXVtLmMKaW5kZXgg ZmZjNjhmMzUuLjQ0NDQ1NDQ0IDEwMDY0NAotLS0gYS9saWIvaWd0X2NoYW1lbGl1bS5jCisrKyBi L2xpYi9pZ3RfY2hhbWVsaXVtLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJpZ3RfY2hh bWVsaXVtLmgiCiAjaW5jbHVkZSAiaWd0X2NvcmUuaCIKICNpbmNsdWRlICJpZ3RfYXV4LmgiCisj aW5jbHVkZSAiaWd0X2VkaWQuaCIKICNpbmNsdWRlICJpZ3RfZnJhbWUuaCIKICNpbmNsdWRlICJp Z3RfbGlzdC5oIgogI2luY2x1ZGUgImlndF9rbXMuaCIKQEAgLTQ5OSwxNCArNTAwLDE4IEBAIHZv aWQgY2hhbWVsaXVtX3NjaGVkdWxlX2hwZF90b2dnbGUoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVs aXVtLAogICoKICAqIFJldHVybnM6IFRoZSBJRCBvZiB0aGUgRURJRCB1cGxvYWRlZCB0byB0aGUg Y2hhbWVsaXVtLgogICovCi1pbnQgY2hhbWVsaXVtX25ld19lZGlkKHN0cnVjdCBjaGFtZWxpdW0g KmNoYW1lbGl1bSwgY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCkKK2ludCBjaGFtZWxpdW1fbmV3 X2VkaWQoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtLAorCQkgICAgICAgY29uc3QgdW5zaWdu ZWQgY2hhciAqcmF3X2VkaWQpCiB7CiAJeG1scnBjX3ZhbHVlICpyZXM7CiAJc3RydWN0IGNoYW1l bGl1bV9lZGlkICphbGxvY2F0ZWRfZWRpZDsKIAlpbnQgZWRpZF9pZDsKKwlzdHJ1Y3QgZWRpZCAq ZWRpZCA9IChzdHJ1Y3QgZWRpZCAqKSByYXdfZWRpZDsKKwlzaXplX3QgZWRpZF9zaXplID0gc2l6 ZW9mKHN0cnVjdCBlZGlkKSArCisJCQkgICBlZGlkLT5leHRlbnNpb25zX2xlbiAqIHNpemVvZihz dHJ1Y3QgZWRpZF9leHQpOwogCiAJcmVzID0gY2hhbWVsaXVtX3JwYyhjaGFtZWxpdW0sIE5VTEws ICJDcmVhdGVFZGlkIiwgIig2KSIsCi0JCQkgICAgZWRpZCwgRURJRF9MRU5HVEgpOworCQkJICAg IHJhd19lZGlkLCBlZGlkX3NpemUpOwogCiAJeG1scnBjX3JlYWRfaW50KCZjaGFtZWxpdW0tPmVu diwgcmVzLCAmZWRpZF9pZCk7CiAJeG1scnBjX0RFQ1JFRihyZXMpOwpkaWZmIC0tZ2l0IGEvdGVz dHMva21zX2NoYW1lbGl1bS5jIGIvdGVzdHMva21zX2NoYW1lbGl1bS5jCmluZGV4IDcxNGU1ZTA2 Li4xMjZhZjIyNiAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2NoYW1lbGl1bS5jCisrKyBiL3Rlc3Rz L2ttc19jaGFtZWxpdW0uYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog I2luY2x1ZGUgImlndC5oIgogI2luY2x1ZGUgImlndF92YzQuaCIKKyNpbmNsdWRlICJpZ3RfZWRp ZC5oIgogCiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxwdGhyZWFkLmg+CkBAIC00MTQs OCArNDE1LDcgQEAgdGVzdF9zdXNwZW5kX3Jlc3VtZV9lZGlkX2NoYW5nZShkYXRhX3QgKmRhdGEs IHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwKIH0KIAogc3RhdGljIGlndF9vdXRwdXRfdCAq Ci1wcmVwYXJlX291dHB1dChkYXRhX3QgKmRhdGEsCi0JICAgICAgIHN0cnVjdCBjaGFtZWxpdW1f cG9ydCAqcG9ydCwgYm9vbCBzZXRfZWRpZCkKK3ByZXBhcmVfb3V0cHV0KGRhdGFfdCAqZGF0YSwg c3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LCBpbnQgZWRpZF9pZCkKIHsKIAlpZ3RfZGlzcGxh eV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7CiAJaWd0X291dHB1dF90ICpvdXRwdXQ7CkBA IC00MjgsMTAgKzQyOCwxMCBAQCBwcmVwYXJlX291dHB1dChkYXRhX3QgKmRhdGEsCiAJaWd0X3Jl cXVpcmUocmVzID0gZHJtTW9kZUdldFJlc291cmNlcyhkYXRhLT5kcm1fZmQpKTsKIAogCS8qIFRo ZSBjaGFtZWxpdW0ncyBkZWZhdWx0IEVESUQgaGFzIGEgbG90IG9mIHJlc29sdXRpb25zLCB3YXkg bW9yZSB0aGVuCi0JICogd2UgbmVlZCB0byB0ZXN0CisJICogd2UgbmVlZCB0byB0ZXN0LiBBZGRp dGlvbmFsbHkgdGhlIGRlZmF1bHQgRURJRCBkb2Vzbid0IHN1cHBvcnQgSERNSQorCSAqIGF1ZGlv LgogCSAqLwotCWlmIChzZXRfZWRpZCkKLQkJY2hhbWVsaXVtX3BvcnRfc2V0X2VkaWQoZGF0YS0+ Y2hhbWVsaXVtLCBwb3J0LCBkYXRhLT5lZGlkX2lkKTsKKwljaGFtZWxpdW1fcG9ydF9zZXRfZWRp ZChkYXRhLT5jaGFtZWxpdW0sIHBvcnQsIGVkaWRfaWQpOwogCiAJY2hhbWVsaXVtX3BsdWcoZGF0 YS0+Y2hhbWVsaXVtLCBwb3J0KTsKIAl3YWl0X2Zvcl9jb25uZWN0b3IoZGF0YSwgcG9ydCwgRFJN X01PREVfQ09OTkVDVEVEKTsKQEAgLTYxNiw3ICs2MTYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2Rp c3BsYXlfb25lX21vZGUoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQs CiAKIAlyZXNldF9zdGF0ZShkYXRhLCBwb3J0KTsKIAotCW91dHB1dCA9IHByZXBhcmVfb3V0cHV0 KGRhdGEsIHBvcnQsIHRydWUpOworCW91dHB1dCA9IHByZXBhcmVfb3V0cHV0KGRhdGEsIHBvcnQs IGRhdGEtPmVkaWRfaWQpOwogCWNvbm5lY3RvciA9IGNoYW1lbGl1bV9wb3J0X2dldF9jb25uZWN0 b3IoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LCBmYWxzZSk7CiAJcHJpbWFyeSA9IGlndF9vdXRwdXRf Z2V0X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKIAlpZ3RfYXNz ZXJ0KHByaW1hcnkpOwpAQCAtNjQ3LDcgKzY0Nyw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfZGlzcGxh eV9hbGxfbW9kZXMoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAK IAlyZXNldF9zdGF0ZShkYXRhLCBwb3J0KTsKIAotCW91dHB1dCA9IHByZXBhcmVfb3V0cHV0KGRh dGEsIHBvcnQsIHRydWUpOworCW91dHB1dCA9IHByZXBhcmVfb3V0cHV0KGRhdGEsIHBvcnQsIGRh dGEtPmVkaWRfaWQpOwogCWNvbm5lY3RvciA9IGNoYW1lbGl1bV9wb3J0X2dldF9jb25uZWN0b3Io ZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LCBmYWxzZSk7CiAJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0 X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKIAlpZ3RfYXNzZXJ0 KHByaW1hcnkpOwpAQCAtNjgyLDcgKzY4Miw3IEBAIHRlc3RfZGlzcGxheV9mcmFtZV9kdW1wKGRh dGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0KQogCiAJcmVzZXRfc3RhdGUo ZGF0YSwgcG9ydCk7CiAKLQlvdXRwdXQgPSBwcmVwYXJlX291dHB1dChkYXRhLCBwb3J0LCB0cnVl KTsKKwlvdXRwdXQgPSBwcmVwYXJlX291dHB1dChkYXRhLCBwb3J0LCBkYXRhLT5lZGlkX2lkKTsK IAljb25uZWN0b3IgPSBjaGFtZWxpdW1fcG9ydF9nZXRfY29ubmVjdG9yKGRhdGEtPmNoYW1lbGl1 bSwgcG9ydCwgZmFsc2UpOwogCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91 dHB1dCwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CiAJaWd0X2Fzc2VydChwcmltYXJ5KTsKQEAg LTcyNSw3ICs3MjUsNyBAQCB0ZXN0X2Rpc3BsYXlfZnJhbWVfZHVtcChkYXRhX3QgKmRhdGEsIHN0 cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKIC8qIEEgc3RyZWFrIG9mIDMgZ2l2ZXMgY29uZmlk ZW5jZSB0aGF0IHRoZSBzaWduYWwgaXMgZ29vZC4gKi8KICNkZWZpbmUgTUlOX1NUUkVBSyAzCiAK LXN0YXRpYyBpbnQgc2FtcGxpbmdfcmF0ZXNbXSA9IHsKK3N0YXRpYyBpbnQgdGVzdF9zYW1wbGlu Z19yYXRlc1tdID0gewogCTMyMDAwLAogCTQ0MTAwLAogCTQ4MDAwLApAQCAtNzM1LDcgKzczNSw3 IEBAIHN0YXRpYyBpbnQgc2FtcGxpbmdfcmF0ZXNbXSA9IHsKIAkxOTIwMDAsCiB9OwogCi1zdGF0 aWMgaW50IHNhbXBsaW5nX3JhdGVzX2NvdW50ID0gc2l6ZW9mKHNhbXBsaW5nX3JhdGVzKSAvIHNp emVvZihpbnQpOworc3RhdGljIGludCB0ZXN0X3NhbXBsaW5nX3JhdGVzX2NvdW50ID0gc2l6ZW9m KHRlc3Rfc2FtcGxpbmdfcmF0ZXMpIC8gc2l6ZW9mKGludCk7CiAKIHN0YXRpYyBpbnQgdGVzdF9m cmVxdWVuY2llc1tdID0gewogCTMwMCwKQEAgLTk4Niw3ICs5ODYsNyBAQCBkb190ZXN0X2Rpc3Bs YXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAKIHN0 YXRpYyB2b2lkCiB0ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVs aXVtX3BvcnQgKnBvcnQsCi0JCSAgIGNvbnN0IGNoYXIgKmF1ZGlvX2RldmljZSkKKwkJICAgY29u c3QgY2hhciAqYXVkaW9fZGV2aWNlLCBpbnQgZWRpZF9pZCkKIHsKIAlib29sIHJ1biA9IGZhbHNl OwogCXN0cnVjdCBhbHNhICphbHNhOwpAQCAtMTAwNSwxMCArMTAwNSw3IEBAIHRlc3RfZGlzcGxh eV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwKIAogCXJl c2V0X3N0YXRlKGRhdGEsIHBvcnQpOwogCi0JLyogVXNlIHRoZSBkZWZhdWx0IENoYW1lbGl1bSBF RElEIGZvciB0aGlzIHRlc3QsIGFzIHRoZSBiYXNlIElHVCBFRElECi0JICogZG9lc24ndCBhZHZl cnRpc2UgYXVkaW8gc3VwcG9ydCAoc2VlIGRybV9kZXRlY3RfbW9uaXRvcl9hdWRpbyBpbgotCSAq IHRoZSBrZXJuZWwgdHJlZSkuICovCi0Jb3V0cHV0ID0gcHJlcGFyZV9vdXRwdXQoZGF0YSwgcG9y dCwgZmFsc2UpOworCW91dHB1dCA9IHByZXBhcmVfb3V0cHV0KGRhdGEsIHBvcnQsIGVkaWRfaWQp OwogCWNvbm5lY3RvciA9IGNoYW1lbGl1bV9wb3J0X2dldF9jb25uZWN0b3IoZGF0YS0+Y2hhbWVs aXVtLCBwb3J0LCBmYWxzZSk7CiAJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUo b3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKIAlpZ3RfYXNzZXJ0KHByaW1hcnkpOwpA QCAtMTAyNywxNCArMTAyNCwxNCBAQCB0ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBz dHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAKIAllbmFibGVfb3V0cHV0KGRhdGEsIHBvcnQs IG91dHB1dCwgbW9kZSwgJmZiKTsKIAotCWZvciAoaSA9IDA7IGkgPCBzYW1wbGluZ19yYXRlc19j b3VudDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IHRlc3Rfc2FtcGxpbmdfcmF0ZXNfY291bnQ7 IGkrKykgewogCQlyZXQgPSBhbHNhX29wZW5fb3V0cHV0KGFsc2EsIGF1ZGlvX2RldmljZSk7CiAJ CWlndF9hc3NlcnQocmV0ID49IDApOwogCiAJCS8qIFRPRE86IHBsYXliYWNrIG9uIGFsbCA4IGF2 YWlsYWJsZSBjaGFubmVscyAqLwogCQlydW4gfD0gZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGEs IHBvcnQsIGFsc2EsCiAJCQkJCSAgICAgUExBWUJBQ0tfQ0hBTk5FTFMsCi0JCQkJCSAgICAgc2Ft cGxpbmdfcmF0ZXNbaV0pOworCQkJCQkgICAgIHRlc3Rfc2FtcGxpbmdfcmF0ZXNbaV0pOwogCiAJ CWFsc2FfY2xvc2Vfb3V0cHV0KGFsc2EpOwogCX0KQEAgLTEzNzcsNyArMTM3NCw3IEBAIHN0YXRp YyB2b2lkIHRlc3RfZGlzcGxheV9wbGFuZXNfcmFuZG9tKGRhdGFfdCAqZGF0YSwKIAlyZXNldF9z dGF0ZShkYXRhLCBwb3J0KTsKIAogCS8qIEZpbmQgdGhlIGNvbm5lY3RvciBhbmQgcGlwZS4gKi8K LQlvdXRwdXQgPSBwcmVwYXJlX291dHB1dChkYXRhLCBwb3J0LCB0cnVlKTsKKwlvdXRwdXQgPSBw cmVwYXJlX291dHB1dChkYXRhLCBwb3J0LCBkYXRhLT5lZGlkX2lkKTsKIAogCW1vZGUgPSBpZ3Rf b3V0cHV0X2dldF9tb2RlKG91dHB1dCk7CiAKQEAgLTE1NTcsNyArMTU1NCwxNyBAQCBzdGF0aWMg ZGF0YV90IGRhdGE7CiBpZ3RfbWFpbgogewogCXN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydDsK LQlpbnQgZWRpZF9pZCwgYWx0X2VkaWRfaWQsIHA7CisJaW50IHAsIGNoYW5uZWxzOworCXVpbnQ4 X3Qgc2FtcGxpbmdfcmF0ZXMsIHNhbXBsZV9zaXplczsKKwljaGFyIHJhd19lZGlkW3NpemVvZihz dHJ1Y3QgZWRpZCkgKyBzaXplb2Yoc3RydWN0IGVkaWRfZXh0KV0gPSB7MH07CisJc3RydWN0IGVk aWQgKmVkaWQ7CisJc3RydWN0IGVkaWRfZXh0ICplZGlkX2V4dDsKKwlzdHJ1Y3QgZWRpZF9jZWEg KmVkaWRfY2VhOworCWNoYXIgKmNlYV9kYXRhOworCXN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2Nr ICpibG9jazsKKwlzdHJ1Y3QgY2VhX3NhZCBzYWQgPSB7MH07CisJY29uc3Qgc3RydWN0IGNlYV92 c2QgKnZzZDsKKwlzaXplX3QgY2VhX2RhdGFfc2l6ZSwgdnNkX3NpemU7CiAKIAlpZ3RfZml4dHVy ZSB7CiAJCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKQEAgLTE1NjksMTIgKzE1NzYsNTIgQEAg aWd0X21haW4KIAkJZGF0YS5wb3J0cyA9IGNoYW1lbGl1bV9nZXRfcG9ydHMoZGF0YS5jaGFtZWxp dW0sCiAJCQkJCQkgJmRhdGEucG9ydF9jb3VudCk7CiAKLQkJZWRpZF9pZCA9IGNoYW1lbGl1bV9u ZXdfZWRpZChkYXRhLmNoYW1lbGl1bSwKLQkJCQkJICAgICBpZ3Rfa21zX2dldF9iYXNlX2VkaWQo KSk7Ci0JCWFsdF9lZGlkX2lkID0gY2hhbWVsaXVtX25ld19lZGlkKGRhdGEuY2hhbWVsaXVtLAor CQkvKiBJbml0aWFsaXplIHRoZSBTaG9ydCBBdWRpbyBEZXNjcmlwdG9yIGZvciBQQ00gKi8KKwkJ Y2hhbm5lbHMgPSAyOyAvKiBUT0RPOiBzcGVha2VyIGFsbG9jIGJsb2NrcyBmb3IgPiAyIGNoYW5u ZWxzICovCisJCXNhbXBsaW5nX3JhdGVzID0gQ0VBX1NBRF9TQU1QTElOR19SQVRFXzMyS0haIHwK KwkJCQkgQ0VBX1NBRF9TQU1QTElOR19SQVRFXzQ0S0haIHwKKwkJCQkgQ0VBX1NBRF9TQU1QTElO R19SQVRFXzQ4S0haIHwKKwkJCQkgQ0VBX1NBRF9TQU1QTElOR19SQVRFXzg4S0haIHwKKwkJCQkg Q0VBX1NBRF9TQU1QTElOR19SQVRFXzk2S0haIHwKKwkJCQkgQ0VBX1NBRF9TQU1QTElOR19SQVRF XzE3NktIWiB8CisJCQkJIENFQV9TQURfU0FNUExJTkdfUkFURV8xOTJLSFo7CisJCXNhbXBsZV9z aXplcyA9IENFQV9TQURfU0FNUExFX1NJWkVfMTYgfAorCQkJICAgICAgIENFQV9TQURfU0FNUExF X1NJWkVfMjAgfAorCQkJICAgICAgIENFQV9TQURfU0FNUExFX1NJWkVfMjQ7CisJCWNlYV9zYWRf aW5pdF9wY20oJnNhZCwgY2hhbm5lbHMsIHNhbXBsaW5nX3JhdGVzLCBzYW1wbGVfc2l6ZXMpOwor CisJCS8qIENyZWF0ZSBhIG5ldyBFRElEIGZyb20gdGhlIGJhc2UgSUdUIEVESUQsIGFuZCBhZGQg YW4KKwkJICogZXh0ZW5zaW9uIHRoYXQgYWR2ZXJ0aXNlcyBhdWRpbyBzdXBwb3J0LiAqLworCQll ZGlkID0gKHN0cnVjdCBlZGlkICopIHJhd19lZGlkOworCQltZW1jcHkoZWRpZCwgaWd0X2ttc19n ZXRfYmFzZV9lZGlkKCksIHNpemVvZihzdHJ1Y3QgZWRpZCkpOworCQllZGlkLT5leHRlbnNpb25z X2xlbiA9IDE7CisJCWVkaWRfZXh0ID0gJmVkaWQtPmV4dGVuc2lvbnNbMF07CisJCWVkaWRfY2Vh ID0gJmVkaWRfZXh0LT5kYXRhLmNlYTsKKwkJY2VhX2RhdGEgPSBlZGlkX2NlYS0+ZGF0YTsKKwkJ Y2VhX2RhdGFfc2l6ZSA9IDA7CisKKwkJYmxvY2sgPSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxv Y2sgKikgJmNlYV9kYXRhW2NlYV9kYXRhX3NpemVdOworCQljZWFfZGF0YV9zaXplICs9IGVkaWRf Y2VhX2RhdGFfYmxvY2tfc2V0X3NhZChibG9jaywgJnNhZCwgMSk7CisKKwkJLyogQSBWZW5kb3Ig U3BlY2lmaWMgRGF0YSBibG9jayBpcyBuZWVkZWQgZm9yIEhETUkgYXVkaW8gKi8KKwkJYmxvY2sg PSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKikgJmNlYV9kYXRhW2NlYV9kYXRhX3NpemVd OworCQl2c2QgPSBjZWFfdnNkX2dldF9oZG1pX2RlZmF1bHQoJnZzZF9zaXplKTsKKwkJY2VhX2Rh dGFfc2l6ZSArPSBlZGlkX2NlYV9kYXRhX2Jsb2NrX3NldF92c2QoYmxvY2ssIHZzZCwKKwkJCQkJ CQkgICAgIHZzZF9zaXplKTsKKworCQlpZ3RfYXNzZXJ0KGNlYV9kYXRhX3NpemUgPD0gc2l6ZW9m KGVkaWRfY2VhLT5kYXRhKSk7CisKKwkJZWRpZF9leHRfc2V0X2NlYShlZGlkX2V4dCwgY2VhX2Rh dGFfc2l6ZSwKKwkJCQkgRURJRF9DRUFfQkFTSUNfQVVESU8pOworCisJCWVkaWRfdXBkYXRlX2No ZWNrc3VtKGVkaWQpOworCQllZGlkX2V4dF91cGRhdGVfY2VhX2NoZWNrc3VtKGVkaWRfZXh0KTsK KworCQlkYXRhLmVkaWRfaWQgPSBjaGFtZWxpdW1fbmV3X2VkaWQoZGF0YS5jaGFtZWxpdW0sCisJ CQkJCQkgICh1bnNpZ25lZCBjaGFyICopIHJhd19lZGlkKTsKKworCQlkYXRhLmFsdF9lZGlkX2lk ID0gY2hhbWVsaXVtX25ld19lZGlkKGRhdGEuY2hhbWVsaXVtLAogCQkJCQkJIGlndF9rbXNfZ2V0 X2FsdF9lZGlkKCkpOwotCQlkYXRhLmVkaWRfaWQgPSBlZGlkX2lkOwotCQlkYXRhLmFsdF9lZGlk X2lkID0gYWx0X2VkaWRfaWQ7CiAKIAkJLyogU28gZmJjb24gZG9lc24ndCB0cnkgdG8gcmVwcm9i ZSB0aGluZ3MgaXRzZWxmICovCiAJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKQEAg LTE1OTgsOSArMTY0NSw5IEBAIGlndF9tYWluCiAJCQkJCSAgIEhQRF9UT0dHTEVfQ09VTlRfRkFT VCk7CiAKIAkJY29ubmVjdG9yX3N1YnRlc3QoImRwLWVkaWQtcmVhZCIsIERpc3BsYXlQb3J0KSB7 Ci0JCQl0ZXN0X2VkaWRfcmVhZCgmZGF0YSwgcG9ydCwgZWRpZF9pZCwKKwkJCXRlc3RfZWRpZF9y ZWFkKCZkYXRhLCBwb3J0LCBkYXRhLmVkaWRfaWQsCiAJCQkJICAgICAgIGlndF9rbXNfZ2V0X2Jh c2VfZWRpZCgpKTsKLQkJCXRlc3RfZWRpZF9yZWFkKCZkYXRhLCBwb3J0LCBhbHRfZWRpZF9pZCwK KwkJCXRlc3RfZWRpZF9yZWFkKCZkYXRhLCBwb3J0LCBkYXRhLmFsdF9lZGlkX2lkLAogCQkJCSAg ICAgICBpZ3Rfa21zX2dldF9hbHRfZWRpZCgpKTsKIAkJfQogCkBAIC0xNjI2LDEzICsxNjczLDE1 IEBAIGlndF9tYWluCiAJCQl0ZXN0X3N1c3BlbmRfcmVzdW1lX2VkaWRfY2hhbmdlKCZkYXRhLCBw b3J0LAogCQkJCQkJCVNVU1BFTkRfU1RBVEVfTUVNLAogCQkJCQkJCVNVU1BFTkRfVEVTVF9OT05F LAotCQkJCQkJCWVkaWRfaWQsIGFsdF9lZGlkX2lkKTsKKwkJCQkJCQlkYXRhLmVkaWRfaWQsCisJ CQkJCQkJZGF0YS5hbHRfZWRpZF9pZCk7CiAKIAkJY29ubmVjdG9yX3N1YnRlc3QoImRwLWVkaWQt Y2hhbmdlLWR1cmluZy1oaWJlcm5hdGUiLCBEaXNwbGF5UG9ydCkKIAkJCXRlc3Rfc3VzcGVuZF9y ZXN1bWVfZWRpZF9jaGFuZ2UoJmRhdGEsIHBvcnQsCiAJCQkJCQkJU1VTUEVORF9TVEFURV9ESVNL LAogCQkJCQkJCVNVU1BFTkRfVEVTVF9ERVZJQ0VTLAotCQkJCQkJCWVkaWRfaWQsIGFsdF9lZGlk X2lkKTsKKwkJCQkJCQlkYXRhLmVkaWRfaWQsCisJCQkJCQkJZGF0YS5hbHRfZWRpZF9pZCk7CiAK IAkJY29ubmVjdG9yX3N1YnRlc3QoImRwLWNyYy1zaW5nbGUiLCBEaXNwbGF5UG9ydCkKIAkJCXRl c3RfZGlzcGxheV9hbGxfbW9kZXMoJmRhdGEsIHBvcnQsIERSTV9GT1JNQVRfWFJHQjg4ODgsCkBA IC0xNjQ5LDggKzE2OTgsMTAgQEAgaWd0X21haW4KIAkJY29ubmVjdG9yX3N1YnRlc3QoImRwLWZy YW1lLWR1bXAiLCBEaXNwbGF5UG9ydCkKIAkJCXRlc3RfZGlzcGxheV9mcmFtZV9kdW1wKCZkYXRh LCBwb3J0KTsKIAorCQkvKiBUaGUgRURJRCB3ZSBnZW5lcmF0ZSBhZHZlcnRpc2VzIEhETUkgYXVk aW8sIG5vdCBEUCBhdWRpby4KKwkJICogVXNlIHRoZSBDaGFtZWxpdW0ncyBkZWZhdWx0IEVESUQg Zm9yIERQIGF1ZGlvLiAqLwogCQljb25uZWN0b3Jfc3VidGVzdCgiZHAtYXVkaW8iLCBEaXNwbGF5 UG9ydCkKLQkJCXRlc3RfZGlzcGxheV9hdWRpbygmZGF0YSwgcG9ydCwgIkhETUkiKTsKKwkJCXRl c3RfZGlzcGxheV9hdWRpbygmZGF0YSwgcG9ydCwgIkhETUkiLCAwKTsKIAl9CiAKIAlpZ3Rfc3Vi dGVzdF9ncm91cCB7CkBAIC0xNjY4LDkgKzE3MTksOSBAQCBpZ3RfbWFpbgogCQkJCQkgICBIUERf VE9HR0xFX0NPVU5UX0ZBU1QpOwogCiAJCWNvbm5lY3Rvcl9zdWJ0ZXN0KCJoZG1pLWVkaWQtcmVh ZCIsIEhETUlBKSB7Ci0JCQl0ZXN0X2VkaWRfcmVhZCgmZGF0YSwgcG9ydCwgZWRpZF9pZCwKKwkJ CXRlc3RfZWRpZF9yZWFkKCZkYXRhLCBwb3J0LCBkYXRhLmVkaWRfaWQsCiAJCQkJICAgICAgIGln dF9rbXNfZ2V0X2Jhc2VfZWRpZCgpKTsKLQkJCXRlc3RfZWRpZF9yZWFkKCZkYXRhLCBwb3J0LCBh bHRfZWRpZF9pZCwKKwkJCXRlc3RfZWRpZF9yZWFkKCZkYXRhLCBwb3J0LCBkYXRhLmFsdF9lZGlk X2lkLAogCQkJCSAgICAgICBpZ3Rfa21zX2dldF9hbHRfZWRpZCgpKTsKIAkJfQogCkBAIC0xNjk2 LDEzICsxNzQ3LDE1IEBAIGlndF9tYWluCiAJCQl0ZXN0X3N1c3BlbmRfcmVzdW1lX2VkaWRfY2hh bmdlKCZkYXRhLCBwb3J0LAogCQkJCQkJCVNVU1BFTkRfU1RBVEVfTUVNLAogCQkJCQkJCVNVU1BF TkRfVEVTVF9OT05FLAotCQkJCQkJCWVkaWRfaWQsIGFsdF9lZGlkX2lkKTsKKwkJCQkJCQlkYXRh LmVkaWRfaWQsCisJCQkJCQkJZGF0YS5hbHRfZWRpZF9pZCk7CiAKIAkJY29ubmVjdG9yX3N1YnRl c3QoImhkbWktZWRpZC1jaGFuZ2UtZHVyaW5nLWhpYmVybmF0ZSIsIEhETUlBKQogCQkJdGVzdF9z dXNwZW5kX3Jlc3VtZV9lZGlkX2NoYW5nZSgmZGF0YSwgcG9ydCwKIAkJCQkJCQlTVVNQRU5EX1NU QVRFX0RJU0ssCiAJCQkJCQkJU1VTUEVORF9URVNUX0RFVklDRVMsCi0JCQkJCQkJZWRpZF9pZCwg YWx0X2VkaWRfaWQpOworCQkJCQkJCWRhdGEuZWRpZF9pZCwKKwkJCQkJCQlkYXRhLmFsdF9lZGlk X2lkKTsKIAogCQljb25uZWN0b3Jfc3VidGVzdCgiaGRtaS1jcmMtc2luZ2xlIiwgSERNSUEpCiAJ CQl0ZXN0X2Rpc3BsYXlfYWxsX21vZGVzKCZkYXRhLCBwb3J0LCBEUk1fRk9STUFUX1hSR0I4ODg4 LApAQCAtMTgxMyw5ICsxODY2LDkgQEAgaWd0X21haW4KIAkJCXRlc3RfYmFzaWNfaG90cGx1Zygm ZGF0YSwgcG9ydCwgSFBEX1RPR0dMRV9DT1VOVF9GQVNUKTsKIAogCQljb25uZWN0b3Jfc3VidGVz dCgidmdhLWVkaWQtcmVhZCIsIFZHQSkgewotCQkJdGVzdF9lZGlkX3JlYWQoJmRhdGEsIHBvcnQs IGVkaWRfaWQsCisJCQl0ZXN0X2VkaWRfcmVhZCgmZGF0YSwgcG9ydCwgZGF0YS5lZGlkX2lkLAog CQkJCSAgICAgICBpZ3Rfa21zX2dldF9iYXNlX2VkaWQoKSk7Ci0JCQl0ZXN0X2VkaWRfcmVhZCgm ZGF0YSwgcG9ydCwgYWx0X2VkaWRfaWQsCisJCQl0ZXN0X2VkaWRfcmVhZCgmZGF0YSwgcG9ydCwg ZGF0YS5hbHRfZWRpZF9pZCwKIAkJCQkgICAgICAgaWd0X2ttc19nZXRfYWx0X2VkaWQoKSk7CiAJ CX0KIAotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=