From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rex Zhu Subject: [PATCH v2 5/7] drm/amd/pp: Implement edit_dpm_table on smu7 Date: Fri, 19 Jan 2018 16:10:09 +0800 Message-ID: <1516349411-18102-6-git-send-email-Rex.Zhu@amd.com> References: <1516349411-18102-1-git-send-email-Rex.Zhu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1516349411-18102-1-git-send-email-Rex.Zhu-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: Rex Zhu djI6IC0gY2hlY2sgY2xrIGFnYWluc3QgT3ZlckRyaXZlIGxpbWl0cyBmcm9tIFZCSU9TCiAgICAt IHNldCBPRCBmbGFnIHdoZW4gdXNlciBjb21taXQgdGhlIHNldHRpbmcuCgpDaGFuZ2UtSWQ6IElm N2I0ZjZhMWE3MDQ5ZjVkMTNkNDc2MDNkMzQ0NmI2NmNmNmU5ZDRhClNpZ25lZC1vZmYtYnk6IFJl eCBaaHUgPFJleC5aaHVAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxh eS9od21nci9zbXU3X2h3bWdyLmMgfCAxNjUgKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmls ZSBjaGFuZ2VkLCAxNjQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdfaHdtZ3IuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdfaHdtZ3IuYwppbmRleCA0Y2NjOTEw Li4zZWQ0YjRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21n ci9zbXU3X2h3bWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Iv c211N19od21nci5jCkBAIC00ODA4LDYgKzQ4MDgsMTY5IEBAIHN0YXRpYyBpbnQgc211N19nZXRf dGhlcm1hbF90ZW1wZXJhdHVyZV9yYW5nZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCXJldHVy biAwOwogfQogCitzdGF0aWMgYm9vbCBzbXU3X2NoZWNrX2Nsa192b2x0YWdlX3ZhbGlkKHN0cnVj dCBwcF9od21nciAqaHdtZ3IsCisJCQkJCWVudW0gUFBfT0RfRFBNX1RBQkxFX0NPTU1BTkQgdHlw ZSwKKwkJCQkJdWludDMyX3QgY2xrLAorCQkJCQl1aW50MzJfdCB2b2x0YWdlKQoreworCXN0cnVj dCBzbXU3X2h3bWdyICpkYXRhID0gKHN0cnVjdCBzbXU3X2h3bWdyICopKGh3bWdyLT5iYWNrZW5k KTsKKworCXN0cnVjdCBwaG1fcHB0X3YxX2luZm9ybWF0aW9uICp0YWJsZV9pbmZvID0KKwkJCShz dHJ1Y3QgcGhtX3BwdF92MV9pbmZvcm1hdGlvbiAqKShod21nci0+cHB0YWJsZSk7CisJdWludDMy X3QgbWluX3ZkZGM7CisJc3RydWN0IHBobV9wcHRfdjFfY2xvY2tfdm9sdGFnZV9kZXBlbmRlbmN5 X3RhYmxlICpkZXBfc2Nsa190YWJsZTsKKworCWlmICh0YWJsZV9pbmZvID09IE5VTEwpCisJCXJl dHVybiAtRUlOVkFMOworCisJZGVwX3NjbGtfdGFibGUgPSB0YWJsZV9pbmZvLT52ZGRfZGVwX29u X3NjbGs7CisJbWluX3ZkZGMgPSBkZXBfc2Nsa190YWJsZS0+ZW50cmllc1swXS52ZGRjOworCisJ aWYgKHZvbHRhZ2UgPCBtaW5fdmRkYyB8fCB2b2x0YWdlID4gMjAwMCkgeworCQlwcl9pbmZvKCJP RCB2b2x0YWdlIGlzIG91dCBvZiByYW5nZSBbJWQgLSAyMDAwXSBtVlxuIiwgbWluX3ZkZGMpOwor CQlyZXR1cm4gZmFsc2U7CisJfQorCisJaWYgKHR5cGUgPT0gUFBfT0RfRURJVF9TQ0xLX1ZERENf VEFCTEUpIHsKKwkJaWYgKGRhdGEtPnZiaW9zX2Jvb3Rfc3RhdGUuc2Nsa19ib290dXBfdmFsdWUg PiBjbGsgfHwKKwkJCWh3bWdyLT5wbGF0Zm9ybV9kZXNjcmlwdG9yLm92ZXJkcml2ZUxpbWl0LmVu Z2luZUNsb2NrIDwgY2xrKSB7CisJCQlwcl9pbmZvKCJPRCBlbmdpbmUgY2xvY2sgaXMgb3V0IG9m IHJhbmdlIFslZCAtICVkXSBNSHpcbiIsCisJCQkJZGF0YS0+dmJpb3NfYm9vdF9zdGF0ZS5zY2xr X2Jvb3R1cF92YWx1ZSwKKwkJCQlod21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5vdmVyZHJpdmVM aW1pdC5lbmdpbmVDbG9jayAvIDEwMCk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9IGVsc2Ug aWYgKHR5cGUgPT0gUFBfT0RfRURJVF9NQ0xLX1ZERENfVEFCTEUpIHsKKwkJaWYgKGRhdGEtPnZi aW9zX2Jvb3Rfc3RhdGUubWNsa19ib290dXBfdmFsdWUgPiBjbGsgfHwKKwkJCWh3bWdyLT5wbGF0 Zm9ybV9kZXNjcmlwdG9yLm92ZXJkcml2ZUxpbWl0Lm1lbW9yeUNsb2NrIDwgY2xrKSB7CisJCQlw cl9pbmZvKCJPRCBtZW1vcnkgY2xvY2sgaXMgb3V0IG9mIHJhbmdlIFslZCAtICVkXSBNSHpcbiIs CisJCQkJZGF0YS0+dmJpb3NfYm9vdF9zdGF0ZS5tY2xrX2Jvb3R1cF92YWx1ZS8xMDAsCisJCQkJ aHdtZ3ItPnBsYXRmb3JtX2Rlc2NyaXB0b3Iub3ZlcmRyaXZlTGltaXQubWVtb3J5Q2xvY2sgLyAx MDApOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfSBlbHNlIHsKKwkJcmV0dXJuIGZhbHNlOwor CX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgdm9pZCBzbXU3X2NoZWNrX2RwbV90YWJs ZV91cGRhdGVkKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCit7CisJc3RydWN0IHNtdTdfaHdtZ3Ig KmRhdGEgPSAoc3RydWN0IHNtdTdfaHdtZ3IgKikoaHdtZ3ItPmJhY2tlbmQpOworCXN0cnVjdCBz bXU3X29kbl9kcG1fdGFibGUgKm9kbl90YWJsZSA9ICYoZGF0YS0+b2RuX2RwbV90YWJsZSk7CisJ c3RydWN0IHBobV9wcHRfdjFfaW5mb3JtYXRpb24gKnRhYmxlX2luZm8gPQorCQkJKHN0cnVjdCBw aG1fcHB0X3YxX2luZm9ybWF0aW9uICopKGh3bWdyLT5wcHRhYmxlKTsKKwl1aW50MzJfdCBpOwor CisJc3RydWN0IHBobV9wcHRfdjFfY2xvY2tfdm9sdGFnZV9kZXBlbmRlbmN5X3RhYmxlICpkZXBf dGFibGU7CisJc3RydWN0IHBobV9wcHRfdjFfY2xvY2tfdm9sdGFnZV9kZXBlbmRlbmN5X3RhYmxl ICpvZG5fZGVwX3RhYmxlOworCisJaWYgKHRhYmxlX2luZm8gPT0gTlVMTCkKKwkJcmV0dXJuOwor CisJZm9yIChpPTA7IGk8ZGF0YS0+ZHBtX3RhYmxlLnNjbGtfdGFibGUuY291bnQ7IGkrKykgewor CQlpZiAob2RuX3RhYmxlLT5vZG5fY29yZV9jbG9ja19kcG1fbGV2ZWxzLmVudHJpZXNbaV0uY2xv Y2sgIT0KKwkJCQkJZGF0YS0+ZHBtX3RhYmxlLnNjbGtfdGFibGUuZHBtX2xldmVsc1tpXS52YWx1 ZSkgeworCQkJZGF0YS0+bmVlZF91cGRhdGVfc211N19kcG1fdGFibGUgfD0gRFBNVEFCTEVfT0Rf VVBEQVRFX1NDTEs7CisJCQlicmVhazsKKwkJfQorCX0KKworCWZvciAoaT0wOyBpPGRhdGEtPmRw bV90YWJsZS5zY2xrX3RhYmxlLmNvdW50OyBpKyspIHsKKwkJaWYgKG9kbl90YWJsZS0+b2RuX21l bW9yeV9jbG9ja19kcG1fbGV2ZWxzLmVudHJpZXNbaV0uY2xvY2sgIT0KKwkJCQkJZGF0YS0+ZHBt X3RhYmxlLm1jbGtfdGFibGUuZHBtX2xldmVsc1tpXS52YWx1ZSkgeworCQkJZGF0YS0+bmVlZF91 cGRhdGVfc211N19kcG1fdGFibGUgfD0gRFBNVEFCTEVfT0RfVVBEQVRFX01DTEs7CisJCQlicmVh azsKKwkJfQorCX0KKworCWRlcF90YWJsZSA9IHRhYmxlX2luZm8tPnZkZF9kZXBfb25fbWNsazsK KwlvZG5fZGVwX3RhYmxlID0gKHN0cnVjdCBwaG1fcHB0X3YxX2Nsb2NrX3ZvbHRhZ2VfZGVwZW5k ZW5jeV90YWJsZSAqKSYob2RuX3RhYmxlLT52ZGRfZGVwZW5kZW5jeV9vbl9tY2xrKTsKKworCWZv ciAoaT0wOyBpPGRlcF90YWJsZS0+Y291bnQ7IGkrKykgeworCQlpZiAoZGVwX3RhYmxlLT5lbnRy aWVzW2ldLnZkZGMgIT0gb2RuX2RlcF90YWJsZS0+ZW50cmllc1tpXS52ZGRjKSB7CisJCQlkYXRh LT5uZWVkX3VwZGF0ZV9zbXU3X2RwbV90YWJsZSB8PSBEUE1UQUJMRV9PRF9VUERBVEVfVkREQzsK KwkJCXJldHVybjsKKwkJfQorCX0KKworCWRlcF90YWJsZSA9IHRhYmxlX2luZm8tPnZkZF9kZXBf b25fc2NsazsKKwlvZG5fZGVwX3RhYmxlID0gKHN0cnVjdCBwaG1fcHB0X3YxX2Nsb2NrX3ZvbHRh Z2VfZGVwZW5kZW5jeV90YWJsZSAqKSYob2RuX3RhYmxlLT52ZGRfZGVwZW5kZW5jeV9vbl9zY2xr KTsKKwlmb3IgKGk9MDsgaTxkZXBfdGFibGUtPmNvdW50OyBpKyspIHsKKwkJaWYgKGRlcF90YWJs ZS0+ZW50cmllc1tpXS52ZGRjICE9IG9kbl9kZXBfdGFibGUtPmVudHJpZXNbaV0udmRkYykgewor CQkJZGF0YS0+bmVlZF91cGRhdGVfc211N19kcG1fdGFibGUgfD0gRFBNVEFCTEVfT0RfVVBEQVRF X1ZEREM7CisJCQlyZXR1cm47CisJCX0KKwl9Cit9CisKK3N0YXRpYyBpbnQgc211N19vZG5fZWRp dF9kcG1fdGFibGUoc3RydWN0IHBwX2h3bWdyICpod21nciwKKwkJCQkJZW51bSBQUF9PRF9EUE1f VEFCTEVfQ09NTUFORCB0eXBlLAorCQkJCQlsb25nICppbnB1dCwgdWludDMyX3Qgc2l6ZSkKK3sK Kwl1aW50MzJfdCBpOworCXN0cnVjdCBwaG1fb2RuX2Nsb2NrX2xldmVscyAqcG9kbl9kcG1fdGFi bGVfaW5fYmFja2VuZCA9IE5VTEw7CisJc3RydWN0IHNtdTdfb2RuX2Nsb2NrX3ZvbHRhZ2VfZGVw ZW5kZW5jeV90YWJsZSAqcG9kbl92ZGRfZGVwX2luX2JhY2tlbmQgPSBOVUxMOworCXN0cnVjdCBz bXU3X2h3bWdyICpkYXRhID0gKHN0cnVjdCBzbXU3X2h3bWdyICopKGh3bWdyLT5iYWNrZW5kKTsK KworCXVpbnQzMl90IGlucHV0X2NsazsKKwl1aW50MzJfdCBpbnB1dF92b2w7CisJdWludDMyX3Qg aW5wdXRfbGV2ZWw7CisKKwlQUF9BU1NFUlRfV0lUSF9DT0RFKGlucHV0LCAiTlVMTCB1c2VyIGlu cHV0IGZvciBjbG9jayBhbmQgdm9sdGFnZSIsCisJCQkJcmV0dXJuIC1FSU5WQUwpOworCisJaWYg KCFod21nci0+b2RfZW5hYmxlZCkgeworCQlwcl9pbmZvKCJPdmVyRHJpdmUgZmVhdHVyZSBub3Qg ZW5hYmxlZFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChQUF9PRF9FRElUX1ND TEtfVkREQ19UQUJMRSA9PSB0eXBlKSB7CisJCXBvZG5fZHBtX3RhYmxlX2luX2JhY2tlbmQgPSAm ZGF0YS0+b2RuX2RwbV90YWJsZS5vZG5fY29yZV9jbG9ja19kcG1fbGV2ZWxzOworCQlwb2RuX3Zk ZF9kZXBfaW5fYmFja2VuZCA9ICZkYXRhLT5vZG5fZHBtX3RhYmxlLnZkZF9kZXBlbmRlbmN5X29u X3NjbGs7CisJCVBQX0FTU0VSVF9XSVRIX0NPREUoKHBvZG5fZHBtX3RhYmxlX2luX2JhY2tlbmQg JiYgcG9kbl92ZGRfZGVwX2luX2JhY2tlbmQpLAorCQkJCSJGYWlsZWQgdG8gZ2V0IE9ETiBTQ0xL IGFuZCBWb2x0YWdlIHRhYmxlcyIsCisJCQkJcmV0dXJuIC1FSU5WQUwpOworCX0gZWxzZSBpZiAo UFBfT0RfRURJVF9NQ0xLX1ZERENfVEFCTEUgPT0gdHlwZSkgeworCQlwb2RuX2RwbV90YWJsZV9p bl9iYWNrZW5kID0gJmRhdGEtPm9kbl9kcG1fdGFibGUub2RuX21lbW9yeV9jbG9ja19kcG1fbGV2 ZWxzOworCQlwb2RuX3ZkZF9kZXBfaW5fYmFja2VuZCA9ICZkYXRhLT5vZG5fZHBtX3RhYmxlLnZk ZF9kZXBlbmRlbmN5X29uX21jbGs7CisKKwkJUFBfQVNTRVJUX1dJVEhfQ09ERSgocG9kbl9kcG1f dGFibGVfaW5fYmFja2VuZCAmJiBwb2RuX3ZkZF9kZXBfaW5fYmFja2VuZCksCisJCQkiRmFpbGVk IHRvIGdldCBPRE4gTUNMSyBhbmQgVm9sdGFnZSB0YWJsZXMiLAorCQkJcmV0dXJuIC1FSU5WQUwp OworCX0gZWxzZSBpZiAoUFBfT0RfUkVTVE9SRV9ERUZBVUxUX1RBQkxFID09IHR5cGUpIHsKKwkJ c211N19vZG5faW5pdGlhbF9kZWZhdWx0X3NldHRpbmcoaHdtZ3IpOworCQlyZXR1cm4gMDsKKwl9 IGVsc2UgaWYgKFBQX09EX0NPTU1JVF9EUE1fVEFCTEUgPT0gdHlwZSkgeworCQlzbXU3X2NoZWNr X2RwbV90YWJsZV91cGRhdGVkKGh3bWdyKTsKKwkJcmV0dXJuIDA7CisJfSBlbHNlIHsKKwkJcmV0 dXJuIC1FSU5WQUw7CisJfQorCisJZm9yIChpID0gMDsgaSA8IHNpemU7IGkgKz0gMykgeworCQlp ZiAoaSArIDMgPiBzaXplIHx8IGlucHV0W2ldID49IHBvZG5fZHBtX3RhYmxlX2luX2JhY2tlbmQt Pm51bV9vZl9wbCkgeworCQkJcHJfaW5mbygiaW52YWxpZCBjbG9jayB2b2x0YWdlIGlucHV0IFxu Iik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlpbnB1dF9sZXZlbCA9IGlucHV0W2ldOworCQlpbnB1 dF9jbGsgPSBpbnB1dFtpKzFdICogMTAwOworCQlpbnB1dF92b2wgPSBpbnB1dFtpKzJdOworCisJ CWlmIChzbXU3X2NoZWNrX2Nsa192b2x0YWdlX3ZhbGlkKGh3bWdyLCB0eXBlLCBpbnB1dF9jbGss IGlucHV0X3ZvbCkpIHsKKwkJCXBvZG5fZHBtX3RhYmxlX2luX2JhY2tlbmQtPmVudHJpZXNbaW5w dXRfbGV2ZWxdLmNsb2NrID0gaW5wdXRfY2xrOworCQkJcG9kbl92ZGRfZGVwX2luX2JhY2tlbmQt PmVudHJpZXNbaW5wdXRfbGV2ZWxdLmNsayA9IGlucHV0X2NsazsKKwkJCXBvZG5fZHBtX3RhYmxl X2luX2JhY2tlbmQtPmVudHJpZXNbaW5wdXRfbGV2ZWxdLnZkZGMgPSBpbnB1dF92b2w7CisJCQlw b2RuX3ZkZF9kZXBfaW5fYmFja2VuZC0+ZW50cmllc1tpbnB1dF9sZXZlbF0udmRkYyA9IGlucHV0 X3ZvbDsKKwkJfSBlbHNlIHsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJfQorCisJcmV0dXJu IDA7Cit9CisKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBwcF9od21ncl9mdW5jIHNtdTdfaHdtZ3Jf ZnVuY3MgPSB7CiAJLmJhY2tlbmRfaW5pdCA9ICZzbXU3X2h3bWdyX2JhY2tlbmRfaW5pdCwKIAku YmFja2VuZF9maW5pID0gJnNtdTdfaHdtZ3JfYmFja2VuZF9maW5pLApAQCAtNDg2Miw2ICs1MDI1 LDcgQEAgc3RhdGljIGludCBzbXU3X2dldF90aGVybWFsX3RlbXBlcmF0dXJlX3JhbmdlKHN0cnVj dCBwcF9od21nciAqaHdtZ3IsCiAJLm5vdGlmeV9jYWNfYnVmZmVyX2luZm8gPSBzbXU3X25vdGlm eV9jYWNfYnVmZmVyX2luZm8sCiAJLmdldF9tYXhfaGlnaF9jbG9ja3MgPSBzbXU3X2dldF9tYXhf aGlnaF9jbG9ja3MsCiAJLmdldF90aGVybWFsX3RlbXBlcmF0dXJlX3JhbmdlID0gc211N19nZXRf dGhlcm1hbF90ZW1wZXJhdHVyZV9yYW5nZSwKKwkub2RuX2VkaXRfZHBtX3RhYmxlID0gc211N19v ZG5fZWRpdF9kcG1fdGFibGUsCiB9OwogCiB1aW50OF90IHNtdTdfZ2V0X3NsZWVwX2RpdmlkZXJf aWRfZnJvbV9jbG9jayh1aW50MzJfdCBjbG9jaywKQEAgLTQ4OTMsNCArNTA1NywzIEBAIGludCBz bXU3X2luaXRfZnVuY3Rpb25fcG9pbnRlcnMoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAogCXJl dHVybiByZXQ7CiB9Ci0KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZngK