From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 48/49] drm/i915/bxt: VSwing programming sequence Date: Tue, 17 Mar 2015 11:40:14 +0200 Message-ID: <1426585215-8788-49-git-send-email-imre.deak@intel.com> References: <1426585215-8788-1-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 8677D6E676 for ; Tue, 17 Mar 2015 02:41:06 -0700 (PDT) In-Reply-To: <1426585215-8788-1-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmFuZGFuYSBLYW5uYW4gPHZhbmRhbmEua2FubmFuQGludGVsLmNvbT4KClZTd2luZyBw cm9ncmFtbWluZyBzZXF1ZW5jZSBhcyBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZWQgQlhUIEJTcGVj Cgp2MjogU2F0aGVlc2gncyByZXZpZXcgY29tbWVudHMgYWRkcmVzc2VkLgotIGNsZWFyIHZhbHVl IGJlZm9yZSBzZXR0aW5nIGludG8gcmVnaXN0ZXJzCi0gbW92ZSBwcmludCBzdGF0ZW1lbnQgdG8g Ynh0IGZ1bmN0aW9uCk90aGVyIGNoYW5nZXMKLSBzaW5jZSBzaWduYWwgbGV2ZWwgd2lsbCBub3Qg YmUgc2V0IGludG8gRERJX0JVRl9DVEwsIHRoZSB2YWx1ZSBuZWVkCiAgbm90IGJlIHJldHVybmVk IHRvIGludGVsX2RwX3NldF9zaWduYWxfbGV2ZWxzKCkuIE1ha2luZyB0aGUgYnh0CiAgc3BlY2lm aWMgZnVuY3Rpb24gdG8gcmV0dXJuIHZvaWQgYW5kIHNldHRpbmcgc2lnbmFsX2xldmVscyA9IDAg Zm9yCiAgYnh0IGluc2lkZSBpbnRlbF9kcF9zZXRfc2lnbmFsX2xldmVscygpCi0gaW5zdGVhZCBv ZiBzaWduYWwgbGV2ZWxzLCBwcmludGluZyB2c3dpbmcgbGV2ZWwgYW5kIHByZS1lbXBoYXNpcwog IGxldmVsCi0gaW4gY2FzZSBub25lIG9mIHRoZSBwcmUtZW1waGFzaXMgbGV2ZWxzIG9yIHZzd2lu ZyBsZXZlbHMgYXJlIHNldCwKICBzZXR0aW5nIGRlZmF1bHQgb2YgNDAwbVYgKyAwZEIKCnYzOiBT YXRoZWVzaCdzIHJldmlldyBjb21tZW50cwotIENoZWNrIGZvciBtYXNrIGJlZm9yZSBwcmludGlu ZyBzaWduYWxfbGV2ZWxzLgotIFJlbW92aW5nIHJlZHVuZGFudCByZWdpc3RlciB3cml0ZXMKLSBD YWxsIGludGVsX3ByZXBhcmVfZGRpX2J1ZmZlcnMgb25seSBmb3IgSEFTX1BDSF9TUExJVAotIE1h a2luZyByZWdpc3RlciB3cml0ZSBwYXJ0IGdlbmVyaWMgYXMgaXQgd2lsbCBiZSByZXF1aXJlZCBm b3IgSERNSSBhcwogIHdlbGwuCgpSZS1zdHJ1Y3R1cmUgdGhlIGNvZGUgdG8gaW5jbHVkZSBhbiBh cnJheSBmb3IgdnN3aW5nIHJlbGF0ZWQgdmFsdWVzLCBzZXQKc2lnbmFsIGxldmVscwoKdjQ6IFNh dGhlZXNoJ3MgcmV2aWV3IGNvbW1lbnRzCi0gUmViYXNlIG92ZXIgbGF0ZXN0IHJlbmFtaW5nIHBh dGNoZXMKLSB1c2UgaHN3X3NpZ25hbF9sZXZlbHMgZm9yIEhBU19EREkKT3RoZXIgY2hhbmdlcwot IE1vZGlmaWVkIHZzd2luZ19zZXF1ZW5jZSgpIGZ1bmMgZGVmaW5pdGlvbgotIFJlYmFzZWQgb24g dG9wIG9mIHJlZ2lzdGVyIG1hY3JvIGRlZmluaXRpb25zCgp2NTogU2F0aGVlc2gncyByZXZpZXcg Y29tbWVudHMKLSBDaGVjayBkZGkgdHJhbnNsYXRpb24gdGFibGUgc2l6ZQoKdjY6IEltcmUncyBy ZXZpZXcgY29tbWVudHMKLSByZW1vdmVkIGNvbW1lbnRzIGluIHZzd2luZyBzZXF1ZW5jZQotIGFk ZGVkIHZzd2luZywgcHJlLWVtcGhhc2lzIHByaW50cyBpbiBpbnRlbF9kcF9zZXRfc2lnbmFsX2xl dmVscwotIGFkZGVkIGNvbW1lbnQgZXhwbGFpbmluZyB1c2Ugb2YgRFAgdnN3aW5nIHZhbHVlcyBm b3IgZURQCi0gaW5pdGlhbGl6ZSBuX2VudHJpZXMgYW5kIGRkaV90cmFuc2FsdGlvbiB0YWJsZSBi YXNlZCBvbiBlbmNvZGVyIHR5cGUKLSBjcmVhdGUgYnh0X2RkaV9idWZfdHJhbnMgc3RydWN0dXJl IGFuZCB1c2UgZGVjaW1hbCB2YWx1ZXMKLSBhZGRpbmcgYSBmbGFnIGluIGJ4dCBidWZmZXIgdHJh bnNsYXRpb24gdGFibGUgdG8gaW5kaWNhdGUgZGVmIGVudHJ5Cgp2NzogKGltcmUpCi0gc3F1YXNo IGluIFZhbmRhbmEncyAiVlN3aW5nIHJlZ2lzdGVyIGRlZmluaXRpb24iLAogICJIRE1JIFZTd2lu ZyBwcm9ncmFtbWluZyIsICJSZS1lbmFibGUgdnN3aW5nIHByb2dyYW1taW5nIiwKICAiRml4IHZz d2luZyBzZXF1ZW5jZSIgcGF0Y2hlcwotIHVzZSBCWFRfUE9SVF8qIHJlZ3MgZGlyZWN0bHkgaW5z dGVhZCBvZiB2aWEgYSB0ZW1wIHZhcgotIHNpbXBsaWZ5IEJYVF9QT1JUXyogbWFjcm8gZGVmaW5p dGlvbnMKLSBhZGQgY29kZSBjb21tZW50IHdoeSB3ZSByZWFkIGxhbmUgd2hpbGUgd3JpdGUgZ3Jv dXAgcmVnaXN0ZXJzCi0gZml4IHJlYWRvdXQgb2YgRFBfVFJBSU5fUFJFX0VNUEhBU0lTIGluIGRl YnVnIG1lc3NhZ2UKClNpZ25lZC1vZmYtYnk6IFZhbmRhbmEgS2FubmFuIDx2YW5kYW5hLmthbm5h bkBpbnRlbC5jb20+ICh2NikKU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggIHwgIDYxICsrKysr KysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyB8IDEyMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMgIHwgIDY0ICsrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgIDIgKwogNCBmaWxlcyBjaGFuZ2VkLCAyNDQgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCAyZTcy MjgzYy4uNTQ1YjdjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC0xMjY5LDYgKzEyNjks MjEgQEAgZW51bSBieHRfcGh5IHsKIAkJCQkJCSAgICAgX1BPUlRfUkVGX0RXOF9CQykKIAogLyog QlhUIFBIWSBQQ1MgcmVnaXN0ZXJzICovCisjZGVmaW5lIF9QT1JUX1BDU19EVzEwX0xOMDFfQQkJ MHgxNjI0MjgKKyNkZWZpbmUgX1BPUlRfUENTX0RXMTBfTE4wMV9CCQkweDZDNDI4CisjZGVmaW5l IF9QT1JUX1BDU19EVzEwX0xOMDFfQwkJMHg2QzgyOAorI2RlZmluZSBfUE9SVF9QQ1NfRFcxMF9H UlBfQQkJMHgxNjJDMjgKKyNkZWZpbmUgX1BPUlRfUENTX0RXMTBfR1JQX0IJCTB4NkNDMjgKKyNk ZWZpbmUgX1BPUlRfUENTX0RXMTBfR1JQX0MJCTB4NkNFMjgKKyNkZWZpbmUgQlhUX1BPUlRfUENT X0RXMTBfTE4wMShwb3J0KQlfUE9SVDMocG9ydCwgX1BPUlRfUENTX0RXMTBfTE4wMV9BLCBcCisJ CQkJCQkgICAgIF9QT1JUX1BDU19EVzEwX0xOMDFfQiwgXAorCQkJCQkJICAgICBfUE9SVF9QQ1Nf RFcxMF9MTjAxX0MpCisjZGVmaW5lIEJYVF9QT1JUX1BDU19EVzEwX0dSUChwb3J0KQlfUE9SVDMo cG9ydCwgX1BPUlRfUENTX0RXMTBfR1JQX0EsICBcCisJCQkJCQkgICAgIF9QT1JUX1BDU19EVzEw X0dSUF9CLCAgXAorCQkJCQkJICAgICBfUE9SVF9QQ1NfRFcxMF9HUlBfQykKKyNkZWZpbmUgICBU WDJfU1dJTkdfQ0FMQ19JTklUCQkoMSA8PCAzMSkKKyNkZWZpbmUgICBUWDFfU1dJTkdfQ0FMQ19J TklUCQkoMSA8PCAzMCkKKwogI2RlZmluZSBfUE9SVF9QQ1NfRFcxMl9MTjAxX0EJCTB4MTYyNDMw CiAjZGVmaW5lIF9QT1JUX1BDU19EVzEyX0xOMDFfQgkJMHg2QzQzMAogI2RlZmluZSBfUE9SVF9Q Q1NfRFcxMl9MTjAxX0MJCTB4NkM4MzAKQEAgLTEyOTQsNiArMTMwOSw1MiBAQCBlbnVtIGJ4dF9w aHkgewogI2RlZmluZSBCWFRfTEFORV9PRkZTRVQobGFuZSkgICAgICAgICAgICgoKGxhbmUpID4+ IDEpICogMHgyMDAgKwlcCiAJCQkJCSAoKGxhbmUpICYgMSkgKiAweDgwKQogCisjZGVmaW5lIF9Q T1JUX1RYX0RXMl9MTjBfQQkJMHgxNjI1MDgKKyNkZWZpbmUgX1BPUlRfVFhfRFcyX0xOMF9CCQkw eDZDNTA4CisjZGVmaW5lIF9QT1JUX1RYX0RXMl9MTjBfQwkJMHg2QzkwOAorI2RlZmluZSBfUE9S VF9UWF9EVzJfR1JQX0EJCTB4MTYyRDA4CisjZGVmaW5lIF9QT1JUX1RYX0RXMl9HUlBfQgkJMHg2 Q0QwOAorI2RlZmluZSBfUE9SVF9UWF9EVzJfR1JQX0MJCTB4NkNGMDgKKyNkZWZpbmUgQlhUX1BP UlRfVFhfRFcyX0dSUChwb3J0KQlfUE9SVDMocG9ydCwgX1BPUlRfVFhfRFcyX0dSUF9BLCAgXAor CQkJCQkJICAgICBfUE9SVF9UWF9EVzJfR1JQX0IsICBcCisJCQkJCQkgICAgIF9QT1JUX1RYX0RX Ml9HUlBfQykKKyNkZWZpbmUgQlhUX1BPUlRfVFhfRFcyX0xOMChwb3J0KQlfUE9SVDMocG9ydCwg X1BPUlRfVFhfRFcyX0xOMF9BLCAgXAorCQkJCQkJICAgICBfUE9SVF9UWF9EVzJfTE4wX0IsICBc CisJCQkJCQkgICAgIF9QT1JUX1RYX0RXMl9MTjBfQykKKyNkZWZpbmUgICBNQVJHSU5fMDAwX1NI SUZUCQkxNgorI2RlZmluZSAgIE1BUkdJTl8wMDAJCQkoMHhGRiA8PCBNQVJHSU5fMDAwX1NISUZU KQorI2RlZmluZSAgIFVOSVFfVFJBTlNfU0NBTEVfU0hJRlQJOAorI2RlZmluZSAgIFVOSVFfVFJB TlNfU0NBTEUJCSgweEZGIDw8IFVOSVFfVFJBTlNfU0NBTEVfU0hJRlQpCisKKyNkZWZpbmUgX1BP UlRfVFhfRFczX0xOMF9BCQkweDE2MjUwQworI2RlZmluZSBfUE9SVF9UWF9EVzNfTE4wX0IJCTB4 NkM1MEMKKyNkZWZpbmUgX1BPUlRfVFhfRFczX0xOMF9DCQkweDZDOTBDCisjZGVmaW5lIF9QT1JU X1RYX0RXM19HUlBfQQkJMHgxNjJEMEMKKyNkZWZpbmUgX1BPUlRfVFhfRFczX0dSUF9CCQkweDZD RDBDCisjZGVmaW5lIF9QT1JUX1RYX0RXM19HUlBfQwkJMHg2Q0YwQworI2RlZmluZSBCWFRfUE9S VF9UWF9EVzNfR1JQKHBvcnQpCV9QT1JUMyhwb3J0LCBfUE9SVF9UWF9EVzNfR1JQX0EsICBcCisJ CQkJCQkgICAgIF9QT1JUX1RYX0RXM19HUlBfQiwgIFwKKwkJCQkJCSAgICAgX1BPUlRfVFhfRFcz X0dSUF9DKQorI2RlZmluZSBCWFRfUE9SVF9UWF9EVzNfTE4wKHBvcnQpCV9QT1JUMyhwb3J0LCBf UE9SVF9UWF9EVzNfTE4wX0EsICBcCisJCQkJCQkgICAgIF9QT1JUX1RYX0RXM19MTjBfQiwgIFwK KwkJCQkJCSAgICAgX1BPUlRfVFhfRFczX0xOMF9DKQorI2RlZmluZSAgIFVOSVFFX1RSQU5HRV9F Tl9NRVRIT0QJKDEgPDwgMjcpCisKKyNkZWZpbmUgX1BPUlRfVFhfRFc0X0xOMF9BCQkweDE2MjUx MAorI2RlZmluZSBfUE9SVF9UWF9EVzRfTE4wX0IJCTB4NkM1MTAKKyNkZWZpbmUgX1BPUlRfVFhf RFc0X0xOMF9DCQkweDZDOTEwCisjZGVmaW5lIF9QT1JUX1RYX0RXNF9HUlBfQQkJMHgxNjJEMTAK KyNkZWZpbmUgX1BPUlRfVFhfRFc0X0dSUF9CCQkweDZDRDEwCisjZGVmaW5lIF9QT1JUX1RYX0RX NF9HUlBfQwkJMHg2Q0YxMAorI2RlZmluZSBCWFRfUE9SVF9UWF9EVzRfTE4wKHBvcnQpCV9QT1JU Myhwb3J0LCBfUE9SVF9UWF9EVzRfTE4wX0EsICBcCisJCQkJCQkgICAgIF9QT1JUX1RYX0RXNF9M TjBfQiwgIFwKKwkJCQkJCSAgICAgX1BPUlRfVFhfRFc0X0xOMF9DKQorI2RlZmluZSBCWFRfUE9S VF9UWF9EVzRfR1JQKHBvcnQpCV9QT1JUMyhwb3J0LCBfUE9SVF9UWF9EVzRfR1JQX0EsICBcCisJ CQkJCQkgICAgIF9QT1JUX1RYX0RXNF9HUlBfQiwgIFwKKwkJCQkJCSAgICAgX1BPUlRfVFhfRFc0 X0dSUF9DKQorI2RlZmluZSAgIERFRU1QSF9TSElGVAkJCTI0CisjZGVmaW5lICAgREVfRU1QSEFT SVMJCQkoMHhGRiA8PCBERUVNUEhfU0hJRlQpCisKICNkZWZpbmUgX1BPUlRfVFhfRFcxNF9MTjBf QQkJMHgxNjI1MzgKICNkZWZpbmUgX1BPUlRfVFhfRFcxNF9MTjBfQgkJMHg2QzUzOAogI2RlZmlu ZSBfUE9SVF9UWF9EVzE0X0xOMF9DCQkweDZDOTM4CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmlu ZGV4IDVhYTRkYWIuLjc5OWY5ZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0xNTks NiArMTU5LDQ4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBza2xfZGRpX3Ry YW5zbGF0aW9uc19oZG1pW10gPSB7CiAJeyAweDAwMDA0MDE0LCAweDAwMDAwMDg3IH0sCS8qIDA6 CTgwMAkxMDAwCTIgICAqLwogfTsKIAorc3RydWN0IGJ4dF9kZGlfYnVmX3RyYW5zIHsKKwl1MzIg bWFyZ2luOwkvKiBzd2luZyB2YWx1ZSAqLworCXUzMiBzY2FsZTsJLyogc2NhbGUgdmFsdWUgKi8K Kwl1MzIgZW5hYmxlOwkvKiBzY2FsZSBlbmFibGUgKi8KKwl1MzIgZGVlbXBoYXNpczsKKwlib29s IGRlZmF1bHRfaW5kZXg7IC8qIHRydWUgaWYgdGhlIGVudHJ5IHJlcHJlc2VudHMgZGVmYXVsdCB2 YWx1ZSAqLworfTsKKworLyogQlNwZWMgZG9lcyBub3QgZGVmaW5lIHNlcGFyYXRlIHZzd2luZy9w cmUtZW1waGFzaXMgdmFsdWVzIGZvciBlRFAuCisgKiBVc2luZyBEUCB2YWx1ZXMgZm9yIGVEUCBh cyB3ZWxsLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGJ4dF9kZGlfYnVmX3RyYW5zIGJ4dF9k ZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7CisJCQkJCS8qIElkeAlOVCBtViBkaWZmCWRiICAqLwor CXsgNTIsICAwLCAgICAwLCAxMjgsIHRydWUgIH0sCS8qIDA6CTQwMAkJMCAgICovCisJeyA3OCwg IDAsICAgIDAsIDg1LCAgZmFsc2UgfSwJLyogMToJNDAwCQkzLjUgKi8KKwl7IDEwNCwgMCwgICAg MCwgNjQsICBmYWxzZSB9LAkvKiAyOgk0MDAJCTYgICAqLworCXsgMTU0LCAwLCAgICAwLCA0Mywg IGZhbHNlIH0sCS8qIDM6CTQwMAkJOS41ICovCisJeyA3NywgIDAsICAgIDAsIDEyOCwgZmFsc2Ug fSwJLyogNDoJNjAwCQkwICAgKi8KKwl7IDExNiwgMCwgICAgMCwgODUsICBmYWxzZSB9LAkvKiA1 Ogk2MDAJCTMuNSAqLworCXsgMTU0LCAwLCAgICAwLCA2NCwgIGZhbHNlIH0sCS8qIDY6CTYwMAkJ NiAgICovCisJeyAxMDIsIDAsICAgIDAsIDEyOCwgZmFsc2UgfSwJLyogNzoJODAwCQkwICAgKi8K Kwl7IDE1NCwgMCwgICAgMCwgODUsICBmYWxzZSB9LAkvKiA4Ogk4MDAJCTMuNSAqLworCXsgMTU0 LCAweDlBLCAxLCAxMjgsIGZhbHNlIH0sICAvKiA5OgkxMjAwCQkwICAgKi8KK307CisKKy8qIEJT cGVjIGhhcyAyIHJlY29tbWVuZGVkIHZhbHVlcyAtIGVudHJpZXMgMCBhbmQgOC4KKyAqIFVzaW5n IHRoZSBlbnRyeSB3aXRoIGhpZ2hlciB2c3dpbmcuCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg Ynh0X2RkaV9idWZfdHJhbnMgYnh0X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0geworCQkJCQkv KiBJZHgJTlQgbVYgZGlmZglkYiAgKi8KKwl7IDUyLCAgMCwgICAgMCwgMTI4LCBmYWxzZSB9LAkv KiAwOgk0MDAJCTAgICAqLworCXsgNTIsICAwLCAgICAwLCA4NSwgIGZhbHNlIH0sCS8qIDE6CTQw MAkJMy41ICovCisJeyA1MiwgIDAsICAgIDAsIDY0LCAgZmFsc2UgfSwJLyogMjoJNDAwCQk2ICAg Ki8KKwl7IDQyLCAgMCwgICAgMCwgNDMsICBmYWxzZSB9LAkvKiAzOgk0MDAJCTkuNSAqLworCXsg NzcsICAwLCAgICAwLCAxMjgsIGZhbHNlIH0sCS8qIDQ6CTYwMAkJMCAgICovCisJeyA3NywgIDAs ICAgIDAsIDg1LCAgZmFsc2UgfSwJLyogNToJNjAwCQkzLjUgKi8KKwl7IDc3LCAgMCwgICAgMCwg NjQsICBmYWxzZSB9LAkvKiA2Ogk2MDAJCTYgICAqLworCXsgMTAyLCAwLCAgICAwLCAxMjgsIGZh bHNlIH0sCS8qIDc6CTgwMAkJMCAgICovCisJeyAxMDIsIDAsICAgIDAsIDg1LCAgZmFsc2UgfSwJ LyogODoJODAwCQkzLjUgKi8KKwl7IDE1NCwgMHg5QSwgMSwgMTI4LCB0cnVlIH0sCS8qIDk6CTEy MDAJCTAgICAqLworfTsKKwogZW51bSBwb3J0IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQogewogCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwpAQCAtMjEwLDcgKzI1MiwxNSBAQCBz dGF0aWMgdm9pZCBpbnRlbF9wcmVwYXJlX2RkaV9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnNfaGRtaTsK IAljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uczsKIAotCWlmIChJ U19TS1lMQUtFKGRldikpIHsKKwlpZiAoSVNfQlJPWFRPTihkZXYpKSB7CisJCWlmICghaW50ZWxf ZGlnX3BvcnRfc3VwcG9ydHNfaGRtaShpbnRlbF9kaWdfcG9ydCkpCisJCQlyZXR1cm47CisKKwkJ LyogVnN3aW5nIHByb2dyYW1taW5nIGZvciBIRE1JICovCisJCWJ4dF9kZGlfdnN3aW5nX3NlcXVl bmNlKGRldiwgaGRtaV9sZXZlbCwgcG9ydCwKKwkJCQkJSU5URUxfT1VUUFVUX0hETUkpOworCQly ZXR1cm47CisJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldikpIHsKIAkJZGRpX3RyYW5zbGF0aW9u c19mZGkgPSBOVUxMOwogCQlkZGlfdHJhbnNsYXRpb25zX2RwID0gc2tsX2RkaV90cmFuc2xhdGlv bnNfZHA7CiAJCW5fZHBfZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNf ZHApOwpAQCAtMTY2Niw2ICsxNzE2LDY3IEBAIHZvaWQgaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9j bG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKIAkJCSAgIFRSQU5TX0NMS19TRUxf RElTQUJMRUQpOwogfQogCit2b2lkIGJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHUzMiBsZXZlbCwKKwkJCSAgICAgZW51bSBwb3J0IHBvcnQsIGludCB0eXBl KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CisJY29uc3Qgc3RydWN0IGJ4dF9kZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25zOwor CXUzMiBuX2VudHJpZXMsIGk7CisJdWludDMyX3QgdmFsOworCisJaWYgKHR5cGUgPT0gSU5URUxf T1VUUFVUX0RJU1BMQVlQT1JUIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgeworCQluX2Vu dHJpZXMgPSBBUlJBWV9TSVpFKGJ4dF9kZGlfdHJhbnNsYXRpb25zX2RwKTsKKwkJZGRpX3RyYW5z bGF0aW9ucyA9IGJ4dF9kZGlfdHJhbnNsYXRpb25zX2RwOworCX0gZWxzZSBpZiAodHlwZSA9PSBJ TlRFTF9PVVRQVVRfSERNSSkgeworCQluX2VudHJpZXMgPSBBUlJBWV9TSVpFKGJ4dF9kZGlfdHJh bnNsYXRpb25zX2hkbWkpOworCQlkZGlfdHJhbnNsYXRpb25zID0gYnh0X2RkaV90cmFuc2xhdGlv bnNfaGRtaTsKKwl9IGVsc2UgeworCQlEUk1fREVCVUdfS01TKCJWc3dpbmcgcHJvZ3JhbW1pbmcg bm90IGRvbmUgZm9yIGVuY29kZXIgJWRcbiIsCisJCQkJdHlwZSk7CisJCXJldHVybjsKKwl9CisK KwkvKiBDaGVjayBpZiBkZWZhdWx0IHZhbHVlIGhhcyB0byBiZSB1c2VkICovCisJaWYgKGxldmVs ID49IG5fZW50cmllcyB8fAorCSAgICAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSAmJiBsZXZl bCA9PSBIRE1JX0xFVkVMX1NISUZUX1VOS05PV04pKSB7CisJCWZvciAoaSA9IDA7IGkgPCBuX2Vu dHJpZXM7IGkrKykgeworCQkJaWYgKGRkaV90cmFuc2xhdGlvbnNbaV0uZGVmYXVsdF9pbmRleCkg eworCQkJCWxldmVsID0gaTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCS8qCisJICog V2hpbGUgd2Ugd3JpdGUgdG8gdGhlIGdyb3VwIHJlZ2lzdGVyIHRvIHByb2dyYW0gYWxsIGxhbmVz IGF0IG9uY2Ugd2UKKwkgKiBjYW4gcmVhZCBvbmx5IGxhbmUgcmVnaXN0ZXJzIGFuZCB3ZSBwaWNr IGxhbmVzIDAvMSBmb3IgdGhhdC4KKwkgKi8KKwl2YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUENT X0RXMTBfTE4wMShwb3J0KSk7CisJdmFsICY9IH4oVFgyX1NXSU5HX0NBTENfSU5JVCB8IFRYMV9T V0lOR19DQUxDX0lOSVQpOworCUk5MTVfV1JJVEUoQlhUX1BPUlRfUENTX0RXMTBfR1JQKHBvcnQp LCB2YWwpOworCisJdmFsID0gSTkxNV9SRUFEKEJYVF9QT1JUX1RYX0RXMl9MTjAocG9ydCkpOwor CXZhbCAmPSB+KE1BUkdJTl8wMDAgfCBVTklRX1RSQU5TX1NDQUxFKTsKKwl2YWwgfD0gZGRpX3Ry YW5zbGF0aW9uc1tsZXZlbF0ubWFyZ2luIDw8IE1BUkdJTl8wMDBfU0hJRlQgfAorCSAgICAgICBk ZGlfdHJhbnNsYXRpb25zW2xldmVsXS5zY2FsZSA8PCBVTklRX1RSQU5TX1NDQUxFX1NISUZUOwor CUk5MTVfV1JJVEUoQlhUX1BPUlRfVFhfRFcyX0dSUChwb3J0KSwgdmFsKTsKKworCXZhbCA9IEk5 MTVfUkVBRChCWFRfUE9SVF9UWF9EVzNfTE4wKHBvcnQpKTsKKwl2YWwgJj0gflVOSVFFX1RSQU5H RV9FTl9NRVRIT0Q7CisJaWYgKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmVuYWJsZSkKKwkJdmFs IHw9IFVOSVFFX1RSQU5HRV9FTl9NRVRIT0Q7CisJSTkxNV9XUklURShCWFRfUE9SVF9UWF9EVzNf R1JQKHBvcnQpLCB2YWwpOworCisJdmFsID0gSTkxNV9SRUFEKEJYVF9QT1JUX1RYX0RXNF9MTjAo cG9ydCkpOworCXZhbCAmPSB+REVfRU1QSEFTSVM7CisJdmFsIHw9IGRkaV90cmFuc2xhdGlvbnNb bGV2ZWxdLmRlZW1waGFzaXMgPDwgREVFTVBIX1NISUZUOworCUk5MTVfV1JJVEUoQlhUX1BPUlRf VFhfRFc0X0dSUChwb3J0KSwgdmFsKTsKKworCXZhbCA9IEk5MTVfUkVBRChCWFRfUE9SVF9QQ1Nf RFcxMF9MTjAxKHBvcnQpKTsKKwl2YWwgfD0gVFgyX1NXSU5HX0NBTENfSU5JVCB8IFRYMV9TV0lO R19DQUxDX0lOSVQ7CisJSTkxNV9XUklURShCWFRfUE9SVF9QQ1NfRFcxMF9HUlAocG9ydCksIHZh bCk7Cit9CisKIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyKQogewogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9 ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwpAQCAtMTY3NCw2ICsxNzg1LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIp CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMp OwogCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoaW50ZWxfZW5j b2Rlcik7CiAJaW50IHR5cGUgPSBpbnRlbF9lbmNvZGVyLT50eXBlOworCWludCBoZG1pX2xldmVs OwogCiAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewogCQlzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwpAQCAtMTczMCw2ICsxODQyLDEy IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyKQogCX0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkg ewogCQlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKGVu Y29kZXIpOwogCisJCWlmIChJU19CUk9YVE9OKGRldikpIHsKKwkJCWhkbWlfbGV2ZWwgPSBkZXZf cHJpdi0+dmJ0LgorCQkJCWRkaV9wb3J0X2luZm9bcG9ydF0uaGRtaV9sZXZlbF9zaGlmdDsKKwkJ CWJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldiwgaGRtaV9sZXZlbCwgcG9ydCwKKwkJCQkJSU5U RUxfT1VUUFVUX0hETUkpOworCQl9CiAJCWludGVsX2hkbWktPnNldF9pbmZvZnJhbWVzKGVuY29k ZXIsCiAJCQkJCSAgIGNydGMtPmNvbmZpZy0+aGFzX2hkbWlfc2luaywKIAkJCQkJICAgJmNydGMt PmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4 IDRiZmJlZWQuLjFjYjZlYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtMzM1NCw2ICsz MzU0LDU1IEBAIGludGVsX2hzd19zaWduYWxfbGV2ZWxzKHVpbnQ4X3QgdHJhaW5fc2V0KQogCX0K IH0KIAorc3RhdGljIHZvaWQgaW50ZWxfYnh0X3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3Rv X2RpZ19wb3J0KGludGVsX2RwKTsKKwllbnVtIHBvcnQgcG9ydCA9IGRwb3J0LT5wb3J0OworCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkcG9ydC0+YmFzZS5iYXNlLmRldjsKKwlzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZkcG9ydC0+YmFzZTsKKwl1aW50OF90IHRyYWluX3NldCA9 IGludGVsX2RwLT50cmFpbl9zZXRbMF07CisJdWludDMyX3QgbGV2ZWwgPSAwOworCisJaW50IHNp Z25hbF9sZXZlbHMgPSB0cmFpbl9zZXQgJiAoRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNLIHwK KwkJCQkJIERQX1RSQUlOX1BSRV9FTVBIQVNJU19NQVNLKTsKKwlzd2l0Y2ggKHNpZ25hbF9sZXZl bHMpIHsKKwlkZWZhdWx0OgorCQlEUk1fREVCVUdfS01TKCJVbnN1cHBvcnRlZCB2b2x0YWdlIHN3 aW5nL3ByZS1lbXBoIGxldmVsXG4iKTsKKwljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVW RUxfMCB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA6CisJCWxldmVsID0gMDsKKwkJYnJlYWs7 CisJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzAgfCBEUF9UUkFJTl9QUkVfRU1Q SF9MRVZFTF8xOgorCQlsZXZlbCA9IDE7CisJCWJyZWFrOworCWNhc2UgRFBfVFJBSU5fVk9MVEFH RV9TV0lOR19MRVZFTF8wIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMjoKKwkJbGV2ZWwgPSAy OworCQlicmVhazsKKwljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMCB8IERQX1RS QUlOX1BSRV9FTVBIX0xFVkVMXzM6CisJCWxldmVsID0gMzsKKwkJYnJlYWs7CisJY2FzZSBEUF9U UkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzEgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOgor CQlsZXZlbCA9IDQ7CisJCWJyZWFrOworCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZF TF8xIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMToKKwkJbGV2ZWwgPSA1OworCQlicmVhazsK KwljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMSB8IERQX1RSQUlOX1BSRV9FTVBI X0xFVkVMXzI6CisJCWxldmVsID0gNjsKKwkJYnJlYWs7CisJY2FzZSBEUF9UUkFJTl9WT0xUQUdF X1NXSU5HX0xFVkVMXzIgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOgorCQlsZXZlbCA9IDc7 CisJCWJyZWFrOworCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yIHwgRFBfVFJB SU5fUFJFX0VNUEhfTEVWRUxfMToKKwkJbGV2ZWwgPSA4OworCQlicmVhazsKKwljYXNlIERQX1RS QUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMyB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA6CisJ CWxldmVsID0gOTsKKwkJYnJlYWs7CisJfQorCisJYnh0X2RkaV92c3dpbmdfc2VxdWVuY2UoZGV2 LCBsZXZlbCwgcG9ydCwgZW5jb2Rlci0+dHlwZSk7Cit9CisKIC8qIFByb3Blcmx5IHVwZGF0ZXMg IkRQIiB3aXRoIHRoZSBjb3JyZWN0IHNpZ25hbCBsZXZlbHMuICovCiBzdGF0aWMgdm9pZAogaW50 ZWxfZHBfc2V0X3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDMy X3QgKkRQKQpAQCAtMzM2NCw3ICszNDEzLDExIEBAIGludGVsX2RwX3NldF9zaWduYWxfbGV2ZWxz KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQzMl90ICpEUCkKIAl1aW50MzJfdCBzaWdu YWxfbGV2ZWxzLCBtYXNrOwogCXVpbnQ4X3QgdHJhaW5fc2V0ID0gaW50ZWxfZHAtPnRyYWluX3Nl dFswXTsKIAotCWlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikgfHwgSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgeworCWlmIChJU19CUk9YVE9OKGRldikpIHsKKwkJc2ln bmFsX2xldmVscyA9IDA7CisJCWludGVsX2J4dF9zaWduYWxfbGV2ZWxzKGludGVsX2RwKTsKKwkJ bWFzayA9IDA7CisJfSBlbHNlIGlmIChIQVNfRERJKGRldikpIHsKIAkJc2lnbmFsX2xldmVscyA9 IGludGVsX2hzd19zaWduYWxfbGV2ZWxzKHRyYWluX3NldCk7CiAJCW1hc2sgPSBERElfQlVGX0VN UF9NQVNLOwogCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7CkBAIC0zMzg0LDcgKzM0 MzcsMTQgQEAgaW50ZWxfZHBfc2V0X3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwgdWludDMyX3QgKkRQKQogCQltYXNrID0gRFBfVk9MVEFHRV9NQVNLIHwgRFBfUFJFX0VN UEhBU0lTX01BU0s7CiAJfQogCi0JRFJNX0RFQlVHX0tNUygiVXNpbmcgc2lnbmFsIGxldmVscyAl MDh4XG4iLCBzaWduYWxfbGV2ZWxzKTsKKwlpZiAobWFzaykKKwkJRFJNX0RFQlVHX0tNUygiVXNp bmcgc2lnbmFsIGxldmVscyAlMDh4XG4iLCBzaWduYWxfbGV2ZWxzKTsKKworCURSTV9ERUJVR19L TVMoIlVzaW5nIHZzd2luZyBsZXZlbCAlZFxuIiwKKwkJdHJhaW5fc2V0ICYgRFBfVFJBSU5fVk9M VEFHRV9TV0lOR19NQVNLKTsKKwlEUk1fREVCVUdfS01TKCJVc2luZyBwcmUtZW1waGFzaXMgbGV2 ZWwgJWRcbiIsCisJCSh0cmFpbl9zZXQgJiBEUF9UUkFJTl9QUkVfRU1QSEFTSVNfTUFTSykgPj4K KwkJCURQX1RSQUlOX1BSRV9FTVBIQVNJU19TSElGVCk7CiAKIAkqRFAgPSAoKkRQICYgfm1hc2sp IHwgc2lnbmFsX2xldmVsczsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggMDk3ZmI4 NS4uZjA3YTE0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTg3NCw2ICs4NzQsOCBA QCB2b2lkIGludGVsX2RkaV9jbG9ja19nZXQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKIHZvaWQgaW50ZWxf ZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBzdGF0 ZSk7CiB2b2lkIGJ4dF9zZWxlY3RfY2RjbGtfZnJlcShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 MzIgZnJlcXVlbmN5KTsKK3ZvaWQgYnh0X2RkaV92c3dpbmdfc2VxdWVuY2Uoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdTMyIGxldmVsLAorCQkJCWVudW0gcG9ydCBwb3J0LCBpbnQgdHlwZSk7CiAK IC8qIGludGVsX2Zyb250YnVmZmVyLmMgKi8KIHZvaWQgaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKLS0gCjIuMS4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=