From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chengming Gui Subject: [PATCH 1/2] drm/amd/powerplay: Enable "disable dpm" feature to support swSMU debug Date: Fri, 10 May 2019 16:48:36 +0800 Message-ID: <1557478117-17823-1-git-send-email-Jack.Gui@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Chengming Gui YWRkIHBtX2VuYWJsZWQgdG8gY29udHJvbCB0aGUgZHBtIG9mZi9vbi4KClNpZ25lZC1vZmYtYnk6 IENoZW5nbWluZyBHdWkgPEphY2suR3VpQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jICAgICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysr LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvYW1kZ3B1X3NtdS5oIHwgIDEg KwogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMgICAgICB8IDM0ICsr KysrKysrKysrKysrKysrKysrKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMo KyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvYW1kZ3B1X3NtdS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1 X3NtdS5jCmluZGV4IDUyZDkxOWEuLjk5YjIwODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2FtZGdwdV9zbXUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9hbWRncHVfc211LmMKQEAgLTE5OCw2ICsxOTgsOCBAQCBpbnQgc211X3N5c19zZXRf cHBfdGFibGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsICB2b2lkICpidWYsIHNpemVfdCBzaXpl KQogCUFUT01fQ09NTU9OX1RBQkxFX0hFQURFUiAqaGVhZGVyID0gKEFUT01fQ09NTU9OX1RBQkxF X0hFQURFUiAqKWJ1ZjsKIAlpbnQgcmV0ID0gMDsKIAorCWlmICghc211LT5wbV9lbmFibGVkKQor CQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAoaGVhZGVyLT51c1N0cnVjdHVyZVNpemUgIT0gc2l6ZSkg ewogCQlwcl9lcnIoInBwIHRhYmxlIHNpemUgbm90IG1hdGNoZWQgIVxuIik7CiAJCXJldHVybiAt RUlPOwpAQCAtMjMzLDYgKzIzNSw4IEBAIGludCBzbXVfZmVhdHVyZV9pbml0X2RwbShzdHJ1Y3Qg c211X2NvbnRleHQgKnNtdSkKIAlpbnQgcmV0ID0gMDsKIAl1aW50MzJfdCB1bmFsbG93ZWRfZmVh dHVyZV9tYXNrW1NNVV9GRUFUVVJFX01BWC8zMl07CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkK KwkJcmV0dXJuIHJldDsKIAltdXRleF9sb2NrKCZmZWF0dXJlLT5tdXRleCk7CiAJYml0bWFwX2Zp bGwoZmVhdHVyZS0+YWxsb3dlZCwgU01VX0ZFQVRVUkVfTUFYKTsKIAltdXRleF91bmxvY2soJmZl YXR1cmUtPm11dGV4KTsKQEAgLTM0NCw2ICszNDgsNyBAQCBzdGF0aWMgaW50IHNtdV9lYXJseV9p bml0KHZvaWQgKmhhbmRsZSkKIAlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9ICZhZGV2LT5zbXU7 CiAKIAlzbXUtPmFkZXYgPSBhZGV2OworCXNtdS0+cG1fZW5hYmxlZCA9IGFtZGdwdV9kcG07CiAJ bXV0ZXhfaW5pdCgmc211LT5tdXRleCk7CiAKIAlyZXR1cm4gc211X3NldF9mdW5jcyhhZGV2KTsK QEAgLTM1Myw2ICszNTgsOSBAQCBzdGF0aWMgaW50IHNtdV9sYXRlX2luaXQodm9pZCAqaGFuZGxl KQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNl ICopaGFuZGxlOwogCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gJmFkZXYtPnNtdTsKKworCWlm ICghc211LT5wbV9lbmFibGVkKQorCQlyZXR1cm4gMDsKIAltdXRleF9sb2NrKCZzbXUtPm11dGV4 KTsKIAlzbXVfaGFuZGxlX3Rhc2soJmFkZXYtPnNtdSwKIAkJCXNtdS0+c211X2RwbS5kcG1fbGV2 ZWwsCkBAIC03NDYsNiArNzU0LDkgQEAgc3RhdGljIGludCBzbXVfc21jX3RhYmxlX2h3X2luaXQo c3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJICovCiAJcmV0ID0gc211X3NldF90b29sX3RhYmxl X2xvY2F0aW9uKHNtdSk7CiAKKwlpZiAoIXNtdV9pc19kcG1fcnVubmluZyhzbXUpKQorCQlwcl9p bmZvKCJkcG0gaGFzIGJlZW4gZGlzYWJsZWRcbiIpOworCiAJcmV0dXJuIHJldDsKIH0KIApAQCAt ODYxLDcgKzg3MiwxMCBAQCBzdGF0aWMgaW50IHNtdV9od19pbml0KHZvaWQgKmhhbmRsZSkKIAog CW11dGV4X3VubG9jaygmc211LT5tdXRleCk7CiAKLQlhZGV2LT5wbS5kcG1fZW5hYmxlZCA9IHRy dWU7CisJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCisJCWFkZXYtPnBtLmRwbV9lbmFibGVkID0gZmFs c2U7CisJZWxzZQorCQlhZGV2LT5wbS5kcG1fZW5hYmxlZCA9IHRydWU7CiAKIAlwcl9pbmZvKCJT TVUgaXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5IVxuIik7CiAKQEAgLTg3OSw2ICs4OTMsOCBA QCBzdGF0aWMgaW50IHNtdV9od19maW5pKHZvaWQgKmhhbmRsZSkKIAlzdHJ1Y3Qgc211X3RhYmxl X2NvbnRleHQgKnRhYmxlX2NvbnRleHQgPSAmc211LT5zbXVfdGFibGU7CiAJaW50IHJldCA9IDA7 CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0dXJuIHJldDsKIAlpZiAoIWlzX3N1cHBv cnRfc3dfc211KGFkZXYpKQogCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtOTMyLDEwICs5NDgsMTIg QEAgaW50IHNtdV9yZXNldChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIAogc3RhdGljIGludCBz bXVfc3VzcGVuZCh2b2lkICpoYW5kbGUpCiB7Ci0JaW50IHJldDsKKwlpbnQgcmV0ID0gMDsKIAlz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRs ZTsKIAlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9ICZhZGV2LT5zbXU7CiAKKwlpZiAoIXNtdS0+ cG1fZW5hYmxlZCkKKwkJcmV0dXJuIHJldDsKIAlpZiAoIWlzX3N1cHBvcnRfc3dfc211KGFkZXYp KQogCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtOTUwLDEwICs5NjgsMTIgQEAgc3RhdGljIGludCBz bXVfc3VzcGVuZCh2b2lkICpoYW5kbGUpCiAKIHN0YXRpYyBpbnQgc211X3Jlc3VtZSh2b2lkICpo YW5kbGUpCiB7Ci0JaW50IHJldDsKKwlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAlzdHJ1Y3Qgc211X2Nv bnRleHQgKnNtdSA9ICZhZGV2LT5zbXU7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0 dXJuIHJldDsKIAlpZiAoIWlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQogCQlyZXR1cm4gLUVJTlZB TDsKIApAQCAtOTg1LDcgKzEwMDUsNyBAQCBpbnQgc211X2Rpc3BsYXlfY29uZmlndXJhdGlvbl9j aGFuZ2Uoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJaW50IGluZGV4ID0gMDsKIAlpbnQgbnVt X29mX2FjdGl2ZV9kaXNwbGF5ID0gMDsKIAotCWlmICghaXNfc3VwcG9ydF9zd19zbXUoc211LT5h ZGV2KSkKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCB8fCAhaXNfc3VwcG9ydF9zd19zbXUoc211LT5h ZGV2KSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoIWRpc3BsYXlfY29uZmlnKQpAQCAtMTEx Myw2ICsxMTMzLDggQEAgc3RhdGljIGludCBzbXVfZW5hYmxlX3VtZF9wc3RhdGUodm9pZCAqaGFu ZGxlLAogCiAJc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAoc3RydWN0IHNtdV9jb250ZXh0Kiko aGFuZGxlKTsKIAlzdHJ1Y3Qgc211X2RwbV9jb250ZXh0ICpzbXVfZHBtX2N0eCA9ICYoc211LT5z bXVfZHBtKTsKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJaWYg KCFzbXVfZHBtX2N0eC0+ZHBtX2NvbnRleHQpCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC0xMTU2 LDYgKzExNzgsOCBAQCBpbnQgc211X2FkanVzdF9wb3dlcl9zdGF0ZV9keW5hbWljKHN0cnVjdCBz bXVfY29udGV4dCAqc211LAogCWxvbmcgd29ya2xvYWQ7CiAJc3RydWN0IHNtdV9kcG1fY29udGV4 dCAqc211X2RwbV9jdHggPSAmKHNtdS0+c211X2RwbSk7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxl ZCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJaWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpIHsKIAkJ cmV0ID0gc211X2Rpc3BsYXlfY29uZmlnX2NoYW5nZWQoc211KTsKIAkJaWYgKHJldCkgewpAQCAt MTE2NCw2ICsxMTg4LDggQEAgaW50IHNtdV9hZGp1c3RfcG93ZXJfc3RhdGVfZHluYW1pYyhzdHJ1 Y3Qgc211X2NvbnRleHQgKnNtdSwKIAkJfQogCX0KIAorCWlmICghc211LT5wbV9lbmFibGVkKQor CQlyZXR1cm4gLUVJTlZBTDsKIAlyZXQgPSBzbXVfYXBwbHlfY2xvY2tzX2FkanVzdF9ydWxlcyhz bXUpOwogCWlmIChyZXQpIHsKIAkJcHJfZXJyKCJGYWlsZWQgdG8gYXBwbHkgY2xvY2tzIGFkanVz dCBydWxlcyEiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2lu Yy9hbWRncHVfc211LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvYW1kZ3B1 X3NtdS5oCmluZGV4IDg5MDUyNDEuLjU2Yjk4MTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2luYy9hbWRncHVfc211LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvaW5jL2FtZGdwdV9zbXUuaApAQCAtNDAxLDYgKzQwMSw3IEBAIHN0cnVjdCBz bXVfY29udGV4dAogCXVpbnQzMl90IHdvcmtsb2FkX3NldHRpbmdbV09SS0xPQURfUE9MSUNZX01B WF07CiAJdWludDMyX3QgcG93ZXJfcHJvZmlsZV9tb2RlOwogCXVpbnQzMl90IGRlZmF1bHRfcG93 ZXJfcHJvZmlsZV9tb2RlOworCWJvb2wgcG1fZW5hYmxlZDsKIAogCXVpbnQzMl90IHNtY19pZl92 ZXJzaW9uOwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3Nt dV92MTFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMKaW5k ZXggY2QzNmM0Mi4uZGVlMWU5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvc211X3YxMV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211 X3YxMV8wLmMKQEAgLTM2MCw2ICszNjAsOCBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9pbml0X3Bv d2VyKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogewogCXN0cnVjdCBzbXVfcG93ZXJfY29udGV4 dCAqc211X3Bvd2VyID0gJnNtdS0+c211X3Bvd2VyOwogCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQp CisJCXJldHVybiAwOwogCWlmIChzbXVfcG93ZXItPnBvd2VyX2NvbnRleHQgfHwgc211X3Bvd2Vy LT5wb3dlcl9jb250ZXh0X3NpemUgIT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTM3Niw2 ICszNzgsOCBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9maW5pX3Bvd2VyKHN0cnVjdCBzbXVfY29u dGV4dCAqc211KQogewogCXN0cnVjdCBzbXVfcG93ZXJfY29udGV4dCAqc211X3Bvd2VyID0gJnNt dS0+c211X3Bvd2VyOwogCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCisJCXJldHVybiAwOwogCWlm ICghc211X3Bvd2VyLT5wb3dlcl9jb250ZXh0IHx8IHNtdV9wb3dlci0+cG93ZXJfY29udGV4dF9z aXplID09IDApCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC02NDEsNiArNjQ1LDggQEAgc3RhdGlj IGludCBzbXVfdjExXzBfc2V0X21pbl9kY2VmX2RlZXBfc2xlZXAoc3RydWN0IHNtdV9jb250ZXh0 ICpzbXUpCiB7CiAJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICp0YWJsZV9jb250ZXh0ID0gJnNt dS0+c211X3RhYmxlOwogCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCisJCXJldHVybiAwOwogCWlm ICghdGFibGVfY29udGV4dCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTY2OSw2ICs2NzUsOSBA QCBzdGF0aWMgaW50IHNtdV92MTFfMF9zZXRfdG9vbF90YWJsZV9sb2NhdGlvbihzdHJ1Y3Qgc211 X2NvbnRleHQgKnNtdSkKIHN0YXRpYyBpbnQgc211X3YxMV8wX2luaXRfZGlzcGxheShzdHJ1Y3Qg c211X2NvbnRleHQgKnNtdSkKIHsKIAlpbnQgcmV0ID0gMDsKKworCWlmICghc211LT5wbV9lbmFi bGVkKQorCQlyZXR1cm4gcmV0OwogCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShz bXUsIFNNVV9NU0dfTnVtT2ZEaXNwbGF5cywgMCk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTY3OCw2 ICs2ODcsOCBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF91cGRhdGVfZmVhdHVyZV9lbmFibGVfc3Rh dGUoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQzMgogCXVpbnQzMl90IGZlYXR1cmVfbG93 ID0gMCwgZmVhdHVyZV9oaWdoID0gMDsKIAlpbnQgcmV0ID0gMDsKIAorCWlmICghc211LT5wbV9l bmFibGVkKQorCQlyZXR1cm4gcmV0OwogCWlmIChmZWF0dXJlX2lkID49IDAgJiYgZmVhdHVyZV9p ZCA8IDMxKQogCQlmZWF0dXJlX2xvdyA9ICgxIDw8IGZlYXR1cmVfaWQpOwogCWVsc2UgaWYgKGZl YXR1cmVfaWQgPiAzMSAmJiBmZWF0dXJlX2lkIDwgNjMpCkBAIC03ODQsMTAgKzc5NSwxMyBAQCBz dGF0aWMgaW50IHNtdV92MTFfMF9zeXN0ZW1fZmVhdHVyZXNfY29udHJvbChzdHJ1Y3Qgc211X2Nv bnRleHQgKnNtdSwKIAl1aW50MzJfdCBmZWF0dXJlX21hc2tbMl07CiAJaW50IHJldCA9IDA7CiAK LQlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnKHNtdSwgKGVuID8gU01VX01TR19FbmFibGVBbGxTbXVG ZWF0dXJlcyA6Ci0JCQkJICAgICBTTVVfTVNHX0Rpc2FibGVBbGxTbXVGZWF0dXJlcykpOwotCWlm IChyZXQpCi0JCXJldHVybiByZXQ7CisJaWYgKHNtdS0+cG1fZW5hYmxlZCkgeworCQlyZXQgPSBz bXVfc2VuZF9zbWNfbXNnKHNtdSwgKGVuID8gU01VX01TR19FbmFibGVBbGxTbXVGZWF0dXJlcyA6 CisJCQkJCSAgICAgU01VX01TR19EaXNhYmxlQWxsU211RmVhdHVyZXMpKTsKKwkJaWYgKHJldCkK KwkJCXJldHVybiByZXQ7CisJfQorCiAJcmV0ID0gc211X2ZlYXR1cmVfZ2V0X2VuYWJsZWRfbWFz ayhzbXUsIGZlYXR1cmVfbWFzaywgMik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTgw NCw2ICs4MTgsOCBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9ub3RpZnlfZGlzcGxheV9jaGFuZ2Uo c3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiB7CiAJaW50IHJldCA9IDA7CiAKKwlpZiAoIXNtdS0+ cG1fZW5hYmxlZCkKKwkJcmV0dXJuIHJldDsKIAlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChz bXUsIEZFQVRVUkVfRFBNX1VDTEtfQklUKSkKIAkgICAgcmV0ID0gc211X3NlbmRfc21jX21zZ193 aXRoX3BhcmFtKHNtdSwgU01VX01TR19TZXRVY2xrRmFzdFN3aXRjaCwgMSk7CiAKQEAgLTgxNiw2 ICs4MzIsOCBAQCBzbXVfdjExXzBfZ2V0X21heF9zdXN0YWluYWJsZV9jbG9jayhzdHJ1Y3Qgc211 X2NvbnRleHQgKnNtdSwgdWludDMyX3QgKmNsb2NrLAogewogCWludCByZXQgPSAwOwogCisJaWYg KCFzbXUtPnBtX2VuYWJsZWQpCisJCXJldHVybiByZXQ7CiAJcmV0ID0gc211X3NlbmRfc21jX21z Z193aXRoX3BhcmFtKHNtdSwgU01VX01TR19HZXREY01vZGVNYXhEcG1GcmVxLAogCQkJCQkgIGNs b2NrX3NlbGVjdCA8PCAxNik7CiAJaWYgKHJldCkgewpAQCAtMTA3Miw2ICsxMDkwLDggQEAgc3Rh dGljIGludCBzbXVfdjExXzBfc3RhcnRfdGhlcm1hbF9jb250cm9sKHN0cnVjdCBzbXVfY29udGV4 dCAqc211KQogCXN0cnVjdCBQUF9UZW1wZXJhdHVyZVJhbmdlIHJhbmdlOwogCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gc211LT5hZGV2OwogCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCisJ CXJldHVybiByZXQ7CiAJc211X3YxMV8wX2dldF90aGVybWFsX3JhbmdlKHNtdSwgJnJhbmdlKTsK IAogCWlmIChzbXUtPnNtdV90YWJsZS50aGVybWFsX2NvbnRyb2xsZXJfdHlwZSkgewpAQCAtMTI0 Miw2ICsxMjYyLDggQEAgc211X3YxMV8wX2Rpc3BsYXlfY2xvY2tfdm9sdGFnZV9yZXF1ZXN0KHN0 cnVjdCBzbXVfY29udGV4dCAqc211LAogCVBQQ0xLX2UgY2xrX3NlbGVjdCA9IDA7CiAJdWludDMy X3QgY2xrX2ZyZXEgPSBjbG9ja19yZXEtPmNsb2NrX2ZyZXFfaW5fa2h6IC8gMTAwMDsKIAorCWlm ICghc211LT5wbV9lbmFibGVkKQorCQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAoc211X2ZlYXR1cmVf aXNfZW5hYmxlZChzbXUsIEZFQVRVUkVfRFBNX0RDRUZDTEtfQklUKSkgewogCQlzd2l0Y2ggKGNs a190eXBlKSB7CiAJCWNhc2UgYW1kX3BwX2RjZWZfY2xvY2s6CkBAIC0xNTI1LDcgKzE1NDcsNyBA QCBzdGF0aWMgaW50IHNtdV92MTFfMF9nZXRfcG93ZXJfcHJvZmlsZV9tb2RlKHN0cnVjdCBzbXVf Y29udGV4dCAqc211LCBjaGFyICpidWYpCiAJCQkiUERfRGF0YV9lcnJvcl9yYXRlX2NvZWZmIn07 CiAJaW50IHJlc3VsdCA9IDA7CiAKLQlpZiAoIWJ1ZikKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCB8 fCAhYnVmKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXpl LCAiJTE2cyAlcyAlcyAlcyAlcyAlcyAlcyAlcyAlcyAlcyAlc1xuIiwKQEAgLTE2MTIsNiArMTYz NCw4IEBAIHN0YXRpYyBpbnQgc211X3YxMV8wX3NldF9wb3dlcl9wcm9maWxlX21vZGUoc3RydWN0 IHNtdV9jb250ZXh0ICpzbXUsIGxvbmcgKmlucHV0CiAKIAlzbXUtPnBvd2VyX3Byb2ZpbGVfbW9k ZSA9IGlucHV0W3NpemVdOwogCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCisJCXJldHVybiByZXQ7 CiAJaWYgKHNtdS0+cG93ZXJfcHJvZmlsZV9tb2RlID4gUFBfU01DX1BPV0VSX1BST0ZJTEVfQ1VT VE9NKSB7CiAJCXByX2VycigiSW52YWxpZCBwb3dlciBwcm9maWxlIG1vZGUgJWRcbiIsIHNtdS0+ cG93ZXJfcHJvZmlsZV9tb2RlKTsKIAkJcmV0dXJuIC1FSU5WQUw7Ci0tIAoyLjcuNAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5n IGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4