From: Tom St Denis Subject: [PATCH 07/16] drm/amd/powerplay: Port vega10_powertune.c over to PP_CAP Date: Fri, 8 Sep 2017 12:01:40 -0400 Message-ID: <20170908160149.9349-8-tom.stdenis@amd.com> References: <20170908160149.9349-1-tom.stdenis@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170908160149.9349-1-tom.stdenis-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: Tom St Denis U2lnbmVkLW9mZi1ieTogVG9tIFN0IERlbmlzIDx0b20uc3RkZW5pc0BhbWQuY29tPgotLS0KIC4u Li9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX3Bvd2VydHVuZS5jIHwgNDcgKysr KysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDI1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5 L2h3bWdyL3ZlZ2ExMF9wb3dlcnR1bmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5 L2h3bWdyL3ZlZ2ExMF9wb3dlcnR1bmUuYwppbmRleCBjNWZmOTRmNGZkMGYuLjAwOTBmZjFiZjQx NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEw X3Bvd2VydHVuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3Zl Z2ExMF9wb3dlcnR1bmUuYwpAQCAtODU0LDY5ICs4NTQsNjkgQEAgc3RhdGljIHZvaWQgdmVnYTEw X2RpZHRfc2V0X21hc2soc3RydWN0IHBwX2h3bWdyICpod21nciwgY29uc3QgYm9vbCBlbmFibGUp CiAJdWludDMyX3QgZW4gPSAoZW5hYmxlID8gMSA6IDApOwogCXVpbnQzMl90IGRpZHRfYmxvY2tf aW5mbyA9IFNRX0lSX01BU0sgfCBUQ1BfSVJfTUFTSyB8IFREX1BDQ19NQVNLOwogCi0JaWYgKHBo bV9jYXBfZW5hYmxlZChod21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNhcHMsIFBI TV9QbGF0Zm9ybUNhcHNfU1FSYW1waW5nKSkgeworCWlmIChQUF9DQVAoUEhNX1BsYXRmb3JtQ2Fw c19TUVJhbXBpbmcpKSB7CiAJCUNHU19XUkVHMzJfRklFTERfSU5EKGh3bWdyLT5kZXZpY2UsIENH U19JTkRfUkVHX19ESURULAogCQkJCSAgICAgRElEVF9TUV9DVFJMMCwgRElEVF9DVFJMX0VOLCBl bik7CiAJCWRpZHRfYmxvY2tfaW5mbyAmPSB+U1FfRW5hYmxlX01BU0s7CiAJCWRpZHRfYmxvY2tf aW5mbyB8PSBlbiA8PCBTUV9FbmFibGVfU0hJRlQ7CiAJfQogCi0JaWYgKHBobV9jYXBfZW5hYmxl ZChod21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNhcHMsIFBITV9QbGF0Zm9ybUNh cHNfREJSYW1waW5nKSkgeworCWlmIChQUF9DQVAoUEhNX1BsYXRmb3JtQ2Fwc19EQlJhbXBpbmcp KSB7CiAJCUNHU19XUkVHMzJfRklFTERfSU5EKGh3bWdyLT5kZXZpY2UsIENHU19JTkRfUkVHX19E SURULAogCQkJCSAgICAgRElEVF9EQl9DVFJMMCwgRElEVF9DVFJMX0VOLCBlbik7CiAJCWRpZHRf YmxvY2tfaW5mbyAmPSB+REJfRW5hYmxlX01BU0s7CiAJCWRpZHRfYmxvY2tfaW5mbyB8PSBlbiA8 PCBEQl9FbmFibGVfU0hJRlQ7CiAJfQogCi0JaWYgKHBobV9jYXBfZW5hYmxlZChod21nci0+cGxh dGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNhcHMsIFBITV9QbGF0Zm9ybUNhcHNfVERSYW1waW5n KSkgeworCWlmIChQUF9DQVAoUEhNX1BsYXRmb3JtQ2Fwc19URFJhbXBpbmcpKSB7CiAJCUNHU19X UkVHMzJfRklFTERfSU5EKGh3bWdyLT5kZXZpY2UsIENHU19JTkRfUkVHX19ESURULAogCQkJCSAg ICAgRElEVF9URF9DVFJMMCwgRElEVF9DVFJMX0VOLCBlbik7CiAJCWRpZHRfYmxvY2tfaW5mbyAm PSB+VERfRW5hYmxlX01BU0s7CiAJCWRpZHRfYmxvY2tfaW5mbyB8PSBlbiA8PCBURF9FbmFibGVf U0hJRlQ7CiAJfQogCi0JaWYgKHBobV9jYXBfZW5hYmxlZChod21nci0+cGxhdGZvcm1fZGVzY3Jp cHRvci5wbGF0Zm9ybUNhcHMsIFBITV9QbGF0Zm9ybUNhcHNfVENQUmFtcGluZykpIHsKKwlpZiAo UFBfQ0FQKFBITV9QbGF0Zm9ybUNhcHNfVENQUmFtcGluZykpIHsKIAkJQ0dTX1dSRUczMl9GSUVM RF9JTkQoaHdtZ3ItPmRldmljZSwgQ0dTX0lORF9SRUdfX0RJRFQsCiAJCQkJICAgICBESURUX1RD UF9DVFJMMCwgRElEVF9DVFJMX0VOLCBlbik7CiAJCWRpZHRfYmxvY2tfaW5mbyAmPSB+VENQX0Vu YWJsZV9NQVNLOwogCQlkaWR0X2Jsb2NrX2luZm8gfD0gZW4gPDwgVENQX0VuYWJsZV9TSElGVDsK IAl9CiAKLQlpZiAocGhtX2NhcF9lbmFibGVkKGh3bWdyLT5wbGF0Zm9ybV9kZXNjcmlwdG9yLnBs YXRmb3JtQ2FwcywgUEhNX1BsYXRmb3JtQ2Fwc19EQlJSYW1waW5nKSkgeworCWlmIChQUF9DQVAo UEhNX1BsYXRmb3JtQ2Fwc19EQlJSYW1waW5nKSkgewogCQlDR1NfV1JFRzMyX0ZJRUxEX0lORCho d21nci0+ZGV2aWNlLCBDR1NfSU5EX1JFR19fRElEVCwKIAkJCQkgICAgIERJRFRfREJSX0NUUkww LCBESURUX0NUUkxfRU4sIGVuKTsKIAl9CiAKLQlpZiAocGhtX2NhcF9lbmFibGVkKGh3bWdyLT5w bGF0Zm9ybV9kZXNjcmlwdG9yLnBsYXRmb3JtQ2FwcywgUEhNX1BsYXRmb3JtQ2Fwc19EaUR0RURD RW5hYmxlKSkgewotCQlpZiAocGhtX2NhcF9lbmFibGVkKGh3bWdyLT5wbGF0Zm9ybV9kZXNjcmlw dG9yLnBsYXRmb3JtQ2FwcywgUEhNX1BsYXRmb3JtQ2Fwc19TUVJhbXBpbmcpKSB7CisJaWYgKFBQ X0NBUChQSE1fUGxhdGZvcm1DYXBzX0RpRHRFRENFbmFibGUpKSB7CisJCWlmIChQUF9DQVAoUEhN X1BsYXRmb3JtQ2Fwc19TUVJhbXBpbmcpKSB7CiAJCQlkYXRhID0gY2dzX3JlYWRfaW5kX3JlZ2lz dGVyKGh3bWdyLT5kZXZpY2UsIENHU19JTkRfUkVHX19ESURULCBpeERJRFRfU1FfRURDX0NUUkwp OwogCQkJZGF0YSA9IENHU19SRUdfU0VUX0ZJRUxEKGRhdGEsIERJRFRfU1FfRURDX0NUUkwsIEVE Q19FTiwgZW4pOwogCQkJZGF0YSA9IENHU19SRUdfU0VUX0ZJRUxEKGRhdGEsIERJRFRfU1FfRURD X0NUUkwsIEVEQ19TV19SU1QsIH5lbik7CiAJCQljZ3Nfd3JpdGVfaW5kX3JlZ2lzdGVyKGh3bWdy LT5kZXZpY2UsIENHU19JTkRfUkVHX19ESURULCBpeERJRFRfU1FfRURDX0NUUkwsIGRhdGEpOwog CQl9CiAKLQkJaWYgKHBobV9jYXBfZW5hYmxlZChod21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5w bGF0Zm9ybUNhcHMsIFBITV9QbGF0Zm9ybUNhcHNfREJSYW1waW5nKSkgeworCQlpZiAoUFBfQ0FQ KFBITV9QbGF0Zm9ybUNhcHNfREJSYW1waW5nKSkgewogCQkJZGF0YSA9IGNnc19yZWFkX2luZF9y ZWdpc3Rlcihod21nci0+ZGV2aWNlLCBDR1NfSU5EX1JFR19fRElEVCwgaXhESURUX0RCX0VEQ19D VFJMKTsKIAkJCWRhdGEgPSBDR1NfUkVHX1NFVF9GSUVMRChkYXRhLCBESURUX0RCX0VEQ19DVFJM LCBFRENfRU4sIGVuKTsKIAkJCWRhdGEgPSBDR1NfUkVHX1NFVF9GSUVMRChkYXRhLCBESURUX0RC X0VEQ19DVFJMLCBFRENfU1dfUlNULCB+ZW4pOwogCQkJY2dzX3dyaXRlX2luZF9yZWdpc3Rlciho d21nci0+ZGV2aWNlLCBDR1NfSU5EX1JFR19fRElEVCwgaXhESURUX0RCX0VEQ19DVFJMLCBkYXRh KTsKIAkJfQogCi0JCWlmIChwaG1fY2FwX2VuYWJsZWQoaHdtZ3ItPnBsYXRmb3JtX2Rlc2NyaXB0 b3IucGxhdGZvcm1DYXBzLCBQSE1fUGxhdGZvcm1DYXBzX1REUmFtcGluZykpIHsKKwkJaWYgKFBQ X0NBUChQSE1fUGxhdGZvcm1DYXBzX1REUmFtcGluZykpIHsKIAkJCWRhdGEgPSBjZ3NfcmVhZF9p bmRfcmVnaXN0ZXIoaHdtZ3ItPmRldmljZSwgQ0dTX0lORF9SRUdfX0RJRFQsIGl4RElEVF9URF9F RENfQ1RSTCk7CiAJCQlkYXRhID0gQ0dTX1JFR19TRVRfRklFTEQoZGF0YSwgRElEVF9URF9FRENf Q1RSTCwgRURDX0VOLCBlbik7CiAJCQlkYXRhID0gQ0dTX1JFR19TRVRfRklFTEQoZGF0YSwgRElE VF9URF9FRENfQ1RSTCwgRURDX1NXX1JTVCwgfmVuKTsKIAkJCWNnc193cml0ZV9pbmRfcmVnaXN0 ZXIoaHdtZ3ItPmRldmljZSwgQ0dTX0lORF9SRUdfX0RJRFQsIGl4RElEVF9URF9FRENfQ1RSTCwg ZGF0YSk7CiAJCX0KIAotCQlpZiAocGhtX2NhcF9lbmFibGVkKGh3bWdyLT5wbGF0Zm9ybV9kZXNj cmlwdG9yLnBsYXRmb3JtQ2FwcywgUEhNX1BsYXRmb3JtQ2Fwc19UQ1BSYW1waW5nKSkgeworCQlp ZiAoUFBfQ0FQKFBITV9QbGF0Zm9ybUNhcHNfVENQUmFtcGluZykpIHsKIAkJCWRhdGEgPSBjZ3Nf cmVhZF9pbmRfcmVnaXN0ZXIoaHdtZ3ItPmRldmljZSwgQ0dTX0lORF9SRUdfX0RJRFQsIGl4RElE VF9UQ1BfRURDX0NUUkwpOwogCQkJZGF0YSA9IENHU19SRUdfU0VUX0ZJRUxEKGRhdGEsIERJRFRf VENQX0VEQ19DVFJMLCBFRENfRU4sIGVuKTsKIAkJCWRhdGEgPSBDR1NfUkVHX1NFVF9GSUVMRChk YXRhLCBESURUX1RDUF9FRENfQ1RSTCwgRURDX1NXX1JTVCwgfmVuKTsKIAkJCWNnc193cml0ZV9p bmRfcmVnaXN0ZXIoaHdtZ3ItPmRldmljZSwgQ0dTX0lORF9SRUdfX0RJRFQsIGl4RElEVF9UQ1Bf RURDX0NUUkwsIGRhdGEpOwogCQl9CiAKLQkJaWYgKHBobV9jYXBfZW5hYmxlZChod21nci0+cGxh dGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNhcHMsIFBITV9QbGF0Zm9ybUNhcHNfREJSUmFtcGlu ZykpIHsKKwkJaWYgKFBQX0NBUChQSE1fUGxhdGZvcm1DYXBzX0RCUlJhbXBpbmcpKSB7CiAJCQlk YXRhID0gY2dzX3JlYWRfaW5kX3JlZ2lzdGVyKGh3bWdyLT5kZXZpY2UsIENHU19JTkRfUkVHX19E SURULCBpeERJRFRfREJSX0VEQ19DVFJMKTsKIAkJCWRhdGEgPSBDR1NfUkVHX1NFVF9GSUVMRChk YXRhLCBESURUX0RCUl9FRENfQ1RSTCwgRURDX0VOLCBlbik7CiAJCQlkYXRhID0gQ0dTX1JFR19T RVRfRklFTEQoZGF0YSwgRElEVF9EQlJfRURDX0NUUkwsIEVEQ19TV19SU1QsIH5lbik7CkBAIC0x MDIwLDEwICsxMDIwLDEwIEBAIHN0YXRpYyBpbnQgdmVnYTEwX2VuYWJsZV9wc21fZ2NfZGlkdF9j b25maWcoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAljZ3NfZW50ZXJfc2FmZV9tb2RlKGh3bWdy LT5kZXZpY2UsIGZhbHNlKTsKIAogCXZlZ2ExMF9wcm9ncmFtX2djX2RpZHRfY29uZmlnX3JlZ2lz dGVycyhod21nciwgR0NEaUR0RHJvb3BDdHJsQ29uZmlnX3ZlZ2ExMCk7Ci0JaWYgKHBobV9jYXBf ZW5hYmxlZChod21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNhcHMsIFBITV9QbGF0 Zm9ybUNhcHNfR0NFREMpKQorCWlmIChQUF9DQVAoUEhNX1BsYXRmb3JtQ2Fwc19HQ0VEQykpCiAJ CXZlZ2ExMF9wcm9ncmFtX2djX2RpZHRfY29uZmlnX3JlZ2lzdGVycyhod21nciwgR0NEaUR0Q3Ry bDBDb25maWdfdmVnYTEwKTsKIAotCWlmIChwaG1fY2FwX2VuYWJsZWQoaHdtZ3ItPnBsYXRmb3Jt X2Rlc2NyaXB0b3IucGxhdGZvcm1DYXBzLCBQSE1fUGxhdGZvcm1DYXBzX1BTTSkpCisJaWYgKFBQ X0NBUChQSE1fUGxhdGZvcm1DYXBzX1BTTSkpCiAJCXZlZ2ExMF9wcm9ncmFtX2djX2RpZHRfY29u ZmlnX3JlZ2lzdGVycyhod21nciwgIEF2ZnNQU01Jbml0Q29uZmlnX3ZlZ2ExMCk7CiAKIAlyZXR1 cm4gMDsKQEAgLTEwMzksMTIgKzEwMzksMTIgQEAgc3RhdGljIGludCB2ZWdhMTBfZGlzYWJsZV9w c21fZ2NfZGlkdF9jb25maWcoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAogCWNnc19lbnRlcl9z YWZlX21vZGUoaHdtZ3ItPmRldmljZSwgZmFsc2UpOwogCi0JaWYgKHBobV9jYXBfZW5hYmxlZCho d21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNhcHMsIFBITV9QbGF0Zm9ybUNhcHNf R0NFREMpKSB7CisJaWYgKFBQX0NBUChQSE1fUGxhdGZvcm1DYXBzX0dDRURDKSkgewogCQlkYXRh ID0gMHgwMDAwMDAwMDsKIAkJY2dzX3dyaXRlX3JlZ2lzdGVyKGh3bWdyLT5kZXZpY2UsIG1tR0Nf RElEVF9DVFJMMCwgZGF0YSk7CiAJfQogCi0JaWYgKHBobV9jYXBfZW5hYmxlZChod21nci0+cGxh dGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNhcHMsIFBITV9QbGF0Zm9ybUNhcHNfUFNNKSkKKwlp ZiAoUFBfQ0FQKFBITV9QbGF0Zm9ybUNhcHNfUFNNKSkKIAkJdmVnYTEwX3Byb2dyYW1fZ2NfZGlk dF9jb25maWdfcmVnaXN0ZXJzKGh3bWdyLCAgQXZmc1BTTVJlc2V0Q29uZmlnX3ZlZ2ExMCk7CiAK IAlyZXR1cm4gMDsKQEAgLTExMzksMTIgKzExMzksMTIgQEAgc3RhdGljIGludCB2ZWdhMTBfZW5h YmxlX3BzbV9nY19lZGNfY29uZmlnKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCiAKIAl2ZWdhMTBf cHJvZ3JhbV9nY19kaWR0X2NvbmZpZ19yZWdpc3RlcnMoaHdtZ3IsIFBTTUdDRURDRHJvb3BDdHJs Q29uZmlnX3ZlZ2ExMCk7CiAKLQlpZiAocGhtX2NhcF9lbmFibGVkKGh3bWdyLT5wbGF0Zm9ybV9k ZXNjcmlwdG9yLnBsYXRmb3JtQ2FwcywgUEhNX1BsYXRmb3JtQ2Fwc19HQ0VEQykpIHsKKwlpZiAo UFBfQ0FQKFBITV9QbGF0Zm9ybUNhcHNfR0NFREMpKSB7CiAJCXZlZ2ExMF9wcm9ncmFtX2djX2Rp ZHRfY29uZmlnX3JlZ2lzdGVycyhod21nciwgUFNNR0NFRENDdHJsUmVzZXRDb25maWdfdmVnYTEw KTsKIAkJdmVnYTEwX3Byb2dyYW1fZ2NfZGlkdF9jb25maWdfcmVnaXN0ZXJzKGh3bWdyLCBQU01H Q0VEQ0N0cmxDb25maWdfdmVnYTEwKTsKIAl9CiAKLQlpZiAocGhtX2NhcF9lbmFibGVkKGh3bWdy LT5wbGF0Zm9ybV9kZXNjcmlwdG9yLnBsYXRmb3JtQ2FwcywgUEhNX1BsYXRmb3JtQ2Fwc19QU00p KQorCWlmIChQUF9DQVAoUEhNX1BsYXRmb3JtQ2Fwc19QU00pKQogCQl2ZWdhMTBfcHJvZ3JhbV9n Y19kaWR0X2NvbmZpZ19yZWdpc3RlcnMoaHdtZ3IsICBBdmZzUFNNSW5pdENvbmZpZ192ZWdhMTAp OwogCiAJcmV0dXJuIDA7CkBAIC0xMTYwLDEyICsxMTYwLDEyIEBAIHN0YXRpYyBpbnQgdmVnYTEw X2Rpc2FibGVfcHNtX2djX2VkY19jb25maWcoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAogCWNn c19lbnRlcl9zYWZlX21vZGUoaHdtZ3ItPmRldmljZSwgZmFsc2UpOwogCi0JaWYgKHBobV9jYXBf ZW5hYmxlZChod21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNhcHMsIFBITV9QbGF0 Zm9ybUNhcHNfR0NFREMpKSB7CisJaWYgKFBQX0NBUChQSE1fUGxhdGZvcm1DYXBzX0dDRURDKSkg ewogCQlkYXRhID0gMHgwMDAwMDAwMDsKIAkJY2dzX3dyaXRlX3JlZ2lzdGVyKGh3bWdyLT5kZXZp Y2UsIG1tR0NfRURDX0NUUkwsIGRhdGEpOwogCX0KIAotCWlmIChwaG1fY2FwX2VuYWJsZWQoaHdt Z3ItPnBsYXRmb3JtX2Rlc2NyaXB0b3IucGxhdGZvcm1DYXBzLCBQSE1fUGxhdGZvcm1DYXBzX1BT TSkpCisJaWYgKFBQX0NBUChQSE1fUGxhdGZvcm1DYXBzX1BTTSkpCiAJCXZlZ2ExMF9wcm9ncmFt X2djX2RpZHRfY29uZmlnX3JlZ2lzdGVycyhod21nciwgIEF2ZnNQU01SZXNldENvbmZpZ192ZWdh MTApOwogCiAJcmV0dXJuIDA7CkBAIC0xMzYxLDggKzEzNjEsNyBAQCBpbnQgdmVnYTEwX2VuYWJs ZV9wb3dlcl9jb250YWlubWVudChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogCQkJKHVpbnQzMl90 KSh0ZHBfdGFibGUtPnVzTWF4aW11bVBvd2VyRGVsaXZlcnlMaW1pdCk7CiAJaW50IHJlc3VsdCA9 IDA7CiAKLQlpZiAocGhtX2NhcF9lbmFibGVkKGh3bWdyLT5wbGF0Zm9ybV9kZXNjcmlwdG9yLnBs YXRmb3JtQ2FwcywKLQkJCVBITV9QbGF0Zm9ybUNhcHNfUG93ZXJDb250YWlubWVudCkpIHsKKwlp ZiAoUFBfQ0FQKFBITV9QbGF0Zm9ybUNhcHNfUG93ZXJDb250YWlubWVudCkpIHsKIAkJaWYgKGRh dGEtPnNtdV9mZWF0dXJlc1tHTkxEX1BQVF0uc3VwcG9ydGVkKQogCQkJUFBfQVNTRVJUX1dJVEhf Q09ERSghdmVnYTEwX2VuYWJsZV9zbWNfZmVhdHVyZXMoaHdtZ3ItPnNtdW1nciwKIAkJCQkJdHJ1 ZSwgZGF0YS0+c211X2ZlYXR1cmVzW0dOTERfUFBUXS5zbXVfZmVhdHVyZV9iaXRtYXApLApAQCAt MTM4OSw4ICsxMzg4LDcgQEAgaW50IHZlZ2ExMF9kaXNhYmxlX3Bvd2VyX2NvbnRhaW5tZW50KHN0 cnVjdCBwcF9od21nciAqaHdtZ3IpCiAJc3RydWN0IHZlZ2ExMF9od21nciAqZGF0YSA9CiAJCQko c3RydWN0IHZlZ2ExMF9od21nciAqKShod21nci0+YmFja2VuZCk7CiAKLQlpZiAocGhtX2NhcF9l bmFibGVkKGh3bWdyLT5wbGF0Zm9ybV9kZXNjcmlwdG9yLnBsYXRmb3JtQ2FwcywKLQkJCVBITV9Q bGF0Zm9ybUNhcHNfUG93ZXJDb250YWlubWVudCkpIHsKKwlpZiAoUFBfQ0FQKFBITV9QbGF0Zm9y bUNhcHNfUG93ZXJDb250YWlubWVudCkpIHsKIAkJaWYgKGRhdGEtPnNtdV9mZWF0dXJlc1tHTkxE X1BQVF0uc3VwcG9ydGVkKQogCQkJUFBfQVNTRVJUX1dJVEhfQ09ERSghdmVnYTEwX2VuYWJsZV9z bWNfZmVhdHVyZXMoaHdtZ3ItPnNtdW1nciwKIAkJCQkJZmFsc2UsIGRhdGEtPnNtdV9mZWF0dXJl c1tHTkxEX1BQVF0uc211X2ZlYXR1cmVfYml0bWFwKSwKQEAgLTE0MTgsOCArMTQxNiw3IEBAIGlu dCB2ZWdhMTBfcG93ZXJfY29udHJvbF9zZXRfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21ncikK IHsKIAlpbnQgYWRqdXN0X3BlcmNlbnQsIHJlc3VsdCA9IDA7CiAKLQlpZiAocGhtX2NhcF9lbmFi bGVkKGh3bWdyLT5wbGF0Zm9ybV9kZXNjcmlwdG9yLnBsYXRmb3JtQ2FwcywKLQkJCVBITV9QbGF0 Zm9ybUNhcHNfUG93ZXJDb250YWlubWVudCkpIHsKKwlpZiAoUFBfQ0FQKFBITV9QbGF0Zm9ybUNh cHNfUG93ZXJDb250YWlubWVudCkpIHsKIAkJYWRqdXN0X3BlcmNlbnQgPQogCQkJCWh3bWdyLT5w bGF0Zm9ybV9kZXNjcmlwdG9yLlREUEFkanVzdG1lbnRQb2xhcml0eSA/CiAJCQkJaHdtZ3ItPnBs YXRmb3JtX2Rlc2NyaXB0b3IuVERQQWRqdXN0bWVudCA6Ci0tIAoyLjEyLjAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0 CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=