From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH 39/67] drm/i915/cnl: Implement voltage swing sequence. Date: Thu, 6 Apr 2017 12:15:35 -0700 Message-ID: <1491506163-14587-39-git-send-email-rodrigo.vivi@intel.com> References: <1491506163-14587-1-git-send-email-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 926376EA6B for ; Thu, 6 Apr 2017 19:16:18 +0000 (UTC) In-Reply-To: <1491506163-14587-1-git-send-email-rodrigo.vivi@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 d2luZ19zZWwgY2hhbmdlcwogICAgb24gcHJldmlvdXMgcGF0Y2hlcy4KCkNjOiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb2Ry aWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMg fCAxNzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8ICAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAxNzcgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCBk NGY3NDYwLi41NWZmZWM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTE2NjMsNiArMTY2 Myw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewogCiAjZGVmaW5lIENOTF9QT1JUX0NM MUNNX0RXNQkJX01NSU8oMHgxNjIwMTQpCiAjZGVmaW5lICAgQ0xfUE9XRVJfRE9XTl9FTkFCTEUJ CSgxIDw8IDQpCisjZGVmaW5lICAgU1VTX0NMT0NLX0NPTkZJRwkJKDMgPDwgMCkKIAogI2RlZmlu ZSBfUE9SVF9DTDFDTV9EVzlfQQkJMHgxNjIwMjQKICNkZWZpbmUgX1BPUlRfQ0wxQ01fRFc5X0JD CQkweDZDMDI0CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IDNjMzFhMjIuLmE0ZDcwNjEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0xNzIwLDYgKzE3MjAsMTczIEBAIHU4IGlu dGVsX2RkaV9kcF92b2x0YWdlX21heChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJ RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNLOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IGNu bF9kZGlfYnVmX3RyYW5zICoKK2NubF9nZXRfYnVmX3RyYW5zX2hkbWkoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgICAgdTMyIHZvbHRhZ2UsIGludCAqbl9lbnRyaWVz KQoreworCWlmICh2b2x0YWdlID09IFZPTFRBR0VfSU5GT18wXzg1VikgeworCQkqbl9lbnRyaWVz ID0gQVJSQVlfU0laRShjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzBfODVWKTsKKwkJcmV0dXJu IGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMF84NVY7CisJfSBlbHNlIGlmICh2b2x0YWdlID09 IFZPTFRBR0VfSU5GT18wXzk1VikgeworCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShjbmxfZGRp X3RyYW5zbGF0aW9uc19oZG1pXzBfOTVWKTsKKwkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25z X2hkbWlfMF85NVY7CisJfSBlbHNlIGlmICh2b2x0YWdlID09IFZPTFRBR0VfSU5GT18xXzA1Vikg eworCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzFf MDVWKTsKKwkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMV8wNVY7CisJfQorCXJl dHVybiBOVUxMOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGNubF9kZGlfYnVmX3RyYW5zICoK K2NubF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK KwkJICAgICB1MzIgdm9sdGFnZSwgaW50ICpuX2VudHJpZXMpCit7CisJaWYgKHZvbHRhZ2UgPT0g Vk9MVEFHRV9JTkZPXzBfODVWKSB7CisJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGNubF9kZGlf dHJhbnNsYXRpb25zX2RwXzBfODVWKTsKKwkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25zX2Rw XzBfODVWOworCX0gZWxzZSBpZiAodm9sdGFnZSA9PSBWT0xUQUdFX0lORk9fMF85NVYpIHsKKwkJ Km5fZW50cmllcyA9IEFSUkFZX1NJWkUoY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF85NVYpOwor CQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF85NVY7CisJfSBlbHNlIGlmICh2b2x0 YWdlID09IFZPTFRBR0VfSU5GT18xXzA1VikgeworCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShj bmxfZGRpX3RyYW5zbGF0aW9uc19kcF8xXzA1Vik7CisJCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0 aW9uc19kcF8xXzA1VjsKKwl9CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgY25sX2RkaV9idWZfdHJhbnMgKgorY25sX2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgICAgdTMyIHZvbHRhZ2UsIGludCAqbl9lbnRy aWVzKQoreworCWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7CisJCWlmICh2b2x0 YWdlID09IFZPTFRBR0VfSU5GT18wXzg1VikgeworCQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUo Y25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzBfODVWKTsKKwkJCXJldHVybiBjbmxfZGRpX3RyYW5z bGF0aW9uc19kcF8wXzg1VjsKKwkJfSBlbHNlIGlmICh2b2x0YWdlID09IFZPTFRBR0VfSU5GT18w Xzk1VikgeworCQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoY25sX2RkaV90cmFuc2xhdGlvbnNf ZWRwXzBfOTVWKTsKKwkJCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMF85NVY7CisJ CX0gZWxzZSBpZiAodm9sdGFnZSA9PSBWT0xUQUdFX0lORk9fMV8wNVYpIHsKKwkJCSpuX2VudHJp ZXMgPSBBUlJBWV9TSVpFKGNubF9kZGlfdHJhbnNsYXRpb25zX2VkcF8xXzA1Vik7CisJCQlyZXR1 cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzFfMDVWOworCQl9CisJCXJldHVybiBOVUxMOwor CX0gZWxzZSB7CisJCXJldHVybiBjbmxfZ2V0X2J1Zl90cmFuc19kcChkZXZfcHJpdiwgdm9sdGFn ZSwgbl9lbnRyaWVzKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGNubF9kZGlfdnN3aW5nX3Byb2dy YW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgICB1MzIgbGV2ZWws IGVudW0gcG9ydCBwb3J0LCBpbnQgdHlwZSkKK3sKKwljb25zdCBzdHJ1Y3QgY25sX2RkaV9idWZf dHJhbnMgKmRkaV90cmFuc2xhdGlvbnMgPSBOVUxMOworCXUzMiBuX2VudHJpZXMsIHZhbCwgdm9s dGFnZTsKKwlpbnQgbG47CisKKwkvKgorCSAqIFZhbHVlcyBmb3IgZWFjaCBwb3J0IHR5cGUgYXJl IGxpc3RlZCBpbgorCSAqIHZvbHRhZ2Ugc3dpbmcgcHJvZ3JhbW1pbmcgdGFibGVzLgorCSAqIFZj Y2lvIHZvbHRhZ2UgZm91bmQgaW4gUE9SVF9DT01QX0RXMy4KKwkgKi8KKwl2b2x0YWdlID0gSTkx NV9SRUFEKENOTF9QT1JUX0NPTVBfRFczKSAmIFZPTFRBR0VfSU5GT19NQVNLOworCisJaWYgKHR5 cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpIHsKKwkJZGRpX3RyYW5zbGF0aW9ucyA9IGNubF9nZXRf YnVmX3RyYW5zX2hkbWkoZGV2X3ByaXYsCisJCQkJCQkJICB2b2x0YWdlLCAmbl9lbnRyaWVzKTsK Kwl9IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0RQKSB7CisJCWRkaV90cmFuc2xhdGlv bnMgPSBjbmxfZ2V0X2J1Zl90cmFuc19kcChkZXZfcHJpdiwKKwkJCQkJCQl2b2x0YWdlLCAmbl9l bnRyaWVzKTsKKwl9IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgeworCQlkZGlf dHJhbnNsYXRpb25zID0gY25sX2dldF9idWZfdHJhbnNfZWRwKGRldl9wcml2LAorCQkJCQkJCSB2 b2x0YWdlLCAmbl9lbnRyaWVzKTsKKwl9CisKKwlpZiAoZGRpX3RyYW5zbGF0aW9ucyA9PSBOVUxM KSB7CisJCU1JU1NJTkdfQ0FTRSh2b2x0YWdlKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChsZXZl bCA+PSBuX2VudHJpZXMpIHsKKwkJRFJNX0RFQlVHX0tNUygiRERJIHRyYW5zbGF0aW9uIG5vdCBm b3VuZCBmb3IgbGV2ZWwgJWQuIFVzaW5nICVkIGluc3RlYWQuIiwgbGV2ZWwsIG5fZW50cmllcyAt IDEpOworCQlsZXZlbCA9IG5fZW50cmllcyAtIDE7CisJfQorCisJLyogU2V0IFBPUlRfVFhfRFc1 IFNjYWxpbmcgTW9kZSBTZWwgdG8gMDEwYi4gKi8KKwl2YWwgPSBJOTE1X1JFQUQoQ05MX1BPUlRf VFhfRFc1X0xOMChwb3J0KSk7CisJdmFsIHw9IFNDQUxJTkdfTU9ERV9TRUw7CisJSTkxNV9XUklU RShDTkxfUE9SVF9UWF9EVzVfR1JQKHBvcnQpLCB2YWwpOworCisJLyogUHJvZ3JhbSBQT1JUX1RY X0RXMiAqLworCXZhbCA9IEk5MTVfUkVBRChDTkxfUE9SVF9UWF9EVzJfTE4wKHBvcnQpKTsKKwl2 YWwgfD0gU1dJTkdfU0VMX1VQUEVSKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3Ml9zd2luZ19z ZWwpOworCXZhbCB8PSBTV0lOR19TRUxfTE9XRVIoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uZHcy X3N3aW5nX3NlbCk7CisJLyogUmNvbXAgc2NhbGFyIGlzIGZpeGVkIGFzIDB4OTggZm9yIGV2ZXJ5 IHRhYmxlIGVudHJ5ICovCisJdmFsIHw9IFJDT01QX1NDQUxBUigweDk4KTsKKwlJOTE1X1dSSVRF KENOTF9QT1JUX1RYX0RXMl9HUlAocG9ydCksIHZhbCk7CisKKyAgICAgICAgLyogUHJvZ3JhbSBQ T1JUX1RYX0RXNCAqLworCS8qIFdlIGNhbm5vdCB3cml0ZSB0byBHUlAuIEl0IHdvdWxkIG92ZXJy aXRlIGluZGl2aWR1YWwgbG9hZGdlbiAqLworCWZvciAobG4gPSAwOyBsbiA8IDQ7IGxuKyspIHsK KwkJdmFsID0gSTkxNV9SRUFEKENOTF9QT1JUX1RYX0RXNF9MTihwb3J0LCBsbikpOworCQl2YWwg fD0gUE9TVF9DVVJTT1JfMShkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5kdzRfcG9zdF9jdXJzb3Jf MSk7CisJCXZhbCB8PSBQT1NUX0NVUlNPUl8yKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3NF9w b3N0X2N1cnNvcl8yKTsKKwkJdmFsIHw9IENVUlNPUl9DT0VGRihkZGlfdHJhbnNsYXRpb25zW2xl dmVsXS5kdzRfY3Vyc29yX2NvZWZmKTsKKwkJSTkxNV9XUklURShDTkxfUE9SVF9UWF9EVzRfTE4o cG9ydCwgbG4pLCB2YWwpOworCX0KKworICAgICAgICAvKiBQcm9ncmFtIFBPUlRfVFhfRFc1ICov CisJLyogQWxsIERXNSB2YWx1ZXMgYXJlIGZpeGVkIGZvciBldmVyeSB0YWJsZSBlbnRyeSAqLwor CXZhbCA9IEk5MTVfUkVBRChDTkxfUE9SVF9UWF9EVzVfTE4wKHBvcnQpKTsKKwl2YWwgfD0gUlRF Uk1fU0VMRUNUKDYpOworCXZhbCB8PSBUQVAzX0RJU0FCTEU7CisJSTkxNV9XUklURShDTkxfUE9S VF9UWF9EVzVfR1JQKHBvcnQpLCB2YWwpOworCisgICAgICAgIC8qIFByb2dyYW0gUE9SVF9UWF9E VzcgKi8KKwl2YWwgPSBJOTE1X1JFQUQoQ05MX1BPUlRfVFhfRFc3X0xOMChwb3J0KSk7CisJdmFs IHw9IE5fU0NBTEFSKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3N19uX3NjYWxhcik7CisJSTkx NV9XUklURShDTkxfUE9SVF9UWF9EVzdfR1JQKHBvcnQpLCB2YWwpOworfQorCitzdGF0aWMgdm9p ZCBjbmxfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCQkJICAgIHUzMiBsZXZlbCwgZW51bSBwb3J0IHBvcnQsIGludCB0eXBlKQoreworCXUz MiB2YWw7CisKKwkvKgorCSAqIDEuIElmIHBvcnQgdHlwZSBpcyBlRFAgb3IgRFAsCisJICogc2V0 IFBPUlRfUENTX0RXMSBjbW5rZWVwZXJfZW5hYmxlIHRvIDFiLAorCSAqIGVsc2UgY2xlYXIgdG8g MGIuCisJICovCisJdmFsID0gSTkxNV9SRUFEKENOTF9QT1JUX1BDU19EVzFfTE4wKHBvcnQpKTsK KwlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVUX0RQ KQorCQl2YWwgfD0gQ09NTU9OX0tFRVBFUl9FTjsKKwllbHNlCisJCXZhbCAmPSB+Q09NTU9OX0tF RVBFUl9FTjsKKwlJOTE1X1dSSVRFKENOTF9QT1JUX1BDU19EVzFfR1JQKHBvcnQpLCB2YWwpOwor CisJLyogMi4gUHJvZ3JhbSBsb2FkZ2VuIHNlbGVjdCAqLworCS8qCisJICogRklYTUU6IFByb2dy YW0gUE9SVF9UWF9EVzRfTE4gZGVwZW5kaW5nIG9uIEJpdCByYXRlIGFuZCB1c2VkIGxhbmVzCisJ ICovCisKKwkvKiAzLiBTZXQgUE9SVF9DTF9EVzUgU1VTIENsb2NrIENvbmZpZyB0byAxMWIgKi8K Kwl2YWwgPSBJOTE1X1JFQUQoQ05MX1BPUlRfQ0wxQ01fRFc1KTsKKwl2YWwgfD0gU1VTX0NMT0NL X0NPTkZJRzsKKwlJOTE1X1dSSVRFKENOTF9QT1JUX0NMMUNNX0RXNSwgdmFsKTsKKworCS8qIDQu IENsZWFyIHRyYWluaW5nIGVuYWJsZSB0byBjaGFuZ2Ugc3dpbmcgdmFsdWVzICovCisJdmFsID0g STkxNV9SRUFEKENOTF9QT1JUX1RYX0RXNV9MTjAocG9ydCkpOworCXZhbCAmPSB+VFhfVFJBSU5J TkdfRU47CisJSTkxNV9XUklURShDTkxfUE9SVF9UWF9EVzVfR1JQKHBvcnQpLCB2YWwpOworCisJ LyogNS4gUHJvZ3JhbSBzd2luZyBhbmQgZGUtZW1waGFzaXMgKi8KKwljbmxfZGRpX3Zzd2luZ19w cm9ncmFtKGRldl9wcml2LCBsZXZlbCwgcG9ydCwgdHlwZSk7CisKKwkvKiA2LiBTZXQgdHJhaW5p bmcgZW5hYmxlIHRvIHRyaWdnZXIgdXBkYXRlICovCisJdmFsID0gSTkxNV9SRUFEKENOTF9QT1JU X1RYX0RXNV9MTjAocG9ydCkpOworCXZhbCB8PSBUWF9UUkFJTklOR19FTjsKKwlJOTE1X1dSSVRF KENOTF9QT1JUX1RYX0RXNV9HUlAocG9ydCksIHZhbCk7Cit9CisKIHN0YXRpYyB1aW50MzJfdCB0 cmFuc2xhdGVfc2lnbmFsX2xldmVsKGludCBzaWduYWxfbGV2ZWxzKQogewogCWludCBpOwpAQCAt MTc1Miw3ICsxOTE5LDExIEBAIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCiAJCXNrbF9kZGlfc2V0X2lib29zdChlbmNvZGVyLCBsZXZlbCk7CiAJ ZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCWJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNl KGRldl9wcml2LCBsZXZlbCwgcG9ydCwgZW5jb2Rlci0+dHlwZSk7Ci0KKwllbHNlIGlmIChJU19D QU5OT05MQUtFKGRldl9wcml2KSkgeworCQljbmxfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXZfcHJp diwgbGV2ZWwsIHBvcnQsIGVuY29kZXItPnR5cGUpOworCQkvKiBERElfQlVGX0NUTCBiaXRzIDI3 OjI0IGFyZSByZXNlcnZlZCBvbiBDTkwgKi8KKwkJcmV0dXJuIDA7CisJfQogCXJldHVybiBERElf QlVGX1RSQU5TX1NFTEVDVChsZXZlbCk7CiB9CiAKQEAgLTE4NTAsNiArMjAyMSw5IEBAIHN0YXRp YyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCWJ4dF9kZGlfdnN3aW5n X3NlcXVlbmNlKGRldl9wcml2LCBsZXZlbCwgcG9ydCwKIAkJCQkJSU5URUxfT1VUUFVUX0hETUkp OworCWVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQorCQljbmxfZGRpX3Zzd2luZ19z ZXF1ZW5jZShkZXZfcHJpdiwgbGV2ZWwsIHBvcnQsCisJCQkJCUlOVEVMX09VVFBVVF9IRE1JKTsK IAogCWludGVsX2hkbWktPnNldF9pbmZvZnJhbWVzKGRybV9lbmNvZGVyLAogCQkJCSAgIGhhc19o ZG1pX3NpbmssCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCBkYTExMWNiLi5iN2FkZjBhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKQEAgLTM0NzEsNyArMzQ3MSw3IEBAIHN0YXRpYyB1aW50 MzJfdCBjaHZfc2lnbmFsX2xldmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCWlmIChI QVNfRERJKGRldl9wcml2KSkgewogCQlzaWduYWxfbGV2ZWxzID0gZGRpX3NpZ25hbF9sZXZlbHMo aW50ZWxfZHApOwogCi0JCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKKwkJaWYgKElTX0dFTjlf TFAoZGV2X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQogCQkJc2lnbmFsX2xldmVs cyA9IDA7CiAJCWVsc2UKIAkJCW1hc2sgPSBERElfQlVGX0VNUF9NQVNLOwotLSAKMS45LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=