From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH] drm/i915/cnl: Implement voltage swing sequence. Date: Mon, 5 Jun 2017 13:53:07 -0700 Message-ID: <1496695987-3415-1-git-send-email-rodrigo.vivi@intel.com> References: <20170605184715.GE26925@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id DBFF389F2E for ; Mon, 5 Jun 2017 20:52:59 +0000 (UTC) In-Reply-To: <20170605184715.GE26925@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 Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org VGhpcyBpcyBhbiBpbXBvcnRhbnQgcGFydCBvZiB0aGUgRERJIGluaXRhbGl6YXRpb24gYXMgd2Vs bCBhcwpmb3IgY2hhbmdpbmcgdGhlIHZvbHRhZ2UgZHVyaW5nIERpc3BsYXlQb3J0IGxpbmsgdHJh aW5pbmcuCgpUaGlzIG5ldyBzZXF1ZW5jZSBmb3IgQ2Fubm9ubGFrZSBpcyBtb3JlIGxpa2UgQnJv eHRvbiBzdHlsZQpidXQgc3RpbGwgd2l0aCBkaWZmZXJlbnQgcmVnaXN0ZXJzLCBkaWZmZXJlbnQg dGFibGUgYW5kCmRpZmZlcmVudCBzdGVwcy4KCnYyOiBEbyBub3Qgd3JpdGUgdG8gRFc0X0dSUCB0 byBhdm9pZCBvdmVyd3JpdGUgaW5kaXZpZHVhbCBsb2FkZ2VuLgogICAgRml4IFBPUlRfQ0xfRFc1 IFNVUyBDbG9jayBDb25maWcgc2V0Lgp2MzogQXMgcHJldmlvdXMgcGxhdGZvcm1zIHVzZSBvbmx5 IGVEUCB0YWJsZSBpZiBsb3cgdm9sdGFnZSB3YXMKICAgIHJlcXVlc3RlZC4KdjQ6IGZpeCBXZXJy b3I6bWF5YmUgdW5pbml0aWFsaXplZCAoUGF1bG8pCnY1OiBSZWJhc2Ugb24gdG9wIG9mIGR3Ml9z d2luZ19zZWwgY2hhbmdlcwogICAgb24gcHJldmlvdXMgcGF0Y2hlcy4KdjY6IFVzaW5nIGZsZXhp YmxlIFNDQUxJTkdfTU9ERV9TRUwoeCkuCgpDYzogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2 YXJlQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICB8ICAgMSArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyB8IDE3NiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgICAy ICstCiAzIGZpbGVzIGNoYW5nZWQsIDE3NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDBkMjA2M2UuLmU2MTM3NmYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaApAQCAtMTY3MSw2ICsxNjcxLDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93 ZWxscyB7CiAKICNkZWZpbmUgQ05MX1BPUlRfQ0wxQ01fRFc1CQlfTU1JTygweDE2MjAxNCkKICNk ZWZpbmUgICBDTF9QT1dFUl9ET1dOX0VOQUJMRQkJKDEgPDwgNCkKKyNkZWZpbmUgICBTVVNfQ0xP Q0tfQ09ORklHCQkoMyA8PCAwKQogCiAjZGVmaW5lIF9QT1JUX0NMMUNNX0RXOV9BCQkweDE2MjAy NAogI2RlZmluZSBfUE9SVF9DTDFDTV9EVzlfQkMJCTB4NkMwMjQKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMKaW5kZXggOWYzNDAzOC4uNTZiMGEyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMK QEAgLTE3MjAsNiArMTcyMCwxNzMgQEAgdTggaW50ZWxfZGRpX2RwX3ZvbHRhZ2VfbWF4KHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCQlEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX01BU0s7 CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY25sX2RkaV9idWZfdHJhbnMgKgorY25sX2dldF9i dWZfdHJhbnNfaGRtaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICAg ICB1MzIgdm9sdGFnZSwgaW50ICpuX2VudHJpZXMpCit7CisJaWYgKHZvbHRhZ2UgPT0gVk9MVEFH RV9JTkZPXzBfODVWKSB7CisJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGNubF9kZGlfdHJhbnNs YXRpb25zX2hkbWlfMF84NVYpOworCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8w Xzg1VjsKKwl9IGVsc2UgaWYgKHZvbHRhZ2UgPT0gVk9MVEFHRV9JTkZPXzBfOTVWKSB7CisJCSpu X2VudHJpZXMgPSBBUlJBWV9TSVpFKGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMF85NVYpOwor CQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8wXzk1VjsKKwl9IGVsc2UgaWYgKHZv bHRhZ2UgPT0gVk9MVEFHRV9JTkZPXzFfMDVWKSB7CisJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpF KGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMV8wNVYpOworCQlyZXR1cm4gY25sX2RkaV90cmFu c2xhdGlvbnNfaGRtaV8xXzA1VjsKKwl9CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgY25sX2RkaV9idWZfdHJhbnMgKgorY25sX2dldF9idWZfdHJhbnNfZHAoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgIHUzMiB2b2x0YWdlLCBpbnQgKm5f ZW50cmllcykKK3sKKwlpZiAodm9sdGFnZSA9PSBWT0xUQUdFX0lORk9fMF84NVYpIHsKKwkJKm5f ZW50cmllcyA9IEFSUkFZX1NJWkUoY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF84NVYpOworCQly ZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF84NVY7CisJfSBlbHNlIGlmICh2b2x0YWdl ID09IFZPTFRBR0VfSU5GT18wXzk1VikgeworCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShjbmxf ZGRpX3RyYW5zbGF0aW9uc19kcF8wXzk1Vik7CisJCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0aW9u c19kcF8wXzk1VjsKKwl9IGVsc2UgaWYgKHZvbHRhZ2UgPT0gVk9MVEFHRV9JTkZPXzFfMDVWKSB7 CisJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzFfMDVW KTsKKwkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzFfMDVWOworCX0KKwlyZXR1cm4g TlVMTDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBjbmxfZGRpX2J1Zl90cmFucyAqCitjbmxf Z2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkg ICAgICB1MzIgdm9sdGFnZSwgaW50ICpuX2VudHJpZXMpCit7CisJaWYgKGRldl9wcml2LT52YnQu ZWRwLmxvd192c3dpbmcpIHsKKwkJaWYgKHZvbHRhZ2UgPT0gVk9MVEFHRV9JTkZPXzBfODVWKSB7 CisJCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMF84 NVYpOworCQkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzBfODVWOworCQl9IGVsc2Ug aWYgKHZvbHRhZ2UgPT0gVk9MVEFHRV9JTkZPXzBfOTVWKSB7CisJCQkqbl9lbnRyaWVzID0gQVJS QVlfU0laRShjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMF85NVYpOworCQkJcmV0dXJuIGNubF9k ZGlfdHJhbnNsYXRpb25zX2VkcF8wXzk1VjsKKwkJfSBlbHNlIGlmICh2b2x0YWdlID09IFZPTFRB R0VfSU5GT18xXzA1VikgeworCQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoY25sX2RkaV90cmFu c2xhdGlvbnNfZWRwXzFfMDVWKTsKKwkJCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBf MV8wNVY7CisJCX0KKwkJcmV0dXJuIE5VTEw7CisJfSBlbHNlIHsKKwkJcmV0dXJuIGNubF9nZXRf YnVmX3RyYW5zX2RwKGRldl9wcml2LCB2b2x0YWdlLCBuX2VudHJpZXMpOworCX0KK30KKworc3Rh dGljIHZvaWQgY25sX2RkaV92c3dpbmdfcHJvZ3JhbShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCisJCQkJICAgIHUzMiBsZXZlbCwgZW51bSBwb3J0IHBvcnQsIGludCB0eXBlKQor eworCWNvbnN0IHN0cnVjdCBjbmxfZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9ucyA9IE5V TEw7CisJdTMyIG5fZW50cmllcywgdmFsLCB2b2x0YWdlOworCWludCBsbjsKKworCS8qCisJICog VmFsdWVzIGZvciBlYWNoIHBvcnQgdHlwZSBhcmUgbGlzdGVkIGluCisJICogdm9sdGFnZSBzd2lu ZyBwcm9ncmFtbWluZyB0YWJsZXMuCisJICogVmNjaW8gdm9sdGFnZSBmb3VuZCBpbiBQT1JUX0NP TVBfRFczLgorCSAqLworCXZvbHRhZ2UgPSBJOTE1X1JFQUQoQ05MX1BPUlRfQ09NUF9EVzMpICYg Vk9MVEFHRV9JTkZPX01BU0s7CisKKwlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewor CQlkZGlfdHJhbnNsYXRpb25zID0gY25sX2dldF9idWZfdHJhbnNfaGRtaShkZXZfcHJpdiwKKwkJ CQkJCQkgIHZvbHRhZ2UsICZuX2VudHJpZXMpOworCX0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9P VVRQVVRfRFApIHsKKwkJZGRpX3RyYW5zbGF0aW9ucyA9IGNubF9nZXRfYnVmX3RyYW5zX2RwKGRl dl9wcml2LAorCQkJCQkJCXZvbHRhZ2UsICZuX2VudHJpZXMpOworCX0gZWxzZSBpZiAodHlwZSA9 PSBJTlRFTF9PVVRQVVRfRURQKSB7CisJCWRkaV90cmFuc2xhdGlvbnMgPSBjbmxfZ2V0X2J1Zl90 cmFuc19lZHAoZGV2X3ByaXYsCisJCQkJCQkJIHZvbHRhZ2UsICZuX2VudHJpZXMpOworCX0KKwor CWlmIChkZGlfdHJhbnNsYXRpb25zID09IE5VTEwpIHsKKwkJTUlTU0lOR19DQVNFKHZvbHRhZ2Up OworCQlyZXR1cm47CisJfQorCisJaWYgKGxldmVsID49IG5fZW50cmllcykgeworCQlEUk1fREVC VUdfS01TKCJEREkgdHJhbnNsYXRpb24gbm90IGZvdW5kIGZvciBsZXZlbCAlZC4gVXNpbmcgJWQg aW5zdGVhZC4iLCBsZXZlbCwgbl9lbnRyaWVzIC0gMSk7CisJCWxldmVsID0gbl9lbnRyaWVzIC0g MTsKKwl9CisKKwkvKiBTZXQgUE9SVF9UWF9EVzUgU2NhbGluZyBNb2RlIFNlbCB0byAwMTBiLiAq LworCXZhbCA9IEk5MTVfUkVBRChDTkxfUE9SVF9UWF9EVzVfTE4wKHBvcnQpKTsKKwl2YWwgfD0g U0NBTElOR19NT0RFX1NFTCgyKTsKKwlJOTE1X1dSSVRFKENOTF9QT1JUX1RYX0RXNV9HUlAocG9y dCksIHZhbCk7CisKKwkvKiBQcm9ncmFtIFBPUlRfVFhfRFcyICovCisJdmFsID0gSTkxNV9SRUFE KENOTF9QT1JUX1RYX0RXMl9MTjAocG9ydCkpOworCXZhbCB8PSBTV0lOR19TRUxfVVBQRVIoZGRp X3RyYW5zbGF0aW9uc1tsZXZlbF0uZHcyX3N3aW5nX3NlbCk7CisJdmFsIHw9IFNXSU5HX1NFTF9M T1dFUihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5kdzJfc3dpbmdfc2VsKTsKKwkvKiBSY29tcCBz Y2FsYXIgaXMgZml4ZWQgYXMgMHg5OCBmb3IgZXZlcnkgdGFibGUgZW50cnkgKi8KKwl2YWwgfD0g UkNPTVBfU0NBTEFSKDB4OTgpOworCUk5MTVfV1JJVEUoQ05MX1BPUlRfVFhfRFcyX0dSUChwb3J0 KSwgdmFsKTsKKworICAgICAgICAvKiBQcm9ncmFtIFBPUlRfVFhfRFc0ICovCisJLyogV2UgY2Fu bm90IHdyaXRlIHRvIEdSUC4gSXQgd291bGQgb3ZlcnJpdGUgaW5kaXZpZHVhbCBsb2FkZ2VuICov CisJZm9yIChsbiA9IDA7IGxuIDwgNDsgbG4rKykgeworCQl2YWwgPSBJOTE1X1JFQUQoQ05MX1BP UlRfVFhfRFc0X0xOKHBvcnQsIGxuKSk7CisJCXZhbCB8PSBQT1NUX0NVUlNPUl8xKGRkaV90cmFu c2xhdGlvbnNbbGV2ZWxdLmR3NF9wb3N0X2N1cnNvcl8xKTsKKwkJdmFsIHw9IFBPU1RfQ1VSU09S XzIoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uZHc0X3Bvc3RfY3Vyc29yXzIpOworCQl2YWwgfD0g Q1VSU09SX0NPRUZGKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3NF9jdXJzb3JfY29lZmYpOwor CQlJOTE1X1dSSVRFKENOTF9QT1JUX1RYX0RXNF9MTihwb3J0LCBsbiksIHZhbCk7CisJfQorCisg ICAgICAgIC8qIFByb2dyYW0gUE9SVF9UWF9EVzUgKi8KKwkvKiBBbGwgRFc1IHZhbHVlcyBhcmUg Zml4ZWQgZm9yIGV2ZXJ5IHRhYmxlIGVudHJ5ICovCisJdmFsID0gSTkxNV9SRUFEKENOTF9QT1JU X1RYX0RXNV9MTjAocG9ydCkpOworCXZhbCB8PSBSVEVSTV9TRUxFQ1QoNik7CisJdmFsIHw9IFRB UDNfRElTQUJMRTsKKwlJOTE1X1dSSVRFKENOTF9QT1JUX1RYX0RXNV9HUlAocG9ydCksIHZhbCk7 CisKKyAgICAgICAgLyogUHJvZ3JhbSBQT1JUX1RYX0RXNyAqLworCXZhbCA9IEk5MTVfUkVBRChD TkxfUE9SVF9UWF9EVzdfTE4wKHBvcnQpKTsKKwl2YWwgfD0gTl9TQ0FMQVIoZGRpX3RyYW5zbGF0 aW9uc1tsZXZlbF0uZHc3X25fc2NhbGFyKTsKKwlJOTE1X1dSSVRFKENOTF9QT1JUX1RYX0RXN19H UlAocG9ydCksIHZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIGNubF9kZGlfdnN3aW5nX3NlcXVlbmNl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgdTMyIGxldmVsLCBl bnVtIHBvcnQgcG9ydCwgaW50IHR5cGUpCit7CisJdTMyIHZhbDsKKworCS8qCisJICogMS4gSWYg cG9ydCB0eXBlIGlzIGVEUCBvciBEUCwKKwkgKiBzZXQgUE9SVF9QQ1NfRFcxIGNtbmtlZXBlcl9l bmFibGUgdG8gMWIsCisJICogZWxzZSBjbGVhciB0byAwYi4KKwkgKi8KKwl2YWwgPSBJOTE1X1JF QUQoQ05MX1BPUlRfUENTX0RXMV9MTjAocG9ydCkpOworCWlmICh0eXBlID09IElOVEVMX09VVFBV VF9FRFAgfHwgdHlwZSA9PSBJTlRFTF9PVVRQVVRfRFApCisJCXZhbCB8PSBDT01NT05fS0VFUEVS X0VOOworCWVsc2UKKwkJdmFsICY9IH5DT01NT05fS0VFUEVSX0VOOworCUk5MTVfV1JJVEUoQ05M X1BPUlRfUENTX0RXMV9HUlAocG9ydCksIHZhbCk7CisKKwkvKiAyLiBQcm9ncmFtIGxvYWRnZW4g c2VsZWN0ICovCisJLyoKKwkgKiBGSVhNRTogUHJvZ3JhbSBQT1JUX1RYX0RXNF9MTiBkZXBlbmRp bmcgb24gQml0IHJhdGUgYW5kIHVzZWQgbGFuZXMKKwkgKi8KKworCS8qIDMuIFNldCBQT1JUX0NM X0RXNSBTVVMgQ2xvY2sgQ29uZmlnIHRvIDExYiAqLworCXZhbCA9IEk5MTVfUkVBRChDTkxfUE9S VF9DTDFDTV9EVzUpOworCXZhbCB8PSBTVVNfQ0xPQ0tfQ09ORklHOworCUk5MTVfV1JJVEUoQ05M X1BPUlRfQ0wxQ01fRFc1LCB2YWwpOworCisJLyogNC4gQ2xlYXIgdHJhaW5pbmcgZW5hYmxlIHRv IGNoYW5nZSBzd2luZyB2YWx1ZXMgKi8KKwl2YWwgPSBJOTE1X1JFQUQoQ05MX1BPUlRfVFhfRFc1 X0xOMChwb3J0KSk7CisJdmFsICY9IH5UWF9UUkFJTklOR19FTjsKKwlJOTE1X1dSSVRFKENOTF9Q T1JUX1RYX0RXNV9HUlAocG9ydCksIHZhbCk7CisKKwkvKiA1LiBQcm9ncmFtIHN3aW5nIGFuZCBk ZS1lbXBoYXNpcyAqLworCWNubF9kZGlfdnN3aW5nX3Byb2dyYW0oZGV2X3ByaXYsIGxldmVsLCBw b3J0LCB0eXBlKTsKKworCS8qIDYuIFNldCB0cmFpbmluZyBlbmFibGUgdG8gdHJpZ2dlciB1cGRh dGUgKi8KKwl2YWwgPSBJOTE1X1JFQUQoQ05MX1BPUlRfVFhfRFc1X0xOMChwb3J0KSk7CisJdmFs IHw9IFRYX1RSQUlOSU5HX0VOOworCUk5MTVfV1JJVEUoQ05MX1BPUlRfVFhfRFc1X0dSUChwb3J0 KSwgdmFsKTsKK30KKwogc3RhdGljIHVpbnQzMl90IHRyYW5zbGF0ZV9zaWduYWxfbGV2ZWwoaW50 IHNpZ25hbF9sZXZlbHMpCiB7CiAJaW50IGk7CkBAIC0xNzUyLDcgKzE5MTksMTEgQEAgdWludDMy X3QgZGRpX3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAkJc2tsX2Rk aV9zZXRfaWJvb3N0KGVuY29kZXIsIGxldmVsKTsKIAllbHNlIGlmIChJU19HRU45X0xQKGRldl9w cml2KSkKIAkJYnh0X2RkaV92c3dpbmdfc2VxdWVuY2UoZGV2X3ByaXYsIGxldmVsLCBwb3J0LCBl bmNvZGVyLT50eXBlKTsKLQorCWVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7CisJ CWNubF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldl9wcml2LCBsZXZlbCwgcG9ydCwgZW5jb2Rlci0+ dHlwZSk7CisJCS8qIERESV9CVUZfQ1RMIGJpdHMgMjc6MjQgYXJlIHJlc2VydmVkIG9uIENOTCAq LworCQlyZXR1cm4gMDsKKwl9CiAJcmV0dXJuIERESV9CVUZfVFJBTlNfU0VMRUNUKGxldmVsKTsK IH0KIApAQCAtMTg1MCw2ICsyMDIxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFi bGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAllbHNlIGlmIChJU19HRU45 X0xQKGRldl9wcml2KSkKIAkJYnh0X2RkaV92c3dpbmdfc2VxdWVuY2UoZGV2X3ByaXYsIGxldmVs LCBwb3J0LAogCQkJCQlJTlRFTF9PVVRQVVRfSERNSSk7CisJZWxzZSBpZiAoSVNfQ0FOTk9OTEFL RShkZXZfcHJpdikpCisJCWNubF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldl9wcml2LCBsZXZlbCwg cG9ydCwKKwkJCQkJSU5URUxfT1VUUFVUX0hETUkpOwogCiAJaW50ZWxfaGRtaS0+c2V0X2luZm9m cmFtZXMoZHJtX2VuY29kZXIsCiAJCQkJICAgaGFzX2hkbWlfc2luaywKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCmluZGV4IDFhMjdjNzIuLmVjZjlkZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpA QCAtMzQ2Miw3ICszNDYyLDcgQEAgc3RhdGljIHVpbnQzMl90IGNodl9zaWduYWxfbGV2ZWxzKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7CiAJCXNp Z25hbF9sZXZlbHMgPSBkZGlfc2lnbmFsX2xldmVscyhpbnRlbF9kcCk7CiAKLQkJaWYgKElTX0dF TjlfTFAoZGV2X3ByaXYpKQorCQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikgfHwgSVNfQ0FOTk9O TEFLRShkZXZfcHJpdikpCiAJCQlzaWduYWxfbGV2ZWxzID0gMDsKIAkJZWxzZQogCQkJbWFzayA9 IERESV9CVUZfRU1QX01BU0s7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==