From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH v2] drm/i915: add support for perf configuration queries Date: Tue, 12 Jun 2018 17:54:41 +0100 Message-ID: <20180612165441.18274-1-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 501066E576 for ; Tue, 12 Jun 2018 16:54:43 +0000 (UTC) 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 List-Id: intel-gfx@lists.freedesktop.org TGlzdGluZyBjb25maWd1cmF0aW9ucyBhdCB0aGUgbW9tZW50IGlzIHN1cHBvcnRlZCBvbmx5IHRo cm91Z2ggc3lzZnMuClRoaXMgbWlnaHQgY2F1c2UgaXNzdWVzIGZvciBhcHBsaWNhdGlvbnMgd2Fu dGluZyB0byBsaXN0CmNvbmZpZ3VyYXRpb25zIGZyb20gYSBjb250YWluZXIgd2hlcmUgc3lzZnMg aXNuJ3QgYXZhaWxhYmxlLgoKVGhpcyBjaGFuZ2UgYWRkcyBhIHdheSB0byBxdWVyeSB0aGUgbnVt YmVyIG9mIGNvbmZpZ3VyYXRpb25zIGFuZCB0aGVpcgpjb250ZW50IHRocm91Z2ggdGhlIGk5MTUg cXVlcnkgdUFQSS4KCnYyOiBGaXggc3BhcnNlIHdhcm5pbmdzIChMaW9uZWwpCiAgICBBZGQgc3Vw cG9ydCB0byBxdWVyeSBjb25maWd1cmF0aW9uIHVzaW5nIHV1aWQgKExpb25lbCkKClNpZ25lZC1v ZmYtYnk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgfCAgIDYgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgIHwgICA0ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcXVlcnkuYyB8IDI4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUv dWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICB8ICA2MiArKysrKystCiA0IGZpbGVzIGNoYW5nZWQs IDM1NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggNjEwNGQ3MTE1MDU0Li5lZjAzZmZmZWZjMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aApAQCAtMTk0NSw2ICsxOTQ1LDEyIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJICov CiAJCXN0cnVjdCBpZHIgbWV0cmljc19pZHI7CiAKKwkJLyoKKwkJICogTnVtYmVyIG9mIGR5bmFt aWMgY29uZmlndXJhdGlvbnMsIHlvdSBuZWVkIHRvIGhvbGQKKwkJICogZGV2X3ByaXYtPnBlcmYu bWV0cmljc19sb2NrIHRvIGFjY2VzcyBpdC4KKwkJICovCisJCXUzMiBuX21ldHJpY3M7CisKIAkJ LyoKIAkJICogTG9jayBhc3NvY2lhdGVkIHdpdGggYW55dGhpbmcgYmVsb3cgd2l0aGluIHRoaXMg c3RydWN0dXJlCiAJCSAqIGV4Y2VwdCBleGNsdXNpdmVfc3RyZWFtLgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BlcmYuYwppbmRleCA4ODFhOTkyMzA1ZWMuLmM3YTM3MjFhZTkzZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wZXJmLmMKQEAgLTMzNTcsNiArMzM1Nyw4IEBAIGludCBpOTE1X3BlcmZfYWRkX2NvbmZp Z19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlnb3RvIHN5c2Zz X2VycjsKIAl9CiAKKwlkZXZfcHJpdi0+cGVyZi5uX21ldHJpY3MrKzsKKwogCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPnBlcmYubWV0cmljc19sb2NrKTsKIAogCURSTV9ERUJVRygiQWRkZWQgY29u ZmlnICVzIGlkPSVpXG4iLCBvYV9jb25maWctPnV1aWQsIG9hX2NvbmZpZy0+aWQpOwpAQCAtMzQx OCw2ICszNDIwLDggQEAgaW50IGk5MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAKIAlpZHJfcmVtb3ZlKCZkZXZfcHJpdi0+cGVy Zi5tZXRyaWNzX2lkciwgKmFyZyk7CiAKKwlkZXZfcHJpdi0+cGVyZi5uX21ldHJpY3MtLTsKKwog CURSTV9ERUJVRygiUmVtb3ZlZCBjb25maWcgJXMgaWQ9JWlcbiIsIG9hX2NvbmZpZy0+dXVpZCwg b2FfY29uZmlnLT5pZCk7CiAKIAlwdXRfb2FfY29uZmlnKGRldl9wcml2LCBvYV9jb25maWcpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jCmluZGV4IDNmNTAyZWVmMjQzMS4uMDZjYzM0ZDljYjRh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jCkBAIC04NCw5ICs4NCwyOTQgQEAgc3RhdGlj IGludCBxdWVyeV90b3BvbG9neV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlyZXR1cm4gdG90YWxfbGVuZ3RoOwogfQogCitzdGF0aWMgaW50IGNhbl9jb3B5X3BlcmZf Y29uZmlnX3JlZ2lzdGVyc19vcl9udW1iZXIodTMyIHVzZXJfbl9yZWdzLAorCQkJCQkJICAgIHU2 NCB1c2VyX3JlZ3NfcHRyLAorCQkJCQkJICAgIHUzMiBrZXJuZWxfbl9yZWdzKQoreworCS8qCisJ ICogV2UnbGwganVzdCBwdXQgdGhlIG51bWJlciBvZiByZWdpc3RlcnMsIGFuZCB3b24ndCBjb3B5 IHRoZQorCSAqIHJlZ2lzdGVyLgorCSAqLworCWlmICh1c2VyX25fcmVncyA9PSAwKQorCQlyZXR1 cm4gMDsKKworCWlmICh1c2VyX25fcmVncyA8IGtlcm5lbF9uX3JlZ3MpCisJCXJldHVybiAtRUlO VkFMOworCisJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCB1NjRfdG9fdXNlcl9wdHIodXNl cl9yZWdzX3B0ciksCisJCSAgICAgICAyICogc2l6ZW9mKHUzMikgKiBrZXJuZWxfbl9yZWdzKSkK KwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjb3B5X3Bl cmZfY29uZmlnX3JlZ2lzdGVyc19vcl9udW1iZXIoY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICpr ZXJuZWxfcmVncywKKwkJCQkJCXUzMiBrZXJuZWxfbl9yZWdzLAorCQkJCQkJdTY0IHVzZXJfcmVn c19wdHIsCisJCQkJCQl1MzIgKnVzZXJfbl9yZWdzKQoreworCXUzMiByOworCisJaWYgKCp1c2Vy X25fcmVncyA9PSAwKSB7CisJCSp1c2VyX25fcmVncyA9IGtlcm5lbF9uX3JlZ3M7CisJCXJldHVy biAwOworCX0KKworCSp1c2VyX25fcmVncyA9IGtlcm5lbF9uX3JlZ3M7CisKKwlmb3IgKHIgPSAw OyByIDwga2VybmVsX25fcmVnczsgcisrKSB7CisJCXUzMiBfX3VzZXIgKnVzZXJfcmVnX3B0ciA9 CisJCQl1NjRfdG9fdXNlcl9wdHIodXNlcl9yZWdzX3B0ciArIHNpemVvZih1MzIpICogciAqIDIp OworCQl1MzIgX191c2VyICp1c2VyX3ZhbF9wdHIgPQorCQkJdTY0X3RvX3VzZXJfcHRyKHVzZXJf cmVnc19wdHIgKyBzaXplb2YodTMyKSAqIHIgKiAyICsKKwkJCQkJc2l6ZW9mKHUzMikpOworCQlp bnQgcmV0OworCisJCXJldCA9IF9fcHV0X3VzZXIoaTkxNV9tbWlvX3JlZ19vZmZzZXQoa2VybmVs X3JlZ3Nbcl0uYWRkciksCisJCQkJIHVzZXJfcmVnX3B0cik7CisJCWlmIChyZXQpCisJCQlyZXR1 cm4gLUVGQVVMVDsKKworCQlyZXQgPSBfX3B1dF91c2VyKGtlcm5lbF9yZWdzW3JdLnZhbHVlLCB1 c2VyX3ZhbF9wdHIpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIC1FRkFVTFQ7CisJfQorCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcXVlcnlfcGVyZl9jb25maWdfZGF0YShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQkgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICpx dWVyeV9pdGVtLAorCQkJCSAgYm9vbCB1c2VfdXVpZCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcXVl cnlfcGVyZl9jb25maWcgX191c2VyICp1c2VyX3F1ZXJ5X2NvbmZpZ19wdHIgPQorCQl1NjRfdG9f dXNlcl9wdHIocXVlcnlfaXRlbS0+ZGF0YV9wdHIpOworCXN0cnVjdCBkcm1faTkxNV9wZXJmX29h X2NvbmZpZyBfX3VzZXIgKnVzZXJfY29uZmlnX3B0ciA9CisJCXU2NF90b191c2VyX3B0cihxdWVy eV9pdGVtLT5kYXRhX3B0ciArCisJCQkJc2l6ZW9mKHN0cnVjdCBkcm1faTkxNV9xdWVyeV9wZXJm X2NvbmZpZykpOworCXN0cnVjdCBkcm1faTkxNV9wZXJmX29hX2NvbmZpZyB1c2VyX2NvbmZpZzsK KwlzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZyA9IE5VTEw7CisJdTMyIGZsYWdzLCB0 b3RhbF9zaXplOworCWludCByZXQ7CisKKwlpZiAoIWk5MTUtPnBlcmYuaW5pdGlhbGl6ZWQpCisJ CXJldHVybiAtRU5PREVWOworCisJdG90YWxfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZHJtX2k5MTVf cXVlcnlfcGVyZl9jb25maWcpICsKKwkJc2l6ZW9mKHN0cnVjdCBkcm1faTkxNV9wZXJmX29hX2Nv bmZpZyk7CisKKwlpZiAocXVlcnlfaXRlbS0+bGVuZ3RoID09IDApCisJCXJldHVybiB0b3RhbF9z aXplOworCisJaWYgKHF1ZXJ5X2l0ZW0tPmxlbmd0aCA8IHRvdGFsX3NpemUpCisJCXJldHVybiAt RUlOVkFMOworCisJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCB1c2VyX3F1ZXJ5X2NvbmZp Z19wdHIsIHRvdGFsX3NpemUpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWlmIChfX2dldF91c2Vy KGZsYWdzLCAmdXNlcl9xdWVyeV9jb25maWdfcHRyLT5mbGFncykpCisJCXJldHVybiAtRUZBVUxU OworCisJaWYgKGZsYWdzICE9IDApCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gbXV0ZXhf bG9ja19pbnRlcnJ1cHRpYmxlKCZpOTE1LT5wZXJmLm1ldHJpY3NfbG9jayk7CisJaWYgKHJldCkK KwkJcmV0dXJuIHJldDsKKworCWlmICh1c2VfdXVpZCkgeworCQljaGFyIHV1aWRbVVVJRF9TVFJJ TkdfTEVOICsgMV0gPSB7IDAsIH07CisJCXN0cnVjdCBpOTE1X29hX2NvbmZpZyAqdG1wOworCQlp bnQgaWQ7CisKKwkJQlVJTERfQlVHX09OKHNpemVvZih1c2VyX3F1ZXJ5X2NvbmZpZ19wdHItPnV1 aWQpID49IHNpemVvZih1dWlkKSk7CisKKwkJaWYgKF9fY29weV9mcm9tX3VzZXIodXVpZCwgdXNl cl9xdWVyeV9jb25maWdfcHRyLT51dWlkLAorCQkJCSAgICAgc2l6ZW9mKHVzZXJfcXVlcnlfY29u ZmlnX3B0ci0+dXVpZCkpKSB7CisJCQlyZXQgPSAtRUZBVUxUOworCQkJZ290byBvdXQ7CisJCX0K KworCQlpZHJfZm9yX2VhY2hfZW50cnkoJmk5MTUtPnBlcmYubWV0cmljc19pZHIsIHRtcCwgaWQp IHsKKwkJCWlmICghc3RyY21wKHRtcC0+dXVpZCwgdXVpZCkpIHsKKwkJCQlvYV9jb25maWcgPSB0 bXA7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9IGVsc2UgeworCQl1NjQgY29uZmlnX2lkOwor CisJCWlmIChfX2dldF91c2VyKGNvbmZpZ19pZCwgJnVzZXJfcXVlcnlfY29uZmlnX3B0ci0+Y29u ZmlnKSkKKwkJCXJldHVybiAtRUZBVUxUOworCisJCWlmIChjb25maWdfaWQgPT0gMSkKKwkJCW9h X2NvbmZpZyA9ICZpOTE1LT5wZXJmLm9hLnRlc3RfY29uZmlnOworCQllbHNlCisJCQlvYV9jb25m aWcgPSBpZHJfZmluZCgmaTkxNS0+cGVyZi5tZXRyaWNzX2lkciwgY29uZmlnX2lkKTsKKwl9CisK KwlpZiAoIW9hX2NvbmZpZykgeworCQlyZXQgPSAtRU5PRU5UOworCQlnb3RvIG91dDsKKwl9CisK KwlpZiAoX19jb3B5X2Zyb21fdXNlcigmdXNlcl9jb25maWcsIHVzZXJfY29uZmlnX3B0ciwKKwkJ CSAgICAgc2l6ZW9mKHVzZXJfY29uZmlnKSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBv dXQ7CisJfQorCisJcmV0ID0gY2FuX2NvcHlfcGVyZl9jb25maWdfcmVnaXN0ZXJzX29yX251bWJl cih1c2VyX2NvbmZpZy5uX2Jvb2xlYW5fcmVncywKKwkJCQkJCSAgICAgICB1c2VyX2NvbmZpZy5i b29sZWFuX3JlZ3NfcHRyLAorCQkJCQkJICAgICAgIG9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3Nf bGVuKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCXJldCA9IGNhbl9jb3B5X3BlcmZfY29u ZmlnX3JlZ2lzdGVyc19vcl9udW1iZXIodXNlcl9jb25maWcubl9mbGV4X3JlZ3MsCisJCQkJCQkg ICAgICAgdXNlcl9jb25maWcuZmxleF9yZWdzX3B0ciwKKwkJCQkJCSAgICAgICBvYV9jb25maWct PmZsZXhfcmVnc19sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJcmV0ID0gY2FuX2Nv cHlfcGVyZl9jb25maWdfcmVnaXN0ZXJzX29yX251bWJlcih1c2VyX2NvbmZpZy5uX211eF9yZWdz LAorCQkJCQkJICAgICAgIHVzZXJfY29uZmlnLm11eF9yZWdzX3B0ciwKKwkJCQkJCSAgICAgICBv YV9jb25maWctPm11eF9yZWdzX2xlbik7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlyZXQg PSBjb3B5X3BlcmZfY29uZmlnX3JlZ2lzdGVyc19vcl9udW1iZXIob2FfY29uZmlnLT5iX2NvdW50 ZXJfcmVncywKKwkJCQkJCSAgIG9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3NfbGVuLAorCQkJCQkJ ICAgdXNlcl9jb25maWcuYm9vbGVhbl9yZWdzX3B0ciwKKwkJCQkJCSAgICZ1c2VyX2NvbmZpZy5u X2Jvb2xlYW5fcmVncyk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlyZXQgPSBjb3B5X3Bl cmZfY29uZmlnX3JlZ2lzdGVyc19vcl9udW1iZXIob2FfY29uZmlnLT5mbGV4X3JlZ3MsCisJCQkJ CQkgICBvYV9jb25maWctPmZsZXhfcmVnc19sZW4sCisJCQkJCQkgICB1c2VyX2NvbmZpZy5mbGV4 X3JlZ3NfcHRyLAorCQkJCQkJICAgJnVzZXJfY29uZmlnLm5fZmxleF9yZWdzKTsKKwlpZiAocmV0 KQorCQlnb3RvIG91dDsKKworCXJldCA9IGNvcHlfcGVyZl9jb25maWdfcmVnaXN0ZXJzX29yX251 bWJlcihvYV9jb25maWctPm11eF9yZWdzLAorCQkJCQkJICAgb2FfY29uZmlnLT5tdXhfcmVnc19s ZW4sCisJCQkJCQkgICB1c2VyX2NvbmZpZy5tdXhfcmVnc19wdHIsCisJCQkJCQkgICAmdXNlcl9j b25maWcubl9tdXhfcmVncyk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwltZW1jcHkodXNl cl9jb25maWcudXVpZCwgb2FfY29uZmlnLT51dWlkLCBzaXplb2YodXNlcl9jb25maWcudXVpZCkp OworCisJaWYgKF9fY29weV90b191c2VyKHVzZXJfY29uZmlnX3B0ciwgJnVzZXJfY29uZmlnLAor CQkJICAgc2l6ZW9mKHVzZXJfY29uZmlnKSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBv dXQ7CisJfQorCisJcmV0ID0gdG90YWxfc2l6ZTsKKworb3V0OgorCW11dGV4X3VubG9jaygmaTkx NS0+cGVyZi5tZXRyaWNzX2xvY2spOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcXVl cnlfcGVyZl9jb25maWdfbGlzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQkg IHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICpxdWVyeV9pdGVtKQoreworCXN0cnVjdCBkcm1f aTkxNV9xdWVyeV9wZXJmX2NvbmZpZyBfX3VzZXIgKnVzZXJfcXVlcnlfY29uZmlnX3B0ciA9CisJ CXU2NF90b191c2VyX3B0cihxdWVyeV9pdGVtLT5kYXRhX3B0cik7CisJc3RydWN0IGk5MTVfb2Ff Y29uZmlnICpvYV9jb25maWc7CisJdTMyIGZsYWdzLCB0b3RhbF9zaXplOworCXU2NCBuX2NvbmZp Z3M7CisJaW50IHJldCwgaWQ7CisKKwlpZiAoIWk5MTUtPnBlcmYuaW5pdGlhbGl6ZWQpCisJCXJl dHVybiAtRU5PREVWOworCisJLyogQ291bnQgdGhlIGRlZmF1bHQgdGVzdCBjb25maWd1cmF0aW9u ICovCisJbl9jb25maWdzID0gaTkxNS0+cGVyZi5uX21ldHJpY3MgKyAxOworCXRvdGFsX3NpemUg PSBzaXplb2Yoc3RydWN0IGRybV9pOTE1X3F1ZXJ5X3BlcmZfY29uZmlnKSArCisJCXNpemVvZih1 NjQpICogbl9jb25maWdzOworCisJaWYgKHF1ZXJ5X2l0ZW0tPmxlbmd0aCA9PSAwKSB7CisJCXJl dCA9IHRvdGFsX3NpemU7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChxdWVyeV9pdGVtLT5sZW5n dGggPCB0b3RhbF9zaXplKSB7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKwor CWlmICghYWNjZXNzX29rKFZFUklGWV9XUklURSwgdXNlcl9xdWVyeV9jb25maWdfcHRyLCB0b3Rh bF9zaXplKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoX19n ZXRfdXNlcihmbGFncywgJnVzZXJfcXVlcnlfY29uZmlnX3B0ci0+ZmxhZ3MpKSB7CisJCXJldCA9 IC1FRkFVTFQ7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChmbGFncyAhPSAwKSB7CisJCXJldCA9 IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChfX3B1dF91c2VyKG5fY29uZmlncywg JnVzZXJfcXVlcnlfY29uZmlnX3B0ci0+Y29uZmlnKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQln b3RvIG91dDsKKwl9CisKKwlpZiAoX19wdXRfdXNlcigodTY0KTFVTEwsICZ1c2VyX3F1ZXJ5X2Nv bmZpZ19wdHItPmRhdGFbMF0pKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0OworCX0K KworCXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmaTkxNS0+cGVyZi5tZXRyaWNzX2xv Y2spOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwluX2NvbmZpZ3MgPSAxOworCWlkcl9m b3JfZWFjaF9lbnRyeSgmaTkxNS0+cGVyZi5tZXRyaWNzX2lkciwgb2FfY29uZmlnLCBpZCkgewor CQl1NjQgX191c2VyICppdGVtID0KKwkJCXU2NF90b191c2VyX3B0cihxdWVyeV9pdGVtLT5kYXRh X3B0ciArCisJCQkJCXNpemVvZihzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfcGVyZl9jb25maWcpICsK KwkJCQkJbl9jb25maWdzICogc2l6ZW9mKHU2NCkpOworCisJCWlmIChfX3B1dF91c2VyKCh1NjQp aWQsIGl0ZW0pKSB7CisJCQlyZXQgPSAtRUZBVUxUOworCQkJZ290byBvdXQ7CisJCX0KKwkJbl9j b25maWdzKys7CisJfQorCisJcmV0ID0gdG90YWxfc2l6ZTsKKworb3V0OgorCW11dGV4X3VubG9j aygmaTkxNS0+cGVyZi5tZXRyaWNzX2xvY2spOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBp bnQgcXVlcnlfcGVyZl9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkg ICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICpxdWVyeV9pdGVtKQoreworCXN3aXRjaCAo cXVlcnlfaXRlbS0+ZmxhZ3MpIHsKKwljYXNlIERSTV9JOTE1X1FVRVJZX1BFUkZfQ09ORklHX0xJ U1Q6CisJCXJldHVybiBxdWVyeV9wZXJmX2NvbmZpZ19saXN0KGk5MTUsIHF1ZXJ5X2l0ZW0pOwor CWNhc2UgRFJNX0k5MTVfUVVFUllfUEVSRl9DT05GSUdfREFUQV9GT1JfVVVJRDoKKwkJcmV0dXJu IHF1ZXJ5X3BlcmZfY29uZmlnX2RhdGEoaTkxNSwgcXVlcnlfaXRlbSwgdHJ1ZSk7CisJY2FzZSBE Uk1fSTkxNV9RVUVSWV9QRVJGX0NPTkZJR19EQVRBX0ZPUl9JRDoKKwkJcmV0dXJuIHF1ZXJ5X3Bl cmZfY29uZmlnX2RhdGEoaTkxNSwgcXVlcnlfaXRlbSwgZmFsc2UpOworCWRlZmF1bHQ6CisJCXJl dHVybiAtRUlOVkFMOworCX0KK30KKwogc3RhdGljIGludCAoKiBjb25zdCBpOTE1X3F1ZXJ5X2Z1 bmNzW10pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJc3RydWN0IGRy bV9pOTE1X3F1ZXJ5X2l0ZW0gKnF1ZXJ5X2l0ZW0pID0gewogCXF1ZXJ5X3RvcG9sb2d5X2luZm8s CisJcXVlcnlfcGVyZl9jb25maWcsCiB9OwogCiBpbnQgaTkxNV9xdWVyeV9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCmRpZmYg LS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5 MTVfZHJtLmgKaW5kZXggN2Y1NjM0Y2U4ZTg4Li4yZmVlNTlkNmI0ZTQgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJt LmgKQEAgLTE2MjAsNiArMTYyMCw3IEBAIHN0cnVjdCBkcm1faTkxNV9wZXJmX29hX2NvbmZpZyB7 CiBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSB7CiAJX191NjQgcXVlcnlfaWQ7CiAjZGVmaW5l IERSTV9JOTE1X1FVRVJZX1RPUE9MT0dZX0lORk8gICAgMQorI2RlZmluZSBEUk1fSTkxNV9RVUVS WV9QRVJGX0NPTkZJRyAgICAgIDIKIAogCS8qCiAJICogV2hlbiBzZXQgdG8gemVybyBieSB1c2Vy c3BhY2UsIHRoaXMgaXMgZmlsbGVkIHdpdGggdGhlIHNpemUgb2YgdGhlCkBAIC0xNjQ2LDkgKzE2 NDcsMTggQEAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5IHsKIAlfX3UzMiBudW1faXRlbXM7CiAKIAkv KgotCSAqIFVudXNlZCBmb3Igbm93LiBNdXN0IGJlIGNsZWFyZWQgdG8gemVyby4KKwkgKiBXaGVu IHF1ZXJ5X2lkID09IERSTV9JOTE1X1FVRVJZX1RPUE9MT0dZX0lORk8sIG11c3QgYmUgMC4KKwkg KgorCSAqIFdoZW4gcXVlcnlfaWQgPT0gRFJNX0k5MTVfUVVFUllfUEVSRl9DT05GSUcsIG11c3Qg YmUgb25lIG9mIHRoZQorCSAqIGZvbGxvd2luZyA6CisJICogICAgICAgICAtIERSTV9JOTE1X1FV RVJZX1BFUkZfQ09ORklHX0xJU1QKKwkgKiAgICAgICAgIC0gRFJNX0k5MTVfUVVFUllfUEVSRl9D T05GSUdfREFUQV9GT1JfVVVJRAorCSAqICAgICAgICAgLSBEUk1fSTkxNV9RVUVSWV9QRVJGX0NP TkZJR19GT1JfVVVJRAogCSAqLwogCV9fdTMyIGZsYWdzOworI2RlZmluZSBEUk1fSTkxNV9RVUVS WV9QRVJGX0NPTkZJR19MSVNUICAgICAgICAgIDEKKyNkZWZpbmUgRFJNX0k5MTVfUVVFUllfUEVS Rl9DT05GSUdfREFUQV9GT1JfVVVJRCAyCisjZGVmaW5lIERSTV9JOTE1X1FVRVJZX1BFUkZfQ09O RklHX0RBVEFfRk9SX0lEICAgMwogCiAJLyoKIAkgKiBUaGlzIHBvaW50cyB0byBhbiBhcnJheSBv ZiBudW1faXRlbXMgZHJtX2k5MTVfcXVlcnlfaXRlbSBzdHJ1Y3R1cmVzLgpAQCAtMTcxNyw2ICsx NzI3LDU2IEBAIHN0cnVjdCBkcm1faTkxNV9xdWVyeV90b3BvbG9neV9pbmZvIHsKIAlfX3U4IGRh dGFbXTsKIH07CiAKKy8qCisgKiBEYXRhIHdyaXR0ZW4gYnkgdGhlIGtlcm5lbCB3aXRoIHF1ZXJ5 IERSTV9JOTE1X1FVRVJZX1BFUkZfQ09ORklHLgorICovCitzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlf cGVyZl9jb25maWcgeworCXVuaW9uIHsKKwkJLyoKKwkJICogV2hlbiBxdWVyeV9pdGVtLmZsYWdz ID09IERSTV9JOTE1X1FVRVJZX1BFUkZfQ09ORklHX0xJU1QsIGk5MTUgc2V0cworCQkgKiB0aGlz IGZpZWxkcyB0byB0aGUgbnVtYmVyIG9mIGNvbmZpZ3VyYXRpb25zIGF2YWlsYWJsZS4KKwkJICov CisJCV9fdTY0IG5fY29uZmlnczsKKworCQkvKgorCQkgKiBXaGVuIHF1ZXJ5X2lkID09IERSTV9J OTE1X1FVRVJZX1BFUkZfQ09ORklHX0RBVEFfRk9SX0lELAorCQkgKiBpOTE1IHdpbGwgdXNlIHRo ZSB2YWx1ZSBpbiB0aGlzIGZpZWxkIGFzIGNvbmZpZ3VyYXRpb24KKwkJICogaWRlbnRpZmllciB0 byBkZWNpZGUgd2hhdCBkYXRhIHRvIHdyaXRlIGludG8gY29uZmlnX3B0ci4KKwkJICovCisJCV9f dTY0IGNvbmZpZzsKKworCQkvKgorCQkgKiBXaGVuIHF1ZXJ5X2lkID09IERSTV9JOTE1X1FVRVJZ X1BFUkZfQ09ORklHX0RBVEFfRk9SX1VVSUQsCisJCSAqIGk5MTUgd2lsbCB1c2UgdGhlIHZhbHVl IGluIHRoaXMgZmllbGQgYXMgY29uZmlndXJhdGlvbgorCQkgKiBpZGVudGlmaWVyIHRvIGRlY2lk ZSB3aGF0IGRhdGEgdG8gd3JpdGUgaW50byBjb25maWdfcHRyLgorCQkgKgorCQkgKiBTdHJpbmcg Zm9ybWF0dGVkIGxpa2UgIiUwOHgtJTA0eC0lMDR4LSUwNHgtJTAxMngiCisJCSAqLworCQljaGFy IHV1aWRbMzZdOworCX07CisKKwkvKgorCSAqIFVudXNlZCBmb3Igbm93LiBNdXN0IGJlIGNsZWFy ZWQgdG8gemVyby4KKwkgKi8KKwlfX3UzMiBmbGFnczsKKworCS8qCisJICogV2hlbiBxdWVyeV9p dGVtLmZsYWdzID09IERSTV9JOTE1X1FVRVJZX1BFUkZfQ09ORklHX0xJU1QsIGk5MTUgd2lsbAor CSAqIHdyaXRlIGFuIGFycmF5IG9mIF9fdTY0IG9mIGNvbmZpZ3VyYXRpb24gaWRlbnRpZmllcnMu CisJICoKKwkgKiBXaGVuIHF1ZXJ5X2l0ZW0uZmxhZ3MgPT0gRFJNX0k5MTVfUVVFUllfUEVSRl9D T05GSUdfREFUQSwgaTkxNSB3aWxsCisJICogd3JpdGUgYSBzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9v YV9jb25maWcuIElmIHRoZSBmb2xsb3dpbmcgZmllbGRzIG9mCisJICogZHJtX2k5MTVfcGVyZl9v YV9jb25maWcgYXJlIHNldCBub3Qgc2V0IHRvIDAsIGk5MTUgd2lsbCB3cml0ZSBpbnRvCisJICog dGhlIGFzc29jaWF0ZWQgcG9pbnRlcnMgdGhlIHZhbHVlcyBvZiBzdWJtaXR0ZWQgd2hlbiB0aGUK KwkgKiBjb25maWd1cmF0aW9uIHdhcyBjcmVhdGVkIDoKKwkgKgorCSAqICAgICAgICAgLSBuX211 eF9yZWdzCisJICogICAgICAgICAtIG5fYm9vbGVhbl9yZWdzCisJICogICAgICAgICAtIG5fZmxl eF9yZWdzCisJICovCisJX191OCBkYXRhW107Cit9OworCiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1 cykKIH0KICNlbmRpZgotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK