From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mahesh Kumar Subject: [PATCH v7 7/8] drm/i915: Decode system memory bandwidth Date: Thu, 1 Dec 2016 21:19:39 +0530 Message-ID: <20161201154940.24446-8-mahesh1.kumar@intel.com> References: <20161201154940.24446-1-mahesh1.kumar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 969DA6E824 for ; Thu, 1 Dec 2016 15:48:35 +0000 (UTC) In-Reply-To: <20161201154940.24446-1-mahesh1.kumar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: paulo.r.zanoni@intel.com, maarten.lankhorst@intel.com List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gZGVjb2RlIHN5c3RlbSBtZW1vcnkgYmFuZHdpZHRo CndoaWNoIHdpbGwgYmUgdXNlZCBmb3IgYXJiaXRyYXRlZCBkaXNwbGF5IG1lbW9yeSBwZXJjZW50 YWdlCmNhbGN1bGF0aW9uIGluIEdFTjkgYmFzZWQgc3lzdGVtLgoKQ2hhbmdlcyBmcm9tIHYxOgog LSBBZGRyZXNzIGNvbW1lbnRzIGZyb20gUGF1bG8KIC0gaW1wbGVtZW50IGRlY29kZSBmdW5jdGlv biBmb3IgU0tML0tCTCBhbHNvCkNoYW5nZXMgZnJvbSB2MjoKIC0gUmV3cml0ZSB0aGUgY29kZSBh cyBwZXIgSFcgdGVhbSBpbnB1dHMKIC0gQWRkcmVzc2VzIHJldmlldyBjb21tZW50cwpDaGFuZ2Vz IGZyb20gdjM6CiAtIEZpeCBjb21waWxhdGlvbiB3YXJuaW5nCgpTaWduZWQtb2ZmLWJ5OiBNYWhl c2ggS3VtYXIgPG1haGVzaDEua3VtYXJAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMgfCAxNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCB8ICAxMiArKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggfCAgMzcgKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQs IDIyMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggMWM2ODliNi4u MGFjNzEyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC05NzksNiArOTc5LDE3MyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9vcHRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAlEUk1fREVCVUdfRFJJVkVSKCJ1c2UgR1BVIHNlbXBhaG9yZXM/ICVzXG4i LCB5ZXNubyhpOTE1LnNlbWFwaG9yZXMpKTsKIH0KIAorc3RhdGljIGlubGluZSBlbnVtIHJhbmsg c2tsX21lbWRldl9nZXRfY2hhbm5lbF9yYW5rKHVpbnQzMl90IHZhbCkKK3sKKwl1aW50OF90IGxf cmFuaywgc19yYW5rOworCXVpbnQ4X3QgbF9zaXplLCBzX3NpemU7CisJZW51bSByYW5rIGNoX3Jh bmsgPSBEUkFNX1JBTktfU0lOR0xFOworCisJbF9zaXplID0gKHZhbCA+PiBTS0xfRFJBTV9TSVpF X0xfU0hJRlQpICYgU0tMX0RSQU1fU0laRV9NQVNLOworCXNfc2l6ZSA9ICh2YWwgPj4gU0tMX0RS QU1fU0laRV9TX1NISUZUKSAmIFNLTF9EUkFNX1NJWkVfTUFTSzsKKwlsX3JhbmsgPSAodmFsID4+ IFNLTF9EUkFNX1JBTktfTF9TSElGVCkgJiBTS0xfRFJBTV9SQU5LX01BU0s7CisJc19yYW5rID0g KHZhbCA+PiBTS0xfRFJBTV9SQU5LX1NfU0hJRlQpICYgU0tMX0RSQU1fUkFOS19NQVNLOworCisJ LyoKKwkgKiBJZiBhbnkgb2YgdGhlIHNsb3QgaGFzIGR1YWwgcmFuayBtZW1vcnkgY29uc2lkZXIK KwkgKiBkdWFsIHJhbmsgbWVtb3J5IGNoYW5uZWwKKwkgKi8KKwlpZiAobF9yYW5rID09IFNLTF9E UkFNX1JBTktfRFVBTCB8fCBzX3JhbmsgPT0gU0tMX0RSQU1fUkFOS19EVUFMKQorCQljaF9yYW5r ID0gRFJBTV9SQU5LX0RVQUw7CisKKwkvKgorCSAqIElmIGJvdGggdGhlIHNsb3QgaGFzIHNpbmds ZSByYW5rIG1lbW9yeSB0aGVuIGNvbmZpZ3VyYXRpb24KKwkgKiBpcyBkdWFsIHJhbmsgbWVtb3J5 CisJICovCisJaWYgKChsX3NpemUgJiYgbF9yYW5rID09IFNLTF9EUkFNX1JBTktfU0lOR0xFKSAm JgorCQkoc19zaXplICYmIHNfcmFuayA9PSBTS0xfRFJBTV9SQU5LX1NJTkdMRSkpCisJCWNoX3Jh bmsgPSBEUkFNX1JBTktfRFVBTDsKKwlyZXR1cm4gY2hfcmFuazsKK30KKworc3RhdGljIGludAor c2tsX2dldF9tZW1kZXZfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7 CisJc3RydWN0IG1lbWRldl9pbmZvICptZW1kZXZfaW5mbyA9ICZkZXZfcHJpdi0+bWVtZGV2X2lu Zm87CisJdWludDMyX3QgbWVtX2ZyZXFfa2h6OworCXVpbnQzMl90IHZhbDsKKwllbnVtIHJhbmsg Y2gwX3JhbmsgPSBEUkFNX1JBTktfSU5WQUxJRCwgY2gxX3JhbmsgPSBEUkFNX1JBTktfSU5WQUxJ RDsKKworCXZhbCA9IEk5MTVfUkVBRChTS0xfTUNfQklPU19EQVRBXzBfMF8wX01DSEJBUl9QQ1Up OworCW1lbV9mcmVxX2toeiA9ICh2YWwgJiBTS0xfUkVRX0RBVEFfTUFTSykgKgorCQkJCVNLTF9N RU1PUllfRlJFUV9NVUxUSVBMSUVSX0tIWjsKKworCXZhbCA9IEk5MTVfUkVBRChTS0xfTUFEX0RJ TU1fQ0gwXzBfMF8wX01DSEJBUl9NQ01BSU4pOworCWlmICh2YWwgIT0gMHgwKSB7CisJCW1lbWRl dl9pbmZvLT5udW1fY2hhbm5lbHMrKzsKKwkJY2gwX3JhbmsgPSBza2xfbWVtZGV2X2dldF9jaGFu bmVsX3JhbmsodmFsKTsKKwl9CisKKwl2YWwgPSBJOTE1X1JFQUQoU0tMX01BRF9ESU1NX0NIMV8w XzBfMF9NQ0hCQVJfTUNNQUlOKTsKKwlpZiAodmFsICE9IDB4MCkgeworCQltZW1kZXZfaW5mby0+ bnVtX2NoYW5uZWxzKys7CisJCWNoMV9yYW5rID0gc2tsX21lbWRldl9nZXRfY2hhbm5lbF9yYW5r KHZhbCk7CisJfQorCisJaWYgKG1lbWRldl9pbmZvLT5udW1fY2hhbm5lbHMgPT0gMCkgeworCQlE Uk1fRVJST1IoIk51bWJlciBvZiBtZW0gY2hhbm5lbHMgYXJlIHplcm9cbiIpOworCQlyZXR1cm4g LUVJTlZBTDsKKwl9CisKKwltZW1kZXZfaW5mby0+YmFuZHdpZHRoX2ticHMgPSAobWVtZGV2X2lu Zm8tPm51bV9jaGFubmVscyAqCisJCQkJCQkJbWVtX2ZyZXFfa2h6ICogOCk7CisKKwlpZiAobWVt ZGV2X2luZm8tPmJhbmR3aWR0aF9rYnBzID09IDApIHsKKwkJRFJNX0VSUk9SKCJDb3VsZG4ndCBn ZXQgc3lzdGVtIG1lbW9yeSBiYW5kd2lkdGhcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJ bWVtZGV2X2luZm8tPnZhbGlkID0gdHJ1ZTsKKworCS8qCisJICogSWYgYW55IG9mIGNoYW5uZWwg aXMgc2luZ2xlIHJhbmsgY2hhbm5lbCwKKwkgKiBjb25zaWRlciBzaW5nbGUgcmFuayBtZW1vcnkK KwkgKi8KKwlpZiAoY2gwX3JhbmsgPT0gRFJBTV9SQU5LX1NJTkdMRSB8fCBjaDFfcmFuayA9PSBE UkFNX1JBTktfU0lOR0xFKQorCQltZW1kZXZfaW5mby0+cmFuayA9IERSQU1fUkFOS19TSU5HTEU7 CisJZWxzZQorCQltZW1kZXZfaW5mby0+cmFuayA9IG1heChjaDBfcmFuaywgY2gxX3JhbmspOwor CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2J4dF9nZXRfbWVtZGV2X2luZm8oc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBtZW1kZXZfaW5mbyAqbWVt ZGV2X2luZm8gPSAmZGV2X3ByaXYtPm1lbWRldl9pbmZvOworCXVpbnQzMl90IGRyYW1fY2hhbm5l bHM7CisJdWludDMyX3QgbWVtX2ZyZXFfa2h6LCB2YWw7CisJdWludDhfdCBudW1fYWN0aXZlX2No YW5uZWxzOworCWludCBpOworCisJdmFsID0gSTkxNV9SRUFEKEJYVF9QX0NSX01DX0JJT1NfUkVR XzBfMF8wKTsKKwltZW1fZnJlcV9raHogPSAoKHZhbCAmIEJYVF9SRVFfREFUQV9NQVNLKSAqCisJ CQkJQlhUX01FTU9SWV9GUkVRX01VTFRJUExJRVJfS0haKTsKKworCWRyYW1fY2hhbm5lbHMgPSAo dmFsID4+IEJYVF9EUkFNX0NIQU5ORUxfQUNUSVZFX1NISUZUKSAmCisJCQkJCUJYVF9EUkFNX0NI QU5ORUxfQUNUSVZFX01BU0s7CisJbnVtX2FjdGl2ZV9jaGFubmVscyA9IGh3ZWlnaHQzMihkcmFt X2NoYW5uZWxzKTsKKworCW1lbWRldl9pbmZvLT5iYW5kd2lkdGhfa2JwcyA9IChtZW1fZnJlcV9r aHogKiBudW1fYWN0aXZlX2NoYW5uZWxzICogNCk7CisKKwlpZiAobWVtZGV2X2luZm8tPmJhbmR3 aWR0aF9rYnBzID09IDApIHsKKwkJRFJNX0VSUk9SKCJDb3VsZG4ndCBnZXQgc3lzdGVtIG1lbW9y eSBiYW5kd2lkdGhcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJbWVtZGV2X2luZm8tPnZh bGlkID0gdHJ1ZTsKKworCS8qCisJICogTm93IHJlYWQgZWFjaCBEVU5JVDgvOS8xMC8xMSB0byBj aGVjayB0aGUgcmFuayBvZiBlYWNoIGRpbW1zLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBCWFRf RF9DUl9EUlAwX0RVTklUX01BWDsgaSsrKSB7CisJCXZhbCA9IEk5MTVfUkVBRChCWFRfRF9DUl9E UlAwX0RVTklUKGkpKTsKKwkJaWYgKHZhbCAhPSAweEZGRkZGRkZGKSB7CisJCQl1aW50OF90IHJh bms7CisJCQllbnVtIHJhbmsgY2hfcmFuazsKKworCQkJbWVtZGV2X2luZm8tPm51bV9jaGFubmVs cysrOworCQkJcmFuayA9IHZhbCAmIEJYVF9EUkFNX1JBTktfTUFTSzsKKwkJCWlmIChyYW5rID09 IEJYVF9EUkFNX1JBTktfU0lOR0xFKQorCQkJCWNoX3JhbmsgPSBEUkFNX1JBTktfU0lOR0xFOwor CQkJZWxzZSBpZiAocmFuayA9PSBCWFRfRFJBTV9SQU5LX0RVQUwpCisJCQkJY2hfcmFuayA9IERS QU1fUkFOS19EVUFMOworCQkJZWxzZQorCQkJCWNoX3JhbmsgPSBEUkFNX1JBTktfSU5WQUxJRDsK KworCQkJLyoKKwkJCSAqIElmIGFueSBvZiBjaGFubmVsIGlzIGhhdmluZyBzaW5nbGUgcmFuayBt ZW1vcnkKKwkJCSAqIGNvbnNpZGVyIG1lbW9yeSBhcyBzaW5nbGUgcmFuaworCQkJICovCisJCQlp ZiAobWVtZGV2X2luZm8tPnJhbmsgPT0gRFJBTV9SQU5LX0lOVkFMSUQpCisJCQkJbWVtZGV2X2lu Zm8tPnJhbmsgPSBjaF9yYW5rOworCQkJZWxzZSBpZiAoY2hfcmFuayA9PSBEUkFNX1JBTktfU0lO R0xFKQorCQkJCW1lbWRldl9pbmZvLT5yYW5rID0gRFJBTV9SQU5LX1NJTkdMRTsKKwkJfQorCX0K KwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2ludGVsX2dldF9tZW1kZXZfaW5mbyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0IG1lbWRldl9pbmZvICpt ZW1kZXZfaW5mbyA9ICZkZXZfcHJpdi0+bWVtZGV2X2luZm87CisJaW50IHJldDsKKworCW1lbWRl dl9pbmZvLT52YWxpZCA9IGZhbHNlOworCW1lbWRldl9pbmZvLT5yYW5rID0gRFJBTV9SQU5LX0lO VkFMSUQ7CisJbWVtZGV2X2luZm8tPm51bV9jaGFubmVscyA9IDA7CisKKwlpZiAoIUlTX0dFTjko ZGV2X3ByaXYpKQorCQlyZXR1cm47CisKKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJCXJl dCA9IGJ4dF9nZXRfbWVtZGV2X2luZm8oZGV2X3ByaXYpOworCWVsc2UKKwkJcmV0ID0gc2tsX2dl dF9tZW1kZXZfaW5mbyhkZXZfcHJpdik7CisJaWYgKHJldCkKKwkJcmV0dXJuOworCisJRFJNX0RF QlVHX0RSSVZFUigiRFJBTSBiYW5kd2lkdGg6ICV1IEtCcHMgdG90YWwtY2hhbm5lbHM6ICV1XG4i LAorCQkJCW1lbWRldl9pbmZvLT5iYW5kd2lkdGhfa2JwcywKKwkJCQltZW1kZXZfaW5mby0+bnVt X2NoYW5uZWxzKTsKKwlpZiAobWVtZGV2X2luZm8tPnJhbmsgPT0gRFJBTV9SQU5LX0lOVkFMSUQp CisJCURSTV9JTkZPKCJDb3VubGQgbm90IGdldCBtZW1vcnkgcmFuayBpbmZvXG4iKTsKKwllbHNl IHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiRFJBTSByYW5rOiAlcyByYW5rXG4iLAorCQkJCShtZW1k ZXZfaW5mby0+cmFuayA9PSBEUkFNX1JBTktfRFVBTCkgPworCQkJCQkJImR1YWwiIDogInNpbmds ZSIpOworCX0KK30KKworCiAvKioKICAqIGk5MTVfZHJpdmVyX2luaXRfaHcgLSBzZXR1cCBzdGF0 ZSByZXF1aXJpbmcgZGV2aWNlIGFjY2VzcwogICogQGRldl9wcml2OiBkZXZpY2UgcHJpdmF0ZQpA QCAtMTA4MSw2ICsxMjQ4LDEyIEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQlEUk1fREVCVUdfRFJJVkVSKCJjYW4n dCBlbmFibGUgTVNJIik7CiAJfQogCisJLyoKKwkgKiBGaWxsIHRoZSBtZW1kZXYgc3RydWN0dXJl IHRvIGdldCB0aGUgc3lzdGVtIHJhdyBiYW5kd2lkdGgKKwkgKiBUaGlzIHdpbGwgYmUgdXNlZCBi eSBXTSBhbGdvcml0aG0sIHRvIGltcGxlbWVudCBHRU45IGJhc2VkIFdBCisJICovCisJaW50ZWxf Z2V0X21lbWRldl9pbmZvKGRldl9wcml2KTsKKwogCXJldHVybiAwOwogCiBvdXRfZ2d0dDoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGI3OGRjOWEuLjY5MjEzYTQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaApAQCAtMjI5Nyw2ICsyMjk3LDE4IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRl IHsKIAkJYm9vbCBkaXN0cnVzdF9iaW9zX3dtOwogCX0gd207CiAKKwlzdHJ1Y3QgbWVtZGV2X2lu Zm8geworCQlib29sIHZhbGlkOworCQl1aW50MzJfdCBiYW5kd2lkdGhfa2JwczsKKwkJdWludDhf dCBudW1fY2hhbm5lbHM7CisJCWVudW0gcmFuayB7CisJCQlEUkFNX1JBTktfSU5WQUxJRCA9IDAs CisJCQlEUkFNX1JBTktfU0lOR0xFLAorCQkJRFJBTV9SQU5LX0RVQUwKKwkJfSByYW5rOworCX0g bWVtZGV2X2luZm87CisKKwogCXN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gcG07CiAKIAlzdHJ1Y3Qg ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggNjQ5MzE5ZC4uZTdlZmRkMCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCkBAIC04MDE1LDYgKzgwMTUsNDMgQEAgZW51bSB7CiAjZGVmaW5lICBE Q19TVEFURV9ERUJVR19NQVNLX0NPUkVTCSgxPDwwKQogI2RlZmluZSAgRENfU1RBVEVfREVCVUdf TUFTS19NRU1PUllfVVAJKDE8PDEpCiAKKyNkZWZpbmUgQlhUX1BfQ1JfTUNfQklPU19SRVFfMF8w XzAJX01NSU8oTUNIQkFSX01JUlJPUl9CQVNFX1NOQiArIDB4NzExNCkKKyNkZWZpbmUgQlhUX1JF UV9EQVRBX01BU0sJCQkweDNGCisjZGVmaW5lIEJYVF9EUkFNX0FDVElWRV9DSEFOTkVMX1NISUZU CQkxMgorI2RlZmluZSBCWFRfRFJBTV9BQ1RJVkVfQ0hBTk5FTF9NQVNLCQkweEYKKy8qCisgKiBC SU9TIHByb2dyYW1zIHRoaXMgZmllbGQgb2YgUkVRX0RBVEEgWzU6MF0gaW4gaW50ZWdlcgorICog bXVsdGlwbGUgb2YgMTMzMzMzIEtIeiAoMTMzLjMzTUh6KQorICovCisjZGVmaW5lCUJYVF9NRU1P UllfRlJFUV9NVUxUSVBMSUVSX0tIWgkJMTMzMzMzCisjZGVmaW5lIEJYVF9EX0NSX0RSUDBfRFVO SVQ4CQkJMHgxMDAwCisjZGVmaW5lIEJYVF9EX0NSX0RSUDBfRFVOSVQ5CQkJMHgxMjAwCisjZGVm aW5lIEJYVF9EX0NSX0RSUDBfRFVOSVRfTUFYCQkJNAorI2RlZmluZSBfTU1JT19NQ0hCQVJfRFVO SVQoeCwgYSwgYikgX01NSU8oTUNIQkFSX01JUlJPUl9CQVNFX1NOQiArIChhKSArICh4KSooKGIp LShhKSkpCisjZGVmaW5lIEJYVF9EX0NSX0RSUDBfRFVOSVQoeCkJX01NSU9fTUNIQkFSX0RVTklU KHgsIEJYVF9EX0NSX0RSUDBfRFVOSVQ4LCBCWFRfRF9DUl9EUlAwX0RVTklUOSkKKyNkZWZpbmUg QlhUX0RSQU1fQ0hBTk5FTF9BQ1RJVkVfU0hJRlQJCTEyCisjZGVmaW5lIEJYVF9EUkFNX0NIQU5O RUxfQUNUSVZFX01BU0sJCTB4RgorI2RlZmluZSBCWFRfRFJBTV9SQU5LX01BU0sJCQkweDMKKyNk ZWZpbmUgQlhUX0RSQU1fUkFOS19TSU5HTEUJCQkweDEKKyNkZWZpbmUgQlhUX0RSQU1fUkFOS19E VUFMCQkJMHgzCisKKy8qCisgKiBTS0wgbWVtb3J5IGZyZXF1ZW55IG11bHRpcGxpZXIgaXMgMjY2 NjY3IEtIeiAoMjY2LjY3IE1IeikKKyAqLworI2RlZmluZQlTS0xfTUVNT1JZX0ZSRVFfTVVMVElQ TElFUl9LSFoJCTI2NjY2NworI2RlZmluZSBTS0xfTUNfQklPU19EQVRBXzBfMF8wX01DSEJBUl9Q Q1UJX01NSU8oTUNIQkFSX01JUlJPUl9CQVNFX1NOQiArIDB4NUUwNCkKKyNkZWZpbmUgU0tMX1JF UV9EQVRBX01BU0sJCQkoMHhGIDw8IDApCisjZGVmaW5lIFNLTF9NQURfRElNTV9DSDBfMF8wXzBf TUNIQkFSX01DTUFJTglfTU1JTyhNQ0hCQVJfTUlSUk9SX0JBU0VfU05CICsgMHg1MDBDKQorI2Rl ZmluZSBTS0xfTUFEX0RJTU1fQ0gxXzBfMF8wX01DSEJBUl9NQ01BSU4JX01NSU8oTUNIQkFSX01J UlJPUl9CQVNFX1NOQiArIDB4NTAxMCkKKyNkZWZpbmUgU0tMX0RSQU1fU0laRV9NQVNLCQkJMHgx RgorI2RlZmluZSBTS0xfRFJBTV9TSVpFX0xfU0hJRlQJCQkwCisjZGVmaW5lIFNLTF9EUkFNX1NJ WkVfU19TSElGVAkJCTE2CisjZGVmaW5lIFNLTF9EUkFNX1JBTktfTUFTSwkJCTB4MQorI2RlZmlu ZSBTS0xfRFJBTV9SQU5LX0xfU0hJRlQJCQkxMAorI2RlZmluZSBTS0xfRFJBTV9SQU5LX1NfU0hJ RlQJCQkyNgorI2RlZmluZSBTS0xfRFJBTV9SQU5LX1NJTkdMRQkJCTB4MAorI2RlZmluZSBTS0xf RFJBTV9SQU5LX0RVQUwJCQkweDEKKwogLyogUGxlYXNlIHNlZSBoc3dfcmVhZF9kY29tcCgpIGFu ZCBoc3dfd3JpdGVfZGNvbXAoKSBiZWZvcmUgdXNpbmcgdGhpcyByZWdpc3RlciwKICAqIHNpbmNl IG9uIEhTVyB3ZSBjYW4ndCB3cml0ZSB0byBpdCB1c2luZyBJOTE1X1dSSVRFLiAqLwogI2RlZmlu ZSBEX0NPTVBfSFNXCQkJX01NSU8oTUNIQkFSX01JUlJPUl9CQVNFX1NOQiArIDB4NUYwQykKLS0g CjIuMTAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==