From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keith Packard Subject: [PATCH] vulkan: Add VK_EXT_calibrated_timestamps extension (radv and anv) [v5] Date: Wed, 17 Oct 2018 09:49:12 -0700 Message-ID: <20181017164912.1704-1-keithp@keithp.com> References: <20181016053150.11453-1-keithp@keithp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181016053150.11453-1-keithp@keithp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: mesa-dev-bounces@lists.freedesktop.org Sender: "mesa-dev" To: mesa-dev@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T2ZmZXJzIHRocmVlIGNsb2NrcywgZGV2aWNlLCBjbG9jayBtb25vdG9uaWMgYW5kIGNsb2NrIG1v bm90b25pYwpyYXcuIENvdWxkIHVzZSBzb21lIGtlcm5lbCBzdXBwb3J0IHRvIHJlZHVjZSB0aGUg ZGV2aWF0aW9uIGJldHdlZW4KY2xvY2sgdmFsdWVzLgoKdjI6CglFbnN1cmUgZGV2aWF0aW9uIGlz IGF0IGxlYXN0IGFzIGJpZyBhcyB0aGUgR1BVIHRpbWUgaW50ZXJ2YWwuCgp2MzoKCVNldCBkZXZp Y2UtPmxvc3Qgd2hlbiByZXR1cm5pbmcgREVWSUNFX0xPU1QuCglVc2UgTUFYMiBhbmQgRElWX1JP VU5EX1VQIGluc3RlYWQgb2Ygb3BlbiBjb2RpbmcgdGhlc2UuCglEZWxldGUgc3B1cmlvdXMgVElN RVNUQU1QIGluIHJhZHYgdmVyc2lvbi4KCglTdWdnZXN0ZWQtYnk6IEphc29uIEVrc3RyYW5kIDxq YXNvbkBqbGVrc3RyYW5kLm5ldD4KCVN1Z2dlc3RlZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxp b25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgoKdjQ6CglBZGQgYW52X2dlbV9yZWdfcmVhZCB0 byBhbnZfZ2VtX3N0dWJzLmMKCglTdWdnZXN0ZWQtYnk6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBq bGVrc3RyYW5kLm5ldD4KCnY1OgoJQWRqdXN0IG1heERldmlhdGlvbiBjb21wdXRhdGlvbiB0byBt YXgoc2FtcGxlZF9jbG9ja19wZXJpb2QpICsKCXNhbXBsZV9pbnRlcnZhbC4KCglTdWdnZXN0ZWQt Ynk6IEJhcyBOaWV1d2VuaHVpemVuIDxiYXNAYmFzbmlldXdlbmh1aXplbi5ubD4KCVN1Z2dlc3Rl ZC1ieTogSmFzb24gRWtzdHJhbmQgPGphc29uQGpsZWtzdHJhbmQubmV0PgoKU2lnbmVkLW9mZi1i eTogS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+Ci0tLQogc3JjL2FtZC92dWxrYW4v cmFkdl9kZXZpY2UuYyAgICAgICB8IDExOSArKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNy Yy9hbWQvdnVsa2FuL3JhZHZfZXh0ZW5zaW9ucy5weSAgfCAgIDEgKwogc3JjL2ludGVsL3Z1bGth bi9hbnZfZGV2aWNlLmMgICAgICB8IDEyNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog c3JjL2ludGVsL3Z1bGthbi9hbnZfZXh0ZW5zaW9ucy5weSB8ICAgMSArCiBzcmMvaW50ZWwvdnVs a2FuL2Fudl9nZW0uYyAgICAgICAgIHwgIDEzICsrKwogc3JjL2ludGVsL3Z1bGthbi9hbnZfZ2Vt X3N0dWJzLmMgICB8ICAgNyArKwogc3JjL2ludGVsL3Z1bGthbi9hbnZfcHJpdmF0ZS5oICAgICB8 ICAgMiArCiA3IGZpbGVzIGNoYW5nZWQsIDI3MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv c3JjL2FtZC92dWxrYW4vcmFkdl9kZXZpY2UuYyBiL3NyYy9hbWQvdnVsa2FuL3JhZHZfZGV2aWNl LmMKaW5kZXggMTc0OTIyNzgwZmMuLjRhNzA1YTcyNGVmIDEwMDY0NAotLS0gYS9zcmMvYW1kL3Z1 bGthbi9yYWR2X2RldmljZS5jCisrKyBiL3NyYy9hbWQvdnVsa2FuL3JhZHZfZGV2aWNlLmMKQEAg LTQ5NTUsMyArNDk1NSwxMjIgQEAgcmFkdl9HZXREZXZpY2VHcm91cFBlZXJNZW1vcnlGZWF0dXJl cygKIAkgICAgICAgICAgICAgICAgICAgICAgIFZLX1BFRVJfTUVNT1JZX0ZFQVRVUkVfR0VORVJJ Q19TUkNfQklUIHwKIAkgICAgICAgICAgICAgICAgICAgICAgIFZLX1BFRVJfTUVNT1JZX0ZFQVRV UkVfR0VORVJJQ19EU1RfQklUOwogfQorCitzdGF0aWMgY29uc3QgVmtUaW1lRG9tYWluRVhUIHJh ZHZfdGltZV9kb21haW5zW10gPSB7CisJVktfVElNRV9ET01BSU5fREVWSUNFX0VYVCwKKwlWS19U SU1FX0RPTUFJTl9DTE9DS19NT05PVE9OSUNfRVhULAorCVZLX1RJTUVfRE9NQUlOX0NMT0NLX01P Tk9UT05JQ19SQVdfRVhULAorfTsKKworVmtSZXN1bHQgcmFkdl9HZXRQaHlzaWNhbERldmljZUNh bGlicmF0ZWFibGVUaW1lRG9tYWluc0VYVCgKKwlWa1BoeXNpY2FsRGV2aWNlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwaHlzaWNhbERldmljZSwKKwl1aW50MzJfdCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqcFRpbWVEb21haW5Db3VudCwKKwlWa1RpbWVEb21haW5F WFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcFRpbWVEb21haW5zKQoreworCWludCBk OworCVZLX09VVEFSUkFZX01BS0Uob3V0LCBwVGltZURvbWFpbnMsIHBUaW1lRG9tYWluQ291bnQp OworCisJZm9yIChkID0gMDsgZCA8IEFSUkFZX1NJWkUocmFkdl90aW1lX2RvbWFpbnMpOyBkKysp IHsKKwkJdmtfb3V0YXJyYXlfYXBwZW5kKCZvdXQsIGkpIHsKKwkJCSppID0gcmFkdl90aW1lX2Rv bWFpbnNbZF07CisJCX0KKwl9CisKKwlyZXR1cm4gdmtfb3V0YXJyYXlfc3RhdHVzKCZvdXQpOwor fQorCitzdGF0aWMgdWludDY0X3QKK3JhZHZfY2xvY2tfZ2V0dGltZShjbG9ja2lkX3QgY2xvY2tf aWQpCit7CisJc3RydWN0IHRpbWVzcGVjIGN1cnJlbnQ7CisJaW50IHJldDsKKworCXJldCA9IGNs b2NrX2dldHRpbWUoY2xvY2tfaWQsICZjdXJyZW50KTsKKwlpZiAocmV0IDwgMCAmJiBjbG9ja19p ZCA9PSBDTE9DS19NT05PVE9OSUNfUkFXKQorCQlyZXQgPSBjbG9ja19nZXR0aW1lKENMT0NLX01P Tk9UT05JQywgJmN1cnJlbnQpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gMDsKKworCXJldHVy biAodWludDY0X3QpIGN1cnJlbnQudHZfc2VjICogMTAwMDAwMDAwMFVMTCArIGN1cnJlbnQudHZf bnNlYzsKK30KKworVmtSZXN1bHQgcmFkdl9HZXRDYWxpYnJhdGVkVGltZXN0YW1wc0VYVCgKKwlW a0RldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGV2aWNlLAorCXVp bnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcENvdW50 LAorCWNvbnN0IFZrQ2FsaWJyYXRlZFRpbWVzdGFtcEluZm9FWFQgICAgICAgICAgICpwVGltZXN0 YW1wSW5mb3MsCisJdWludDY0X3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KnBUaW1lc3RhbXBzLAorCXVpbnQ2NF90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICpwTWF4RGV2aWF0aW9uKQoreworCVJBRFZfRlJPTV9IQU5ETEUocmFkdl9kZXZpY2UsIGRl dmljZSwgX2RldmljZSk7CisJdWludDMyX3QgY2xvY2tfY3J5c3RhbF9mcmVxID0gZGV2aWNlLT5w aHlzaWNhbF9kZXZpY2UtPnJhZF9pbmZvLmNsb2NrX2NyeXN0YWxfZnJlcTsKKwlpbnQgZDsKKwl1 aW50NjRfdCBiZWdpbiwgZW5kOworICAgICAgICB1aW50NjRfdCBtYXhfY2xvY2tfcGVyaW9kID0g MDsKKworCWJlZ2luID0gcmFkdl9jbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQ19SQVcpOwor CisJZm9yIChkID0gMDsgZCA8IHRpbWVzdGFtcENvdW50OyBkKyspIHsKKwkJc3dpdGNoIChwVGlt ZXN0YW1wSW5mb3NbZF0udGltZURvbWFpbikgeworCQljYXNlIFZLX1RJTUVfRE9NQUlOX0RFVklD RV9FWFQ6CisJCQlwVGltZXN0YW1wc1tkXSA9IGRldmljZS0+d3MtPnF1ZXJ5X3ZhbHVlKGRldmlj ZS0+d3MsCisJCQkJCQkJCSBSQURFT05fVElNRVNUQU1QKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ2NF90IGRldmljZV9wZXJpb2QgPSBESVZfUk9VTkRfVVAoMTAwMDAwMCwgY2xvY2tf Y3J5c3RhbF9mcmVxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heF9jbG9ja19wZXJpb2Qg PSBNQVgyKG1heF9jbG9ja19wZXJpb2QsIGRldmljZV9wZXJpb2QpOworCQkJYnJlYWs7CisJCWNh c2UgVktfVElNRV9ET01BSU5fQ0xPQ0tfTU9OT1RPTklDX0VYVDoKKwkJCXBUaW1lc3RhbXBzW2Rd ID0gcmFkdl9jbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQyk7CisgICAgICAgICAgICAgICAg ICAgICAgICBtYXhfY2xvY2tfcGVyaW9kID0gTUFYMihtYXhfY2xvY2tfcGVyaW9kLCAxKTsKKwkJ CWJyZWFrOworCisJCWNhc2UgVktfVElNRV9ET01BSU5fQ0xPQ0tfTU9OT1RPTklDX1JBV19FWFQ6 CisJCQlwVGltZXN0YW1wc1tkXSA9IGJlZ2luOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlw VGltZXN0YW1wc1tkXSA9IDA7CisJCQlicmVhazsKKwkJfQorCX0KKworCWVuZCA9IHJhZHZfY2xv Y2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUNfUkFXKTsKKworICAgICAgICAvKgorICAgICAgICAg KiBUaGUgbWF4aW11bSBkZXZpYXRpb24gaXMgdGhlIHN1bSBvZiB0aGUgaW50ZXJ2YWwgb3ZlciB3 aGljaCB3ZQorICAgICAgICAgKiBwZXJmb3JtIHRoZSBzYW1wbGluZyBhbmQgdGhlIG1heGltdW0g cGVyaW9kIG9mIGFueSBzYW1wbGVkCisgICAgICAgICAqIGNsb2NrLiBUaGF0J3MgYmVjYXVzZSB0 aGUgbWF4aW11bSBza2V3IGJldHdlZW4gYW55IHR3byBzYW1wbGVkCisgICAgICAgICAqIGNsb2Nr IGVkZ2VzIGlzIHdoZW4gdGhlIHNhbXBsZWQgY2xvY2sgd2l0aCB0aGUgbGFyZ2VzdCBwZXJpb2Qg aXMKKyAgICAgICAgICogc2FtcGxlZCBhdCB0aGUgZW5kIG9mIHRoYXQgcGVyaW9kIGJ1dCByaWdo dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICAgICAgICAgKiBzYW1wbGluZyBpbnRlcnZhbCBh bmQgc29tZSBvdGhlciBjbG9jayBpcyBzYW1wbGVkIHJpZ2h0IGF0IHRoZQorICAgICAgICAgKiBi ZWdpbmluZyBvZiBpdHMgc2FtcGxpbmcgcGVyaW9kIGFuZCByaWdodCBhdCB0aGUgZW5kIG9mIHRo ZQorICAgICAgICAgKiBzYW1wbGluZyBpbnRlcnZhbC4gTGV0J3MgYXNzdW1lIHRoZSBHUFUgaGFz IHRoZSBsb25nZXN0IGNsb2NrCisgICAgICAgICAqIHBlcmlvZCBhbmQgdGhhdCB0aGUgYXBwbGlj YXRpb24gaXMgc2FtcGxpbmcgR1BVIGFuZCBtb25vdG9uaWM6CisgICAgICAgICAqCisgICAgICAg ICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgIGUKKyAg ICAgICAgICoJCQkgdyB4IHkgeiAwIDEgMiAzIDQgNSA2IDcgOCA5IGEgYiBjIGQgZSBmCisgICAg ICAgICAqCVJhdyAgICAgICAgICAgICAgLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8t Xy1fLV8tCisgICAgICAgICAqCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGcKKyAgICAgICAgICoJCSAgMCAgICAgICAgIDEgICAgICAgICAyICAgICAgICAgMworICAg ICAgICAgKglHUFUgICAgICAgLS0tLS1fX19fXy0tLS0tX19fX18tLS0tLV9fX19fLS0tLS1fX19f XworICAgICAgICAgKgorICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG0KKyAgICAgICAgICoJCQkJCSAgICB4IHkgeiAwIDEgMiAzIDQgNSA2 IDcgOCA5IGEgYiBjCisgICAgICAgICAqCU1vbm90b25pYyAgICAgICAgICAgICAgICAgICAgICAg ICAgIC1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy0KKyAgICAgICAgICoKKyAgICAgICAg ICoJSW50ZXJ2YWwgICAgICAgICAgICAgICAgICAgICA8LS0tLS0tLS0tLS0tLS0tLS0+CisgICAg ICAgICAqCURldmlhdGlvbiAgICAgICAgICAgPC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgor ICAgICAgICAgKgorICAgICAgICAgKgkJcyAgPSByZWFkKHJhdykgICAgICAgMgorICAgICAgICAg KgkJZyAgPSByZWFkKEdQVSkgICAgICAgMQorICAgICAgICAgKgkJbSAgPSByZWFkKG1vbm90b25p YykgMgorICAgICAgICAgKgkJZSAgPSByZWFkKHJhdykgICAgICAgYgorICAgICAgICAgKgorICAg ICAgICAgKiBXZSByb3VuZCB0aGUgc2FtcGxlIGludGVydmFsIHVwIGJ5IG9uZSB0aWNrIHRvIGNv dmVyIHNhbXBsaW5nIGVycm9yCisgICAgICAgICAqIGluIHRoZSBpbnRlcnZhbCBjbG9jaworICAg ICAgICAgKi8KKworICAgICAgICB1aW50NjRfdCBzYW1wbGVfaW50ZXJ2YWwgPSBlbmQgLSBiZWdp biArIDE7CisKKyAgICAgICAgKnBNYXhEZXZpYXRpb24gPSBzYW1wbGVfaW50ZXJ2YWwgKyBtYXhf Y2xvY2tfcGVyaW9kOworCisJcmV0dXJuIFZLX1NVQ0NFU1M7Cit9CmRpZmYgLS1naXQgYS9zcmMv YW1kL3Z1bGthbi9yYWR2X2V4dGVuc2lvbnMucHkgYi9zcmMvYW1kL3Z1bGthbi9yYWR2X2V4dGVu c2lvbnMucHkKaW5kZXggNWRjZWRhZTFjNjMuLjRjODFkM2YwMDY4IDEwMDY0NAotLS0gYS9zcmMv YW1kL3Z1bGthbi9yYWR2X2V4dGVuc2lvbnMucHkKKysrIGIvc3JjL2FtZC92dWxrYW4vcmFkdl9l eHRlbnNpb25zLnB5CkBAIC05Miw2ICs5Miw3IEBAIEVYVEVOU0lPTlMgPSBbCiAgICAgRXh0ZW5z aW9uKCdWS19LSFJfZGlzcGxheScsICAgICAgICAgICAgICAgICAgICAgICAgICAyMywgJ1ZLX1VT RV9QTEFURk9STV9ESVNQTEFZX0tIUicpLAogICAgIEV4dGVuc2lvbignVktfRVhUX2RpcmVjdF9t b2RlX2Rpc3BsYXknLCAgICAgICAgICAgICAgIDEsICdWS19VU0VfUExBVEZPUk1fRElTUExBWV9L SFInKSwKICAgICBFeHRlbnNpb24oJ1ZLX0VYVF9hY3F1aXJlX3hsaWJfZGlzcGxheScsICAgICAg ICAgICAgICAxLCAnVktfVVNFX1BMQVRGT1JNX1hMSUJfWFJBTkRSX0VYVCcpLAorICAgIEV4dGVu c2lvbignVktfRVhUX2NhbGlicmF0ZWRfdGltZXN0YW1wcycsICAgICAgICAgICAgIDEsIFRydWUp LAogICAgIEV4dGVuc2lvbignVktfRVhUX2NvbmRpdGlvbmFsX3JlbmRlcmluZycsICAgICAgICAg ICAgIDEsIFRydWUpLAogICAgIEV4dGVuc2lvbignVktfRVhUX2NvbnNlcnZhdGl2ZV9yYXN0ZXJp emF0aW9uJywgICAgICAgIDEsICdkZXZpY2UtPnJhZF9pbmZvLmNoaXBfY2xhc3MgPj0gR0ZYOScp LAogICAgIEV4dGVuc2lvbignVktfRVhUX2Rpc3BsYXlfc3VyZmFjZV9jb3VudGVyJywgICAgICAg ICAgIDEsICdWS19VU0VfUExBVEZPUk1fRElTUExBWV9LSFInKSwKZGlmZiAtLWdpdCBhL3NyYy9p bnRlbC92dWxrYW4vYW52X2RldmljZS5jIGIvc3JjL2ludGVsL3Z1bGthbi9hbnZfZGV2aWNlLmMK aW5kZXggYTI1NTE0NTJlYjEuLjA3NmZmM2E1N2Y2IDEwMDY0NAotLS0gYS9zcmMvaW50ZWwvdnVs a2FuL2Fudl9kZXZpY2UuYworKysgYi9zcmMvaW50ZWwvdnVsa2FuL2Fudl9kZXZpY2UuYwpAQCAt MzAyMSw2ICszMDIxLDEzMyBAQCB2b2lkIGFudl9EZXN0cm95RnJhbWVidWZmZXIoCiAgICB2a19m cmVlMigmZGV2aWNlLT5hbGxvYywgcEFsbG9jYXRvciwgZmIpOwogfQogCitzdGF0aWMgY29uc3Qg VmtUaW1lRG9tYWluRVhUIGFudl90aW1lX2RvbWFpbnNbXSA9IHsKKyAgIFZLX1RJTUVfRE9NQUlO X0RFVklDRV9FWFQsCisgICBWS19USU1FX0RPTUFJTl9DTE9DS19NT05PVE9OSUNfRVhULAorICAg VktfVElNRV9ET01BSU5fQ0xPQ0tfTU9OT1RPTklDX1JBV19FWFQsCit9OworCitWa1Jlc3VsdCBh bnZfR2V0UGh5c2ljYWxEZXZpY2VDYWxpYnJhdGVhYmxlVGltZURvbWFpbnNFWFQoCisgICBWa1Bo eXNpY2FsRGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaHlzaWNhbERldmljZSwK KyAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwVGltZURv bWFpbkNvdW50LAorICAgVmtUaW1lRG9tYWluRVhUICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKnBUaW1lRG9tYWlucykKK3sKKyAgIGludCBkOworICAgVktfT1VUQVJSQVlfTUFLRShvdXQs IHBUaW1lRG9tYWlucywgcFRpbWVEb21haW5Db3VudCk7CisKKyAgIGZvciAoZCA9IDA7IGQgPCBB UlJBWV9TSVpFKGFudl90aW1lX2RvbWFpbnMpOyBkKyspIHsKKyAgICAgIHZrX291dGFycmF5X2Fw cGVuZCgmb3V0LCBpKSB7CisgICAgICAgICAqaSA9IGFudl90aW1lX2RvbWFpbnNbZF07CisgICAg ICB9CisgICB9CisKKyAgIHJldHVybiB2a19vdXRhcnJheV9zdGF0dXMoJm91dCk7Cit9CisKK3N0 YXRpYyB1aW50NjRfdAorYW52X2Nsb2NrX2dldHRpbWUoY2xvY2tpZF90IGNsb2NrX2lkKQorewor ICAgc3RydWN0IHRpbWVzcGVjIGN1cnJlbnQ7CisgICBpbnQgcmV0OworCisgICByZXQgPSBjbG9j a19nZXR0aW1lKGNsb2NrX2lkLCAmY3VycmVudCk7CisgICBpZiAocmV0IDwgMCAmJiBjbG9ja19p ZCA9PSBDTE9DS19NT05PVE9OSUNfUkFXKQorICAgICAgcmV0ID0gY2xvY2tfZ2V0dGltZShDTE9D S19NT05PVE9OSUMsICZjdXJyZW50KTsKKyAgIGlmIChyZXQgPCAwKQorICAgICAgcmV0dXJuIDA7 CisKKyAgIHJldHVybiAodWludDY0X3QpIGN1cnJlbnQudHZfc2VjICogMTAwMDAwMDAwMFVMTCAr IGN1cnJlbnQudHZfbnNlYzsKK30KKworI2RlZmluZSBUSU1FU1RBTVAgMHgyMzU4CisKK1ZrUmVz dWx0IGFudl9HZXRDYWxpYnJhdGVkVGltZXN0YW1wc0VYVCgKKyAgIFZrRGV2aWNlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kZXZpY2UsCisgICB1aW50MzJfdCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBDb3VudCwKKyAgIGNvbnN0IFZr Q2FsaWJyYXRlZFRpbWVzdGFtcEluZm9FWFQgICAgICAgICAgICpwVGltZXN0YW1wSW5mb3MsCisg ICB1aW50NjRfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcFRpbWVzdGFt cHMsCisgICB1aW50NjRfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcE1h eERldmlhdGlvbikKK3sKKyAgIEFOVl9GUk9NX0hBTkRMRShhbnZfZGV2aWNlLCBkZXZpY2UsIF9k ZXZpY2UpOworICAgdWludDY0X3QgdGltZXN0YW1wX2ZyZXF1ZW5jeSA9IGRldmljZS0+aW5mby50 aW1lc3RhbXBfZnJlcXVlbmN5OworICAgaW50ICByZXQ7CisgICBpbnQgZDsKKyAgIHVpbnQ2NF90 IGJlZ2luLCBlbmQ7CisgICB1aW50NjRfdCBtYXhfY2xvY2tfcGVyaW9kID0gMDsKKworICAgYmVn aW4gPSBhbnZfY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUNfUkFXKTsKKworICAgZm9yIChk ID0gMDsgZCA8IHRpbWVzdGFtcENvdW50OyBkKyspIHsKKyAgICAgIHN3aXRjaCAocFRpbWVzdGFt cEluZm9zW2RdLnRpbWVEb21haW4pIHsKKyAgICAgIGNhc2UgVktfVElNRV9ET01BSU5fREVWSUNF X0VYVDoKKyAgICAgICAgIHJldCA9IGFudl9nZW1fcmVnX3JlYWQoZGV2aWNlLCBUSU1FU1RBTVAg fCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcFRpbWVzdGFtcHNbZF0pOwor CisgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIGRldmljZS0+bG9zdCA9IFRS VUU7CisgICAgICAgICAgICByZXR1cm4gVktfRVJST1JfREVWSUNFX0xPU1Q7CisgICAgICAgICB9 CisgICAgICAgICB1aW50NjRfdCBkZXZpY2VfcGVyaW9kID0gRElWX1JPVU5EX1VQKDEwMDAwMDAw MDAsIHRpbWVzdGFtcF9mcmVxdWVuY3kpOworICAgICAgICAgbWF4X2Nsb2NrX3BlcmlvZCA9IE1B WDIobWF4X2Nsb2NrX3BlcmlvZCwgZGV2aWNlX3BlcmlvZCk7CisgICAgICAgICBicmVhazsKKyAg ICAgIGNhc2UgVktfVElNRV9ET01BSU5fQ0xPQ0tfTU9OT1RPTklDX0VYVDoKKyAgICAgICAgIHBU aW1lc3RhbXBzW2RdID0gYW52X2Nsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDKTsKKyAgICAg ICAgIG1heF9jbG9ja19wZXJpb2QgPSBNQVgyKG1heF9jbG9ja19wZXJpb2QsIDEpOworICAgICAg ICAgYnJlYWs7CisKKyAgICAgIGNhc2UgVktfVElNRV9ET01BSU5fQ0xPQ0tfTU9OT1RPTklDX1JB V19FWFQ6CisgICAgICAgICBwVGltZXN0YW1wc1tkXSA9IGJlZ2luOworICAgICAgICAgYnJlYWs7 CisgICAgICBkZWZhdWx0OgorICAgICAgICAgcFRpbWVzdGFtcHNbZF0gPSAwOworICAgICAgICAg YnJlYWs7CisgICAgICB9CisgICB9CisKKyAgIGVuZCA9IGFudl9jbG9ja19nZXR0aW1lKENMT0NL X01PTk9UT05JQ19SQVcpOworCisgICAgLyoKKyAgICAgKiBUaGUgbWF4aW11bSBkZXZpYXRpb24g aXMgdGhlIHN1bSBvZiB0aGUgaW50ZXJ2YWwgb3ZlciB3aGljaCB3ZQorICAgICAqIHBlcmZvcm0g dGhlIHNhbXBsaW5nIGFuZCB0aGUgbWF4aW11bSBwZXJpb2Qgb2YgYW55IHNhbXBsZWQKKyAgICAg KiBjbG9jay4gVGhhdCdzIGJlY2F1c2UgdGhlIG1heGltdW0gc2tldyBiZXR3ZWVuIGFueSB0d28g c2FtcGxlZAorICAgICAqIGNsb2NrIGVkZ2VzIGlzIHdoZW4gdGhlIHNhbXBsZWQgY2xvY2sgd2l0 aCB0aGUgbGFyZ2VzdCBwZXJpb2QgaXMKKyAgICAgKiBzYW1wbGVkIGF0IHRoZSBlbmQgb2YgdGhh dCBwZXJpb2QgYnV0IHJpZ2h0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgICAgICogc2FtcGxp bmcgaW50ZXJ2YWwgYW5kIHNvbWUgb3RoZXIgY2xvY2sgaXMgc2FtcGxlZCByaWdodCBhdCB0aGUK KyAgICAgKiBiZWdpbmluZyBvZiBpdHMgc2FtcGxpbmcgcGVyaW9kIGFuZCByaWdodCBhdCB0aGUg ZW5kIG9mIHRoZQorICAgICAqIHNhbXBsaW5nIGludGVydmFsLiBMZXQncyBhc3N1bWUgdGhlIEdQ VSBoYXMgdGhlIGxvbmdlc3QgY2xvY2sKKyAgICAgKiBwZXJpb2QgYW5kIHRoYXQgdGhlIGFwcGxp Y2F0aW9uIGlzIHNhbXBsaW5nIEdQVSBhbmQgbW9ub3RvbmljOgorICAgICAqCisgICAgICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgZQorICAgICAqCQkJ IHcgeCB5IHogMCAxIDIgMyA0IDUgNiA3IDggOSBhIGIgYyBkIGUgZgorICAgICAqCVJhdyAgICAg ICAgICAgICAgLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tCisgICAgICoK KyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnCisgICAgICoJCSAgMCAgICAg ICAgIDEgICAgICAgICAyICAgICAgICAgMworICAgICAqCUdQVSAgICAgICAtLS0tLV9fX19fLS0t LS1fX19fXy0tLS0tX19fX18tLS0tLV9fX19fCisgICAgICoKKyAgICAgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0KKyAgICAgKgkJCQkJICAgIHggeSB6 IDAgMSAyIDMgNCA1IDYgNyA4IDkgYSBiIGMKKyAgICAgKglNb25vdG9uaWMgICAgICAgICAgICAg ICAgICAgICAgICAgICAtXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tCisgICAgICoKKyAg ICAgKglJbnRlcnZhbCAgICAgICAgICAgICAgICAgICAgIDwtLS0tLS0tLS0tLS0tLS0tLT4KKyAg ICAgKglEZXZpYXRpb24gICAgICAgICAgIDwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KKyAg ICAgKgorICAgICAqCQlzICA9IHJlYWQocmF3KSAgICAgICAyCisgICAgICoJCWcgID0gcmVhZChH UFUpICAgICAgIDEKKyAgICAgKgkJbSAgPSByZWFkKG1vbm90b25pYykgMgorICAgICAqCQllICA9 IHJlYWQocmF3KSAgICAgICBiCisgICAgICoKKyAgICAgKiBXZSByb3VuZCB0aGUgc2FtcGxlIGlu dGVydmFsIHVwIGJ5IG9uZSB0aWNrIHRvIGNvdmVyIHNhbXBsaW5nIGVycm9yCisgICAgICogaW4g dGhlIGludGVydmFsIGNsb2NrCisgICAgICovCisKKyAgIHVpbnQ2NF90IHNhbXBsZV9pbnRlcnZh bCA9IGVuZCAtIGJlZ2luICsgMTsKKworICAgKnBNYXhEZXZpYXRpb24gPSBzYW1wbGVfaW50ZXJ2 YWwgKyBtYXhfY2xvY2tfcGVyaW9kOworCisgICByZXR1cm4gVktfU1VDQ0VTUzsKK30KKwogLyog dmtfaWNkLmggZG9lcyBub3QgZGVjbGFyZSB0aGlzIGZ1bmN0aW9uLCBzbyB3ZSBkZWNsYXJlIGl0 IGhlcmUgdG8KICAqIHN1cHByZXNzIFdtaXNzaW5nLXByb3RvdHlwZXMuCiAgKi8KZGlmZiAtLWdp dCBhL3NyYy9pbnRlbC92dWxrYW4vYW52X2V4dGVuc2lvbnMucHkgYi9zcmMvaW50ZWwvdnVsa2Fu L2Fudl9leHRlbnNpb25zLnB5CmluZGV4IGQ0OTE1Yzk1MDEzLi5hODUzNTk2NGRhNyAxMDA2NDQK LS0tIGEvc3JjL2ludGVsL3Z1bGthbi9hbnZfZXh0ZW5zaW9ucy5weQorKysgYi9zcmMvaW50ZWwv dnVsa2FuL2Fudl9leHRlbnNpb25zLnB5CkBAIC0xMjYsNiArMTI2LDcgQEAgRVhURU5TSU9OUyA9 IFsKICAgICBFeHRlbnNpb24oJ1ZLX0VYVF92ZXJ0ZXhfYXR0cmlidXRlX2Rpdmlzb3InLCAgICAg ICAgICAzLCBUcnVlKSwKICAgICBFeHRlbnNpb24oJ1ZLX0VYVF9wb3N0X2RlcHRoX2NvdmVyYWdl JywgICAgICAgICAgICAgICAxLCAnZGV2aWNlLT5pbmZvLmdlbiA+PSA5JyksCiAgICAgRXh0ZW5z aW9uKCdWS19FWFRfc2FtcGxlcl9maWx0ZXJfbWlubWF4JywgICAgICAgICAgICAgMSwgJ2Rldmlj ZS0+aW5mby5nZW4gPj0gOScpLAorICAgIEV4dGVuc2lvbignVktfRVhUX2NhbGlicmF0ZWRfdGlt ZXN0YW1wcycsICAgICAgICAgICAgIDEsIFRydWUpLAogXQogCiBjbGFzcyBWa1ZlcnNpb246CmRp ZmYgLS1naXQgYS9zcmMvaW50ZWwvdnVsa2FuL2Fudl9nZW0uYyBiL3NyYy9pbnRlbC92dWxrYW4v YW52X2dlbS5jCmluZGV4IGM0M2I1ZWY5ZTA2Li4xYmRmMDQwYzFhMyAxMDA2NDQKLS0tIGEvc3Jj L2ludGVsL3Z1bGthbi9hbnZfZ2VtLmMKKysrIGIvc3JjL2ludGVsL3Z1bGthbi9hbnZfZ2VtLmMK QEAgLTQyMyw2ICs0MjMsMTkgQEAgYW52X2dlbV9mZF90b19oYW5kbGUoc3RydWN0IGFudl9kZXZp Y2UgKmRldmljZSwgaW50IGZkKQogICAgcmV0dXJuIGFyZ3MuaGFuZGxlOwogfQogCitpbnQKK2Fu dl9nZW1fcmVnX3JlYWQoc3RydWN0IGFudl9kZXZpY2UgKmRldmljZSwgdWludDMyX3Qgb2Zmc2V0 LCB1aW50NjRfdCAqcmVzdWx0KQoreworICAgc3RydWN0IGRybV9pOTE1X3JlZ19yZWFkIGFyZ3Mg PSB7CisgICAgICAub2Zmc2V0ID0gb2Zmc2V0CisgICB9OworCisgICBpbnQgcmV0ID0gYW52X2lv Y3RsKGRldmljZS0+ZmQsIERSTV9JT0NUTF9JOTE1X1JFR19SRUFELCAmYXJncyk7CisKKyAgICpy ZXN1bHQgPSBhcmdzLnZhbDsKKyAgIHJldHVybiByZXQ7Cit9CisKICNpZm5kZWYgU1lOQ19JT0Nf TUFHSUMKIC8qIGR1cGxpY2F0ZWQgZnJvbSBsaW51eC9zeW5jX2ZpbGUuaCB0byBhdm9pZCBidWls ZC10aW1lIGRlcGVuZGVuY3kKICAqIG9uIG5ldyAodjQuNykga2VybmVsIGhlYWRlcnMuICBPbmNl IGRpc3RybydzIGFyZSBtb3N0bHkgdXNpbmcKZGlmZiAtLWdpdCBhL3NyYy9pbnRlbC92dWxrYW4v YW52X2dlbV9zdHVicy5jIGIvc3JjL2ludGVsL3Z1bGthbi9hbnZfZ2VtX3N0dWJzLmMKaW5kZXgg NTA5M2JkNWRiMWEuLjhjYzNhZDFmMjJlIDEwMDY0NAotLS0gYS9zcmMvaW50ZWwvdnVsa2FuL2Fu dl9nZW1fc3R1YnMuYworKysgYi9zcmMvaW50ZWwvdnVsa2FuL2Fudl9nZW1fc3R1YnMuYwpAQCAt MjUxLDMgKzI1MSwxMCBAQCBhbnZfZ2VtX3N5bmNvYmpfd2FpdChzdHJ1Y3QgYW52X2RldmljZSAq ZGV2aWNlLAogewogICAgdW5yZWFjaGFibGUoIlVudXNlZCIpOwogfQorCitpbnQKK2Fudl9nZW1f cmVnX3JlYWQoc3RydWN0IGFudl9kZXZpY2UgKmRldmljZSwKKyAgICAgICAgICAgICAgICAgdWlu dDMyX3Qgb2Zmc2V0LCB1aW50NjRfdCAqcmVzdWx0KQoreworICAgdW5yZWFjaGFibGUoIlVudXNl ZCIpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVsL3Z1bGthbi9hbnZfcHJpdmF0ZS5oIGIvc3Jj L2ludGVsL3Z1bGthbi9hbnZfcHJpdmF0ZS5oCmluZGV4IDU5OWI5MDNmMjVjLi4wODM3NmIwMGM4 ZSAxMDA2NDQKLS0tIGEvc3JjL2ludGVsL3Z1bGthbi9hbnZfcHJpdmF0ZS5oCisrKyBiL3NyYy9p bnRlbC92dWxrYW4vYW52X3ByaXZhdGUuaApAQCAtMTEwMyw2ICsxMTAzLDggQEAgaW50IGFudl9n ZW1fZ2V0X2FwZXJ0dXJlKGludCBmZCwgdWludDY0X3QgKnNpemUpOwogaW50IGFudl9nZW1fZ3B1 X2dldF9yZXNldF9zdGF0cyhzdHJ1Y3QgYW52X2RldmljZSAqZGV2aWNlLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqYWN0aXZlLCB1aW50MzJfdCAqcGVuZGluZyk7 CiBpbnQgYW52X2dlbV9oYW5kbGVfdG9fZmQoc3RydWN0IGFudl9kZXZpY2UgKmRldmljZSwgdWlu dDMyX3QgZ2VtX2hhbmRsZSk7CitpbnQgYW52X2dlbV9yZWdfcmVhZChzdHJ1Y3QgYW52X2Rldmlj ZSAqZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb2Zmc2V0LCB1aW50NjRf dCAqcmVzdWx0KTsKIHVpbnQzMl90IGFudl9nZW1fZmRfdG9faGFuZGxlKHN0cnVjdCBhbnZfZGV2 aWNlICpkZXZpY2UsIGludCBmZCk7CiBpbnQgYW52X2dlbV9zZXRfY2FjaGluZyhzdHJ1Y3QgYW52 X2RldmljZSAqZGV2aWNlLCB1aW50MzJfdCBnZW1faGFuZGxlLCB1aW50MzJfdCBjYWNoaW5nKTsK IGludCBhbnZfZ2VtX3NldF9kb21haW4oc3RydWN0IGFudl9kZXZpY2UgKmRldmljZSwgdWludDMy X3QgZ2VtX2hhbmRsZSwKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbWVzYS1kZXYgbWFpbGluZyBsaXN0Cm1lc2EtZGV2QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL21lc2EtZGV2Cg==