From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: [PATCH 125/138] drm/amd/powerplay: implement power_dpm_force_performance_level for SMU11 Date: Fri, 25 Jan 2019 18:25:32 +0800 Message-ID: <1548411945-12396-126-git-send-email-ray.huang@amd.com> References: <1548411945-12396-1-git-send-email-ray.huang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1548411945-12396-1-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org> 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: Likun Gao , Kevin Wang , Chengming Gui RnJvbTogQ2hlbmdtaW5nIEd1aSA8SmFjay5HdWlAYW1kLmNvbT4KCmFkZCBnZXRfcGVyZm9ybWFu Y2VfbGV2ZWwgYW5kIGZvcmNlX3BlcmZvcm1hbmNlX2xldmVsCnRvIGltcGxlbWVudCB0aGUgc3lz IGludGVyZmFjZSBmb3IgU01VMTEuCgpTaWduZWQtb2ZmLWJ5OiBDaGVuZ21pbmcgR3VpIDxKYWNr Lkd1aUBhbWQuY29tPgpSZXZpZXdlZC1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYyAgICAgICAgIHwgMjMg KysrKystCiBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMgICAgIHwg IDIgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2FtZGdwdV9zbXUuaCB8ICA2 ICsrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVfdjExXzAuYyAgICAgIHwgIDIg LQogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvdmVnYTIwX3BwdC5jICAgICB8IDk5ICsr KysrKysrKysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDEyNyBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMK aW5kZXggNzAxNWUwMy4uYTllMTQxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3BtLmMKQEAgLTI2NCw3ICsyNjQsOSBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZ2V0X2RwbV9m b3JjZWRfcGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0IGRldmljZSAqZGV2LAogCSAgICAgKGRkZXYt PnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENIX1BPV0VSX09OKSkKIAkJcmV0dXJuIHNu cHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAib2ZmXG4iKTsKIAotCWlmIChhZGV2LT5wb3dlcnBsYXku cHBfZnVuY3MtPmdldF9wZXJmb3JtYW5jZV9sZXZlbCkKKwlpZiAoaXNfc3VwcG9ydF9zd19zbXUo YWRldikpCisJCWxldmVsID0gc211X2dldF9wZXJmb3JtYW5jZV9sZXZlbCgmYWRldi0+c211KTsK KwllbHNlIGlmIChhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPmdldF9wZXJmb3JtYW5jZV9sZXZl bCkKIAkJbGV2ZWwgPSBhbWRncHVfZHBtX2dldF9wZXJmb3JtYW5jZV9sZXZlbChhZGV2KTsKIAll bHNlCiAJCWxldmVsID0gYWRldi0+cG0uZHBtLmZvcmNlZF9sZXZlbDsKQEAgLTI5Nyw3ICsyOTks OSBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X2RwbV9mb3JjZWRfcGVyZm9ybWFuY2VfbGV2 ZWwoc3RydWN0IGRldmljZSAqZGV2LAogCSAgICAgKGRkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSAh PSBEUk1fU1dJVENIX1BPV0VSX09OKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoYWRldi0+ cG93ZXJwbGF5LnBwX2Z1bmNzLT5nZXRfcGVyZm9ybWFuY2VfbGV2ZWwpCisJaWYgKGlzX3N1cHBv cnRfc3dfc211KGFkZXYpKQorCQljdXJyZW50X2xldmVsID0gc211X2dldF9wZXJmb3JtYW5jZV9s ZXZlbCgmYWRldi0+c211KTsKKwllbHNlIGlmIChhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPmdl dF9wZXJmb3JtYW5jZV9sZXZlbCkKIAkJY3VycmVudF9sZXZlbCA9IGFtZGdwdV9kcG1fZ2V0X3Bl cmZvcm1hbmNlX2xldmVsKGFkZXYpOwogCiAJaWYgKHN0cm5jbXAoImxvdyIsIGJ1Ziwgc3RybGVu KCJsb3ciKSkgPT0gMCkgewpAQCAtMzI2LDcgKzMzMCwyMCBAQCBzdGF0aWMgc3NpemVfdCBhbWRn cHVfc2V0X2RwbV9mb3JjZWRfcGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0IGRldmljZSAqZGV2LAog CWlmIChjdXJyZW50X2xldmVsID09IGxldmVsKQogCQlyZXR1cm4gY291bnQ7CiAKLQlpZiAoYWRl di0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5mb3JjZV9wZXJmb3JtYW5jZV9sZXZlbCkgeworCWlmIChp c19zdXBwb3J0X3N3X3NtdShhZGV2KSkgeworCQltdXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7 CisJCWlmIChhZGV2LT5wbS5kcG0udGhlcm1hbF9hY3RpdmUpIHsKKwkJCWNvdW50ID0gLUVJTlZB TDsKKwkJCW11dGV4X3VubG9jaygmYWRldi0+cG0ubXV0ZXgpOworCQkJZ290byBmYWlsOworCQl9 CisJCXJldCA9IHNtdV9mb3JjZV9wZXJmb3JtYW5jZV9sZXZlbCgmYWRldi0+c211LCBsZXZlbCk7 CisJCWlmIChyZXQpCisJCQljb3VudCA9IC1FSU5WQUw7CisJCWVsc2UKKwkJCWFkZXYtPnBtLmRw bS5mb3JjZWRfbGV2ZWwgPSBsZXZlbDsKKwkJbXV0ZXhfdW5sb2NrKCZhZGV2LT5wbS5tdXRleCk7 CisJfSBlbHNlIGlmIChhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPmZvcmNlX3BlcmZvcm1hbmNl X2xldmVsKSB7CiAJCW11dGV4X2xvY2soJmFkZXYtPnBtLm11dGV4KTsKIAkJaWYgKGFkZXYtPnBt LmRwbS50aGVybWFsX2FjdGl2ZSkgewogCQkJY291bnQgPSAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jCmluZGV4IDJmZTNiNTcuLjkxMmY0NGUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZGdwdV9zbXUuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMKQEAgLTM0NCw2ICsz NDQsOCBAQCBzdGF0aWMgaW50IHNtdV9zd19pbml0KHZvaWQgKmhhbmRsZSkKIAlzbXUtPndvcmts b2FkX3NldHRpbmdbNl0gPSBQUF9TTUNfUE9XRVJfUFJPRklMRV9DVVNUT007CiAJc211LT5kaXNw bGF5X2NvbmZpZyA9ICZhZGV2LT5wbS5wbV9kaXNwbGF5X2NmZzsKIAorCXNtdS0+c211X2RwbS5k cG1fbGV2ZWwgPSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9BVVRPOworCXNtdS0+c211X2RwbS5yZXF1 ZXN0ZWRfZHBtX2xldmVsID0gQU1EX0RQTV9GT1JDRURfTEVWRUxfQVVUTzsKIAlyZXQgPSBzbXVf aW5pdF9taWNyb2NvZGUoc211KTsKIAlpZiAocmV0KSB7CiAJCXByX2VycigiRmFpbGVkIHRvIGxv YWQgc211IGZpcm13YXJlIVxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9pbmMvYW1kZ3B1X3NtdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkv aW5jL2FtZGdwdV9zbXUuaAppbmRleCBiY2Q3NDc5Li5hZTlhY2E0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvYW1kZ3B1X3NtdS5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hbWRncHVfc211LmgKQEAgLTQyMyw2ICs0MjMsOCBA QCBzdHJ1Y3QgcHB0YWJsZV9mdW5jcyB7CiAJCQkJCSAgICAgICpjbG9ja3MpOwogCWludCAoKmdl dF9wb3dlcl9wcm9maWxlX21vZGUpKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBjaGFyICpidWYp OwogCWludCAoKnNldF9wb3dlcl9wcm9maWxlX21vZGUpKHN0cnVjdCBzbXVfY29udGV4dCAqc211 LCBsb25nICppbnB1dCwgdWludDMyX3Qgc2l6ZSk7CisJZW51bSBhbWRfZHBtX2ZvcmNlZF9sZXZl bCAoKmdldF9wZXJmb3JtYW5jZV9sZXZlbCkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOworCWlu dCAoKmZvcmNlX3BlcmZvcm1hbmNlX2xldmVsKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51 bSBhbWRfZHBtX2ZvcmNlZF9sZXZlbCBsZXZlbCk7CiB9OwogCiBzdHJ1Y3Qgc211X2Z1bmNzCkBA IC01OTQsNiArNTk2LDEwIEBAIHN0cnVjdCBzbXVfZnVuY3MKIAkoKHNtdSktPmZ1bmNzLT5nZXRf cG93ZXJfcHJvZmlsZV9tb2RlID8gKHNtdSktPmZ1bmNzLT5nZXRfcG93ZXJfcHJvZmlsZV9tb2Rl KChzbXUpLCBidWYpIDogMCkKICNkZWZpbmUgc211X3NldF9wb3dlcl9wcm9maWxlX21vZGUoc211 LCBwYXJhbSwgcGFyYW1fc2l6ZSkgXAogCSgoc211KS0+ZnVuY3MtPnNldF9wb3dlcl9wcm9maWxl X21vZGUgPyAoc211KS0+ZnVuY3MtPnNldF9wb3dlcl9wcm9maWxlX21vZGUoKHNtdSksIChwYXJh bSksIChwYXJhbV9zaXplKSkgOiAwKQorI2RlZmluZSBzbXVfZ2V0X3BlcmZvcm1hbmNlX2xldmVs KHNtdSkgXAorCSgoc211KS0+cHB0X2Z1bmNzLT5nZXRfcGVyZm9ybWFuY2VfbGV2ZWwgPyAoc211 KS0+cHB0X2Z1bmNzLT5nZXRfcGVyZm9ybWFuY2VfbGV2ZWwoKHNtdSkpIDogMCkKKyNkZWZpbmUg c211X2ZvcmNlX3BlcmZvcm1hbmNlX2xldmVsKHNtdSwgbGV2ZWwpIFwKKwkoKHNtdSktPnBwdF9m dW5jcy0+Zm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwgPyAoc211KS0+cHB0X2Z1bmNzLT5mb3JjZV9w ZXJmb3JtYW5jZV9sZXZlbCgoc211KSwgKGxldmVsKSkgOiAwKQogCiAjZGVmaW5lIHNtdV9tc2df Z2V0X2luZGV4KHNtdSwgbXNnKSBcCiAJKChzbXUpLT5wcHRfZnVuY3M/ICgoc211KS0+cHB0X2Z1 bmNzLT5nZXRfc211X21zZ19pbmRleD8gKHNtdSktPnBwdF9mdW5jcy0+Z2V0X3NtdV9tc2dfaW5k ZXgoKHNtdSksIChtc2cpKSA6IC1FSU5WQUwpIDogLUVJTlZBTCkKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdV92MTFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvc211X3YxMV8wLmMKaW5kZXggZjExZGYwNC4uM2IyNDY0ZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMKQEAgLTEwOTcsNyArMTA5Nyw2IEBA IHNtdV92MTFfMF9kaXNwbGF5X2Nsb2NrX3ZvbHRhZ2VfcmVxdWVzdChzdHJ1Y3Qgc211X2NvbnRl eHQgKnNtdSwKIAlQUENMS19lIGNsa19zZWxlY3QgPSAwOwogCXVpbnQzMl90IGNsa19mcmVxID0g Y2xvY2tfcmVxLT5jbG9ja19mcmVxX2luX2toeiAvIDEwMDA7CiAKLQltdXRleF9sb2NrKCZzbXUt Pm11dGV4KTsKIAlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIEZFQVRVUkVfRFBNX0RD RUZDTEtfQklUKSkgewogCQlzd2l0Y2ggKGNsa190eXBlKSB7CiAJCWNhc2UgYW1kX3BwX2RjZWZf Y2xvY2s6CkBAIC0xMTI2LDcgKzExMjUsNiBAQCBzbXVfdjExXzBfZGlzcGxheV9jbG9ja192b2x0 YWdlX3JlcXVlc3Qoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJfQogCiBmYWlsZWQ6Ci0JbXV0 ZXhfdW5sb2NrKCZzbXUtPm11dGV4KTsKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS92ZWdhMjBfcHB0LmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS92ZWdhMjBfcHB0LmMKaW5kZXggMTJmNmMzOC4uMTQxODViYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvdmVnYTIwX3BwdC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3ZlZ2EyMF9wcHQuYwpAQCAtMTc0NCw2ICsx NzQ0LDEwMyBAQCBzdGF0aWMgaW50IHZlZ2EyMF91bmZvcmNlX2RwbV9sZXZlbHMoc3RydWN0IHNt dV9jb250ZXh0ICpzbXUpCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGVudW0gYW1kX2RwbV9m b3JjZWRfbGV2ZWwgdmVnYTIwX2dldF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3Qgc211X2NvbnRl eHQgKnNtdSkKK3sKKwlzdHJ1Y3Qgc211X2RwbV9jb250ZXh0ICpzbXVfZHBtX2N0eCA9ICYoc211 LT5zbXVfZHBtKTsKKwlpZiAoIXNtdV9kcG1fY3R4LT5kcG1fY29udGV4dCkKKwkJcmV0dXJuIC1F SU5WQUw7CisKKwlpZiAoc211X2RwbV9jdHgtPmRwbV9sZXZlbCAhPSBzbXVfZHBtX2N0eC0+c2F2 ZWRfZHBtX2xldmVsKSB7CisJCW11dGV4X2xvY2soJihzbXUtPm11dGV4KSk7CisJCXNtdV9kcG1f Y3R4LT5zYXZlZF9kcG1fbGV2ZWwgPSBzbXVfZHBtX2N0eC0+ZHBtX2xldmVsOworCQltdXRleF91 bmxvY2soJihzbXUtPm11dGV4KSk7CisJfQorCXJldHVybiBzbXVfZHBtX2N0eC0+ZHBtX2xldmVs OworfQorCitzdGF0aWMgaW50Cit2ZWdhMjBfZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0 IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gYW1kX2RwbV9mb3JjZWRfbGV2ZWwgbGV2ZWwpCit7CisJ aW50IHJldCA9IDA7CisJaW50IGluZGV4ID0gMDsKKwlpbnQgaSA9IDA7CisJdWludDMyX3Qgc2Ns a19tYXNrLCBtY2xrX21hc2ssIHNvY19tYXNrOworCWxvbmcgd29ya2xvYWQ7CisJc3RydWN0IHNt dV9kcG1fY29udGV4dCAqc211X2RwbV9jdHggPSAmKHNtdS0+c211X2RwbSk7CisJaWYgKCFzbXVf ZHBtX2N0eC0+ZHBtX2NvbnRleHQpCisJCXJldHVybiAtRUlOVkFMOworCisJZm9yIChpID0gMDsg aSA8IHNtdS0+YWRldi0+bnVtX2lwX2Jsb2NrczsgaSsrKSB7CisJCWlmIChzbXUtPmFkZXYtPmlw X2Jsb2Nrc1tpXS52ZXJzaW9uLT50eXBlID09IEFNRF9JUF9CTE9DS19UWVBFX1NNQykKKwkJCWJy ZWFrOworCX0KKwltdXRleF9sb2NrKCZzbXUtPm11dGV4KTsKKwlzbXUtPmFkZXYtPmlwX2Jsb2Nr c1tpXS52ZXJzaW9uLT5mdW5jcy0+ZW5hYmxlX3VtZF9wc3RhdGUoc211LCAmbGV2ZWwpOworCXJl dCA9IHZlZ2EyMF9kaXNwbGF5X2NvbmZpZ19jaGFuZ2VkKHNtdSk7CisJaWYgKHJldCkgeworCQlw cl9lcnIoIkZhaWxlZCB0byBjaGFuZ2UgZGlzcGxheSBjb25maWchIik7CisJCWdvdG8gZmFpbGVk OworCX0KKwlyZXQgPSB2ZWdhMjBfYXBwbHlfY2xvY2tzX2FkanVzdF9ydWxlcyhzbXUpOworCWlm IChyZXQpIHsKKwkJcHJfZXJyKCJGYWlsZWQgdG8gYXBwbHkgY2xvY2tzIGFkanVzdCBydWxlcyEi KTsKKwkJZ290byBmYWlsZWQ7CisJfQorCXJldCA9IHZlZ2EyMF9ub3RpZnlfc21jX2Rpc3BhbHlf Y29uZmlnKHNtdSk7CisJaWYgKHJldCkgeworCQlwcl9lcnIoIkZhaWxlZCB0byBub3RpZnkgc21j IGRpc3BsYXkgY29uZmlnISIpOworCQlnb3RvIGZhaWxlZDsKKwl9CisJc3dpdGNoIChsZXZlbCkg eworCWNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfSElHSDoKKwkJcmV0ID0gdmVnYTIwX2ZvcmNl X2RwbV9oaWdoZXN0KHNtdSk7CisJCWJyZWFrOworCisJY2FzZSBBTURfRFBNX0ZPUkNFRF9MRVZF TF9MT1c6CisJCXJldCA9IHZlZ2EyMF9mb3JjZV9kcG1fbG93ZXN0KHNtdSk7CisJCWJyZWFrOwor CisJY2FzZSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9BVVRPOgorCQlyZXQgPSB2ZWdhMjBfdW5mb3Jj ZV9kcG1fbGV2ZWxzKHNtdSk7CisJCWJyZWFrOworCisJY2FzZSBBTURfRFBNX0ZPUkNFRF9MRVZF TF9QUk9GSUxFX1NUQU5EQVJEOgorCWNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9N SU5fU0NMSzoKKwljYXNlIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfTUlOX01DTEs6CisJ Y2FzZSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX1BFQUs6CisJCXJldCA9IHZlZ2EyMF9n ZXRfcHJvZmlsaW5nX2Nsa19tYXNrKHNtdSwgbGV2ZWwsCisJCQkJCQkgICAgJnNjbGtfbWFzaywK KwkJCQkJCSAgICAmbWNsa19tYXNrLAorCQkJCQkJICAgICZzb2NfbWFzayk7CisJCWlmIChyZXQp CisJCQlnb3RvIGZhaWxlZDsKKwkJdmVnYTIwX2ZvcmNlX2Nsa19sZXZlbHMoc211LCBQUF9TQ0xL LCAxIDw8IHNjbGtfbWFzayk7CisJCXZlZ2EyMF9mb3JjZV9jbGtfbGV2ZWxzKHNtdSwgUFBfTUNM SywgMSA8PCBtY2xrX21hc2spOworCQlicmVhazsKKworCWNhc2UgQU1EX0RQTV9GT1JDRURfTEVW RUxfTUFOVUFMOgorCWNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9FWElUOgorCWRl ZmF1bHQ6CisJCWJyZWFrOworCX0KKworCWlmICghcmV0KQorCQlzbXVfZHBtX2N0eC0+ZHBtX2xl dmVsID0gbGV2ZWw7CisKKwlpZiAoc211X2RwbV9jdHgtPmRwbV9sZXZlbCAhPSBBTURfRFBNX0ZP UkNFRF9MRVZFTF9NQU5VQUwpIHsKKwkJaW5kZXggPSBmbHMoc211LT53b3JrbG9hZF9tYXNrKTsK KwkJaW5kZXggPSBpbmRleCA+IDAgJiYgaW5kZXggPD0gV09SS0xPQURfUE9MSUNZX01BWCA/IGlu ZGV4IC0gMSA6IDA7CisJCXdvcmtsb2FkID0gc211LT53b3JrbG9hZF9zZXR0aW5nW2luZGV4XTsK KworCQlpZiAoc211LT5wb3dlcl9wcm9maWxlX21vZGUgIT0gd29ya2xvYWQpCisJCQlzbXUtPmZ1 bmNzLT5zZXRfcG93ZXJfcHJvZmlsZV9tb2RlKHNtdSwgJndvcmtsb2FkLCAwKTsKKwl9CisKK2Zh aWxlZDoKKwltdXRleF91bmxvY2soJnNtdS0+bXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgcHB0YWJsZV9mdW5jcyB2ZWdhMjBfcHB0X2Z1bmNzID0gewogCS5h bGxvY19kcG1fY29udGV4dCA9IHZlZ2EyMF9hbGxvY2F0ZV9kcG1fY29udGV4dCwKIAkuc3RvcmVf cG93ZXJwbGF5X3RhYmxlID0gdmVnYTIwX3N0b3JlX3Bvd2VycGxheV90YWJsZSwKQEAgLTE3NjEs NiArMTg1OCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHB0YWJsZV9mdW5jcyB2ZWdhMjBfcHB0 X2Z1bmNzID0gewogCS5nZXRfY2xvY2tfYnlfdHlwZV93aXRoX2xhdGVuY3kgPSB2ZWdhMjBfZ2V0 X2Nsb2NrX2J5X3R5cGVfd2l0aF9sYXRlbmN5LAogCS5zZXRfZGVmYXVsdF9vZDhfc2V0dGluZ3Mg PSB2ZWdhMjBfc2V0X2RlZmF1bHRfb2Q4X3NldHR0aW5ncywKIAkuZ2V0X29kX3BlcmNlbnRhZ2Ug PSB2ZWdhMjBfZ2V0X29kX3BlcmNlbnRhZ2UsCisJLmdldF9wZXJmb3JtYW5jZV9sZXZlbCA9IHZl Z2EyMF9nZXRfcGVyZm9ybWFuY2VfbGV2ZWwsCisJLmZvcmNlX3BlcmZvcm1hbmNlX2xldmVsID0g dmVnYTIwX2ZvcmNlX3BlcmZvcm1hbmNlX2xldmVsLAogfTsKIAogdm9pZCB2ZWdhMjBfc2V0X3Bw dF9mdW5jcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKLS0gCjIuNy40CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAph bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK