From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rex Zhu Subject: [PATCH v2 2/7] drm/amd/pp: Add edit/commit/show OD clock/voltage support in sysfs Date: Fri, 19 Jan 2018 16:10:06 +0800 Message-ID: <1516349411-18102-3-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 d2hlbiBjYXQgcHBfb2RfY2xrX3ZvbHRhZ2UgaXQgc2hvdwpPRF9TQ0xLOgowOiAgICAgICAgMzAw TWh6ICAgICAgICA4MDAgbVYKMTogICAgICAgIDQ2Nk1oeiAgICAgICAgODE4IG1WCjI6ICAgICAg ICA3NTFNaHogICAgICAgIDgyNCBtVgozOiAgICAgICAxMDE5TWh6ICAgICAgICA5ODcgbVYKNDog ICAgICAgMTA3NE1oeiAgICAgICAxMDM3IG1WCjU6ICAgICAgIDExMjZNaHogICAgICAgMTA4NyBt Vgo2OiAgICAgICAxMTY5TWh6ICAgICAgIDExMzcgbVYKNzogICAgICAgMTIwNk1oeiAgICAgICAx MTUwIG1WCk9EX01DTEs6CjA6ICAgICAgICAzMDBNaHogICAgICAgIDgwMCBtVgoxOiAgICAgICAx NjUwTWh6ICAgICAgIDEwMDAgbVYKCmVjaG8gInMvbSBsZXZlbCBjbG9jayB2b2x0YWdlIiB0byBj aGFuZ2UKc2Nsay9tY2xrJ3MgIGNsb2NrIGFuZCB2b2x0YWdlCgplY2hvICJyIiB0byByZXN0b3Jl IGRlZmF1bHQgdmFsdWUuCmVjaG8gImMiIHRvIGNvbW1pdCB0aGUgdXNlciBzZXR0aW5nLgoKQ2hh bmdlLUlkOiBJNGI0NWMwOWZmMzc2Y2FhNTNjMWJmODMzM2NmNjNmMzViMjgzOTAxNgpSZXZpZXdl ZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgpTaWduZWQtb2Zm LWJ5OiBSZXggWmh1IDxSZXguWmh1QGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2RwbS5oICAgICAgICB8ICA0ICsrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfcG0uYyAgICAgICAgIHwgOTggKysrKysrKysrKysrKysrKysrKysrKysrKy0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2RfcHBfaW50ZXJmYWNlLmggfCAgMSArCiBk cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRfcG93ZXJwbGF5LmMgIHwgMTkgKysrKysK IDQgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHBtLmggYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHBtLmgKaW5kZXggOTg2ZjFkNS4uNGI1NzU1ZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RwbS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcG0uaApAQCAtMzc0LDYgKzM3NCwx MCBAQCBlbnVtIGFtZGdwdV9wY2llX2dlbiB7CiAJCSgoYWRldiktPnBvd2VycGxheS5wcF9mdW5j cy0+c2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZShcCiAJCQkoYWRldiktPnBvd2VycGxheS5wcF9oYW5k bGUsIHBhcmFtZXRlciwgc2l6ZSkpCiAKKyNkZWZpbmUgYW1kZ3B1X2RwbV9vZG5fZWRpdF9kcG1f dGFibGUoYWRldiwgdHlwZSwgcGFyYW1ldGVyLCBzaXplKSBcCisJCSgoYWRldiktPnBvd2VycGxh eS5wcF9mdW5jcy0+b2RuX2VkaXRfZHBtX3RhYmxlKFwKKwkJCShhZGV2KS0+cG93ZXJwbGF5LnBw X2hhbmRsZSwgdHlwZSwgcGFyYW1ldGVyLCBzaXplKSkKKwogc3RydWN0IGFtZGdwdV9kcG0gewog CXN0cnVjdCBhbWRncHVfcHMgICAgICAgICpwczsKIAkvKiBudW1iZXIgb2YgdmFsaWQgcG93ZXIg c3RhdGVzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf cG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCmluZGV4IGVkOTAx MmEuLmZkYTg1OGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCkBAIC0z NjAsNiArMzYwLDkwIEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfcHBfdGFibGUoc3RydWN0 IGRldmljZSAqZGV2LAogCXJldHVybiBjb3VudDsKIH0KIAorc3RhdGljIHNzaXplX3QgYW1kZ3B1 X3NldF9wcF9vZF9jbGtfdm9sdGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCXN0cnVjdCBkZXZp Y2VfYXR0cmlidXRlICphdHRyLAorCQljb25zdCBjaGFyICpidWYsCisJCXNpemVfdCBjb3VudCkK K3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IHJldDsK Kwl1aW50MzJfdCBwYXJhbWV0ZXJfc2l6ZSA9IDA7CisJbG9uZyBwYXJhbWV0ZXJbNjRdOworCWNo YXIgYnVmX2NweVsxMjhdOworCWNoYXIgKnRtcF9zdHI7CisJY2hhciAqc3ViX3N0cjsKKwljb25z dCBjaGFyIGRlbGltaXRlclszXSA9IHsnICcsICdcbicsICdcMCd9OworCXVpbnQzMl90IHR5cGU7 CisKKwlpZiAoY291bnQgPiAxMjcpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCpidWYgPT0g J3MnKQorCQl0eXBlID0gUFBfT0RfRURJVF9TQ0xLX1ZERENfVEFCTEU7CisJZWxzZSBpZiAoKmJ1 ZiA9PSAnbScpCisJCXR5cGUgPSBQUF9PRF9FRElUX01DTEtfVkREQ19UQUJMRTsKKwllbHNlIGlm KCpidWYgPT0gJ3InKQorCQl0eXBlID0gUFBfT0RfUkVTVE9SRV9ERUZBVUxUX1RBQkxFOworCWVs c2UgaWYgKCpidWYgPT0gJ2MnKQorCQl0eXBlID0gUFBfT0RfQ09NTUlUX0RQTV9UQUJMRTsKKwll bHNlCisJCXJldHVybiAtRUlOVkFMOworCisJbWVtY3B5KGJ1Zl9jcHksIGJ1ZiwgY291bnQrMSk7 CisKKwl0bXBfc3RyID0gYnVmX2NweTsKKworCXdoaWxlIChpc3NwYWNlKCorK3RtcF9zdHIpKTsK KworCXdoaWxlICh0bXBfc3RyWzBdKSB7CisJCXN1Yl9zdHIgPSBzdHJzZXAoJnRtcF9zdHIsIGRl bGltaXRlcik7CisJCXJldCA9IGtzdHJ0b2woc3ViX3N0ciwgMCwgJnBhcmFtZXRlcltwYXJhbWV0 ZXJfc2l6ZV0pOworCQlpZiAocmV0KQorCQkJcmV0dXJuIC1FSU5WQUw7CisJCXBhcmFtZXRlcl9z aXplKys7CisKKwkJd2hpbGUgKGlzc3BhY2UoKnRtcF9zdHIpKQorCQkJdG1wX3N0cisrOworCX0K KworCWlmIChhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPm9kbl9lZGl0X2RwbV90YWJsZSkKKwkJ cmV0ID0gYW1kZ3B1X2RwbV9vZG5fZWRpdF9kcG1fdGFibGUoYWRldiwgdHlwZSwKKwkJCQkJCXBh cmFtZXRlciwgcGFyYW1ldGVyX3NpemUpOworCisJaWYgKHJldCkKKwkJcmV0dXJuIC1FSU5WQUw7 CisKKwlpZiAodHlwZSA9PSBQUF9PRF9DT01NSVRfRFBNX1RBQkxFKSB7CisJCWlmIChhZGV2LT5w b3dlcnBsYXkucHBfZnVuY3MtPmRpc3BhdGNoX3Rhc2tzKSB7CisJCQlhbWRncHVfZHBtX2Rpc3Bh dGNoX3Rhc2soYWRldiwgQU1EX1BQX1RBU0tfUkVBREpVU1RfUE9XRVJfU1RBVEUsIE5VTEwpOwor CQkJcmV0dXJuIGNvdW50OworCQl9IGVsc2UgeworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9 CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfcHBfb2Rf Y2xrX3ZvbHRhZ2Uoc3RydWN0IGRldmljZSAqZGV2LAorCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSAqYXR0ciwKKwkJY2hhciAqYnVmKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2 X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2LT5k ZXZfcHJpdmF0ZTsKKwl1aW50MzJfdCBzaXplID0gMDsKKworCWlmIChhZGV2LT5wb3dlcnBsYXku cHBfZnVuY3MtPnByaW50X2Nsb2NrX2xldmVscykgeworCQlzaXplID0gYW1kZ3B1X2RwbV9wcmlu dF9jbG9ja19sZXZlbHMoYWRldiwgT0RfU0NMSywgYnVmKTsKKwkJc2l6ZSArPSBhbWRncHVfZHBt X3ByaW50X2Nsb2NrX2xldmVscyhhZGV2LCBPRF9NQ0xLLCBidWYrc2l6ZSk7CisJCXJldHVybiBz aXplOworCX0gZWxzZSB7CisJCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIlxuIik7 CisJfQorCit9CisKIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfcHBfZHBtX3NjbGsoc3RydWN0 IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJY2hhciAq YnVmKQpAQCAtODQyLDYgKzkyNiwxMCBAQCBzdGF0aWMgREVWSUNFX0FUVFIocHBfY29tcHV0ZV9w b3dlcl9wcm9maWxlLCBTX0lSVUdPIHwgU19JV1VTUiwKIHN0YXRpYyBERVZJQ0VfQVRUUihwcF9w b3dlcl9wcm9maWxlX21vZGUsIFNfSVJVR08gfCBTX0lXVVNSLAogCQlhbWRncHVfZ2V0X3BwX3Bv d2VyX3Byb2ZpbGVfbW9kZSwKIAkJYW1kZ3B1X3NldF9wcF9wb3dlcl9wcm9maWxlX21vZGUpOwor c3RhdGljIERFVklDRV9BVFRSKHBwX29kX2Nsa192b2x0YWdlLCBTX0lSVUdPIHwgU19JV1VTUiwK KwkJYW1kZ3B1X2dldF9wcF9vZF9jbGtfdm9sdGFnZSwKKwkJYW1kZ3B1X3NldF9wcF9vZF9jbGtf dm9sdGFnZSk7CisKIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9od21vbl9zaG93X3RlbXAoc3RydWN0 IGRldmljZSAqZGV2LAogCQkJCSAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAog CQkJCSAgICAgIGNoYXIgKmJ1ZikKQEAgLTE0ODEsNyArMTU2OSwxMyBAQCBpbnQgYW1kZ3B1X3Bt X3N5c2ZzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQkJInBwX3Bvd2VyX3By b2ZpbGVfbW9kZVxuIik7CiAJCXJldHVybiByZXQ7CiAJfQotCisJcmV0ID0gZGV2aWNlX2NyZWF0 ZV9maWxlKGFkZXYtPmRldiwKKwkJCSZkZXZfYXR0cl9wcF9vZF9jbGtfdm9sdGFnZSk7CisJaWYg KHJldCkgeworCQlEUk1fRVJST1IoImZhaWxlZCB0byBjcmVhdGUgZGV2aWNlIGZpbGUJIgorCQkJ CSJwcF9vZF9jbGtfdm9sdGFnZVxuIik7CisJCXJldHVybiByZXQ7CisJfQogCXJldCA9IGFtZGdw dV9kZWJ1Z2ZzX3BtX2luaXQoYWRldik7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoIkZhaWxl ZCB0byByZWdpc3RlciBkZWJ1Z2ZzIGZpbGUgZm9yIGRwbSFcbiIpOwpAQCAtMTUxOSw2ICsxNjEz LDggQEAgdm9pZCBhbWRncHVfcG1fc3lzZnNfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIAkJCSZkZXZfYXR0cl9wcF9jb21wdXRlX3Bvd2VyX3Byb2ZpbGUpOwogCWRldmljZV9yZW1v dmVfZmlsZShhZGV2LT5kZXYsCiAJCQkmZGV2X2F0dHJfcHBfcG93ZXJfcHJvZmlsZV9tb2RlKTsK KwlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LAorCQkJJmRldl9hdHRyX3BwX29kX2Nsa192 b2x0YWdlKTsKIH0KIAogdm9pZCBhbWRncHVfcG1fY29tcHV0ZV9jbG9ja3Moc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUv a2dkX3BwX2ludGVyZmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9wcF9p bnRlcmZhY2UuaAppbmRleCBlMzVkY2QwLi5iOWFhOWY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2luY2x1ZGUva2dkX3BwX2ludGVyZmFjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvaW5jbHVkZS9rZ2RfcHBfaW50ZXJmYWNlLmgKQEAgLTMxMCw2ICszMTAsNyBAQCBzdHJ1 Y3QgYW1kX3BtX2Z1bmNzIHsKIAkJc3RydWN0IGFtZF9wcF9zaW1wbGVfY2xvY2tfaW5mbyAqY2xv Y2tzKTsKIAlpbnQgKCpnZXRfcG93ZXJfcHJvZmlsZV9tb2RlKSh2b2lkICpoYW5kbGUsIGNoYXIg KmJ1Zik7CiAJaW50ICgqc2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZSkodm9pZCAqaGFuZGxlLCBsb25n ICppbnB1dCwgdWludDMyX3Qgc2l6ZSk7CisJaW50ICgqb2RuX2VkaXRfZHBtX3RhYmxlKSh2b2lk ICpoYW5kbGUsIHVpbnQzMl90IHR5cGUsIGxvbmcgKmlucHV0LCB1aW50MzJfdCBzaXplKTsKIH07 CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1k X3Bvd2VycGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kX3Bvd2VycGxh eS5jCmluZGV4IGQ5Y2I0MjQuLjg1NGM0M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9hbWRfcG93ZXJwbGF5LmMKQEAgLTExMjIsNiArMTEyMiwyNCBAQCBzdGF0aWMgaW50 IHBwX3NldF9wb3dlcl9wcm9maWxlX21vZGUodm9pZCAqaGFuZGxlLCBsb25nICppbnB1dCwgdWlu dDMyX3Qgc2l6ZSkKIAlyZXR1cm4gaHdtZ3ItPmh3bWdyX2Z1bmMtPnNldF9wb3dlcl9wcm9maWxl X21vZGUoaHdtZ3IsIGlucHV0LCBzaXplKTsKIH0KIAorc3RhdGljIGludCBwcF9vZG5fZWRpdF9k cG1fdGFibGUodm9pZCAqaGFuZGxlLCB1aW50MzJfdCB0eXBlLCBsb25nICppbnB1dCwgdWludDMy X3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyOworCXN0cnVjdCBwcF9pbnN0YW5j ZSAqcHBfaGFuZGxlID0gKHN0cnVjdCBwcF9pbnN0YW5jZSAqKWhhbmRsZTsKKworCWlmIChwcF9j aGVjayhwcF9oYW5kbGUpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWh3bWdyID0gcHBfaGFuZGxl LT5od21ncjsKKworCWlmIChod21nci0+aHdtZ3JfZnVuYy0+b2RuX2VkaXRfZHBtX3RhYmxlID09 IE5VTEwpIHsKKwkJcHJfaW5mbygiJXMgd2FzIG5vdCBpbXBsZW1lbnRlZC5cbiIsIF9fZnVuY19f KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIGh3bWdyLT5od21ncl9mdW5jLT5v ZG5fZWRpdF9kcG1fdGFibGUoaHdtZ3IsIHR5cGUsIGlucHV0LCBzaXplKTsKK30KKwogc3RhdGlj IGludCBwcF9kcG1fc2V0X3Bvd2VyX3Byb2ZpbGVfc3RhdGUodm9pZCAqaGFuZGxlLAogCQlzdHJ1 Y3QgYW1kX3BwX3Byb2ZpbGUgKnJlcXVlc3QpCiB7CkBAIC0xNTA3LDYgKzE1MjUsNyBAQCBzdGF0 aWMgaW50IHBwX2dldF9kaXNwbGF5X21vZGVfdmFsaWRhdGlvbl9jbG9ja3Modm9pZCAqaGFuZGxl LAogCS5ub3RpZnlfc211X21lbW9yeV9pbmZvID0gcHBfZHBtX25vdGlmeV9zbXVfbWVtb3J5X2lu Zm8sCiAJLmdldF9wb3dlcl9wcm9maWxlX21vZGUgPSBwcF9nZXRfcG93ZXJfcHJvZmlsZV9tb2Rl LAogCS5zZXRfcG93ZXJfcHJvZmlsZV9tb2RlID0gcHBfc2V0X3Bvd2VyX3Byb2ZpbGVfbW9kZSwK Kwkub2RuX2VkaXRfZHBtX3RhYmxlID0gcHBfb2RuX2VkaXRfZHBtX3RhYmxlLAogLyogZXhwb3J0 IHRvIERDICovCiAJLmdldF9zY2xrID0gcHBfZHBtX2dldF9zY2xrLAogCS5nZXRfbWNsayA9IHBw X2RwbV9nZXRfbWNsaywKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZngK