From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [RFC 3/8] drm/i915: Add mechanism for forwarding CS based OA counter snapshots through perf Date: Wed, 5 Aug 2015 11:22:52 +0530 Message-ID: <1438753977-20335-4-git-send-email-sourab.gupta@intel.com> References: <1438753977-20335-1-git-send-email-sourab.gupta@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id F1B5F72086 for ; Tue, 4 Aug 2015 22:50:50 -0700 (PDT) In-Reply-To: <1438753977-20335-1-git-send-email-sourab.gupta@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: Insoo Woo , Peter Zijlstra , Jabin Wu , Sourab Gupta List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKVGhpcyBwYXRjaCBh ZGRzIHRoZSBtZWNoYW5pc20gZm9yIGZvcndhcmRpbmcgdGhlIENTIGJhc2VkIE9BIHNuYXBzaG90 cwp0aHJvdWdoIHRoZSBwZXJmIGV2ZW50IGludGVyZmFjZS4KClRoZSBPQSBzbmFwc2hvdHMgd2ls bCBiZSBjYXB0dXJlZCBpbiBhIGdlbSBidWZmZXIgb2JqZWN0LiBUaGUgbWV0YWRhdGEKaW5mb3Jt YXRpb24gKGN0eCBnbG9iYWwgaWQsIGFzIG9mIG5vdykgcGVydGFpbmluZyB0byBzbmFwc2hvdCBp cyBtYWludGFpbmVkCmluIGEgbGlzdCwgd2hpY2ggaGFzIG9mZnNldHMgaW50byB0aGUgZ2VtIGJ1 ZmZlciBvYmplY3QgZm9yIGVhY2ggc25hcHNob3QKY2FwdHVyZWQuCgpFYWNoIHNuYXBzaG90IGNv bGxlY3RlZCBpcyBmb3J3YXJkZWQgYXMgYSBzZXBhcmF0ZSBwZXJmIHNhbXBsZS4gVGhlIHBlcmYK c2FtcGxlIHdpbGwgaGF2ZSByYXcgT0EgcmVwb3J0IGZvbGxvd2VkIGJ5IG1ldGFkYXRhIGluZm9y bWF0aW9uIHBlcnRhaW5pbmcKdG8gdGhhdCBzYW1wbGUuIFRoZSBzaXplIG9mIHRoZSBPQSByZXBv cnQgaXMgdGhlIG9uZSBzcGVjaWZpZWQgZHVyaW5nCmV2ZW50IGluaXQuCgpJbiBvcmRlciB0byB0 cmFjayB3aGV0aGVyIHRoZSBncHUgaGFzIGNvbXBsZXRlZCBwcm9jZXNzaW5nIHRoZSBub2RlLCBh CmZpZWxkIHBlcnRhaW5pbmcgdG8gY29ycmVzcG9uZGluZyBnZW0gcmVxdWVzdCBpcyBhZGRlZC4g VGhlIHJlcXVlc3QgaXMKZXhwZWN0ZWQgdG8gYmUgcmVmZXJlbmNlZCB3aGVuZXZlciB0aGUgZ3B1 IGNvbW1hbmQgaXMgc3VibWl0dGVkLgoKV2hpbGUgZm9yd2FyZGluZyB0aGUgc2FtcGxlcywgd2Ug Y2hlY2sgd2hldGhlciB0aGUgZ2VtIHJlcXVlc3QgaXMgY29tcGxldGVkCmFuZCBkZXJlZmVyZW5j ZSB0aGUgY29ycmVzcG9uZGluZyByZXF1ZXN0LiBUaGUgbmVlZCB0byBkZXJlZmVyZW5jZSB0aGUK cmVxdWVzdCBuZWNlc3NpdGF0ZXMgYSB3b3JrZXIgaGVyZSwgd2hpY2ggd2lsbCBiZSBzY2hlZHVs ZWQgd2hlbiB0aGUKaHJ0aW1lciB0cmlnZ2Vycy4KCldoaWxlIGZsdXNoaW5nIHRoZSBzYW1wbGVz LCB3ZSBoYXZlIHRvIHdhaXQgZm9yIHRoZSByZXF1ZXN0cyBhbHJlYWR5CnNjaGVkdWxlZCwgYmVm b3JlIGZvcndhcmRpbmcgdGhlIHNhbXBsZXMuIFRoaXMgd2FpdCBpcyBpbiBhIGxvY2tsZXNzCmZh c2hpb24uCgp2MjogQ2hhbmdlcyBoZXJlIHBlcnRhaW5pbmcgdG8gKGFzIHN1Z2dlc3RlZCBieSBD aHJpcyk6CiAgICAtIEZvcndhcmRpbmcgZnVuY3Rpb25hbGl0eSBpbXBsZW1lbnRlZCBpbiBhIHNl cGFyYXRlIGZuLiBUaGUgd29yayBpdGVtCiAgICAgIChzY2hlZHVsZWQgZnJvbSBocnRpbWVyL2V2 ZW50IHN0b3ApIHdvdWxkIGJlIGNhbGxpbmcgdGhhdCBmdW5jdGlvbi4KICAgICAgVGhlIGV2ZW50 IGZsdXNoIHdvdWxkIGRpcmVjdGx5IGNhbGwgdGhpcyBmb3J3YXJkaW5nIGZuLiBUaGlzIG1lZXRz CiAgICAgIHRoZSBmbHVzaCBzZW1hbnRpY3MuCiAgICAtIHVzZSBzcGluX2xvY2sgaW5zdGVhZCBv ZiBzcGluX2xvY2tfaXJxc2F2ZQogICAgLSBDb2RlIHJlc3RydWN0dXJpbmcgJiBiZXR0ZXIgbm9t ZW5jbGF0dXJlCgpTaWduZWQtb2ZmLWJ5OiBTb3VyYWIgR3VwdGEgPHNvdXJhYi5ndXB0YUBpbnRl bC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgMTEgKysr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYyB8IDE0NSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAg ICAgIHwgICA1ICsrCiAzIGZpbGVzIGNoYW5nZWQsIDE2MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMDUwYmRkYS4uODdlN2NmMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xNjU0LDYgKzE2NTQsMTMgQEAgc3RydWN0IGk5MTVf b2FfcmVnIHsKIAl1MzIgdmFsdWU7CiB9OwogCitzdHJ1Y3QgaTkxNV9vYV9yY3Nfbm9kZSB7CisJ c3RydWN0IGxpc3RfaGVhZCBoZWFkOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx OworCXUzMiBvZmZzZXQ7CisJdTMyIGN0eF9pZDsKK307CisKIGV4dGVybiBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgaTkxNV9vYV8zZF9tdXhfY29uZmlnX2hzd1tdOwogZXh0ZXJuIGNvbnN0IGlu dCBpOTE1X29hXzNkX211eF9jb25maWdfaHN3X2xlbjsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9yZWcgaTkxNV9vYV8zZF9iX2NvdW50ZXJfY29uZmlnX2hzd1tdOwpAQCAtMTk1NCw3ICsx OTYxLDExIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJCXU4ICphZGRyOwogCQkJaW50 IGZvcm1hdDsKIAkJCWludCBmb3JtYXRfc2l6ZTsKKwkJCXUzMiBub2RlX3NpemU7CisJCQl1MzIg bm9kZV9jb3VudDsKIAkJfSBvYV9yY3NfYnVmZmVyOworCQlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGVf bGlzdDsKKwkJc3RydWN0IHdvcmtfc3RydWN0IGZvcndhcmRfd29yazsKIAl9IG9hX3BtdTsKICNl bmRpZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCmluZGV4IGZkMGMzYTAuLjM5NDhi NDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCkBAIC01OCw2ICs1OCwxNCBAQCBz dGF0aWMgdTMyIGZvcndhcmRfb2Ffc25hcHNob3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAl1OCAqc25hcHNob3Q7CiAJdTMyIHRha2VuOwogCisJLyoKKwkgKiBTY2hlZHVs ZSBhIHdvcmtlciB0byBmb3J3YXJkIHRoZSBSQ1MgYmFzZWQgT0EgcmVwb3J0cyBjb2xsZWN0ZWQu CisJICogQSB3b3JrZXIgaXMgbmVlZGVkIHNpbmNlIGl0IHJlcXVpcmVzIGRldmljZSBtdXRleCB0 byBiZSB0YWtlbgorCSAqIHdoaWNoIGNhbid0IGJlIGRvbmUgaGVyZSBiZWNhdXNlIG9mIGF0b21p YyBjb250ZXh0CisJICovCisJaWYgKGRldl9wcml2LT5vYV9wbXUubXVsdGlwbGVfY3R4X21vZGUp CisJCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5vYV9wbXUuZm9yd2FyZF93b3JrKTsKKwogCWhl YWQgLT0gZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIuZ3R0X29mZnNldDsKIAl0YWlsIC09IGRl dl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLmd0dF9vZmZzZXQ7CiAKQEAgLTE2NSw2ICsxNzMsMTE5 IEBAIHN0YXRpYyB2b2lkIGZsdXNoX29hX3NuYXBzaG90cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPm9hX3BtdS5v YV9idWZmZXIuZmx1c2hfbG9jaywgZmxhZ3MpOwogfQogCitzdGF0aWMgaW50IGk5MTVfb2FfcmNz X3dhaXRfZ3B1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3Qg aTkxNV9vYV9yY3Nfbm9kZSAqbGFzdF9lbnRyeSA9IE5VTEw7CisJaW50IHJldCA9IDA7CisKKwkv KgorCSAqIFdhaXQgZm9yIHRoZSBsYXN0IHNjaGVkdWxlZCByZXF1ZXN0IHRvIGNvbXBsZXRlLiBU aGlzIHdvdWxkCisJICogaW1wbGljaXRseSB3YWl0IGZvciB0aGUgcHJpb3Igc3VibWl0dGVkIHJl cXVlc3RzLiBUaGUgcmVmY291bnQKKwkgKiBvZiB0aGUgcmVxdWVzdHMgaXMgbm90IGRlY3JlbWVu dGVkIGhlcmUuCisJICovCisJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+b2FfcG11LmxvY2spOworCisJ aWYgKCFsaXN0X2VtcHR5KCZkZXZfcHJpdi0+b2FfcG11Lm5vZGVfbGlzdCkpIHsKKwkJbGFzdF9l bnRyeSA9IGxpc3RfbGFzdF9lbnRyeSgmZGV2X3ByaXYtPm9hX3BtdS5ub2RlX2xpc3QsCisJCQlz dHJ1Y3QgaTkxNV9vYV9yY3Nfbm9kZSwgaGVhZCk7CisJfQorCXNwaW5fdW5sb2NrKCZkZXZfcHJp di0+b2FfcG11LmxvY2spOworCisJaWYgKCFsYXN0X2VudHJ5KQorCQlyZXR1cm4gMDsKKworCXJl dCA9IF9faTkxNV93YWl0X3JlcXVlc3QobGFzdF9lbnRyeS0+cmVxLCBhdG9taWNfcmVhZCgKKwkJ CSZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAorCQkJdHJ1ZSwgTlVMTCwgTlVM TCk7CisJaWYgKHJldCkgeworCQlEUk1fRVJST1IoImZhaWxlZCB0byB3YWl0XG4iKTsKKwkJcmV0 dXJuIHJldDsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGZvcndhcmRfb25lX29h X3Jjc19zYW1wbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCXN0cnVj dCBpOTE1X29hX3Jjc19ub2RlICpub2RlKQoreworCXN0cnVjdCBwZXJmX3NhbXBsZV9kYXRhIGRh dGE7CisJc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50ID0gZGV2X3ByaXYtPm9hX3BtdS5leGNsdXNp dmVfZXZlbnQ7CisJaW50IGZvcm1hdF9zaXplLCBzbmFwc2hvdF9zaXplOworCXU4ICpzbmFwc2hv dDsKKwlzdHJ1Y3QgZHJtX2k5MTVfb2Ffbm9kZV9jdHhfaWQgKmN0eF9pbmZvOworCXN0cnVjdCBw ZXJmX3Jhd19yZWNvcmQgcmF3OworCisJZm9ybWF0X3NpemUgPSBkZXZfcHJpdi0+b2FfcG11Lm9h X3Jjc19idWZmZXIuZm9ybWF0X3NpemU7CisJc25hcHNob3Rfc2l6ZSA9IGZvcm1hdF9zaXplICsg c2l6ZW9mKCpjdHhfaW5mbyk7CisJc25hcHNob3QgPSBkZXZfcHJpdi0+b2FfcG11Lm9hX3Jjc19i dWZmZXIuYWRkciArIG5vZGUtPm9mZnNldDsKKworCWN0eF9pbmZvID0gKHN0cnVjdCBkcm1faTkx NV9vYV9ub2RlX2N0eF9pZCAqKShzbmFwc2hvdCArIGZvcm1hdF9zaXplKTsKKwljdHhfaW5mby0+ Y3R4X2lkID0gbm9kZS0+Y3R4X2lkOworCisJcGVyZl9zYW1wbGVfZGF0YV9pbml0KCZkYXRhLCAw LCBldmVudC0+aHcubGFzdF9wZXJpb2QpOworCisJLyogTm90ZTogdGhlIHJhdyBzYW1wbGUgY29u c2lzdHMgb2YgYSB1MzIgc2l6ZSBtZW1iZXIgYW5kIHJhdyBkYXRhLiBUaGUKKwkgKiBjb21iaW5l ZCBzaXplIG9mIHRoZXNlIHR3byBmaWVsZHMgaXMgcmVxdWlyZWQgdG8gYmUgOCBieXRlIGFsaWdu ZWQuCisJICogVGhlIHNpemUgb2YgcmF3IGRhdGEgZmllbGQgaXMgYXNzdW1lZCB0byBiZSA4IGJ5 dGUgYWxpZ25lZCBhbHJlYWR5LgorCSAqIFRoZXJlZm9yZSwgYWRkaW5nIDQgYnl0ZXMgdG8gdGhl IHRvdGFsIHNpemUgaGVyZS4gV2UgY2FuJ3QgdXNlCisJICogQlVJTERfQlVHX09OIGhlcmUgYXMg c25hcHNob3Qgc2l6ZSBpcyBkZXJpdmVkIGF0IHJ1bnRpbWUuCisJICovCisJcmF3LnNpemUgPSBz bmFwc2hvdF9zaXplICsgNDsKKwlyYXcuZGF0YSA9IHNuYXBzaG90OworCisJZGF0YS5yYXcgPSAm cmF3OworCisJcGVyZl9ldmVudF9vdmVyZmxvdyhldmVudCwgJmRhdGEsICZkZXZfcHJpdi0+b2Ff cG11LmR1bW15X3JlZ3MpOworfQorCisvKgorICogUm91dGluZSB0byBmb3J3YXJkIHRoZSBzYW1w bGVzIHRvIHBlcmYuIFRoaXMgbWF5IGJlIGNhbGxlZCBmcm9tIHRoZSBldmVudAorICogZmx1c2gg YW5kIHdvcmtlciB0aHJlYWQuIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLCBoZW5jZSBjYW4ndCBi ZSBjYWxsZWQgZnJvbQorICogYXRvbWljIGNvbnRleHRzIGRpcmVjdGx5LgorICovCitzdGF0aWMg dm9pZCBmb3J3YXJkX29hX3Jjc19zbmFwc2hvdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQoreworCXN0cnVjdCBpOTE1X29hX3Jjc19ub2RlICplbnRyeSwgKm5leHQ7CisJTElT VF9IRUFEKGRlZmVycmVkX2xpc3RfZnJlZSk7CisJaW50IHJldDsKKworCWxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZQorCQkoZW50cnksIG5leHQsICZkZXZfcHJpdi0+b2FfcG11Lm5vZGVfbGlzdCwg aGVhZCkgeworCQlpZiAoIWk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKGVudHJ5LT5yZXEsIHRy dWUpKQorCQkJYnJlYWs7CisKKwkJZm9yd2FyZF9vbmVfb2FfcmNzX3NhbXBsZShkZXZfcHJpdiwg ZW50cnkpOworCisJCXNwaW5fbG9jaygmZGV2X3ByaXYtPm9hX3BtdS5sb2NrKTsKKwkJbGlzdF9t b3ZlX3RhaWwoJmVudHJ5LT5oZWFkLCAmZGVmZXJyZWRfbGlzdF9mcmVlKTsKKwkJc3Bpbl91bmxv Y2soJmRldl9wcml2LT5vYV9wbXUubG9jayk7CisJfQorCisJcmV0ID0gaTkxNV9tdXRleF9sb2Nr X2ludGVycnVwdGlibGUoZGV2X3ByaXYtPmRldik7CisJaWYgKHJldCkKKwkJcmV0dXJuOworCXdo aWxlICghbGlzdF9lbXB0eSgmZGVmZXJyZWRfbGlzdF9mcmVlKSkgeworCQllbnRyeSA9IGxpc3Rf Zmlyc3RfZW50cnkoJmRlZmVycmVkX2xpc3RfZnJlZSwKKwkJCQkJc3RydWN0IGk5MTVfb2FfcmNz X25vZGUsIGhlYWQpOworCQlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKGVudHJ5LT5yZXEp OworCQlsaXN0X2RlbCgmZW50cnktPmhlYWQpOworCQlrZnJlZShlbnRyeSk7CisJfQorCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKK30KKworLyoKKyAqIFdvcmsg Zm4gdG8gZm9yd2FyZCB0aGUgc25hcHNob3RzLiBUaGUgZm9yd2FyZGluZyBvZiBzYW1wbGVzIGlz IHRyaWdnZWQgZnJvbQorICogaHJ0aW1lciBhbmQgZXZlbnRfc3RvcCAoYm90aCBhdG9taWMgY29u dGV4dHMpLiBUaGUgZm9yd2FyZCBmdW5jdGlvbiBtYXkKKyAqIHNsZWVwLCBoZW5jZSB0aGUgbmVl ZCBmb3Igd29ya2VyLgorICovCitzdGF0aWMgdm9pZCBmb3J3YXJkX29hX3Jjc193b3JrX2ZuKHN0 cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9CisJCWNvbnRhaW5lcl9vZihfX3dvcmssIHR5cGVvZigqZGV2X3ByaXYpLCBvYV9w bXUuZm9yd2FyZF93b3JrKTsKKworCWZvcndhcmRfb2FfcmNzX3NuYXBzaG90cyhkZXZfcHJpdik7 Cit9CisKIHN0YXRpYyB2b2lkCiBvYV9yY3NfYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpCiB7CkBAIC0zNjEsNyArNDgyLDcgQEAgc3RhdGljIGludCBpbml0X29h X3Jjc19idWZmZXIoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9CiAJCWNvbnRhaW5lcl9vZihldmVudC0+cG11LCB0eXBlb2YoKmRl dl9wcml2KSwgb2FfcG11LnBtdSk7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmJvOwot CWludCByZXQ7CisJaW50IHJldCwgbm9kZV9zaXplOwogCiAJQlVHX09OKGRldl9wcml2LT5vYV9w bXUub2FfcmNzX2J1ZmZlci5vYmopOwogCkBAIC0zNzMsNiArNDk0LDE2IEBAIHN0YXRpYyBpbnQg aW5pdF9vYV9yY3NfYnVmZmVyKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAlkZXZfcHJpdi0+ b2FfcG11Lm9hX3Jjc19idWZmZXIuZ3R0X29mZnNldCA9CiAJCQkJaTkxNV9nZW1fb2JqX2dndHRf b2Zmc2V0KGJvKTsKIAlkZXZfcHJpdi0+b2FfcG11Lm9hX3Jjc19idWZmZXIuYWRkciA9IHZtYXBf b2FfYnVmZmVyKGJvKTsKKwlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPm9hX3BtdS5ub2RlX2xp c3QpOworCisJbm9kZV9zaXplID0gZGV2X3ByaXYtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLmZvcm1h dF9zaXplICsKKwkJCXNpemVvZihzdHJ1Y3QgZHJtX2k5MTVfb2Ffbm9kZV9jdHhfaWQpOworCisJ Lyogbm9kZSBzaXplIGhhcyB0byBiZSBhbGlnbmVkIHRvIDY0IGJ5dGVzLCBzaW5jZSBvbmx5IDY0 IGJ5dGUgYWxpZ25lZAorCSAqIGFkZHJlc3NlcyBjYW4gYmUgZ2l2ZW4gdG8gT0EgdW5pdCBmb3Ig ZHVtcGluZyBPQSByZXBvcnRzICovCisJbm9kZV9zaXplID0gQUxJR04obm9kZV9zaXplLCA2NCk7 CisJZGV2X3ByaXYtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLm5vZGVfc2l6ZSA9IG5vZGVfc2l6ZTsK KwlkZXZfcHJpdi0+b2FfcG11Lm9hX3Jjc19idWZmZXIubm9kZV9jb3VudCA9IGJvLT5iYXNlLnNp emUgLyBub2RlX3NpemU7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJPQSBSQ1MgQnVmZmVyIGluaXRp YWxpemVkLCB2YWRkciA9ICVwIiwKIAkJCSBkZXZfcHJpdi0+b2FfcG11Lm9hX3Jjc19idWZmZXIu YWRkcik7CkBAIC04NDYsNyArOTc3LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9ldmVudF9mbHVz aChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJaWYgKGV2ZW50LT5hdHRyLnNhbXBsZV9wZXJp b2QpIHsKIAkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPQogCQkJY29udGFpbmVyX29m KGV2ZW50LT5wbXUsIHR5cGVvZigqaTkxNSksIG9hX3BtdS5wbXUpOworCQlpbnQgcmV0OwogCisJ CWlmIChpOTE1LT5vYV9wbXUubXVsdGlwbGVfY3R4X21vZGUpIHsKKwkJCXJldCA9IGk5MTVfb2Ff cmNzX3dhaXRfZ3B1KGk5MTUpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCQkJZm9y d2FyZF9vYV9yY3Nfc25hcHNob3RzKGk5MTUpOworCQl9CiAJCWZsdXNoX29hX3NuYXBzaG90cyhp OTE1LCB0cnVlKTsKIAl9CiAKQEAgLTk0Miw2ICsxMDgwLDggQEAgdm9pZCBpOTE1X29hX3BtdV9y ZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWhydGltZXJfaW5pdCgmaTkxNS0+b2Ff cG11LnRpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOwogCWk5MTUtPm9h X3BtdS50aW1lci5mdW5jdGlvbiA9IGhydGltZXJfc2FtcGxlOwogCisJSU5JVF9XT1JLKCZpOTE1 LT5vYV9wbXUuZm9yd2FyZF93b3JrLCBmb3J3YXJkX29hX3Jjc193b3JrX2ZuKTsKKwogCXNwaW5f bG9ja19pbml0KCZpOTE1LT5vYV9wbXUubG9jayk7CiAKIAlpOTE1LT5vYV9wbXUucG11LmNhcGFi aWxpdGllcyAgPSBQRVJGX1BNVV9DQVBfSVNfREVWSUNFOwpAQCAtOTcxLDYgKzExMTEsOSBAQCB2 b2lkIGk5MTVfb2FfcG11X3VucmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAo aTkxNS0+b2FfcG11LnBtdS5ldmVudF9pbml0ID09IE5VTEwpCiAJCXJldHVybjsKIAorCWlmIChp OTE1LT5vYV9wbXUubXVsdGlwbGVfY3R4X21vZGUpCisJCWNhbmNlbF93b3JrX3N5bmMoJmk5MTUt Pm9hX3BtdS5mb3J3YXJkX3dvcmspOworCiAJdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUoaTkxNS0+ b2FfcG11LnN5c2N0bF9oZWFkZXIpOwogCiAJcGVyZl9wbXVfdW5yZWdpc3RlcigmaTkxNS0+b2Ff cG11LnBtdSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNs dWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggZGNmN2M4Ny4uZTk3YjJmZCAxMDA2NDQKLS0t IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaApAQCAtMTIzLDYgKzEyMywxMSBAQCBlbnVtIGRybV9pOTE1X29hX2V2ZW50X3R5cGUg ewogCUk5MTVfT0FfUkVDT1JEX01BWCwJCQkvKiBub24tQUJJICovCiB9OwogCitzdHJ1Y3QgZHJt X2k5MTVfb2Ffbm9kZV9jdHhfaWQgeworCV9fdTMyIGN0eF9pZDsKKwlfX3UzMiBwYWQ7Cit9Owor CiAvKiBFYWNoIHJlZ2lvbiBpcyBhIG1pbmltdW0gb2YgMTZrLCBhbmQgdGhlcmUgYXJlIGF0IG1v c3QgMjU1IG9mIHRoZW0uCiAgKi8KICNkZWZpbmUgSTkxNV9OUl9URVhfUkVHSU9OUyAyNTUJLyog dGFibGUgc2l6ZSAyayAtIG1heGltdW0gZHVlIHRvIHVzZQotLSAKMS44LjUuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK