From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7B1886E43C for ; Wed, 20 Nov 2019 00:08:02 +0000 (UTC) From: Umesh Nerlige Ramappa Date: Tue, 19 Nov 2019 16:07:59 -0800 Message-Id: <20191120000800.16281-3-umesh.nerlige.ramappa@intel.com> In-Reply-To: <20191120000800.16281-1-umesh.nerlige.ramappa@intel.com> References: <20191120000800.16281-1-umesh.nerlige.ramappa@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v4 3/4] test/perf: Add test for TGL OAR unit 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, Lionel G Landwerlin Cc: Chris Wilson List-ID: QWRkIGEgdGVzdCB0aGF0IG1lYXN1cmVzIHdvcmsgdXNpbmcgTUktUlBDIGZvciB0aGUgc3BlY2lm aWMgY29udGV4dAp3aXRob3V0IHVzaW5nIHJlcG9ydHMgZnJvbSB0aGUgT0EgYnVmZmVyLgoKVGln ZXJsYWtlIGludHJvZHVjZXMgYW4gT0EgdW5pdCB0aGF0IG1lYXN1cmVzIHdvcmsgc3BlY2lmaWMg dG8gcmVuZGVyCndvcmtsb2Fkcy4gVGhpcyBtZWFucyB3ZSBkbyBub3QgaGF2ZSB0byByZWx5IG9u IHJlcG9ydHMgZnJvbSB0aGUgT0EKYnVmZmVyIHRvIG5vcm1hbGl6ZSB0aGUgcmVwb3J0cyBvYnRh aW5lZCBmcm9tIE1JIFJFUE9SVCBQRVJGIENPVU5UCmFueW1vcmUuCgp2MjoKLSBBZGQgaWd0X2Ry b3Bfcm9vdCB0byBtYWtlIHRoZSB0ZXN0IHJ1biBpbiBub24tcHJpdmlsZWdlZCBtb2RlIChMaW9u ZWwpCi0gTW92ZSBwYXJhbWV0ZXIgdG8gX19wZXJmX29wZW4gaW5zaWRlIHRoZSBzYW1lIGZ1bmN0 aW9uIChMaW9uZWwpCgp2MywgdjQ6Ci0gQWRkIGlndCB0ZXN0IGRlc2NyaXB0aW9uCgpTaWduZWQt b2ZmLWJ5OiBVbWVzaCBOZXJsaWdlIFJhbWFwcGEgPHVtZXNoLm5lcmxpZ2UucmFtYXBwYUBpbnRl bC5jb20+Ci0tLQogdGVzdHMvcGVyZi5jIHwgMzM0ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDMzNCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvdGVzdHMvcGVyZi5jIGIvdGVzdHMvcGVyZi5jCmluZGV4IDUwNmI2 NGVjLi5iODBhOTVjNyAxMDA2NDQKLS0tIGEvdGVzdHMvcGVyZi5jCisrKyBiL3Rlc3RzL3BlcmYu YwpAQCAtMzYwMCw2ICszNjAwLDMzNCBAQCBnZW44X3Rlc3Rfc2luZ2xlX2N0eF9yZW5kZXJfdGFy Z2V0X3dyaXRlc19hX2NvdW50ZXIodm9pZCkKIAl9IHdoaWxlIChXRVhJVFNUQVRVUyhjaGlsZF9y ZXQpID09IEVBR0FJTik7CiB9CiAKK3N0YXRpYyB2b2lkIGdlbjEyX3NpbmdsZV9jdHhfaGVscGVy KHZvaWQpCit7CisJdWludDY0X3QgcHJvcGVydGllc1tdID0geworCQkvKiBIYXZlIGEgcmFuZG9t IHZhbHVlIGhlcmUgZm9yIHRoZSBjb250ZXh0IGlkLCBidXQgaW5pdGlhbGl6ZQorCQkgKiBpdCBv bmNlIHlvdSBmaWd1cmUgb3V0IHRoZSBjb250ZXh0IElEIGZvciB0aGUgd29yayB0byBiZQorCQkg KiBtZWFzdXJlZAorCQkgKi8KKwkJRFJNX0k5MTVfUEVSRl9QUk9QX0NUWF9IQU5ETEUsIFVJTlQ2 NF9NQVgsCisKKwkJLyogT0EgdW5pdCBjb25maWd1cmF0aW9uOgorCQkgKiBEUk1fSTkxNV9QRVJG X1BST1BfU0FNUExFX09BIGlzIG5vIGxvbmdlciByZXF1aXJlZCBmb3IgR2VuMTIKKwkJICogYmVj YXVzZSB0aGUgT0FSIHVuaXQgaW5jcmVtZW50cyBjb3VudGVycyBvbmx5IGZvciB0aGUKKwkJICog cmVsZXZhbnQgY29udGV4dC4gTm8gb3RoZXIgcGFyYW1ldGVycyBhcmUgbmVlZGVkIHNpbmNlIHdl IGRvCisJCSAqIG5vdCByZWx5IG9uIHRoZSBPQSBidWZmZXIgYW55bW9yZSB0byBub3JtYWxpemUg dGhlIGNvdW50ZXIKKwkJICogdmFsdWVzLgorCQkgKi8KKwkJRFJNX0k5MTVfUEVSRl9QUk9QX09B X01FVFJJQ1NfU0VULCB0ZXN0X21ldHJpY19zZXRfaWQsCisJCURSTV9JOTE1X1BFUkZfUFJPUF9P QV9GT1JNQVQsIHRlc3Rfb2FfZm9ybWF0LAorCX07CisJc3RydWN0IGRybV9pOTE1X3BlcmZfb3Bl bl9wYXJhbSBwYXJhbSA9IHsKKwkJLmZsYWdzID0gSTkxNV9QRVJGX0ZMQUdfRkRfQ0xPRVhFQywK KwkJLm51bV9wcm9wZXJ0aWVzID0gQVJSQVlfU0laRShwcm9wZXJ0aWVzKSAvIDIsCisJCS5wcm9w ZXJ0aWVzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihwcm9wZXJ0aWVzKSwKKwl9OworCWRybV9pbnRl bF9idWZtZ3IgKmJ1Zm1ncjsKKwlkcm1faW50ZWxfY29udGV4dCAqY29udGV4dDAsICpjb250ZXh0 MTsKKwlzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoOworCXN0cnVjdCBpZ3RfYnVmIHNy Y1szXSwgZHN0WzNdOworCWRybV9pbnRlbF9ibyAqYm87CisJdWludDMyX3QgKnJlcG9ydDBfMzIs ICpyZXBvcnQxXzMyLCAqcmVwb3J0Ml8zMiwgKnJlcG9ydDNfMzI7CisJdWludDY0X3QgdGltZXN0 YW1wMF82NCwgdGltZXN0YW1wMV82NDsKKwl1aW50MzJfdCBkZWx0YV90czY0LCBkZWx0YV9vYTMy OworCXVpbnQ2NF90IGRlbHRhX3RzNjRfbnMsIGRlbHRhX29hMzJfbnM7CisJdWludDMyX3QgZGVs dGFfZGVsdGE7CisJaW50IHdpZHRoID0gODAwOworCWludCBoZWlnaHQgPSA2MDA7CisjZGVmaW5l IElOVkFMSURfQ1RYX0lEIDB4ZmZmZmZmZmYKKwl1aW50MzJfdCBjdHgwX2lkID0gSU5WQUxJRF9D VFhfSUQ7CisJdWludDMyX3QgY3R4MV9pZCA9IElOVkFMSURfQ1RYX0lEOworCWludCByZXQ7CisJ c3RydWN0IGFjY3VtdWxhdG9yIGFjY3VtdWxhdG9yID0geworCQkuZm9ybWF0ID0gdGVzdF9vYV9m b3JtYXQKKwl9OworCisJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChkcm1fZmQs IDQwOTYpOworCWRybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOworCisJ Zm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNyYyk7IGkrKykgeworCQlzY3JhdGNoX2J1 Zl9pbml0KGJ1Zm1nciwgJnNyY1tpXSwgd2lkdGgsIGhlaWdodCwgMHhmZjAwMDBmZik7CisJCXNj cmF0Y2hfYnVmX2luaXQoYnVmbWdyLCAmZHN0W2ldLCB3aWR0aCwgaGVpZ2h0LCAweDAwZmYwMGZm KTsKKwl9CisKKwliYXRjaCA9IGludGVsX2JhdGNoYnVmZmVyX2FsbG9jKGJ1Zm1nciwgZGV2aWQp OworCisJY29udGV4dDAgPSBkcm1faW50ZWxfZ2VtX2NvbnRleHRfY3JlYXRlKGJ1Zm1ncik7CisJ aWd0X2Fzc2VydChjb250ZXh0MCk7CisKKwljb250ZXh0MSA9IGRybV9pbnRlbF9nZW1fY29udGV4 dF9jcmVhdGUoYnVmbWdyKTsKKwlpZ3RfYXNzZXJ0KGNvbnRleHQxKTsKKworCWlndF9kZWJ1Zygi c3VibWl0dGluZyB3YXJtIHVwIHJlbmRlcl9jb3B5XG4iKTsKKworCS8qIFN1Ym1pdCBzb21lIGVh cmx5LCB1bm1lYXN1cmVkLCB3b3JrIHRvIHRoZSBjb250ZXh0IHdlIHdhbnQKKwkgKiB0byBtZWFz dXJlIHRvIHRyeSBhbmQgY2F0Y2ggaXNzdWVzIHdpdGggaTkxNS1wZXJmCisJICogaW5pdGlhbGl6 aW5nIHRoZSBIVyBjb250ZXh0IElEIGZvciBmaWx0ZXJpbmcuCisJICoKKwkgKiBXZSBkbyB0aGlz IGJlY2F1c2UgaTkxNS1wZXJmIHNpbmdsZSBjb250ZXh0IGZpbHRlcmluZyBoYWQKKwkgKiBwcmV2 aW91c2x5IG9ubHkgcmVsaWVkIG9uIGEgaG9vayBpbnRvIGNvbnRleHQgcGlubmluZyB0bworCSAq IGluaXRpYWxpemUgdGhlIEhXIGNvbnRleHQgSUQsIGluc3RlYWQgb2YgYWxzbyB0cnlpbmcgdG8K KwkgKiBkZXRlcm1pbmUgdGhlIEhXIElEIHdoaWxlIG9wZW5pbmcgdGhlIHN0cmVhbSwgaW4gY2Fz ZSBpdAorCSAqIGhhcyBhbHJlYWR5IGJlZW4gcGlubmVkLgorCSAqCisJICogVGhpcyB3YXNuJ3Qg bm90aWNlZCBieSB0aGUgcHJldmlvdXMgdW5pdCB0ZXN0IGJlY2F1c2Ugd2UKKwkgKiB3ZXJlIG9w ZW5pbmcgdGhlIHN0cmVhbSB3aGlsZSB0aGUgY29udGV4dCBoYWRuJ3QgYmVlbgorCSAqIHRvdWNo ZWQgb3IgcGlubmVkIHlldCBhbmQgc28gaXQgd29ya2VkIG91dCBjb3JyZWN0bHkgdG8gd2FpdAor CSAqIGZvciB0aGUgcGlubmluZyBob29rLgorCSAqCisJICogTm93IGEgYnVnZ3kgdmVyc2lvbiBv ZiBpOTE1LXBlcmYgd2lsbCBmYWlsIHRvIG1lYXN1cmUKKwkgKiBhbnl0aGluZyBmb3IgY29udGV4 dDAgb25jZSB0aGlzIGluaXRpYWwgcmVuZGVyX2NvcHkoKSBlbmRzCisJICogdXAgcGlubmluZyB0 aGUgY29udGV4dCBzaW5jZSB0aGVyZSB3b24ndCBldmVyIGJlIGEgcGlubmluZworCSAqIGhvb2sg Y2FsbGJhY2suCisJICovCisJcmVuZGVyX2NvcHkoYmF0Y2gsIGNvbnRleHQwLAorCQkgICAgJnNy Y1swXSwgMCwgMCwgd2lkdGgsIGhlaWdodCwKKwkJICAgICZkc3RbMF0sIDAsIDApOworCisJLyog SW5pdGlhbGl6ZSB0aGUgY29udGV4dCBwYXJhbWV0ZXIgdG8gdGhlIHBlcmYgb3BlbiBpb2N0bCBo ZXJlICovCisJcmV0ID0gZHJtX2ludGVsX2dlbV9jb250ZXh0X2dldF9pZChjb250ZXh0MCwgJmN0 eDBfaWQpOworCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKKwlpZ3RfYXNzZXJ0X25lcShjdHgwX2lk LCAweGZmZmZmZmZmKTsKKwlwcm9wZXJ0aWVzWzFdID0gY3R4MF9pZDsKKworCWlndF9kZWJ1Zygi b3BlbmluZyBpOTE1LXBlcmYgc3RyZWFtXG4iKTsKKwlzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihk cm1fZmQsICZwYXJhbSwgZmFsc2UpOworCisJYm8gPSBkcm1faW50ZWxfYm9fYWxsb2MoYnVmbWdy LCAibWlfcnBjIGRlc3QgYm8iLCA0MDk2LCA2NCk7CisKKwkvKiBTZXQgd3JpdGUgZG9tYWluIHRv IGNwdSBicmllZmx5IHRvIGZpbGwgdGhlIGJ1ZmZlciB3aXRoIDgwcyAqLworCXJldCA9IGRybV9p bnRlbF9ib19tYXAoYm8sIHRydWUpOworCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKKwltZW1zZXQo Ym8tPnZpcnR1YWwsIDB4ODAsIDIwNDgpOworCW1lbXNldChiby0+dmlydHVhbCArIDIwNDgsIDAs IDIwNDgpOworCWRybV9pbnRlbF9ib191bm1hcChibyk7CisKKwkvKiBTdWJtaXQgYW4gbWktcnBj IHRvIGNvbnRleHQwIGJlZm9yZSBtZWFzdXJhYmxlIHdvcmsgKi8KKyNkZWZpbmUgQk9fVElNRVNU QU1QX09GRlNFVDAgMTAyNAorI2RlZmluZSBCT19SRVBPUlRfT0ZGU0VUMCAwCisjZGVmaW5lIEJP X1JFUE9SVF9JRDAgMHhkZWFkYmVlZgorCWVtaXRfc3RhbGxfdGltZXN0YW1wX2FuZF9ycGMoYmF0 Y2gsCisJCQkJICAgICBibywKKwkJCQkgICAgIEJPX1RJTUVTVEFNUF9PRkZTRVQwLAorCQkJCSAg ICAgQk9fUkVQT1JUX09GRlNFVDAsCisJCQkJICAgICBCT19SRVBPUlRfSUQwKTsKKwlpbnRlbF9i YXRjaGJ1ZmZlcl9mbHVzaF93aXRoX2NvbnRleHQoYmF0Y2gsIGNvbnRleHQwKTsKKworCS8qIFRo aXMgaXMgdGhlIHdvcmsvY29udGV4dCB0aGF0IGlzIG1lYXN1cmVkIGZvciBjb3VudGVyIGluY3Jl bWVudHMgKi8KKwlyZW5kZXJfY29weShiYXRjaCwgY29udGV4dDAsCisJCSAgICAmc3JjWzBdLCAw LCAwLCB3aWR0aCwgaGVpZ2h0LAorCQkgICAgJmRzdFswXSwgMCwgMCk7CisJaW50ZWxfYmF0Y2hi dWZmZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250ZXh0MCk7CisKKwkvKiBTdWJtaXQg YW4gbWktcnBjIHRvIGNvbnRleHQxIGJlZm9yZSB3b3JrCisJICoKKwkgKiBPbiBnZW4xMiwgdGhp cyBtZWFzdXJlbWVudCBzaG91bGQganVzdCB5aWVsZCBjb3VudGVycyB0aGF0IGFyZQorCSAqIGFs bCB6ZXJvZXMsIHNpbmNlIHRoZSBjb3VudGVycyB3aWxsIG9ubHkgaW5jcmVtZW50IGZvciB0aGUK KwkgKiBjb250ZXh0IHBhc3NlZCB0byBwZXJmIG9wZW4gaW9jdGwKKwkgKi8KKyNkZWZpbmUgQk9f VElNRVNUQU1QX09GRlNFVDIgMTA0MAorI2RlZmluZSBCT19SRVBPUlRfT0ZGU0VUMiA1MTIKKyNk ZWZpbmUgQk9fUkVQT1JUX0lEMiAweDAwYzBmZmVlCisJZW1pdF9zdGFsbF90aW1lc3RhbXBfYW5k X3JwYyhiYXRjaCwKKwkJCQkgICAgIGJvLAorCQkJCSAgICAgQk9fVElNRVNUQU1QX09GRlNFVDIs CisJCQkJICAgICBCT19SRVBPUlRfT0ZGU0VUMiwKKwkJCQkgICAgIEJPX1JFUE9SVF9JRDIpOwor CWludGVsX2JhdGNoYnVmZmVyX2ZsdXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29udGV4dDEpOwor CisJLyogU3VibWl0IHR3byBjb3BpZXMgb24gdGhlIG90aGVyIGNvbnRleHQgdG8gYXZvaWQgYSBm YWxzZQorCSAqIHBvc2l0aXZlIGluIGNhc2UgdGhlIGRyaXZlciBzb21laG93IGVuZGVkIHVwIGZp bHRlcmluZyBmb3IKKwkgKiBjb250ZXh0MQorCSAqLworCXJlbmRlcl9jb3B5KGJhdGNoLCBjb250 ZXh0MSwKKwkJICAgICZzcmNbMV0sIDAsIDAsIHdpZHRoLCBoZWlnaHQsCisJCSAgICAmZHN0WzFd LCAwLCAwKTsKKwlyZXQgPSBkcm1faW50ZWxfZ2VtX2NvbnRleHRfZ2V0X2lkKGNvbnRleHQxLCAm Y3R4MV9pZCk7CisJaWd0X2Fzc2VydF9lcShyZXQsIDApOworCWlndF9hc3NlcnRfbmVxKGN0eDFf aWQsIDB4ZmZmZmZmZmYpOworCisJcmVuZGVyX2NvcHkoYmF0Y2gsIGNvbnRleHQxLAorCQkgICAg JnNyY1syXSwgMCwgMCwgd2lkdGgsIGhlaWdodCwKKwkJICAgICZkc3RbMl0sIDAsIDApOworCWlu dGVsX2JhdGNoYnVmZmVyX2ZsdXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29udGV4dDEpOworCisJ LyogU3VibWl0IGFuIG1pLXJwYyB0byBjb250ZXh0MSBhZnRlciBhbGwgd29yayAqLworI2RlZmlu ZSBCT19USU1FU1RBTVBfT0ZGU0VUMyAxMDQ4CisjZGVmaW5lIEJPX1JFUE9SVF9PRkZTRVQzIDc2 OAorI2RlZmluZSBCT19SRVBPUlRfSUQzIDB4MDFjMGZmZWUKKwllbWl0X3N0YWxsX3RpbWVzdGFt cF9hbmRfcnBjKGJhdGNoLAorCQkJCSAgICAgYm8sCisJCQkJICAgICBCT19USU1FU1RBTVBfT0ZG U0VUMywKKwkJCQkgICAgIEJPX1JFUE9SVF9PRkZTRVQzLAorCQkJCSAgICAgQk9fUkVQT1JUX0lE Myk7CisJaW50ZWxfYmF0Y2hidWZmZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250ZXh0 MSk7CisKKwkvKiBTdWJtaXQgYW4gbWktcnBjIHRvIGNvbnRleHQwIGFmdGVyIGFsbCBtZWFzdXJh YmxlIHdvcmsgKi8KKyNkZWZpbmUgQk9fVElNRVNUQU1QX09GRlNFVDEgMTAzMgorI2RlZmluZSBC T19SRVBPUlRfT0ZGU0VUMSAyNTYKKyNkZWZpbmUgQk9fUkVQT1JUX0lEMSAweGJlZWZiZWVmCisJ ZW1pdF9zdGFsbF90aW1lc3RhbXBfYW5kX3JwYyhiYXRjaCwKKwkJCQkgICAgIGJvLAorCQkJCSAg ICAgQk9fVElNRVNUQU1QX09GRlNFVDEsCisJCQkJICAgICBCT19SRVBPUlRfT0ZGU0VUMSwKKwkJ CQkgICAgIEJPX1JFUE9SVF9JRDEpOworCWludGVsX2JhdGNoYnVmZmVyX2ZsdXNoX3dpdGhfY29u dGV4dChiYXRjaCwgY29udGV4dDApOworCisJLyogU2V0IHdyaXRlIGRvbWFpbiB0byBub25lICov CisJcmV0ID0gZHJtX2ludGVsX2JvX21hcChibywgZmFsc2UpOworCWlndF9hc3NlcnRfZXEocmV0 LCAwKTsKKworCS8qIFNhbml0eSBjaGVjayByZXBvcnRzCisJICogcmVwb3J0WF8zMlswXTogcmVw b3J0IGlkIHBhc3NlZCB3aXRoIG1pLXJwYworCSAqIHJlcG9ydFhfMzJbMV06IHRpbWVzdGFtcAor CSAqIHJlcG9ydFhfMzJbMl06IGNvbnRleHQgaWQKKwkgKgorCSAqIHJlcG9ydDBfMzI6IHN0YXJ0 IG9mIG1lYXN1cmFibGUgd29yaworCSAqIHJlcG9ydDFfMzI6IGVuZCBvZiBtZWFzdXJhYmxlIHdv cmsKKwkgKiByZXBvcnQyXzMyOiBzdGFydCBvZiBvdGhlciB3b3JrCisJICogcmVwb3J0M18zMjog ZW5kIG9mIG90aGVyIHdvcmsKKwkgKi8KKwlyZXBvcnQwXzMyID0gYm8tPnZpcnR1YWw7CisJaWd0 X2Fzc2VydF9lcShyZXBvcnQwXzMyWzBdLCAweGRlYWRiZWVmKTsKKwlpZ3RfYXNzZXJ0X25lcShy ZXBvcnQwXzMyWzFdLCAwKTsKKwljdHgwX2lkID0gcmVwb3J0MF8zMlsyXTsKKwlpZ3RfZGVidWco Ik1JX1JQQyhzdGFydCkgQ1RYIElEOiAldVxuIiwgY3R4MF9pZCk7CisJZHVtcF9yZXBvcnQocmVw b3J0MF8zMiwgNjQsICJyZXBvcnQwXzMyIik7CisKKwlyZXBvcnQxXzMyID0gcmVwb3J0MF8zMiAr IDY0OworCWlndF9hc3NlcnRfZXEocmVwb3J0MV8zMlswXSwgMHhiZWVmYmVlZik7CisJaWd0X2Fz c2VydF9uZXEocmVwb3J0MV8zMlsxXSwgMCk7CisJY3R4MV9pZCA9IHJlcG9ydDFfMzJbMl07CisJ ZHVtcF9yZXBvcnQocmVwb3J0MV8zMiwgNjQsICJyZXBvcnQxXzMyIik7CisKKwkvKiBWZXJpZnkg dGhhdCBjb3VudGVycyBpbiBjb250ZXh0MSBhcmUgYWxsIHplcm9lcyAqLworCXJlcG9ydDJfMzIg PSByZXBvcnQwXzMyICsgMTI4OworCWlndF9hc3NlcnRfZXEocmVwb3J0Ml8zMlswXSwgMHgwMGMw ZmZlZSk7CisJaWd0X2Fzc2VydF9uZXEocmVwb3J0Ml8zMlsxXSwgMCk7CisJZHVtcF9yZXBvcnQo cmVwb3J0Ml8zMiwgNjQsICJyZXBvcnQyXzMyIik7CisJaWd0X2Fzc2VydF9lcSgwLCBtZW1jbXAo JnJlcG9ydDJfMzJbNF0sCisJCQkJYm8tPnZpcnR1YWwgKyAyMDQ4LAorCQkJCTI0MCkpOworCisJ cmVwb3J0M18zMiA9IHJlcG9ydDBfMzIgKyAxOTI7CisJaWd0X2Fzc2VydF9lcShyZXBvcnQzXzMy WzBdLCAweDAxYzBmZmVlKTsKKwlpZ3RfYXNzZXJ0X25lcShyZXBvcnQzXzMyWzFdLCAwKTsKKwlk dW1wX3JlcG9ydChyZXBvcnQzXzMyLCA2NCwgInJlcG9ydDNfMzIiKTsKKwlpZ3RfYXNzZXJ0X2Vx KDAsIG1lbWNtcCgmcmVwb3J0M18zMls0XSwKKwkJCQliby0+dmlydHVhbCArIDIwNDgsCisJCQkJ MjQwKSk7CisKKwkvKiBBY2N1bXVsYXRlIGRlbHRhcyBmb3IgY291bnRlcnMgLSBBMCwgQTIxIGFu ZCBBMjYgKi8KKwltZW1zZXQoYWNjdW11bGF0b3IuZGVsdGFzLCAwLCBzaXplb2YoYWNjdW11bGF0 b3IuZGVsdGFzKSk7CisJYWNjdW11bGF0ZV9yZXBvcnRzKCZhY2N1bXVsYXRvciwgcmVwb3J0MF8z MiwgcmVwb3J0MV8zMik7CisJaWd0X2RlYnVnKCJ0b3RhbDogQTAgPSAlIlBSSXU2NCIsIEEyMSA9 ICUiUFJJdTY0IiwgQTI2ID0gJSJQUkl1NjQiXG4iLAorCQkJYWNjdW11bGF0b3IuZGVsdGFzWzIg KyAwXSwKKwkJCWFjY3VtdWxhdG9yLmRlbHRhc1syICsgMjFdLAorCQkJYWNjdW11bGF0b3IuZGVs dGFzWzIgKyAyNl0pOworCisJaWd0X2RlYnVnKCJvYV90aW1lc3RhbXAzMiAwID0gJXVcbiIsIHJl cG9ydDBfMzJbMV0pOworCWlndF9kZWJ1Zygib2FfdGltZXN0YW1wMzIgMSA9ICV1XG4iLCByZXBv cnQxXzMyWzFdKTsKKwlpZ3RfZGVidWcoImN0eF9pZCAwID0gJXVcbiIsIHJlcG9ydDBfMzJbMl0p OworCWlndF9kZWJ1ZygiY3R4X2lkIDEgPSAldVxuIiwgcmVwb3J0MV8zMlsyXSk7CisKKwkvKiBU aGUgZGVsdGEgYXMgY2FsY3VsYXRlZCB2aWEgdGhlIFBJUEVfQ09OVFJPTCB0aW1lc3RhbXAgb3IK KwkgKiB0aGUgT0EgcmVwb3J0IHRpbWVzdGFtcHMgc2hvdWxkIGJlIGFsbW9zdCBpZGVudGljYWwg YnV0CisJICogYWxsb3cgYSA1MDAgbmFub3NlY29uZHMgbWFyZ2luLgorCSAqLworCXRpbWVzdGFt cDBfNjQgPSAqKHVpbnQ2NF90ICopKCgodWludDhfdCAqKWJvLT52aXJ0dWFsKSArIEJPX1RJTUVT VEFNUF9PRkZTRVQwKTsKKwl0aW1lc3RhbXAxXzY0ID0gKih1aW50NjRfdCAqKSgoKHVpbnQ4X3Qg Kiliby0+dmlydHVhbCkgKyBCT19USU1FU1RBTVBfT0ZGU0VUMSk7CisKKwlpZ3RfZGVidWcoInRz X3RpbWVzdGFtcDY0IDAgPSAlIlBSSXU2NCJcbiIsIHRpbWVzdGFtcDBfNjQpOworCWlndF9kZWJ1 ZygidHNfdGltZXN0YW1wNjQgMSA9ICUiUFJJdTY0IlxuIiwgdGltZXN0YW1wMV82NCk7CisKKwlk ZWx0YV90czY0ID0gdGltZXN0YW1wMV82NCAtIHRpbWVzdGFtcDBfNjQ7CisJZGVsdGFfb2EzMiA9 IHJlcG9ydDFfMzJbMV0gLSByZXBvcnQwXzMyWzFdOworCisJLyogU2FuaXR5IGNoZWNrIHRoYXQg d2UgY2FuIHBhc3MgdGhlIGRlbHRhIHRvIHRpbWViYXNlX3NjYWxlICovCisJaWd0X2Fzc2VydChk ZWx0YV90czY0IDwgVUlOVDMyX01BWCk7CisJZGVsdGFfb2EzMl9ucyA9IHRpbWViYXNlX3NjYWxl KGRlbHRhX29hMzIpOworCWRlbHRhX3RzNjRfbnMgPSB0aW1lYmFzZV9zY2FsZShkZWx0YV90czY0 KTsKKworCWlndF9kZWJ1Zygib2EzMiBkZWx0YSA9ICV1LCA9ICV1bnNcbiIsCisJCQlkZWx0YV9v YTMyLCAodW5zaWduZWQpZGVsdGFfb2EzMl9ucyk7CisJaWd0X2RlYnVnKCJ0czY0IGRlbHRhID0g JXUsID0gJXVuc1xuIiwKKwkJCWRlbHRhX3RzNjQsICh1bnNpZ25lZClkZWx0YV90czY0X25zKTsK KworCWRlbHRhX2RlbHRhID0gZGVsdGFfdHM2NF9ucyA+IGRlbHRhX29hMzJfbnMgPworCQkgICAg ICAoZGVsdGFfdHM2NF9ucyAtIGRlbHRhX29hMzJfbnMpIDoKKwkJICAgICAgKGRlbHRhX29hMzJf bnMgLSBkZWx0YV90czY0X25zKTsKKwlpZiAoZGVsdGFfZGVsdGEgPiA1MDApIHsKKwkJaWd0X2Rl YnVnKCJkZWx0YV9kZWx0YSBleGNlZWRzIG1hcmdpbiwgc2tpcHBpbmcuLlxuIik7CisJCWV4aXQo RUFHQUlOKTsKKwl9CisKKwlpZ3RfZGVidWcoIm4gc2FtcGxlcyB3cml0dGVuID0gJSJQUkl1NjQi LyUiUFJJdTY0IiAoJWl4JWkpXG4iLAorCQkgIGFjY3VtdWxhdG9yLmRlbHRhc1syICsgMjFdLAor CQkgIGFjY3VtdWxhdG9yLmRlbHRhc1syICsgMjZdLAorCQkgIHdpZHRoLCBoZWlnaHQpOworCWFj Y3VtdWxhdG9yX3ByaW50KCZhY2N1bXVsYXRvciwgImZpbHRlcmVkIik7CisKKwkvKiBWZXJpZnkg dGhhdCB0aGUgd29yayBhY3R1YWxseSBoYXBwZW5lZCBieSBjb21wYXJpbmcgdGhlIHNyYworCSAq IGFuZCBkc3QgYnVmZmVycworCSAqLworCXJldCA9IGRybV9pbnRlbF9ib19tYXAoc3JjWzBdLmJv LCBmYWxzZSk7CisJaWd0X2Fzc2VydF9lcShyZXQsIDApOworCXJldCA9IGRybV9pbnRlbF9ib19t YXAoZHN0WzBdLmJvLCBmYWxzZSk7CisJaWd0X2Fzc2VydF9lcShyZXQsIDApOworCisJcmV0ID0g bWVtY21wKHNyY1swXS5iby0+dmlydHVhbCwgZHN0WzBdLmJvLT52aXJ0dWFsLCA0ICogd2lkdGgg KiBoZWlnaHQpOworCWlmIChyZXQgIT0gMCkgeworCQlhY2N1bXVsYXRvcl9wcmludCgmYWNjdW11 bGF0b3IsICJ0b3RhbCIpOworCQlleGl0KEVBR0FJTik7CisJfQorCisJZHJtX2ludGVsX2JvX3Vu bWFwKHNyY1swXS5ibyk7CisJZHJtX2ludGVsX2JvX3VubWFwKGRzdFswXS5ibyk7CisKKwkvKiBD aGVjayB0aGF0IHRoaXMgdGVzdCBwYXNzZWQuIFRoZSB0ZXN0IG1lYXN1cmVzIHRoZSBudW1iZXIg b2YgMngyCisJICogc2FtcGxlcyB3cml0dGVuIHRvIHRoZSByZW5kZXIgdGFyZ2V0IHVzaW5nIHRo ZSBjb3VudGVyIEEyNi4gRm9yCisJICogT0FSLCB0aGlzIGNvdW50ZXIgd2lsbCBvbmx5IGhhdmUg aW5jcmVtZW50cyByZWxldmFudCB0byB0aGlzIHNwZWNpZmljCisJICogY29udGV4dC4gVGhlIHZh bHVlIGVxdWFscyB0aGUgd2lkdGggKiBoZWlnaHQgb2YgdGhlIHJlbmRlcmVkIHdvcmsuCisJICov CisJaWd0X2Fzc2VydF9lcShhY2N1bXVsYXRvci5kZWx0YXNbMiArIDI2XSwgd2lkdGggKiBoZWln aHQpOworCisJLyogQ2xlYW4gdXAgKi8KKwlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUo c3JjKTsgaSsrKSB7CisJCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShzcmNbaV0uYm8pOworCQlk cm1faW50ZWxfYm9fdW5yZWZlcmVuY2UoZHN0W2ldLmJvKTsKKwl9CisKKwlkcm1faW50ZWxfYm9f dW5tYXAoYm8pOworCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShibyk7CisJaW50ZWxfYmF0Y2hi dWZmZXJfZnJlZShiYXRjaCk7CisJZHJtX2ludGVsX2dlbV9jb250ZXh0X2Rlc3Ryb3koY29udGV4 dDApOworCWRybV9pbnRlbF9nZW1fY29udGV4dF9kZXN0cm95KGNvbnRleHQxKTsKKwlkcm1faW50 ZWxfYnVmbWdyX2Rlc3Ryb3koYnVmbWdyKTsKKwlfX3BlcmZfY2xvc2Uoc3RyZWFtX2ZkKTsKK30K Kworc3RhdGljIHZvaWQKK2dlbjEyX3Rlc3Rfc2luZ2xlX2N0eF9yZW5kZXJfdGFyZ2V0X3dyaXRl c19hX2NvdW50ZXIodm9pZCkKK3sKKwlpbnQgY2hpbGRfcmV0OworCXN0cnVjdCBpZ3RfaGVscGVy X3Byb2Nlc3MgY2hpbGQgPSB7fTsKKworCS8qIEVuc3VyZSBwZXJmX3N0cmVhbV9wYXJhbm9pZCBp cyBzZXQgdG8gMSBieSBkZWZhdWx0ICovCisJd3JpdGVfdTY0X2ZpbGUoIi9wcm9jL3N5cy9kZXYv aTkxNS9wZXJmX3N0cmVhbV9wYXJhbm9pZCIsIDEpOworCisJZG8geworCQlpZ3RfZm9ya19oZWxw ZXIoJmNoaWxkKSB7CisJCQlpZ3RfZHJvcF9yb290KCk7CisJCQlnZW4xMl9zaW5nbGVfY3R4X2hl bHBlcigpOworCQl9CisJCWNoaWxkX3JldCA9IGlndF93YWl0X2hlbHBlcigmY2hpbGQpOworCQlp Z3RfYXNzZXJ0KFdFWElUU1RBVFVTKGNoaWxkX3JldCkgPT0gRUFHQUlOIHx8CisJCQkgICBXRVhJ VFNUQVRVUyhjaGlsZF9yZXQpID09IDApOworCX0gd2hpbGUgKFdFWElUU1RBVFVTKGNoaWxkX3Jl dCkgPT0gRUFHQUlOKTsKK30KKwogc3RhdGljIHVuc2lnbmVkIGxvbmcgcmM2X3Jlc2lkZW5jeV9t cyh2b2lkKQogewogCXJldHVybiBzeXNmc19yZWFkKCJwb3dlci9yYzZfcmVzaWRlbmN5X21zIik7 CkBAIC00MjI1LDYgKzQ1NTMsMTIgQEAgaWd0X21haW4KIAkJZ2VuOF90ZXN0X3NpbmdsZV9jdHhf cmVuZGVyX3RhcmdldF93cml0ZXNfYV9jb3VudGVyKCk7CiAJfQogCisJaWd0X2Rlc2NyaWJlKCJN ZWFzdXJlIHBlcmZvcm1hbmNlIGZvciBhIHNwZWNpZmljIGNvbnRleHQgdXNpbmcgT0FSIGluIEdl biAxMiIpOworCWlndF9zdWJ0ZXN0KCJnZW4xMi11bnByaXZpbGVnZWQtc2luZ2xlLWN0eC1jb3Vu dGVycyIpIHsKKwkJaWd0X3JlcXVpcmUoaW50ZWxfZ2VuKGRldmlkKSA+PSAxMik7CisJCWdlbjEy X3Rlc3Rfc2luZ2xlX2N0eF9yZW5kZXJfdGFyZ2V0X3dyaXRlc19hX2NvdW50ZXIoKTsKKwl9CisK IAlpZ3Rfc3VidGVzdCgicmM2LWRpc2FibGUiKQogCQl0ZXN0X3JjNl9kaXNhYmxlKCk7CiAKLS0g CjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K aWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2