From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kenneth Feng Subject: [PATCH v2] drm/amd/powerplay: bug fix for pcie parameters override Date: Fri, 11 Oct 2019 18:33:45 +0800 Message-ID: <1570790025-8274-1-git-send-email-kenneth.feng@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Kenneth Feng QnVnIGZpeCBmb3IgcGNpZSBwYXJhbWVyZXJzIG92ZXJyaWRlIG9uIHN3c211LgpCZWxvdyBpcyBh IHNjZW5hcmlvIHRvIGhhdmUgdGhpcyBwcm9ibGVtLgpwcHRhYmxlIGRlZmluaXRpb24gb24gcGNp ZSBkcG06CjAgLT4gcGNpZSBnZW4gc3BlZWQ6MSwgcGNpZSBsYW5lczogKjE2CjEgLT4gcGNpZSBn ZW4gc3BlZWQ6NCwgcGNpZSBsYW5lczogKjE2ClRoZW4gaWYgd2UgaGF2ZSBhIHN5c3RlbSBvbmx5 IGhhdmUgdGhlIGNhcGJpbGl0eToKcGNpZSBnZW4gc3BlZWQ6IDMsIHBjaWUgbGFuZXM6ICo4LAp3 ZSB3aWxsIG92ZXJyaWRlIGRwbSAxIHRvIHBjaWUgZ2VuIHNwZWVkIDMsIHBjaWUgbGFuZXMgKjgu CkJ1dCB0aGUgY29kZSBza2lwcyB0aGUgZHBtIDAgY29uZmlndXJhdGlvbi4KU28gdGhlIHJlYWwg cGNpZSBkcG0gcGFyYW1ldGVycyBhcmU6CjAgLT4gcGNpZSBnZW4gc3BlZWQ6MSwgcGNpZSBsYW5l czogKjE2CjEgLT4gcGNpZSBnZW4gc3BlZWQ6MywgcGNpZSBsYW5lczogKjgKVGhlbiB0aGUgd3Jv bmcgcGNpZSBsYW5lcyB3aWxsIGJlIHRvZ2dsZWQuCgpTaWduZWQtb2ZmLWJ5OiBLZW5uZXRoIEZl bmcgPGtlbm5ldGguZmVuZ0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L2FtZGdwdV9zbXUuYyAgICAgfCA0NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2FtZGdwdV9zbXUuaCB8ICA4ICsrKysrCiBk cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9uYXZpMTBfcHB0LmMgICAgIHwgMjMgKysrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdV92MTFfMC5jICAgICAg fCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvdmVnYTIwX3BwdC5jICAgICB8IDI1ICsrKysrKysrKysrKysrLQogNSBmaWxlcyBjaGFu Z2VkLCA5OSBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMKaW5kZXggYzkyNjZlYS4uZGU1NGRhMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZGdwdV9zbXUuYwpAQCAtOTQ1LDUwICs5NDUs NiBAQCBzdGF0aWMgaW50IHNtdV9maW5pX2ZiX2FsbG9jYXRpb25zKHN0cnVjdCBzbXVfY29udGV4 dCAqc211KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNtdV9vdmVycmlkZV9wY2llX3Bh cmFtZXRlcnMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCi17Ci0Jc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYgPSBzbXUtPmFkZXY7Ci0JdWludDMyX3QgcGNpZV9nZW4gPSAwLCBwY2llX3dpZHRo ID0gMCwgc211X3BjaWVfYXJnOwotCWludCByZXQ7Ci0KLQlpZiAoYWRldi0+ZmxhZ3MgJiBBTURf SVNfQVBVKQotCQlyZXR1cm4gMDsKLQotCWlmIChhZGV2LT5wbS5wY2llX2dlbl9tYXNrICYgQ0FJ TF9QQ0lFX0xJTktfU1BFRURfU1VQUE9SVF9HRU40KQotCQlwY2llX2dlbiA9IDM7Ci0JZWxzZSBp ZiAoYWRldi0+cG0ucGNpZV9nZW5fbWFzayAmIENBSUxfUENJRV9MSU5LX1NQRUVEX1NVUFBPUlRf R0VOMykKLQkJcGNpZV9nZW4gPSAyOwotCWVsc2UgaWYgKGFkZXYtPnBtLnBjaWVfZ2VuX21hc2sg JiBDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjIpCi0JCXBjaWVfZ2VuID0gMTsKLQll bHNlIGlmIChhZGV2LT5wbS5wY2llX2dlbl9tYXNrICYgQ0FJTF9QQ0lFX0xJTktfU1BFRURfU1VQ UE9SVF9HRU4xKQotCQlwY2llX2dlbiA9IDA7Ci0KLQkvKiBCaXQgMzE6MTY6IExDTEsgRFBNIGxl dmVsLiAwIGlzIERQTTAsIGFuZCAxIGlzIERQTTEKLQkgKiBCaXQgMTU6ODogIFBDSUUgR0VOLCAw IHRvIDMgY29ycmVzcG9uZHMgdG8gR0VOMSB0byBHRU40Ci0JICogQml0IDc6MDogICBQQ0lFIGxh bmUgd2lkdGgsIDEgdG8gNyBjb3JyZXNwb25kcyBpcyB4MSB0byB4MzIKLQkgKi8KLQlpZiAoYWRl di0+cG0ucGNpZV9tbHdfbWFzayAmIENBSUxfUENJRV9MSU5LX1dJRFRIX1NVUFBPUlRfWDE2KQot CQlwY2llX3dpZHRoID0gNjsKLQllbHNlIGlmIChhZGV2LT5wbS5wY2llX21sd19tYXNrICYgQ0FJ TF9QQ0lFX0xJTktfV0lEVEhfU1VQUE9SVF9YMTIpCi0JCXBjaWVfd2lkdGggPSA1OwotCWVsc2Ug aWYgKGFkZXYtPnBtLnBjaWVfbWx3X21hc2sgJiBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JU X1g4KQotCQlwY2llX3dpZHRoID0gNDsKLQllbHNlIGlmIChhZGV2LT5wbS5wY2llX21sd19tYXNr ICYgQ0FJTF9QQ0lFX0xJTktfV0lEVEhfU1VQUE9SVF9YNCkKLQkJcGNpZV93aWR0aCA9IDM7Ci0J ZWxzZSBpZiAoYWRldi0+cG0ucGNpZV9tbHdfbWFzayAmIENBSUxfUENJRV9MSU5LX1dJRFRIX1NV UFBPUlRfWDIpCi0JCXBjaWVfd2lkdGggPSAyOwotCWVsc2UgaWYgKGFkZXYtPnBtLnBjaWVfbWx3 X21hc2sgJiBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1gxKQotCQlwY2llX3dpZHRoID0g MTsKLQotCXNtdV9wY2llX2FyZyA9ICgxIDw8IDE2KSB8IChwY2llX2dlbiA8PCA4KSB8IHBjaWVf d2lkdGg7Ci0JcmV0ID0gc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwKLQkJCQkJICBT TVVfTVNHX092ZXJyaWRlUGNpZVBhcmFtZXRlcnMsCi0JCQkJCSAgc211X3BjaWVfYXJnKTsKLQlp ZiAocmV0KQotCQlwcl9lcnIoIlslc10gQXR0ZW1wdCB0byBvdmVycmlkZSBwY2llIHBhcmFtcyBm YWlsZWQhXG4iLCBfX2Z1bmNfXyk7Ci0JcmV0dXJuIHJldDsKLX0KLQogc3RhdGljIGludCBzbXVf c21jX3RhYmxlX2h3X2luaXQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJCQkJIGJvb2wgaW5p dGlhbGl6ZSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2lu Yy9hbWRncHVfc211LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvYW1kZ3B1 X3NtdS5oCmluZGV4IGNjZjcxMWMuLjgwOWRlMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2luYy9hbWRncHVfc211LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvaW5jL2FtZGdwdV9zbXUuaApAQCAtNDY4LDYgKzQ2OCw3IEBAIHN0cnVjdCBw cHRhYmxlX2Z1bmNzIHsKIAlpbnQgKCpnZXRfcG93ZXJfbGltaXQpKHN0cnVjdCBzbXVfY29udGV4 dCAqc211LCB1aW50MzJfdCAqbGltaXQsIGJvb2wgYXNpY19kZWZhdWx0KTsKIAlpbnQgKCpnZXRf ZHBtX2Nsa19saW1pdGVkKShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBzbXVfY2xrX3R5 cGUgY2xrX3R5cGUsCiAJCQkJICAgdWludDMyX3QgZHBtX2xldmVsLCB1aW50MzJfdCAqZnJlcSk7 CisJaW50ICgqdXBkYXRlX3BjaWVfcGFyYW1ldGVycykoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUs IHVpbnQzMl90IHBjaWVfZ2VuX2NhcCwgdWludDMyX3QgcGNpZV93aWR0aF9jYXApOwogfTsKIAog c3RydWN0IHNtdV9mdW5jcwpAQCAtNTUwLDYgKzU1MSw3IEBAIHN0cnVjdCBzbXVfZnVuY3MKIAlp bnQgKCptb2RlMl9yZXNldCkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwogCWludCAoKmdldF9k cG1fdWx0aW1hdGVfZnJlcSkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gc211X2Nsa190 eXBlIGNsa190eXBlLCB1aW50MzJfdCAqbWluLCB1aW50MzJfdCAqbWF4KTsKIAlpbnQgKCpzZXRf c29mdF9mcmVxX2xpbWl0ZWRfcmFuZ2UpKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIHNt dV9jbGtfdHlwZSBjbGtfdHlwZSwgdWludDMyX3QgbWluLCB1aW50MzJfdCBtYXgpOworCWludCAo Km92ZXJyaWRlX3BjaWVfcGFyYW1ldGVycykoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpOwogfTsK IAogI2RlZmluZSBzbXVfaW5pdF9taWNyb2NvZGUoc211KSBcCkBAIC03ODIsNiArNzg0LDEyIEBA IHN0cnVjdCBzbXVfZnVuY3MKICNkZWZpbmUgc211X3NldF9zb2Z0X2ZyZXFfbGltaXRlZF9yYW5n ZShzbXUsIGNsa190eXBlLCBtaW4sIG1heCkgXAogCQkoKHNtdSktPmZ1bmNzLT5zZXRfc29mdF9m cmVxX2xpbWl0ZWRfcmFuZ2UgPyAoc211KS0+ZnVuY3MtPnNldF9zb2Z0X2ZyZXFfbGltaXRlZF9y YW5nZSgoc211KSwgKGNsa190eXBlKSwgKG1pbiksIChtYXgpKSA6IC1FSU5WQUwpCiAKKyNkZWZp bmUgc211X292ZXJyaWRlX3BjaWVfcGFyYW1ldGVycyhzbXUpIFwKKwkJKChzbXUpLT5mdW5jcy0+ b3ZlcnJpZGVfcGNpZV9wYXJhbWV0ZXJzID8gKHNtdSktPmZ1bmNzLT5vdmVycmlkZV9wY2llX3Bh cmFtZXRlcnMoKHNtdSkpIDogMCkKKworI2RlZmluZSBzbXVfdXBkYXRlX3BjaWVfcGFyYW1ldGVy cyhzbXUsIHBjaWVfZ2VuX2NhcCwgcGNpZV93aWR0aF9jYXApIFwKKwkJKChzbXUpLT5wcHRfZnVu Y3MtPnVwZGF0ZV9wY2llX3BhcmFtZXRlcnMgPyAoc211KS0+cHB0X2Z1bmNzLT51cGRhdGVfcGNp ZV9wYXJhbWV0ZXJzKChzbXUpLCAocGNpZV9nZW5fY2FwKSwgKHBjaWVfd2lkdGhfY2FwKSkgOiAw KQorCiBleHRlcm4gaW50IHNtdV9nZXRfYXRvbV9kYXRhX3RhYmxlKHN0cnVjdCBzbXVfY29udGV4 dCAqc211LCB1aW50MzJfdCB0YWJsZSwKIAkJCQkgICB1aW50MTZfdCAqc2l6ZSwgdWludDhfdCAq ZnJldiwgdWludDhfdCAqY3JldiwKIAkJCQkgICB1aW50OF90ICoqYWRkcik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9uYXZpMTBfcHB0LmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9uYXZpMTBfcHB0LmMKaW5kZXggYTU4M2NmOC4uYTJmMzNjZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvbmF2aTEwX3BwdC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L25hdmkxMF9wcHQuYwpAQCAtMTU5Miw2 ICsxNTkyLDI4IEBAIHN0YXRpYyBpbnQgbmF2aTEwX2dldF9wb3dlcl9saW1pdChzdHJ1Y3Qgc211 X2NvbnRleHQgKnNtdSwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBuYXZpMTBfdXBkYXRl X3BjaWVfcGFyYW1ldGVycyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKKwkJCQkgICAgIHVpbnQz Ml90IHBjaWVfZ2VuX2NhcCwKKwkJCQkgICAgIHVpbnQzMl90IHBjaWVfd2lkdGhfY2FwKQorewor CVBQVGFibGVfdCAqcHB0YWJsZSA9IHNtdS0+c211X3RhYmxlLmRyaXZlcl9wcHRhYmxlOworCWlu dCByZXQsIGk7CisJdWludDMyX3Qgc211X3BjaWVfYXJnOworCisJZm9yIChpID0gMDsgaSA8IE5V TV9MSU5LX0xFVkVMUzsgaSsrKSB7CisJCXNtdV9wY2llX2FyZyA9IChpIDw8IDE2KSB8CisJCQko KHBwdGFibGUtPlBjaWVHZW5TcGVlZFtpXSA8PSBwY2llX2dlbl9jYXApID8gKHBwdGFibGUtPlBj aWVHZW5TcGVlZFtpXSA8PCA4KSA6CisJCQkJKHBjaWVfZ2VuX2NhcCA8PCA4KSkgfCAoKHBwdGFi bGUtPlBjaWVMYW5lQ291bnRbaV0gPD0gcGNpZV93aWR0aF9jYXApID8KKwkJCQkJcHB0YWJsZS0+ UGNpZUxhbmVDb3VudFtpXSA6IHBjaWVfd2lkdGhfY2FwKTsKKwkJcmV0ID0gc211X3NlbmRfc21j X21zZ193aXRoX3BhcmFtKHNtdSwKKwkJCQkJICBTTVVfTVNHX092ZXJyaWRlUGNpZVBhcmFtZXRl cnMsCisJCQkJCSAgc211X3BjaWVfYXJnKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCisKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgcHB0YWJsZV9mdW5jcyBuYXZpMTBfcHB0X2Z1bmNzID0gewogCS50 YWJsZXNfaW5pdCA9IG5hdmkxMF90YWJsZXNfaW5pdCwKIAkuYWxsb2NfZHBtX2NvbnRleHQgPSBu YXZpMTBfYWxsb2NhdGVfZHBtX2NvbnRleHQsCkBAIC0xNjMwLDYgKzE2NTIsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHBwdGFibGVfZnVuY3MgbmF2aTEwX3BwdF9mdW5jcyA9IHsKIAkuZ2V0X3Ro ZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2UgPSBuYXZpMTBfZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVf cmFuZ2UsCiAJLmRpc3BsYXlfZGlzYWJsZV9tZW1vcnlfY2xvY2tfc3dpdGNoID0gbmF2aTEwX2Rp c3BsYXlfZGlzYWJsZV9tZW1vcnlfY2xvY2tfc3dpdGNoLAogCS5nZXRfcG93ZXJfbGltaXQgPSBu YXZpMTBfZ2V0X3Bvd2VyX2xpbWl0LAorCS51cGRhdGVfcGNpZV9wYXJhbWV0ZXJzID0gbmF2aTEw X3VwZGF0ZV9wY2llX3BhcmFtZXRlcnMsCiB9OwogCiB2b2lkIG5hdmkxMF9zZXRfcHB0X2Z1bmNz KHN0cnVjdCBzbXVfY29udGV4dCAqc211KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvc211X3YxMV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9z bXVfdjExXzAuYwppbmRleCBjOWU5MGQ1Li5hODEyYWU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9zbXVfdjExXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9zbXVfdjExXzAuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgInZlZ2Ey MF9wcHQuaCIKICNpbmNsdWRlICJhcmN0dXJ1c19wcHQuaCIKICNpbmNsdWRlICJuYXZpMTBfcHB0 LmgiCisjaW5jbHVkZSAiYW1kX3BjaWUuaCIKIAogI2luY2x1ZGUgImFzaWNfcmVnL3RobS90aG1f MTFfMF8yX29mZnNldC5oIgogI2luY2x1ZGUgImFzaWNfcmVnL3RobS90aG1fMTFfMF8yX3NoX21h c2suaCIKQEAgLTE3OTIsNiArMTc5Myw0OCBAQCBzdGF0aWMgaW50IHNtdV92MTFfMF9zZXRfc29m dF9mcmVxX2xpbWl0ZWRfcmFuZ2Uoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gcwogCXJl dHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgc211X3YxMV8wX292ZXJyaWRlX3BjaWVfcGFyYW1l dGVycyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IHNtdS0+YWRldjsKKwl1aW50MzJfdCBwY2llX2dlbiA9IDAsIHBjaWVfd2lkdGggPSAw OworCWludCByZXQ7CisKKwlpZiAoYWRldi0+cG0ucGNpZV9nZW5fbWFzayAmIENBSUxfUENJRV9M SU5LX1NQRUVEX1NVUFBPUlRfR0VONCkKKwkJcGNpZV9nZW4gPSAzOworCWVsc2UgaWYgKGFkZXYt PnBtLnBjaWVfZ2VuX21hc2sgJiBDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjMpCisJ CXBjaWVfZ2VuID0gMjsKKwllbHNlIGlmIChhZGV2LT5wbS5wY2llX2dlbl9tYXNrICYgQ0FJTF9Q Q0lFX0xJTktfU1BFRURfU1VQUE9SVF9HRU4yKQorCQlwY2llX2dlbiA9IDE7CisJZWxzZSBpZiAo YWRldi0+cG0ucGNpZV9nZW5fbWFzayAmIENBSUxfUENJRV9MSU5LX1NQRUVEX1NVUFBPUlRfR0VO MSkKKwkJcGNpZV9nZW4gPSAwOworCisJLyogQml0IDMxOjE2OiBMQ0xLIERQTSBsZXZlbC4gMCBp cyBEUE0wLCBhbmQgMSBpcyBEUE0xCisJICogQml0IDE1Ojg6ICBQQ0lFIEdFTiwgMCB0byAzIGNv cnJlc3BvbmRzIHRvIEdFTjEgdG8gR0VONAorCSAqIEJpdCA3OjA6ICAgUENJRSBsYW5lIHdpZHRo LCAxIHRvIDcgY29ycmVzcG9uZHMgaXMgeDEgdG8geDMyCisJICovCisJaWYgKGFkZXYtPnBtLnBj aWVfbWx3X21hc2sgJiBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1gxNikKKwkJcGNpZV93 aWR0aCA9IDY7CisJZWxzZSBpZiAoYWRldi0+cG0ucGNpZV9tbHdfbWFzayAmIENBSUxfUENJRV9M SU5LX1dJRFRIX1NVUFBPUlRfWDEyKQorCQlwY2llX3dpZHRoID0gNTsKKwllbHNlIGlmIChhZGV2 LT5wbS5wY2llX21sd19tYXNrICYgQ0FJTF9QQ0lFX0xJTktfV0lEVEhfU1VQUE9SVF9YOCkKKwkJ cGNpZV93aWR0aCA9IDQ7CisJZWxzZSBpZiAoYWRldi0+cG0ucGNpZV9tbHdfbWFzayAmIENBSUxf UENJRV9MSU5LX1dJRFRIX1NVUFBPUlRfWDQpCisJCXBjaWVfd2lkdGggPSAzOworCWVsc2UgaWYg KGFkZXYtPnBtLnBjaWVfbWx3X21hc2sgJiBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1gy KQorCQlwY2llX3dpZHRoID0gMjsKKwllbHNlIGlmIChhZGV2LT5wbS5wY2llX21sd19tYXNrICYg Q0FJTF9QQ0lFX0xJTktfV0lEVEhfU1VQUE9SVF9YMSkKKwkJcGNpZV93aWR0aCA9IDE7CisKKwly ZXQgPSBzbXVfdXBkYXRlX3BjaWVfcGFyYW1ldGVycyhzbXUsIHBjaWVfZ2VuLCBwY2llX3dpZHRo KTsKKworCWlmIChyZXQpCisJCXByX2VycigiWyVzXSBBdHRlbXB0IHRvIG92ZXJyaWRlIHBjaWUg cGFyYW1zIGZhaWxlZCFcbiIsIF9fZnVuY19fKTsKKworCXJldHVybiByZXQ7CisKK30KKworCiBz dGF0aWMgY29uc3Qgc3RydWN0IHNtdV9mdW5jcyBzbXVfdjExXzBfZnVuY3MgPSB7CiAJLmluaXRf bWljcm9jb2RlID0gc211X3YxMV8wX2luaXRfbWljcm9jb2RlLAogCS5sb2FkX21pY3JvY29kZSA9 IHNtdV92MTFfMF9sb2FkX21pY3JvY29kZSwKQEAgLTE4NDQsNiArMTg4Nyw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3Qgc211X2Z1bmNzIHNtdV92MTFfMF9mdW5jcyA9IHsKIAkuYmFjb19yZXNldCA9 IHNtdV92MTFfMF9iYWNvX3Jlc2V0LAogCS5nZXRfZHBtX3VsdGltYXRlX2ZyZXEgPSBzbXVfdjEx XzBfZ2V0X2RwbV91bHRpbWF0ZV9mcmVxLAogCS5zZXRfc29mdF9mcmVxX2xpbWl0ZWRfcmFuZ2Ug PSBzbXVfdjExXzBfc2V0X3NvZnRfZnJlcV9saW1pdGVkX3JhbmdlLAorCS5vdmVycmlkZV9wY2ll X3BhcmFtZXRlcnMgPSBzbXVfdjExXzBfb3ZlcnJpZGVfcGNpZV9wYXJhbWV0ZXJzLAogfTsKIAog dm9pZCBzbXVfdjExXzBfc2V0X3NtdV9mdW5jcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3ZlZ2EyMF9wcHQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3ZlZ2EyMF9wcHQuYwppbmRleCBmNjU1ZWJkLi5h ZGNhODRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS92ZWdhMjBf cHB0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvdmVnYTIwX3BwdC5jCkBA IC0zMTM1LDYgKzMxMzUsMjggQEAgc3RhdGljIGludCB2ZWdhMjBfZ2V0X3RoZXJtYWxfdGVtcGVy YXR1cmVfcmFuZ2Uoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJcmV0dXJuIDA7CiB9CiAKK3N0 YXRpYyBpbnQgdmVnYTIwX3VwZGF0ZV9wY2llX3BhcmFtZXRlcnMoc3RydWN0IHNtdV9jb250ZXh0 ICpzbXUsCisJCQkJICAgICB1aW50MzJfdCBwY2llX2dlbl9jYXAsCisJCQkJICAgICB1aW50MzJf dCBwY2llX3dpZHRoX2NhcCkKK3sKKwlQUFRhYmxlX3QgKnBwdGFibGUgPSBzbXUtPnNtdV90YWJs ZS5kcml2ZXJfcHB0YWJsZTsKKwlpbnQgcmV0LCBpOworCXVpbnQzMl90IHNtdV9wY2llX2FyZzsK KworCWZvciAoaSA9IDA7IGkgPCBOVU1fTElOS19MRVZFTFM7IGkrKykgeworCQlzbXVfcGNpZV9h cmcgPSAoaSA8PCAxNikgfAorCQkJKChwcHRhYmxlLT5QY2llR2VuU3BlZWRbaV0gPD0gcGNpZV9n ZW5fY2FwKSA/IChwcHRhYmxlLT5QY2llR2VuU3BlZWRbaV0gPDwgOCkgOgorCQkJCShwY2llX2dl bl9jYXAgPDwgOCkpIHwgKChwcHRhYmxlLT5QY2llTGFuZUNvdW50W2ldIDw9IHBjaWVfd2lkdGhf Y2FwKSA/CisJCQkJCXBwdGFibGUtPlBjaWVMYW5lQ291bnRbaV0gOiBwY2llX3dpZHRoX2NhcCk7 CisJCXJldCA9IHNtdV9zZW5kX3NtY19tc2dfd2l0aF9wYXJhbShzbXUsCisJCQkJCSAgU01VX01T R19PdmVycmlkZVBjaWVQYXJhbWV0ZXJzLAorCQkJCQkgIHNtdV9wY2llX2FyZyk7CisJfQorCisJ cmV0dXJuIHJldDsKK30KKworCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBwdGFibGVfZnVuY3MgdmVn YTIwX3BwdF9mdW5jcyA9IHsKIAkudGFibGVzX2luaXQgPSB2ZWdhMjBfdGFibGVzX2luaXQsCiAJ LmFsbG9jX2RwbV9jb250ZXh0ID0gdmVnYTIwX2FsbG9jYXRlX2RwbV9jb250ZXh0LApAQCAtMzE3 Nyw3ICszMTk5LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwcHRhYmxlX2Z1bmNzIHZlZ2EyMF9w cHRfZnVuY3MgPSB7CiAJLmdldF9mYW5fc3BlZWRfcGVyY2VudCA9IHZlZ2EyMF9nZXRfZmFuX3Nw ZWVkX3BlcmNlbnQsCiAJLmdldF9mYW5fc3BlZWRfcnBtID0gdmVnYTIwX2dldF9mYW5fc3BlZWRf cnBtLAogCS5zZXRfd2F0ZXJtYXJrc190YWJsZSA9IHZlZ2EyMF9zZXRfd2F0ZXJtYXJrc190YWJs ZSwKLQkuZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2UgPSB2ZWdhMjBfZ2V0X3RoZXJtYWxf dGVtcGVyYXR1cmVfcmFuZ2UKKwkuZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2UgPSB2ZWdh MjBfZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2UsCisJLnVwZGF0ZV9wY2llX3BhcmFtZXRl cnMgPSB2ZWdhMjBfdXBkYXRlX3BjaWVfcGFyYW1ldGVycwogfTsKIAogdm9pZCB2ZWdhMjBfc2V0 X3BwdF9mdW5jcyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKLS0gCjIuNy40CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlz dAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=