From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: [PATCH 071/138] drm/amd/powerplay: add get_max_sustainable_clock function Date: Fri, 25 Jan 2019 18:24:38 +0800 Message-ID: <1548411945-12396-72-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 , Huang Rui , Chengming Gui VGhpcyBwYXRjaCBhZGRzIGdldF9tYXhfc3VzdGFpbmFibGVfY2xvY2sgZnVuY3Rpb24gZm9yIHNt dTExLgoKU2lnbmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4KUmV2aWV3 ZWQtYnk6IEtldmluIFdhbmcgPEtldmluMS5XYW5nQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jICAgICB8ICAgOSArKwogZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2FtZGdwdV9zbXUuaCB8ICAgNCArCiBkcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3YxMV8wLmggIHwgICA4ICsrCiBkcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9zbXVfdjExXzAuYyAgICAgIHwgMTE0ICsrKysrKysrKysrKysrKysr KysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMKaW5kZXggYjIyNWNmOC4uY2QwNDM2OSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZGdwdV9zbXUuYwpAQCAtMzkzLDYg KzM5MywxMCBAQCBzdGF0aWMgaW50IHNtdV9zbWNfdGFibGVfaHdfaW5pdChzdHJ1Y3Qgc211X2Nv bnRleHQgKnNtdSkKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCisJcmV0ID0gc211X2luaXRf bWF4X3N1c3RhaW5hYmxlX2Nsb2NrcyhzbXUpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisK IAlyZXQgPSBzbXVfcG9wdWxhdGVfdW1kX3N0YXRlX2NsayhzbXUpOwogCWlmIChyZXQpCiAJCXJl dHVybiByZXQ7CkBAIC01MzksNiArNTQzLDExIEBAIHN0YXRpYyBpbnQgc211X2h3X2Zpbmkodm9p ZCAqaGFuZGxlKQogCQlyZXR1cm4gLUVJTlZBTDsKIAlrZnJlZSh0YWJsZV9jb250ZXh0LT5kcml2 ZXJfcHB0YWJsZSk7CiAKKwlpZiAodGFibGVfY29udGV4dC0+bWF4X3N1c3RhaW5hYmxlX2Nsb2Nr cykgeworCQlrZnJlZSh0YWJsZV9jb250ZXh0LT5tYXhfc3VzdGFpbmFibGVfY2xvY2tzKTsKKwkJ dGFibGVfY29udGV4dC0+bWF4X3N1c3RhaW5hYmxlX2Nsb2NrcyA9IE5VTEw7CisJfQorCiAJcmV0 ID0gc211X2ZpbmlfZmJfYWxsb2NhdGlvbnMoc211KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0 OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2FtZGdwdV9z bXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hbWRncHVfc211LmgKaW5k ZXggYTNjOGI3My4uYTY4NTE5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvaW5jL2FtZGdwdV9zbXUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxh eS9pbmMvYW1kZ3B1X3NtdS5oCkBAIC0xNTgsNiArMTU4LDcgQEAgc3RydWN0IHNtdV90YWJsZV9j b250ZXh0CiAJdm9pZAkJCQkqcG93ZXJfcGxheV90YWJsZTsKIAl1aW50MzJfdAkJCXBvd2VyX3Bs YXlfdGFibGVfc2l6ZTsKIAorCXZvaWQJCQkJKm1heF9zdXN0YWluYWJsZV9jbG9ja3M7CiAJc3Ry dWN0IHNtdV9iaW9zX2Jvb3RfdXBfdmFsdWVzCWJvb3RfdmFsdWVzOwogCXZvaWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKmRyaXZlcl9wcHRhYmxlOwogCXN0cnVjdCBzbXVfdGFibGUJCSp0 YWJsZXM7CkBAIC0yNTMsNiArMjU0LDcgQEAgc3RydWN0IHNtdV9mdW5jcwogCWludCAoKm5vdGlm eV9kaXNwbGF5X2NoYW5nZSkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwogCWludCAoKmdldF9w b3dlcl9saW1pdCkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwogCWludCAoKmdldF9jdXJyZW50 X2Nsa19mcmVxKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgY2xrX2lkLCB1aW50 MzJfdCAqdmFsdWUpOworCWludCAoKmluaXRfbWF4X3N1c3RhaW5hYmxlX2Nsb2Nrcykoc3RydWN0 IHNtdV9jb250ZXh0ICpzbXUpOwogfTsKIAogI2RlZmluZSBzbXVfaW5pdF9taWNyb2NvZGUoc211 KSBcCkBAIC0yOTcsNiArMjk5LDggQEAgc3RydWN0IHNtdV9mdW5jcwogCSgoc211KS0+ZnVuY3Mt PnNldF9sYXN0X2RjZWZfbWluX2RlZXBfc2xlZXBfY2xrID8gKHNtdSktPmZ1bmNzLT5zZXRfbGFz dF9kY2VmX21pbl9kZWVwX3NsZWVwX2Nsaygoc211KSkgOiAwKQogI2RlZmluZSBzbXVfc3lzdGVt X2ZlYXR1cmVzX2NvbnRyb2woc211LCBlbikgXAogCSgoc211KS0+ZnVuY3MtPnN5c3RlbV9mZWF0 dXJlc19jb250cm9sID8gKHNtdSktPmZ1bmNzLT5zeXN0ZW1fZmVhdHVyZXNfY29udHJvbCgoc211 KSwgKGVuKSkgOiAwKQorI2RlZmluZSBzbXVfaW5pdF9tYXhfc3VzdGFpbmFibGVfY2xvY2tzKHNt dSkgXAorCSgoc211KS0+ZnVuY3MtPmluaXRfbWF4X3N1c3RhaW5hYmxlX2Nsb2NrcyA/IChzbXUp LT5mdW5jcy0+aW5pdF9tYXhfc3VzdGFpbmFibGVfY2xvY2tzKChzbXUpKSA6IDApCiAjZGVmaW5l IHNtdV9zZW5kX3NtY19tc2coc211LCBtc2cpIFwKIAkoKHNtdSktPmZ1bmNzLT5zZW5kX3NtY19t c2c/IChzbXUpLT5mdW5jcy0+c2VuZF9zbWNfbXNnKChzbXUpLCAobXNnKSkgOiAwKQogI2RlZmlu ZSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFyYW0oc211LCBtc2csIHBhcmFtKSBcCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3YxMV8wLmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3YxMV8wLmgKaW5kZXggMjg1M2FiNy4u YWE4ZDgxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3Nt dV92MTFfMC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXVfdjEx XzAuaApAQCAtMzYsNiArMzYsMTQgQEAKICNkZWZpbmUgc21uTVAwX0ZXX0lOVEYJCQkweDMwMTAx YzAKICNkZWZpbmUgc21uTVAxX1BVQl9DVFJMCQkJMHgzMDEwYjE0CiAKK3N0cnVjdCBzbXVfMTFf MF9tYXhfc3VzdGFpbmFibGVfY2xvY2tzIHsKKwl1aW50MzJfdCBkaXNwbGF5X2Nsb2NrOworCXVp bnQzMl90IHBoeV9jbG9jazsKKwl1aW50MzJfdCBwaXhlbF9jbG9jazsKKwl1aW50MzJfdCB1Y2xv Y2s7CisJdWludDMyX3QgZGNlZl9jbG9jazsKKwl1aW50MzJfdCBzb2NfY2xvY2s7Cit9OwogCiBz dHJ1Y3Qgc211XzExXzBfZHBtX3RhYmxlIHsKIAl1aW50MzJfdCAgICBtaW47ICAgICAgICAvKiBN SHogKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdV92MTFf MC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMKaW5kZXggZGVm NjRmNS4uMTI5ZDJiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkv c211X3YxMV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8w LmMKQEAgLTczOCw2ICs3MzgsMTE5IEBAIHN0YXRpYyBpbnQgc211X3YxMV8wX25vdGlmeV9kaXNw bGF5X2NoYW5nZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIAlyZXR1cm4gcmV0OwogfQogCitz dGF0aWMgaW50CitzbXVfdjExXzBfZ2V0X21heF9zdXN0YWluYWJsZV9jbG9jayhzdHJ1Y3Qgc211 X2NvbnRleHQgKnNtdSwgdWludDMyX3QgKmNsb2NrLAorCQkJCSAgICBQUENMS19lIGNsb2NrX3Nl bGVjdCkKK3sKKwlpbnQgcmV0ID0gMDsKKworCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9w YXJhbShzbXUsIFNNVV9NU0dfR2V0RGNNb2RlTWF4RHBtRnJlcSwKKwkJCQkJICBjbG9ja19zZWxl Y3QgPDwgMTYpOworCWlmIChyZXQpIHsKKwkJcHJfZXJyKCJbR2V0TWF4U3VzdGFpbmFibGVDbG9j a10gRmFpbGVkIHRvIGdldCBtYXggREMgY2xvY2sgZnJvbSBTTUMhIik7CisJCXJldHVybiByZXQ7 CisJfQorCisJcmV0ID0gc211X3JlYWRfc21jX2FyZyhzbXUsIGNsb2NrKTsKKwlpZiAocmV0KQor CQlyZXR1cm4gcmV0OworCisJaWYgKCpjbG9jayAhPSAwKQorCQlyZXR1cm4gMDsKKworCS8qIGlm IERDIGxpbWl0IGlzIHplcm8sIHJldHVybiBBQyBsaW1pdCAqLworCXJldCA9IHNtdV9zZW5kX3Nt Y19tc2dfd2l0aF9wYXJhbShzbXUsIFNNVV9NU0dfR2V0TWF4RHBtRnJlcSwKKwkJCQkJICBjbG9j a19zZWxlY3QgPDwgMTYpOworCWlmIChyZXQpIHsKKwkJcHJfZXJyKCJbR2V0TWF4U3VzdGFpbmFi bGVDbG9ja10gZmFpbGVkIHRvIGdldCBtYXggQUMgY2xvY2sgZnJvbSBTTUMhIik7CisJCXJldHVy biByZXQ7CisJfQorCisJcmV0ID0gc211X3JlYWRfc21jX2FyZyhzbXUsIGNsb2NrKTsKKworCXJl dHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgc211X3YxMV8wX2luaXRfbWF4X3N1c3RhaW5hYmxl X2Nsb2NrcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKK3sKKwlzdHJ1Y3Qgc211XzExXzBfbWF4 X3N1c3RhaW5hYmxlX2Nsb2NrcyAqbWF4X3N1c3RhaW5hYmxlX2Nsb2NrczsKKwlpbnQgcmV0ID0g MDsKKworCW1heF9zdXN0YWluYWJsZV9jbG9ja3MgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc211 XzExXzBfbWF4X3N1c3RhaW5hYmxlX2Nsb2NrcyksCisJCQkJCSBHRlBfS0VSTkVMKTsKKwlzbXUt PnNtdV90YWJsZS5tYXhfc3VzdGFpbmFibGVfY2xvY2tzID0gKHZvaWQgKiltYXhfc3VzdGFpbmFi bGVfY2xvY2tzOworCisJbWF4X3N1c3RhaW5hYmxlX2Nsb2Nrcy0+dWNsb2NrID0gc211LT5zbXVf dGFibGUuYm9vdF92YWx1ZXMudWNsayAvIDEwMDsKKwltYXhfc3VzdGFpbmFibGVfY2xvY2tzLT5z b2NfY2xvY2sgPSBzbXUtPnNtdV90YWJsZS5ib290X3ZhbHVlcy5zb2NjbGsgLyAxMDA7CisJbWF4 X3N1c3RhaW5hYmxlX2Nsb2Nrcy0+ZGNlZl9jbG9jayA9IHNtdS0+c211X3RhYmxlLmJvb3RfdmFs dWVzLmRjZWZjbGsgLyAxMDA7CisJbWF4X3N1c3RhaW5hYmxlX2Nsb2Nrcy0+ZGlzcGxheV9jbG9j ayA9IDB4RkZGRkZGRkY7CisJbWF4X3N1c3RhaW5hYmxlX2Nsb2Nrcy0+cGh5X2Nsb2NrID0gMHhG RkZGRkZGRjsKKwltYXhfc3VzdGFpbmFibGVfY2xvY2tzLT5waXhlbF9jbG9jayA9IDB4RkZGRkZG RkY7CisKKwlpZiAoc211X2ZlYXR1cmVfaXNfZW5hYmxlZChzbXUsIEZFQVRVUkVfRFBNX1VDTEtf QklUKSkgeworCQlyZXQgPSBzbXVfdjExXzBfZ2V0X21heF9zdXN0YWluYWJsZV9jbG9jayhzbXUs CisJCQkJCQkJICAmKG1heF9zdXN0YWluYWJsZV9jbG9ja3MtPnVjbG9jayksCisJCQkJCQkJICBQ UENMS19VQ0xLKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJbJXNdIGZhaWxlZCB0byBnZXQg bWF4IFVDTEsgZnJvbSBTTUMhIiwKKwkJCSAgICAgICBfX2Z1bmNfXyk7CisJCQlyZXR1cm4gcmV0 OworCQl9CisJfQorCisJaWYgKHNtdV9mZWF0dXJlX2lzX2VuYWJsZWQoc211LCBGRUFUVVJFX0RQ TV9TT0NDTEtfQklUKSkgeworCQlyZXQgPSBzbXVfdjExXzBfZ2V0X21heF9zdXN0YWluYWJsZV9j bG9jayhzbXUsCisJCQkJCQkJICAmKG1heF9zdXN0YWluYWJsZV9jbG9ja3MtPnNvY19jbG9jayks CisJCQkJCQkJICBQUENMS19TT0NDTEspOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIlslc10g ZmFpbGVkIHRvIGdldCBtYXggU09DQ0xLIGZyb20gU01DISIsCisJCQkgICAgICAgX19mdW5jX18p OworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCWlmIChzbXVfZmVhdHVyZV9pc19lbmFibGVk KHNtdSwgRkVBVFVSRV9EUE1fRENFRkNMS19CSVQpKSB7CisJCXJldCA9IHNtdV92MTFfMF9nZXRf bWF4X3N1c3RhaW5hYmxlX2Nsb2NrKHNtdSwKKwkJCQkJCQkgICYobWF4X3N1c3RhaW5hYmxlX2Ns b2Nrcy0+ZGNlZl9jbG9jayksCisJCQkJCQkJICBQUENMS19EQ0VGQ0xLKTsKKwkJaWYgKHJldCkg eworCQkJcHJfZXJyKCJbJXNdIGZhaWxlZCB0byBnZXQgbWF4IERDRUZDTEsgZnJvbSBTTUMhIiwK KwkJCSAgICAgICBfX2Z1bmNfXyk7CisJCQlyZXR1cm4gcmV0OworCQl9CisKKwkJcmV0ID0gc211 X3YxMV8wX2dldF9tYXhfc3VzdGFpbmFibGVfY2xvY2soc211LAorCQkJCQkJCSAgJihtYXhfc3Vz dGFpbmFibGVfY2xvY2tzLT5kaXNwbGF5X2Nsb2NrKSwKKwkJCQkJCQkgIFBQQ0xLX0RJU1BDTEsp OworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIlslc10gZmFpbGVkIHRvIGdldCBtYXggRElTUENM SyBmcm9tIFNNQyEiLAorCQkJICAgICAgIF9fZnVuY19fKTsKKwkJCXJldHVybiByZXQ7CisJCX0K KwkJcmV0ID0gc211X3YxMV8wX2dldF9tYXhfc3VzdGFpbmFibGVfY2xvY2soc211LAorCQkJCQkJ CSAgJihtYXhfc3VzdGFpbmFibGVfY2xvY2tzLT5waHlfY2xvY2spLAorCQkJCQkJCSAgUFBDTEtf UEhZQ0xLKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCJbJXNdIGZhaWxlZCB0byBnZXQgbWF4 IFBIWUNMSyBmcm9tIFNNQyEiLAorCQkJICAgICAgIF9fZnVuY19fKTsKKwkJCXJldHVybiByZXQ7 CisJCX0KKwkJcmV0ID0gc211X3YxMV8wX2dldF9tYXhfc3VzdGFpbmFibGVfY2xvY2soc211LAor CQkJCQkJCSAgJihtYXhfc3VzdGFpbmFibGVfY2xvY2tzLT5waXhlbF9jbG9jayksCisJCQkJCQkJ ICBQUENMS19QSVhDTEspOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIlslc10gZmFpbGVkIHRv IGdldCBtYXggUElYQ0xLIGZyb20gU01DISIsCisJCQkgICAgICAgX19mdW5jX18pOworCQkJcmV0 dXJuIHJldDsKKwkJfQorCX0KKworCWlmIChtYXhfc3VzdGFpbmFibGVfY2xvY2tzLT5zb2NfY2xv Y2sgPCBtYXhfc3VzdGFpbmFibGVfY2xvY2tzLT51Y2xvY2spCisJCW1heF9zdXN0YWluYWJsZV9j bG9ja3MtPnVjbG9jayA9IG1heF9zdXN0YWluYWJsZV9jbG9ja3MtPnNvY19jbG9jazsKKworCXJl dHVybiAwOworfQorCiBzdGF0aWMgaW50IHNtdV92MTFfMF9nZXRfcG93ZXJfbGltaXQoc3RydWN0 IHNtdV9jb250ZXh0ICpzbXUpCiB7CiAJaW50IHJldDsKQEAgLTgxMCw2ICs5MjMsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHNtdV9mdW5jcyBzbXVfdjExXzBfZnVuY3MgPSB7CiAJLm5vdGlmeV9k aXNwbGF5X2NoYW5nZSA9IHNtdV92MTFfMF9ub3RpZnlfZGlzcGxheV9jaGFuZ2UsCiAJLmdldF9w b3dlcl9saW1pdCA9IHNtdV92MTFfMF9nZXRfcG93ZXJfbGltaXQsCiAJLmdldF9jdXJyZW50X2Ns a19mcmVxID0gc211X3YxMV8wX2dldF9jdXJyZW50X2Nsa19mcmVxLAorCS5pbml0X21heF9zdXN0 YWluYWJsZV9jbG9ja3MgPSBzbXVfdjExXzBfaW5pdF9tYXhfc3VzdGFpbmFibGVfY2xvY2tzLAog fTsKIAogdm9pZCBzbXVfdjExXzBfc2V0X3NtdV9mdW5jcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNt dSkKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK