From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrey Grodzovsky Subject: [PATCH 2/4] drm/amd/powerplay: Add EEPROM I2C read/write support to Arcturus. Date: Fri, 18 Oct 2019 16:48:29 -0400 Message-ID: <1571431711-30149-3-git-send-email-andrey.grodzovsky@amd.com> References: <1571431711-30149-1-git-send-email-andrey.grodzovsky@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1571431711-30149-1-git-send-email-andrey.grodzovsky-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: Andrey Grodzovsky , Guchun.Chen-5C7GfCeVMHo@public.gmane.org, Tao.Zhou1-5C7GfCeVMHo@public.gmane.org, noreply-confluence-5C7GfCeVMHo@public.gmane.org, Alexander.Deucher-5C7GfCeVMHo@public.gmane.org, Evan.Quan-5C7GfCeVMHo@public.gmane.org VGhlIGNvbW11bmljYXRpb24gaXMgZG9uZSB0aHJvdWdoIFNNVSB0YWJsZSBhbmQgaGVuY2UgdGhl IGNvZGUKaXMgaW4gcG93ZXJwbGF5LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV5IEdyb2R6b3Zza3kg PGFuZHJleS5ncm9kem92c2t5QGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvYXJjdHVydXNfcHB0LmMgfCAyMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgMjI5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9hcmN0dXJ1c19wcHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L2FyY3R1cnVzX3BwdC5jCmluZGV4IDkwZDg3MWEuLjUzZDA4ZGU1IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hcmN0dXJ1c19wcHQuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hcmN0dXJ1c19wcHQuYwpAQCAtMzYsNiArMzYs MTEgQEAKICNpbmNsdWRlICJzbXVfdjExXzBfcHB0YWJsZS5oIgogI2luY2x1ZGUgImFyY3R1cnVz X3Bwc21jLmgiCiAjaW5jbHVkZSAibmJpby9uYmlvXzdfNF9zaF9tYXNrLmgiCisjaW5jbHVkZSA8 bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSAiYW1kZ3B1X3Jh cy5oIgorCisjZGVmaW5lIHRvX2FtZGdwdV9kZXZpY2UoeCkgKGNvbnRhaW5lcl9vZih4LCBzdHJ1 Y3QgYW1kZ3B1X3JhcywgZWVwcm9tX2NvbnRyb2wuZWVwcm9tX2FjY2Vzc29yKSktPmFkZXYKIAog I2RlZmluZSBDVEZfT0ZGU0VUX0VER0UJCQk1CiAjZGVmaW5lIENURl9PRkZTRVRfSE9UU1BPVAkJ NQpAQCAtMTcxLDYgKzE3Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc211XzExXzBfY21uMmFpc2NfbWFw cGluZyBhcmN0dXJ1c190YWJsZV9tYXBbU01VX1RBQkxFX0NPVU5UXSA9IHsKIAlUQUJfTUFQKFNN VV9NRVRSSUNTKSwKIAlUQUJfTUFQKERSSVZFUl9TTVVfQ09ORklHKSwKIAlUQUJfTUFQKE9WRVJE UklWRSksCisJVEFCX01BUChJMkNfQ09NTUFORFMpLAogfTsKIAogc3RhdGljIHN0cnVjdCBzbXVf MTFfMF9jbW4yYWlzY19tYXBwaW5nIGFyY3R1cnVzX3B3cl9zcmNfbWFwW1NNVV9QT1dFUl9TT1VS Q0VfQ09VTlRdID0gewpAQCAtMjkzLDYgKzI5OSw5IEBAIHN0YXRpYyBpbnQgYXJjdHVydXNfdGFi bGVzX2luaXQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHN0cnVjdCBzbXVfdGFibGUgKnRhYmxl CiAJU01VX1RBQkxFX0lOSVQodGFibGVzLCBTTVVfVEFCTEVfU01VX01FVFJJQ1MsIHNpemVvZihT bXVNZXRyaWNzX3QpLAogCQkgICAgICAgUEFHRV9TSVpFLCBBTURHUFVfR0VNX0RPTUFJTl9WUkFN KTsKIAorCVNNVV9UQUJMRV9JTklUKHRhYmxlcywgU01VX1RBQkxFX0kyQ19DT01NQU5EUywgc2l6 ZW9mKFN3STJjUmVxdWVzdF90KSwKKwkJCSAgICAgICBQQUdFX1NJWkUsIEFNREdQVV9HRU1fRE9N QUlOX1ZSQU0pOworCiAJc211X3RhYmxlLT5tZXRyaWNzX3RhYmxlID0ga3phbGxvYyhzaXplb2Yo U211TWV0cmljc190KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzbXVfdGFibGUtPm1ldHJpY3NfdGFi bGUpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMTkyNyw2ICsxOTM2LDIyNCBAQCBzdGF0aWMgaW50 IGFyY3R1cnVzX2RwbV9zZXRfdXZkX2VuYWJsZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgYm9v bCBlbmFibGUpCiAJcmV0dXJuIHJldDsKIH0KIAorCitzdGF0aWMgdm9pZCBhcmN0dXJ1c19maWxs X2VlcHJvbV9pMmNfcmVxKFN3STJjUmVxdWVzdF90ICAqcmVxLCBib29sIHdyaXRlLAorCQkJCSAg dWludDhfdCBhZGRyZXNzLCB1aW50MzJfdCBudW1ieXRlcywKKwkJCQkgIHVpbnQ4X3QgKmRhdGEp Cit7CisJaW50IGk7CisKKwlCVUdfT04obnVtYnl0ZXMgPiBNQVhfU1dfSTJDX0NPTU1BTkRTKTsK KworCXJlcS0+STJDY29udHJvbGxlclBvcnQgPSAwOworCXJlcS0+STJDU3BlZWQgPSAyOworCXJl cS0+U2xhdmVBZGRyZXNzID0gYWRkcmVzczsKKwlyZXEtPk51bUNtZHMgPSBudW1ieXRlczsKKwor CWZvciAoaSA9IDA7IGkgPCBudW1ieXRlczsgaSsrKSB7CisJCVN3STJjQ21kX3QgKmNtZCA9ICAm cmVxLT5Td0kyY0NtZHNbaV07CisKKwkJLyogRmlyc3QgMiBieXRlcyBhcmUgYWx3YXlzIHdyaXRl IGZvciBsb3dlciAyYiBFRVBST00gYWRkcmVzcyAqLworCQlpZiAoaSA8IDIpCisJCQljbWQtPkNt ZCA9IDE7CisJCWVsc2UKKwkJCWNtZC0+Q21kID0gd3JpdGU7CisKKworCQkvKiBBZGQgUkVTVEFS VCBmb3IgcmVhZCAgYWZ0ZXIgYWRkcmVzcyBmaWxsZWQgKi8KKwkJY21kLT5DbWRDb25maWcgfD0g KGkgPT0gMiAmJiAhd3JpdGUpID8gQ01EQ09ORklHX1JFU1RBUlRfTUFTSyA6IDA7CisKKwkJLyog QWRkIFNUT1AgaW4gdGhlIGVuZCAqLworCQljbWQtPkNtZENvbmZpZyB8PSAoaSA9PSAobnVtYnl0 ZXMgLSAxKSkgPyBDTURDT05GSUdfU1RPUF9NQVNLIDogMDsKKworCQkvKiBGaWxsIHdpdGggZGF0 YSByZWdhcmRsZXNzIGlmIHJlYWQgb3Igd3JpdGUgdG8gc2ltcGxpZnkgY29kZSAqLworCQljbWQt PlJlZ2lzdGVyQWRkciA9IGRhdGFbaV07CisJfQorfQorCitzdGF0aWMgaW50IGFyY3R1cnVzX2ky Y19lZXByb21fcmVhZF9kYXRhKHN0cnVjdCBpMmNfYWRhcHRlciAqY29udHJvbCwKKwkJCQkJICAg ICAgIHVpbnQ4X3QgYWRkcmVzcywKKwkJCQkJICAgICAgIHVpbnQ4X3QgKmRhdGEsCisJCQkJCSAg ICAgICB1aW50MzJfdCBudW1ieXRlcykKK3sKKwl1aW50MzJfdCAgaSwgcmV0ID0gMDsKKwlTd0ky Y1JlcXVlc3RfdCByZXE7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSB0b19hbWRncHVf ZGV2aWNlKGNvbnRyb2wpOworCXN0cnVjdCBzbXVfdGFibGVfY29udGV4dCAqc211X3RhYmxlID0g JmFkZXYtPnNtdS5zbXVfdGFibGU7CisJc3RydWN0IHNtdV90YWJsZSAqdGFibGUgPSAmc211X3Rh YmxlLT50YWJsZXNbU01VX1RBQkxFX0kyQ19DT01NQU5EU107CisKKwltZW1zZXQoJnJlcSwgMCwg c2l6ZW9mKHJlcSkpOworCWFyY3R1cnVzX2ZpbGxfZWVwcm9tX2kyY19yZXEoJnJlcSwgZmFsc2Us IGFkZHJlc3MsIG51bWJ5dGVzLCBkYXRhKTsKKworCW11dGV4X2xvY2soJmFkZXYtPnNtdS5tdXRl eCk7CisJLyogTm93IHJlYWQgZGF0YSBzdGFydGluZyB3aXRoIHRoYXQgYWRkcmVzcyAqLworCXJl dCA9IHNtdV91cGRhdGVfdGFibGUoJmFkZXYtPnNtdSwgU01VX1RBQkxFX0kyQ19DT01NQU5EUywg MCwgJnJlcSwKKwkJCQkJdHJ1ZSk7CisJbXV0ZXhfdW5sb2NrKCZhZGV2LT5zbXUubXV0ZXgpOwor CisJaWYgKCFyZXQpIHsKKwkJU3dJMmNSZXF1ZXN0X3QgKnJlcyA9IChTd0kyY1JlcXVlc3RfdCAq KXRhYmxlLT5jcHVfYWRkcjsKKworCQkvKiBBc3N1bWUgU01VICBmaWxscyByZXMuU3dJMmNDbWRz W2ldLkRhdGEgd2l0aCByZWFkIGJ5dGVzICovCisJCWZvciAoaSA9IDA7IGkgPCBudW1ieXRlczsg aSsrKQorCQkJZGF0YVtpXSA9IHJlcy0+U3dJMmNDbWRzW2ldLkRhdGE7CisKKwkJcHJfZGVidWco ImFyY3R1cnVzX2kyY19lZXByb21fcmVhZF9kYXRhLCBhZGRyZXNzID0gJXgsIGJ5dGVzID0gJWQs IGRhdGEgOiIsCisJCQkJICAodWludDE2X3QpYWRkcmVzcywgbnVtYnl0ZXMpOworCisJCXByaW50 X2hleF9kdW1wKEtFUk5fREVCVUcsICJkYXRhOiAiLCBEVU1QX1BSRUZJWF9OT05FLAorCQkJICAg ICAgIDgsIDEsIGRhdGEsIG51bWJ5dGVzLCBmYWxzZSk7CisJfSBlbHNlCisJCXByX2VycigiYXJj dHVydXNfaTJjX2VlcHJvbV9yZWFkX2RhdGEgLSBlcnJvciBvY2N1cnJlZCA6JXgiLCByZXQpOwor CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhcmN0dXJ1c19pMmNfZWVwcm9tX3dyaXRl X2RhdGEoc3RydWN0IGkyY19hZGFwdGVyICpjb250cm9sLAorCQkJCQkJdWludDhfdCBhZGRyZXNz LAorCQkJCQkJdWludDhfdCAqZGF0YSwKKwkJCQkJCXVpbnQzMl90IG51bWJ5dGVzKQoreworCXVp bnQzMl90IHJldDsKKwlTd0kyY1JlcXVlc3RfdCByZXE7CisJc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSB0b19hbWRncHVfZGV2aWNlKGNvbnRyb2wpOworCisJbWVtc2V0KCZyZXEsIDAsIHNp emVvZihyZXEpKTsKKwlhcmN0dXJ1c19maWxsX2VlcHJvbV9pMmNfcmVxKCZyZXEsIHRydWUsIGFk ZHJlc3MsIG51bWJ5dGVzLCBkYXRhKTsKKworCW11dGV4X2xvY2soJmFkZXYtPnNtdS5tdXRleCk7 CisJcmV0ID0gc211X3VwZGF0ZV90YWJsZSgmYWRldi0+c211LCBTTVVfVEFCTEVfSTJDX0NPTU1B TkRTLCAwLCAmcmVxLCB0cnVlKTsKKwltdXRleF91bmxvY2soJmFkZXYtPnNtdS5tdXRleCk7CisK KwlpZiAoIXJldCkgeworCQlwcl9kZWJ1ZygiYXJjdHVydXNfaTJjX3dyaXRlKCksIGFkZHJlc3Mg PSAleCwgYnl0ZXMgPSAlZCAsIGRhdGE6ICIsCisJCQkJCSAodWludDE2X3QpYWRkcmVzcywgbnVt Ynl0ZXMpOworCisJCXByaW50X2hleF9kdW1wKEtFUk5fREVCVUcsICJkYXRhOiAiLCBEVU1QX1BS RUZJWF9OT05FLAorCQkJICAgICAgIDgsIDEsIGRhdGEsIG51bWJ5dGVzLCBmYWxzZSk7CisJCS8q CisJCSAqIEFjY29yZGluZyB0byBFRVBST00gc3BlYyB0aGVyZSBpcyBhIE1BWCBvZiAxMCBtcyBy ZXF1aXJlZCBmb3IKKwkJICogRUVQUk9NIHRvIGZsdXNoIGludGVybmFsIFJYIGJ1ZmZlciBhZnRl ciBTVE9QIHdhcyBpc3N1ZWQgYXQgdGhlCisJCSAqIGVuZCBvZiB3cml0ZSB0cmFuc2FjdGlvbi4g RHVyaW5nIHRoaXMgdGltZSB0aGUgRUVQUk9NIHdpbGwgbm90IGJlCisJCSAqIHJlc3BvbnNpdmUg dG8gYW55IG1vcmUgY29tbWFuZHMgLSBzbyB3YWl0IGEgYml0IG1vcmUuCisJCSAqLworCQltc2xl ZXAoMTApOworCisJfSBlbHNlCisJCXByX2VycigiYXJjdHVydXNfaTJjX3dyaXRlLSBlcnJvciBv Y2N1cnJlZCA6JXgiLCByZXQpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhcmN0 dXJ1c19pMmNfZWVwcm9tX2kyY194ZmVyKHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjX2FkYXAsCisJ CQkgICAgICBzdHJ1Y3QgaTJjX21zZyAqbXNncywgaW50IG51bSkKK3sKKwl1aW50MzJfdCAgaSwg aiwgcmV0LCBkYXRhX3NpemUsIGRhdGFfY2h1bmtfc2l6ZSwgbmV4dF9lZXByb21fYWRkciA9IDA7 CisJdWludDhfdCAqZGF0YV9wdHIsIGRhdGFfY2h1bmtbTUFYX1NXX0kyQ19DT01NQU5EU10gPSB7 IDAgfTsKKworCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgeworCQkvKgorCQkgKiBTTVUgaW50 ZXJmYWNlIGFsbG93cyBhdCBtb3N0IE1BWF9TV19JMkNfQ09NTUFORFMgYnl0ZXMgb2YgZGF0YSBh dAorCQkgKiBvbmNlIGFuZCBoZW5jZSB0aGUgZGF0YSBuZWVkcyB0byBiZSBzcGxpY2VkIGludG8g Y2h1bmtzIGFuZCBzZW50IGVhY2gKKwkJICogY2h1bmsgc2VwYXJhdGVseQorCQkgKi8KKwkJZGF0 YV9zaXplID0gbXNnc1tpXS5sZW4gLSAyOworCQlkYXRhX2NodW5rX3NpemUgPSBNQVhfU1dfSTJD X0NPTU1BTkRTIC0gMjsKKwkJbmV4dF9lZXByb21fYWRkciA9IChtc2dzW2ldLmJ1ZlswXSA8PCA4 ICYgMHhmZjAwKSB8IChtc2dzW2ldLmJ1ZlsxXSAmIDB4ZmYpOworCQlkYXRhX3B0ciA9IG1zZ3Nb aV0uYnVmICsgMjsKKworCQlmb3IgKGogPSAwOyBqIDwgZGF0YV9zaXplIC8gZGF0YV9jaHVua19z aXplOyBqKyspIHsKKwkJCS8qIEluc2VydCB0aGUgRUVQUk9NIGRlc3QgYWRkZXNzLCBiaXRzIDAt MTUgKi8KKwkJCWRhdGFfY2h1bmtbMF0gPSAoKG5leHRfZWVwcm9tX2FkZHIgPj4gOCkgJiAweGZm KTsKKwkJCWRhdGFfY2h1bmtbMV0gPSAobmV4dF9lZXByb21fYWRkciAmIDB4ZmYpOworCisJCQlp ZiAobXNnc1tpXS5mbGFncyAmIEkyQ19NX1JEKSB7CisJCQkJcmV0ID0gYXJjdHVydXNfaTJjX2Vl cHJvbV9yZWFkX2RhdGEoaTJjX2FkYXAsCisJCQkJCQkJCSh1aW50OF90KW1zZ3NbaV0uYWRkciwK KwkJCQkJCQkJZGF0YV9jaHVuaywgTUFYX1NXX0kyQ19DT01NQU5EUyk7CisKKwkJCQltZW1jcHko ZGF0YV9wdHIsIGRhdGFfY2h1bmsgKyAyLCBkYXRhX2NodW5rX3NpemUpOworCQkJfSBlbHNlIHsK KworCQkJCW1lbWNweShkYXRhX2NodW5rICsgMiwgZGF0YV9wdHIsIGRhdGFfY2h1bmtfc2l6ZSk7 CisKKwkJCQlyZXQgPSBhcmN0dXJ1c19pMmNfZWVwcm9tX3dyaXRlX2RhdGEoaTJjX2FkYXAsCisJ CQkJCQkJCSAodWludDhfdCltc2dzW2ldLmFkZHIsCisJCQkJCQkJCSBkYXRhX2NodW5rLCBNQVhf U1dfSTJDX0NPTU1BTkRTKTsKKwkJCX0KKworCQkJaWYgKHJldCkgeworCQkJCW51bSA9IC1FSU87 CisJCQkJZ290byBmYWlsOworCQkJfQorCisJCQluZXh0X2VlcHJvbV9hZGRyICs9IGRhdGFfY2h1 bmtfc2l6ZTsKKwkJCWRhdGFfcHRyICs9IGRhdGFfY2h1bmtfc2l6ZTsKKwkJfQorCisJCWlmIChk YXRhX3NpemUgJSBkYXRhX2NodW5rX3NpemUpIHsKKwkJCWRhdGFfY2h1bmtbMF0gPSAoKG5leHRf ZWVwcm9tX2FkZHIgPj4gOCkgJiAweGZmKTsKKwkJCWRhdGFfY2h1bmtbMV0gPSAobmV4dF9lZXBy b21fYWRkciAmIDB4ZmYpOworCisJCQlpZiAobXNnc1tpXS5mbGFncyAmIEkyQ19NX1JEKSB7CisJ CQkJcmV0ID0gYXJjdHVydXNfaTJjX2VlcHJvbV9yZWFkX2RhdGEoaTJjX2FkYXAsCisJCQkJCQkJ CSh1aW50OF90KW1zZ3NbaV0uYWRkciwKKwkJCQkJCQkJZGF0YV9jaHVuaywgKGRhdGFfc2l6ZSAl IGRhdGFfY2h1bmtfc2l6ZSkgKyAyKTsKKworCQkJCW1lbWNweShkYXRhX3B0ciwgZGF0YV9jaHVu ayArIDIsIGRhdGFfc2l6ZSAlIGRhdGFfY2h1bmtfc2l6ZSk7CisJCQl9IGVsc2UgeworCQkJCW1l bWNweShkYXRhX2NodW5rICsgMiwgZGF0YV9wdHIsIGRhdGFfc2l6ZSAlIGRhdGFfY2h1bmtfc2l6 ZSk7CisKKwkJCQlyZXQgPSBhcmN0dXJ1c19pMmNfZWVwcm9tX3dyaXRlX2RhdGEoaTJjX2FkYXAs CisJCQkJCQkJCSAodWludDhfdCltc2dzW2ldLmFkZHIsCisJCQkJCQkJCSBkYXRhX2NodW5rLCAo ZGF0YV9zaXplICUgZGF0YV9jaHVua19zaXplKSArIDIpOworCQkJfQorCisJCQlpZiAocmV0KSB7 CisJCQkJbnVtID0gLUVJTzsKKwkJCQlnb3RvIGZhaWw7CisJCQl9CisJCX0KKwl9CisKK2ZhaWw6 CisJcmV0dXJuIG51bTsKK30KKworc3RhdGljIHUzMiBhcmN0dXJ1c19pMmNfZWVwcm9tX2kyY19m dW5jKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCkKK3sKKwlyZXR1cm4gSTJDX0ZVTkNfSTJDIHwg STJDX0ZVTkNfU01CVVNfRU1VTDsKK30KKworCitzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19hbGdv cml0aG0gYXJjdHVydXNfaTJjX2VlcHJvbV9pMmNfYWxnbyA9IHsKKwkubWFzdGVyX3hmZXIgPSBh cmN0dXJ1c19pMmNfZWVwcm9tX2kyY194ZmVyLAorCS5mdW5jdGlvbmFsaXR5ID0gYXJjdHVydXNf aTJjX2VlcHJvbV9pMmNfZnVuYywKK307CisKK2ludCBhcmN0dXJ1c19pMmNfZWVwcm9tX2NvbnRy b2xfaW5pdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmNvbnRyb2wpCit7CisJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSB0b19hbWRncHVfZGV2aWNlKGNvbnRyb2wpOworCWludCByZXM7CisKKwlj b250cm9sLT5vd25lciA9IFRISVNfTU9EVUxFOworCWNvbnRyb2wtPmNsYXNzID0gSTJDX0NMQVNT X1NQRDsKKwljb250cm9sLT5kZXYucGFyZW50ID0gJmFkZXYtPnBkZXYtPmRldjsKKwljb250cm9s LT5hbGdvID0gJmFyY3R1cnVzX2kyY19lZXByb21faTJjX2FsZ287CisJc25wcmludGYoY29udHJv bC0+bmFtZSwgc2l6ZW9mKGNvbnRyb2wtPm5hbWUpLCAiUkFTIEVFUFJPTSIpOworCisJcmVzID0g aTJjX2FkZF9hZGFwdGVyKGNvbnRyb2wpOworCWlmIChyZXMpCisJCURSTV9FUlJPUigiRmFpbGVk IHRvIHJlZ2lzdGVyIGh3IGkyYywgZXJyOiAlZFxuIiwgcmVzKTsKKworCXJldHVybiByZXM7Cit9 CisKK3ZvaWQgYXJjdHVydXNfaTJjX2VlcHJvbV9jb250cm9sX2Zpbmkoc3RydWN0IGkyY19hZGFw dGVyICpjb250cm9sKQoreworCWkyY19kZWxfYWRhcHRlcihjb250cm9sKTsKK30KKwogc3RhdGlj IGNvbnN0IHN0cnVjdCBwcHRhYmxlX2Z1bmNzIGFyY3R1cnVzX3BwdF9mdW5jcyA9IHsKIAkvKiB0 cmFuc2xhdGUgc211IGluZGV4IGludG8gYXJjdHVydXMgc3BlY2lmaWMgaW5kZXggKi8KIAkuZ2V0 X3NtdV9tc2dfaW5kZXggPSBhcmN0dXJ1c19nZXRfc211X21zZ19pbmRleCwKQEAgLTE5NjYsNiAr MjE5Myw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHB0YWJsZV9mdW5jcyBhcmN0dXJ1c19wcHRf ZnVuY3MgPSB7CiAJLmdldF9wb3dlcl9saW1pdCA9IGFyY3R1cnVzX2dldF9wb3dlcl9saW1pdCwK IAkuaXNfZHBtX3J1bm5pbmcgPSBhcmN0dXJ1c19pc19kcG1fcnVubmluZywKIAkuZHBtX3NldF91 dmRfZW5hYmxlID0gYXJjdHVydXNfZHBtX3NldF91dmRfZW5hYmxlLAorCS5pMmNfZWVwcm9tX2lu aXQgPSBhcmN0dXJ1c19pMmNfZWVwcm9tX2NvbnRyb2xfaW5pdCwKKwkuaTJjX2VlcHJvbV9maW5p ID0gYXJjdHVydXNfaTJjX2VlcHJvbV9jb250cm9sX2ZpbmksCiB9OwogCiB2b2lkIGFyY3R1cnVz X3NldF9wcHRfZnVuY3Moc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCi0tIAoyLjcuNAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5n IGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4