From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kim, Jonathan" Subject: [PATCH 1/2] drm/amdgpu: add perfmon and fica atomics for df Date: Fri, 12 Jul 2019 18:38:59 +0000 Message-ID: <20190712183847.2897-1-jonathan.kim@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Kim, Jonathan" YWRkaW5nIHBlcmZtb24gYW5kIGZpY2EgYXRvbWljIG9wZXJhdGlvbnMgdG8gYWRoZXJlIHRvIGRh dGEgZmFicmljcyBmaW5pdGUKc3RhdGUgbWFjaGluZSByZXF1aXJlbWVudHMgZm9yIGluZGlyZWN0 IHJlZ2lzdGVyIGFjY2Vzcy4KCkNoYW5nZS1JZDogSTJhYjE3ZmQ1OWQ1NjZiNDI1MWM5YTlkMGU2 N2I4OTdiOGMyMjEyNDkKU2lnbmVkLW9mZi1ieTogSm9uYXRoYW4gS2ltIDxKb25hdGhhbi5LaW1A YW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgfCAgIDMg KwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGZfdjNfNi5jIHwgMjAyICsrKysrKysrKysr KysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgNzcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAppbmRleCBlNjQ2OWUy M2I3NmYuLjE5OGFhNjBjNDNiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKQEAg LTcwNyw2ICs3MDcsOSBAQCBzdHJ1Y3QgYW1kZ3B1X2RmX2Z1bmNzIHsKIAkJCQkJIGludCBpc19k aXNhYmxlKTsKIAl2b2lkICgqcG1jX2dldF9jb3VudCkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIHVpbnQ2NF90IGNvbmZpZywKIAkJCQkJIHVpbnQ2NF90ICpjb3VudCk7CisJdWludDY0X3Qg KCpnZXRfZmljYSkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IGZpY2FhX3Zh bCk7CisJdm9pZCAoKnNldF9maWNhKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMy X3QgZmljYWFfdmFsLAorCQkJIHVpbnQzMl90IGZpY2FkbF92YWwsIHVpbnQzMl90IGZpY2FkaF92 YWwpOwogfTsKIC8qIERlZmluZSB0aGUgSFcgSVAgYmxvY2tzIHdpbGwgYmUgdXNlZCBpbiBkcml2 ZXIgLCBhZGQgbW9yZSBpZiBuZWNlc3NhcnkgKi8KIGVudW0gYW1kX2h3X2lwX2Jsb2NrX3R5cGUg ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGZfdjNfNi5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGZfdjNfNi5jCmluZGV4IGVmNmU5MWY5ZjUxYy4uZGNj N2JlMGM5ZDMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kZl92M182 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGZfdjNfNi5jCkBAIC05Myw2ICs5 Myw5NiBAQCBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpkZl92M182X2F0dHJfZ3JvdXBz W10gPSB7CiAJCU5VTEwKIH07CiAKK3N0YXRpYyB1aW50NjRfdCBkZl92M182X2dldF9maWNhKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCSB1aW50MzJfdCBmaWNhYV92YWwpCit7CisJ dW5zaWduZWQgbG9uZyBmbGFncywgYWRkcmVzcywgZGF0YTsKKwl1aW50MzJfdCBmaWNhZGxfdmFs LCBmaWNhZGhfdmFsOworCisJYWRkcmVzcyA9IGFkZXYtPm5iaW9fZnVuY3MtPmdldF9wY2llX2lu ZGV4X29mZnNldChhZGV2KTsKKwlkYXRhID0gYWRldi0+bmJpb19mdW5jcy0+Z2V0X3BjaWVfZGF0 YV9vZmZzZXQoYWRldik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmYWRldi0+cGNpZV9pZHhfbG9j aywgZmxhZ3MpOworCVdSRUczMihhZGRyZXNzLCBzbW5ERl9QSUVfQU9OX0ZhYnJpY0luZGlyZWN0 Q29uZmlnQWNjZXNzQWRyZXNzNSk7CisJV1JFRzMyKGRhdGEsIGZpY2FhX3ZhbCk7CisKKwlXUkVH MzIoYWRkcmVzcywgc21uREZfUElFX0FPTl9GYWJyaWNJbmRpcmVjdENvbmZpZ0FjY2Vzc0RhdGFM bzUpOworCWZpY2FkbF92YWwgPSBSUkVHMzIoZGF0YSk7CisKKwlXUkVHMzIoYWRkcmVzcywgc21u REZfUElFX0FPTl9GYWJyaWNJbmRpcmVjdENvbmZpZ0FjY2Vzc0RhdGFIaTUpOworCWZpY2FkaF92 YWwgPSBSUkVHMzIoZGF0YSk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhZGV2LT5wY2ll X2lkeF9sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gKCgoZmljYWRoX3ZhbCAmIDB4RkZGRkZGRkZG RkZGRkZGRikgPDwgMzIpIHwgZmljYWRsX3ZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIGRmX3YzXzZf c2V0X2ZpY2Eoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IGZpY2FhX3ZhbCwK KwkJCSAgICAgdWludDMyX3QgZmljYWRsX3ZhbCwgdWludDMyX3QgZmljYWRoX3ZhbCkKK3sKKwl1 bnNpZ25lZCBsb25nIGZsYWdzLCBhZGRyZXNzLCBkYXRhOworCisJYWRkcmVzcyA9IGFkZXYtPm5i aW9fZnVuY3MtPmdldF9wY2llX2luZGV4X29mZnNldChhZGV2KTsKKwlkYXRhID0gYWRldi0+bmJp b19mdW5jcy0+Z2V0X3BjaWVfZGF0YV9vZmZzZXQoYWRldik7CisKKwlzcGluX2xvY2tfaXJxc2F2 ZSgmYWRldi0+cGNpZV9pZHhfbG9jaywgZmxhZ3MpOworCVdSRUczMihhZGRyZXNzLCBzbW5ERl9Q SUVfQU9OX0ZhYnJpY0luZGlyZWN0Q29uZmlnQWNjZXNzQWRyZXNzNSk7CisJV1JFRzMyKGRhdGEs IGZpY2FhX3ZhbCk7CisKKwlXUkVHMzIoYWRkcmVzcywgc21uREZfUElFX0FPTl9GYWJyaWNJbmRp cmVjdENvbmZpZ0FjY2Vzc0RhdGFMbzUpOworCVdSRUczMihkYXRhLCBmaWNhZGxfdmFsKTsKKwor CVdSRUczMihhZGRyZXNzLCBzbW5ERl9QSUVfQU9OX0ZhYnJpY0luZGlyZWN0Q29uZmlnQWNjZXNz RGF0YUhpNSk7CisJV1JFRzMyKGRhdGEsIGZpY2FkaF92YWwpOworCisJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmYWRldi0+cGNpZV9pZHhfbG9jaywgZmxhZ3MpOworfQorCisvKgorICogZGZfdjNf Nl9wZXJmbW9uX3JyZWcgLSByZWFkIHBlcmZtb24gbG8gYW5kIGhpCisgKgorICogcmVxdWlyZWQg dG8gYmUgYXRvbWljLiAgbm8gbW1pbyBtZXRob2QgcHJvdmlkZWQgc28gc3Vic2VxdWVudCByZWFk cyBmb3IgbG8KKyAqIGFuZCBoaSByZXF1aXJlIHRvIHByZXNlcnZlIGRmIGZpbml0ZSBzdGF0ZSBt YWNoaW5lCisgKi8KK3N0YXRpYyB2b2lkIGRmX3YzXzZfcGVyZm1vbl9ycmVnKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAorCQkJICAgIHVpbnQzMl90IGxvX2FkZHIsIHVpbnQzMl90ICpsb192 YWwsCisJCQkgICAgdWludDMyX3QgaGlfYWRkciwgdWludDMyX3QgKmhpX3ZhbCkKK3sKKwl1bnNp Z25lZCBsb25nIGZsYWdzLCBhZGRyZXNzLCBkYXRhOworCisJYWRkcmVzcyA9IGFkZXYtPm5iaW9f ZnVuY3MtPmdldF9wY2llX2luZGV4X29mZnNldChhZGV2KTsKKwlkYXRhID0gYWRldi0+bmJpb19m dW5jcy0+Z2V0X3BjaWVfZGF0YV9vZmZzZXQoYWRldik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgm YWRldi0+cGNpZV9pZHhfbG9jaywgZmxhZ3MpOworCVdSRUczMihhZGRyZXNzLCBsb19hZGRyKTsK KwkqbG9fdmFsID0gUlJFRzMyKGRhdGEpOworCVdSRUczMihhZGRyZXNzLCBoaV9hZGRyKTsKKwkq aGlfdmFsID0gUlJFRzMyKGRhdGEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPnBj aWVfaWR4X2xvY2ssIGZsYWdzKTsKK30KKworLyoKKyAqIGRmX3YzXzZfcGVyZm1vbl93cmVnIC0g d3JpdGUgdG8gcGVyZm1vbiBsbyBhbmQgaGkKKyAqCisgKiByZXF1aXJlZCB0byBiZSBhdG9taWMu ICBubyBtbWlvIG1ldGhvZCBwcm92aWRlZCBzbyBzdWJzZXF1ZW50IHJlYWRzIGFmdGVyCisgKiBk YXRhIHdyaXRlcyBjYW5ub3Qgb2NjdXIgdG8gcHJlc2VydmUgZGF0YSBmYWJyaWNzIGZpbml0ZSBz dGF0ZSBtYWNoaW5lLgorICovCitzdGF0aWMgdm9pZCBkZl92M182X3BlcmZtb25fd3JlZyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3QgbG9fYWRkciwKKwkJCSAgICB1aW50MzJf dCBsb192YWwsIHVpbnQzMl90IGhpX2FkZHIsIHVpbnQzMl90IGhpX3ZhbCkKK3sKKwl1bnNpZ25l ZCBsb25nIGZsYWdzLCBhZGRyZXNzLCBkYXRhOworCisJYWRkcmVzcyA9IGFkZXYtPm5iaW9fZnVu Y3MtPmdldF9wY2llX2luZGV4X29mZnNldChhZGV2KTsKKwlkYXRhID0gYWRldi0+bmJpb19mdW5j cy0+Z2V0X3BjaWVfZGF0YV9vZmZzZXQoYWRldik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmYWRl di0+cGNpZV9pZHhfbG9jaywgZmxhZ3MpOworCVdSRUczMihhZGRyZXNzLCBsb19hZGRyKTsKKwlX UkVHMzIoZGF0YSwgbG9fdmFsKTsKKwlXUkVHMzIoYWRkcmVzcywgaGlfYWRkcik7CisJV1JFRzMy KGRhdGEsIGhpX3ZhbCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRldi0+cGNpZV9pZHhf bG9jaywgZmxhZ3MpOworfQorCiAvKiBnZXQgdGhlIG51bWJlciBvZiBkZiBjb3VudGVycyBhdmFp bGFibGUgKi8KIHN0YXRpYyBzc2l6ZV90IGRmX3YzXzZfZ2V0X2RmX2NudHJfYXZhaWwoc3RydWN0 IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKQEAgLTI2OCw2 ICszNTgsMTAgQEAgc3RhdGljIGludCBkZl92M182X3BtY19nZXRfY3RybF9zZXR0aW5ncyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJICB1aW50MzJfdCAqbG9fdmFsLAogCQkJCQkg IHVpbnQzMl90ICpoaV92YWwpCiB7CisKKwl1aW50MzJfdCBldmVudHNlbCwgaW5zdGFuY2UsIHVu aXRtYXNrOworCXVpbnQzMl90IGluc3RhbmNlXzEwLCBpbnN0YW5jZV81NDMyLCBpbnN0YW5jZV83 NjsKKwogCWRmX3YzXzZfcG1jX2dldF9hZGRyKGFkZXYsIGNvbmZpZywgMSwgbG9fYmFzZV9hZGRy LCBoaV9iYXNlX2FkZHIpOwogCiAJaWYgKCgqbG9fYmFzZV9hZGRyID09IDApIHx8ICgqaGlfYmFz ZV9hZGRyID09IDApKSB7CkBAIC0yNzYsNDAgKzM3MCwzMyBAQCBzdGF0aWMgaW50IGRmX3YzXzZf cG1jX2dldF9jdHJsX3NldHRpbmdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlyZXR1 cm4gLUVOWElPOwogCX0KIAotCWlmIChsb192YWwgJiYgaGlfdmFsKSB7Ci0JCXVpbnQzMl90IGV2 ZW50c2VsLCBpbnN0YW5jZSwgdW5pdG1hc2s7Ci0JCXVpbnQzMl90IGluc3RhbmNlXzEwLCBpbnN0 YW5jZV81NDMyLCBpbnN0YW5jZV83NjsKKwlldmVudHNlbCA9IERGX1YzXzZfR0VUX0VWRU5UKGNv bmZpZykgJiAweDNmOworCXVuaXRtYXNrID0gREZfVjNfNl9HRVRfVU5JVE1BU0soY29uZmlnKSAm IDB4ZjsKKwlpbnN0YW5jZSA9IERGX1YzXzZfR0VUX0lOU1RBTkNFKGNvbmZpZyk7CiAKLQkJZXZl bnRzZWwgPSBERl9WM182X0dFVF9FVkVOVChjb25maWcpICYgMHgzZjsKLQkJdW5pdG1hc2sgPSBE Rl9WM182X0dFVF9VTklUTUFTSyhjb25maWcpICYgMHhmOwotCQlpbnN0YW5jZSA9IERGX1YzXzZf R0VUX0lOU1RBTkNFKGNvbmZpZyk7CisJaW5zdGFuY2VfMTAgPSBpbnN0YW5jZSAmIDB4MzsKKwlp bnN0YW5jZV81NDMyID0gKGluc3RhbmNlID4+IDIpICYgMHhmOworCWluc3RhbmNlXzc2ID0gKGlu c3RhbmNlID4+IDYpICYgMHgzOwogCi0JCWluc3RhbmNlXzEwID0gaW5zdGFuY2UgJiAweDM7Ci0J CWluc3RhbmNlXzU0MzIgPSAoaW5zdGFuY2UgPj4gMikgJiAweGY7Ci0JCWluc3RhbmNlXzc2ID0g KGluc3RhbmNlID4+IDYpICYgMHgzOworCSpsb192YWwgPSAodW5pdG1hc2sgPDwgOCkgfCAoaW5z dGFuY2VfMTAgPDwgNikgfCBldmVudHNlbCB8ICgxIDw8IDIyKTsKKwkqaGlfdmFsID0gKGluc3Rh bmNlXzc2IDw8IDI5KSB8IGluc3RhbmNlXzU0MzI7CiAKLQkJKmxvX3ZhbCA9ICh1bml0bWFzayA8 PCA4KSB8IChpbnN0YW5jZV8xMCA8PCA2KSB8IGV2ZW50c2VsOwotCQkqaGlfdmFsID0gKGluc3Rh bmNlXzc2IDw8IDI5KSB8IGluc3RhbmNlXzU0MzI7Ci0JfQorCURSTV9ERUJVR19EUklWRVIoImNv bmZpZz0lbGx4IGFkZHI9JTA4eDolMDh4IHZhbD0lMDh4OiUwOHgiLAorCQljb25maWcsIGxvX2Jh c2VfYWRkciwgaGlfYmFzZV9hZGRyLCBsb192YWwsIGhpX3ZhbCk7CiAKIAlyZXR1cm4gMDsKIH0K IAotLyogYXNzaWduIGRmIHBlcmZvcm1hbmNlIGNvdW50ZXJzIGZvciByZWFkICovCi1zdGF0aWMg aW50IGRmX3YzXzZfcG1jX2Fzc2lnbl9jbnRyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAot CQkJCSAgIHVpbnQ2NF90IGNvbmZpZywKLQkJCQkgICBpbnQgKmlzX2Fzc2lnbmVkKQorLyogYWRk IGRmIHBlcmZvcm1hbmNlIGNvdW50ZXJzIGZvciByZWFkICovCitzdGF0aWMgaW50IGRmX3YzXzZf cG1jX2FkZF9jbnRyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCSAgIHVpbnQ2NF90 IGNvbmZpZykKIHsKIAlpbnQgaSwgdGFyZ2V0X2NudHI7CiAKLQkqaXNfYXNzaWduZWQgPSAwOwot CiAJdGFyZ2V0X2NudHIgPSBkZl92M182X3BtY19jb25maWdfMl9jbnRyKGFkZXYsIGNvbmZpZyk7 CiAKLQlpZiAodGFyZ2V0X2NudHIgPj0gMCkgewotCQkqaXNfYXNzaWduZWQgPSAxOworCWlmICh0 YXJnZXRfY250ciA+PSAwKQogCQlyZXR1cm4gMDsKLQl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgREZf VjNfNl9NQVhfQ09VTlRFUlM7IGkrKykgewogCQlpZiAoYWRldi0+ZGZfcGVyZm1vbl9jb25maWdf YXNzaWduX21hc2tbaV0gPT0gMFUpIHsKQEAgLTM0NCw0NSArNDMxLDEzIEBAIHN0YXRpYyB2b2lk IGRmX3YzXzZfcmVzZXRfcGVyZm1vbl9jbnRyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAog CWlmICgobG9fYmFzZV9hZGRyID09IDApIHx8IChoaV9iYXNlX2FkZHIgPT0gMCkpCiAJCXJldHVy bjsKIAotCVdSRUczMl9QQ0lFKGxvX2Jhc2VfYWRkciwgMFVMKTsKLQlXUkVHMzJfUENJRShoaV9i YXNlX2FkZHIsIDBVTCk7Ci19Ci0KLQotc3RhdGljIGludCBkZl92M182X2FkZF9wZXJmbW9uX2Nu dHIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJICAgICAgdWludDY0X3QgY29uZmln KQotewotCXVpbnQzMl90IGxvX2Jhc2VfYWRkciwgaGlfYmFzZV9hZGRyLCBsb192YWwsIGhpX3Zh bDsKLQlpbnQgcmV0LCBpc19hc3NpZ25lZDsKLQotCXJldCA9IGRmX3YzXzZfcG1jX2Fzc2lnbl9j bnRyKGFkZXYsIGNvbmZpZywgJmlzX2Fzc2lnbmVkKTsKLQotCWlmIChyZXQgfHwgaXNfYXNzaWdu ZWQpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXQgPSBkZl92M182X3BtY19nZXRfY3RybF9zZXR0aW5n cyhhZGV2LAotCQkJY29uZmlnLAotCQkJJmxvX2Jhc2VfYWRkciwKLQkJCSZoaV9iYXNlX2FkZHIs Ci0JCQkmbG9fdmFsLAotCQkJJmhpX3ZhbCk7Ci0KLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0Owot Ci0JRFJNX0RFQlVHX0RSSVZFUigiY29uZmlnPSVsbHggYWRkcj0lMDh4OiUwOHggdmFsPSUwOHg6 JTA4eCIsCi0JCQljb25maWcsIGxvX2Jhc2VfYWRkciwgaGlfYmFzZV9hZGRyLCBsb192YWwsIGhp X3ZhbCk7Ci0KLQlXUkVHMzJfUENJRShsb19iYXNlX2FkZHIsIGxvX3ZhbCk7Ci0JV1JFRzMyX1BD SUUoaGlfYmFzZV9hZGRyLCBoaV92YWwpOwotCi0JcmV0dXJuIHJldDsKKwlkZl92M182X3BlcmZt b25fd3JlZyhhZGV2LCBsb19iYXNlX2FkZHIsIDAsIGhpX2Jhc2VfYWRkciwgMCk7CiB9CiAKIHN0 YXRpYyBpbnQgZGZfdjNfNl9wbWNfc3RhcnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVp bnQ2NF90IGNvbmZpZywKIAkJCSAgICAgaW50IGlzX2VuYWJsZSkKIHsKLQl1aW50MzJfdCBsb19i YXNlX2FkZHIsIGhpX2Jhc2VfYWRkciwgbG9fdmFsOworCXVpbnQzMl90IGxvX2Jhc2VfYWRkciwg aGlfYmFzZV9hZGRyLCBsb192YWwsIGhpX3ZhbDsKIAlpbnQgcmV0ID0gMDsKIAogCXN3aXRjaCAo YWRldi0+YXNpY190eXBlKSB7CkBAIC0zOTEsMjQgKzQ0NiwyMCBAQCBzdGF0aWMgaW50IGRmX3Yz XzZfcG1jX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50NjRfdCBjb25maWcs CiAJCWRmX3YzXzZfcmVzZXRfcGVyZm1vbl9jbnRyKGFkZXYsIGNvbmZpZyk7CiAKIAkJaWYgKGlz X2VuYWJsZSkgewotCQkJcmV0ID0gZGZfdjNfNl9hZGRfcGVyZm1vbl9jbnRyKGFkZXYsIGNvbmZp Zyk7CisJCQlyZXQgPSBkZl92M182X3BtY19hZGRfY250cihhZGV2LCBjb25maWcpOwogCQl9IGVs c2UgewogCQkJcmV0ID0gZGZfdjNfNl9wbWNfZ2V0X2N0cmxfc2V0dGluZ3MoYWRldiwKIAkJCQkJ Y29uZmlnLAogCQkJCQkmbG9fYmFzZV9hZGRyLAogCQkJCQkmaGlfYmFzZV9hZGRyLAotCQkJCQlO VUxMLAotCQkJCQlOVUxMKTsKKwkJCQkJJmxvX3ZhbCwKKwkJCQkJJmhpX3ZhbCk7CiAKIAkJCWlm IChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAotCQkJbG9fdmFsID0gUlJFRzMyX1BDSUUobG9fYmFz ZV9hZGRyKTsKLQotCQkJRFJNX0RFQlVHX0RSSVZFUigiY29uZmlnPSVsbHggYWRkcj0lMDh4OiUw OHggdmFsPSUwOHgiLAotCQkJCWNvbmZpZywgbG9fYmFzZV9hZGRyLCBoaV9iYXNlX2FkZHIsIGxv X3ZhbCk7Ci0KLQkJCVdSRUczMl9QQ0lFKGxvX2Jhc2VfYWRkciwgbG9fdmFsIHwgKDFVTEwgPDwg MjIpKTsKKwkJCWRmX3YzXzZfcGVyZm1vbl93cmVnKGFkZXYsIGxvX2Jhc2VfYWRkciwgbG9fdmFs LAorCQkJCQloaV9iYXNlX2FkZHIsIGhpX3ZhbCk7CiAJCX0KIAogCQlicmVhazsKQEAgLTQyMiw3 ICs0NzMsNyBAQCBzdGF0aWMgaW50IGRmX3YzXzZfcG1jX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LCB1aW50NjRfdCBjb25maWcsCiBzdGF0aWMgaW50IGRmX3YzXzZfcG1jX3N0b3Ao c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQ2NF90IGNvbmZpZywKIAkJCSAgICBpbnQg aXNfZGlzYWJsZSkKIHsKLQl1aW50MzJfdCBsb19iYXNlX2FkZHIsIGhpX2Jhc2VfYWRkciwgbG9f dmFsOworCXVpbnQzMl90IGxvX2Jhc2VfYWRkciwgaGlfYmFzZV9hZGRyLCBsb192YWwsIGhpX3Zh bDsKIAlpbnQgcmV0ID0gMDsKIAogCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CkBAIC00MzEs MTggKzQ4MiwxMyBAQCBzdGF0aWMgaW50IGRmX3YzXzZfcG1jX3N0b3Aoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsIHVpbnQ2NF90IGNvbmZpZywKIAkJCWNvbmZpZywKIAkJCSZsb19iYXNlX2Fk ZHIsCiAJCQkmaGlfYmFzZV9hZGRyLAotCQkJTlVMTCwKLQkJCU5VTEwpOworCQkJJmxvX3ZhbCwK KwkJCSZoaV92YWwpOwogCiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCi0JCWxvX3ZhbCA9 IFJSRUczMl9QQ0lFKGxvX2Jhc2VfYWRkcik7Ci0KLQkJRFJNX0RFQlVHX0RSSVZFUigiY29uZmln PSVsbHggYWRkcj0lMDh4OiUwOHggdmFsPSUwOHgiLAotCQkJCWNvbmZpZywgbG9fYmFzZV9hZGRy LCBoaV9iYXNlX2FkZHIsIGxvX3ZhbCk7Ci0KLQkJV1JFRzMyX1BDSUUobG9fYmFzZV9hZGRyLCBs b192YWwgJiB+KDFVTEwgPDwgMjIpKTsKKwkJZGZfdjNfNl9wZXJmbW9uX3dyZWcoYWRldiwgbG9f YmFzZV9hZGRyLCAwLCBoaV9iYXNlX2FkZHIsIDApOwogCiAJCWlmIChpc19kaXNhYmxlKQogCQkJ ZGZfdjNfNl9wbWNfcmVsZWFzZV9jbnRyKGFkZXYsIGNvbmZpZyk7CkBAIC00NzEsOCArNTE3LDgg QEAgc3RhdGljIHZvaWQgZGZfdjNfNl9wbWNfZ2V0X2NvdW50KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LAogCQlpZiAoKGxvX2Jhc2VfYWRkciA9PSAwKSB8fCAoaGlfYmFzZV9hZGRyID09IDAp KQogCQkJcmV0dXJuOwogCi0JCWxvX3ZhbCA9IFJSRUczMl9QQ0lFKGxvX2Jhc2VfYWRkcik7Ci0J CWhpX3ZhbCA9IFJSRUczMl9QQ0lFKGhpX2Jhc2VfYWRkcik7CisJCWRmX3YzXzZfcGVyZm1vbl9y cmVnKGFkZXYsIGxvX2Jhc2VfYWRkciwgJmxvX3ZhbCwKKwkJCQloaV9iYXNlX2FkZHIsICZoaV92 YWwpOwogCiAJCSpjb3VudCAgPSAoKGhpX3ZhbCB8IDBVTEwpIDw8IDMyKSB8IChsb192YWwgfCAw VUxMKTsKIApAQCAtNDgwLDcgKzUyNiw3IEBAIHN0YXRpYyB2b2lkIGRmX3YzXzZfcG1jX2dldF9j b3VudChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCSpjb3VudCA9IDA7CiAKIAkJRFJN X0RFQlVHX0RSSVZFUigiY29uZmlnPSVsbHggYWRkcj0lMDh4OiUwOHggdmFsPSUwOHg6JTA4eCIs Ci0JCQljb25maWcsIGxvX2Jhc2VfYWRkciwgaGlfYmFzZV9hZGRyLCBsb192YWwsIGhpX3ZhbCk7 CisJCQkgY29uZmlnLCBsb19iYXNlX2FkZHIsIGhpX2Jhc2VfYWRkciwgbG9fdmFsLCBoaV92YWwp OwogCiAJCWJyZWFrOwogCkBAIC00OTksNSArNTQ1LDcgQEAgY29uc3Qgc3RydWN0IGFtZGdwdV9k Zl9mdW5jcyBkZl92M182X2Z1bmNzID0gewogCS5nZXRfY2xvY2tnYXRpbmdfc3RhdGUgPSBkZl92 M182X2dldF9jbG9ja2dhdGluZ19zdGF0ZSwKIAkucG1jX3N0YXJ0ID0gZGZfdjNfNl9wbWNfc3Rh cnQsCiAJLnBtY19zdG9wID0gZGZfdjNfNl9wbWNfc3RvcCwKLQkucG1jX2dldF9jb3VudCA9IGRm X3YzXzZfcG1jX2dldF9jb3VudAorCS5wbWNfZ2V0X2NvdW50ID0gZGZfdjNfNl9wbWNfZ2V0X2Nv dW50LAorCS5nZXRfZmljYSA9IGRmX3YzXzZfZ2V0X2ZpY2EsCisJLnNldF9maWNhID0gZGZfdjNf Nl9zZXRfZmljYQogfTsKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9hbWQtZ2Z4