From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH 25/67] drm/i915/cnl: Inherit RPS stuff from previous platforms. Date: Thu, 6 Apr 2017 12:15:21 -0700 Message-ID: <1491506163-14587-25-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 mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4BAD36EA0E for ; Thu, 6 Apr 2017 19:16:06 +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: David Weinehall , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org QXBwYXJlbnRseSBubyBjaGFuZ2Ugb24gUlBTIHN0dWZmIGZyb20gcHJldmlvdXMgcGxhdGZvcm1z LgoKdjI6IE1lcmdpbmcgdG8gcnBzIHJlbGF0ZWQgcGF0Y2hlcyBpbiBvbmUgYW5kIGFsc28gYWRk aW5nCiAgICBtaXNzZWQgY2FzZXMuCgpDYzogRGF2aWQgV2VpbmVoYWxsIDxkYXZpZC53ZWluZWhh bGxAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCAyMCAr KysrKysrKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAg fCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMgICB8ICAyICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICB8IDE4ICsrKysrKysrKy0tLS0tLS0t LQogNCBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGQ2ODllNTEuLmRhMjJhYmEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xMTU1LDcgKzExNTUsNyBAQCBzdGF0aWMg aW50IGk5MTVfZnJlcXVlbmN5X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQp CiAJCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsK IAogCQlyZXFmID0gSTkxNV9SRUFEKEdFTjZfUlBOU1dSRVEpOwotCQlpZiAoSVNfR0VOOShkZXZf cHJpdikpCisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCiAJCQlyZXFmID4+PSAyMzsK IAkJZWxzZSB7CiAJCQlyZXFmICY9IH5HRU42X1RVUkJPX0RJU0FCTEU7CkBAIC0xMTc3LDcgKzEx NzcsNyBAQCBzdGF0aWMgaW50IGk5MTVfZnJlcXVlbmN5X2luZm8oc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICp1bnVzZWQpCiAJCXJwZG93bmVpID0gSTkxNV9SRUFEKEdFTjZfUlBfQ1VSX0RPV05f RUkpICYgR0VONl9DVVJJQVZHX01BU0s7CiAJCXJwY3VyZG93biA9IEk5MTVfUkVBRChHRU42X1JQ X0NVUl9ET1dOKSAmIEdFTjZfQ1VSQlNZVEFWR19NQVNLOwogCQlycHByZXZkb3duID0gSTkxNV9S RUFEKEdFTjZfUlBfUFJFVl9ET1dOKSAmIEdFTjZfQ1VSQlNZVEFWR19NQVNLOwotCQlpZiAoSVNf R0VOOShkZXZfcHJpdikpCisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCiAJCQljYWdm ID0gKHJwc3RhdCAmIEdFTjlfQ0FHRl9NQVNLKSA+PiBHRU45X0NBR0ZfU0hJRlQ7CiAJCWVsc2Ug aWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCiAJCQlj YWdmID0gKHJwc3RhdCAmIEhTV19DQUdGX01BU0spID4+IEhTV19DQUdGX1NISUZUOwpAQCAtMTIw Niw3ICsxMjA2LDcgQEAgc3RhdGljIGludCBpOTE1X2ZyZXF1ZW5jeV9pbmZvKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQkJICAgZGV2X3ByaXYtPnJwcy5wbV9pbnRybXNrX21i eik7CiAJCXNlcV9wcmludGYobSwgIkdUX1BFUkZfU1RBVFVTOiAweCUwOHhcbiIsIGd0X3BlcmZf c3RhdHVzKTsKIAkJc2VxX3ByaW50ZihtLCAiUmVuZGVyIHAtc3RhdGUgcmF0aW86ICVkXG4iLAot CQkJICAgKGd0X3BlcmZfc3RhdHVzICYgKElTX0dFTjkoZGV2X3ByaXYpID8gMHgxZmYwMCA6IDB4 ZmYwMCkpID4+IDgpOworCQkJICAgKGd0X3BlcmZfc3RhdHVzICYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gOSA/IDB4MWZmMDAgOiAweGZmMDApKSA+PiA4KTsKIAkJc2VxX3ByaW50ZihtLCAiUmVu ZGVyIHAtc3RhdGUgVklEOiAlZFxuIiwKIAkJCSAgIGd0X3BlcmZfc3RhdHVzICYgMHhmZik7CiAJ CXNlcV9wcmludGYobSwgIlJlbmRlciBwLXN0YXRlIGxpbWl0OiAlZFxuIiwKQEAgLTEyMzcsMTgg KzEyMzcsMjEgQEAgc3RhdGljIGludCBpOTE1X2ZyZXF1ZW5jeV9pbmZvKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqdW51c2VkKQogCiAJCW1heF9mcmVxID0gKElTX0dFTjlfTFAoZGV2X3ByaXYp ID8gcnBfc3RhdGVfY2FwID4+IDAgOgogCQkJICAgIHJwX3N0YXRlX2NhcCA+PiAxNikgJiAweGZm OwotCQltYXhfZnJlcSAqPSAoSVNfR0VOOV9CQyhkZXZfcHJpdikgPyBHRU45X0ZSRVFfU0NBTEVS IDogMSk7CisJCW1heF9mcmVxICo9IChJU19HRU45X0JDKGRldl9wcml2KSB8fAorCQkJICAgICBJ U19DQU5OT05MQUtFKGRldl9wcml2KSA/IEdFTjlfRlJFUV9TQ0FMRVIgOiAxKTsKIAkJc2VxX3By aW50ZihtLCAiTG93ZXN0IChSUE4pIGZyZXF1ZW5jeTogJWRNSHpcbiIsCiAJCQkgICBpbnRlbF9n cHVfZnJlcShkZXZfcHJpdiwgbWF4X2ZyZXEpKTsKIAogCQltYXhfZnJlcSA9IChycF9zdGF0ZV9j YXAgJiAweGZmMDApID4+IDg7Ci0JCW1heF9mcmVxICo9IChJU19HRU45X0JDKGRldl9wcml2KSA/ IEdFTjlfRlJFUV9TQ0FMRVIgOiAxKTsKKwkJbWF4X2ZyZXEgKj0gKElTX0dFTjlfQkMoZGV2X3By aXYpIHx8CisJCQkgICAgIElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpID8gR0VOOV9GUkVRX1NDQUxF UiA6IDEpOwogCQlzZXFfcHJpbnRmKG0sICJOb21pbmFsIChSUDEpIGZyZXF1ZW5jeTogJWRNSHpc biIsCiAJCQkgICBpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwgbWF4X2ZyZXEpKTsKIAogCQltYXhf ZnJlcSA9IChJU19HRU45X0xQKGRldl9wcml2KSA/IHJwX3N0YXRlX2NhcCA+PiAxNiA6CiAJCQkg ICAgcnBfc3RhdGVfY2FwID4+IDApICYgMHhmZjsKLQkJbWF4X2ZyZXEgKj0gKElTX0dFTjlfQkMo ZGV2X3ByaXYpID8gR0VOOV9GUkVRX1NDQUxFUiA6IDEpOworCQltYXhfZnJlcSAqPSAoSVNfR0VO OV9CQyhkZXZfcHJpdikgfHwKKwkJCSAgICAgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgPyBHRU45 X0ZSRVFfU0NBTEVSIDogMSk7CiAJCXNlcV9wcmludGYobSwgIk1heCBub24tb3ZlcmNsb2NrZWQg KFJQMCkgZnJlcXVlbmN5OiAlZE1IelxuIiwKIAkJCSAgIGludGVsX2dwdV9mcmVxKGRldl9wcml2 LCBtYXhfZnJlcSkpOwogCQlzZXFfcHJpbnRmKG0sICJNYXggb3ZlcmNsb2NrZWQgZnJlcXVlbmN5 OiAlZE1IelxuIiwKQEAgLTE4MjQsNyArMTgyNyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9yaW5nX2Zy ZXFfdGFibGUoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJaWYgKHJldCkKIAkJ Z290byBvdXQ7CiAKLQlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsKKwlpZiAoSVNfR0VOOV9C QyhkZXZfcHJpdikgfHwgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKIAkJLyogQ29udmVydCBH VCBmcmVxdWVuY3kgdG8gNTAgSFogdW5pdHMgKi8KIAkJbWluX2dwdV9mcmVxID0KIAkJCWRldl9w cml2LT5ycHMubWluX2ZyZXFfc29mdGxpbWl0IC8gR0VOOV9GUkVRX1NDQUxFUjsKQEAgLTE4NDQs NyArMTg0Nyw4IEBAIHN0YXRpYyBpbnQgaTkxNV9yaW5nX2ZyZXFfdGFibGUoc3RydWN0IHNlcV9m aWxlICptLCB2b2lkICp1bnVzZWQpCiAJCQkJICAgICAgICZpYV9mcmVxKTsKIAkJc2VxX3ByaW50 ZihtLCAiJWRcdFx0JWRcdFx0XHRcdCVkXG4iLAogCQkJICAgaW50ZWxfZ3B1X2ZyZXEoZGV2X3By aXYsIChncHVfZnJlcSAqCi0JCQkJCQkgICAgIChJU19HRU45X0JDKGRldl9wcml2KSA/CisJCQkJ CQkgICAgIChJU19HRU45X0JDKGRldl9wcml2KSB8fAorCQkJCQkJICAgICAgSVNfQ0FOTk9OTEFL RShkZXZfcHJpdikgPwogCQkJCQkJICAgICAgR0VOOV9GUkVRX1NDQUxFUiA6IDEpKSksCiAJCQkg ICAoKGlhX2ZyZXEgPj4gMCkgJiAweGZmKSAqIDEwMCwKIAkJCSAgICgoaWFfZnJlcSA+PiA4KSAm IDB4ZmYpICogMTAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDk4ZTg5ZTYuLjY1NzAz NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtMzMxMSw3ICszMzExLDcgQEAgZW51bSBz a2xfZGlzcF9wb3dlcl93ZWxscyB7CiAjZGVmaW5lIElOVEVSVkFMXzFfMjhfVVModXMpCXJvdW5k dXAoKCh1cykgKiAxMDApID4+IDcsIDI1KQogI2RlZmluZSBJTlRFUlZBTF8xXzMzX1VTKHVzKQko KCh1cykgKiAzKSAgID4+IDIpCiAjZGVmaW5lIElOVEVSVkFMXzBfODMzX1VTKHVzKQkoKCh1cykg KiA2KSAvIDUpCi0jZGVmaW5lIEdUX0lOVEVSVkFMX0ZST01fVVMoZGV2X3ByaXYsIHVzKSAoSVNf R0VOOShkZXZfcHJpdikgPyBcCisjZGVmaW5lIEdUX0lOVEVSVkFMX0ZST01fVVMoZGV2X3ByaXYs IHVzKSAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5ID8gXAogCQkJCShJU19HRU45X0xQKGRldl9w cml2KSA/IFwKIAkJCQlJTlRFUlZBTF8wXzgzM19VUyh1cykgOiBcCiAJCQkJSU5URVJWQUxfMV8z M19VUyh1cykpIDogXApAQCAtMzMyMCw3ICszMzIwLDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93 ZWxscyB7CiAjZGVmaW5lIElOVEVSVkFMXzFfMjhfVE9fVVMoaW50ZXJ2YWwpICAoKChpbnRlcnZh bCkgPDwgNykgLyAxMDApCiAjZGVmaW5lIElOVEVSVkFMXzFfMzNfVE9fVVMoaW50ZXJ2YWwpICAo KChpbnRlcnZhbCkgPDwgMikgLyAzKQogI2RlZmluZSBJTlRFUlZBTF8wXzgzM19UT19VUyhpbnRl cnZhbCkgKCgoaW50ZXJ2YWwpICogNSkgIC8gNikKLSNkZWZpbmUgR1RfUE1fSU5URVJWQUxfVE9f VVMoZGV2X3ByaXYsIGludGVydmFsKSAoSVNfR0VOOShkZXZfcHJpdikgPyBcCisjZGVmaW5lIEdU X1BNX0lOVEVSVkFMX1RPX1VTKGRldl9wcml2LCBpbnRlcnZhbCkgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gOSA/IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJU19HRU45X0xQKGRldl9w cml2KSA/IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVEVSVkFMXzBfODMzX1RPX1VT KGludGVydmFsKSA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVEVSVkFMXzFfMzNf VE9fVVMoaW50ZXJ2YWwpKSA6IFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwppbmRleCBmM2Zk ZmRhLi5hODdhM2ZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2Zz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCkBAIC0yNTUsNyArMjU1 LDcgQEAgc3RhdGljIHNzaXplX3QgZ3RfYWN0X2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAq a2RldiwKIAkJcmV0ID0gaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIChmcmVxID4+IDgpICYgMHhm Zik7CiAJfSBlbHNlIHsKIAkJdTMyIHJwc3RhdCA9IEk5MTVfUkVBRChHRU42X1JQU1RBVDEpOwot CQlpZiAoSVNfR0VOOShkZXZfcHJpdikpCisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkp CiAJCQlyZXQgPSAocnBzdGF0ICYgR0VOOV9DQUdGX01BU0spID4+IEdFTjlfQ0FHRl9TSElGVDsK IAkJZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2 KSkKIAkJCXJldCA9IChycHN0YXQgJiBIU1dfQ0FHRl9NQVNLKSA+PiBIU1dfQ0FHRl9TSElGVDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDc5OGU1NWYuLjRjMDdiOTEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYwpAQCAtNTA4OCw3ICs1MDg4LDcgQEAgc3RhdGljIHUzMiBpbnRlbF9ycHNf bGltaXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggdmFsKQogCSAqIHRo ZSBodyBydW5zIGF0IHRoZSBtaW5pbWFsIGNsb2NrIGJlZm9yZSBzZWxlY3RpbmcgdGhlIGRlc2ly ZWQKIAkgKiBmcmVxdWVuY3ksIGlmIHRoZSBkb3duIHRocmVzaG9sZCBleHBpcmVzIGluIHRoYXQg d2luZG93IHdlIHdpbGwgbm90CiAJICogcmVjZWl2ZSBhIGRvd24gaW50ZXJydXB0LiAqLwotCWlm IChJU19HRU45KGRldl9wcml2KSkgeworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsK IAkJbGltaXRzID0gKGRldl9wcml2LT5ycHMubWF4X2ZyZXFfc29mdGxpbWl0KSA8PCAyMzsKIAkJ aWYgKHZhbCA8PSBkZXZfcHJpdi0+cnBzLm1pbl9mcmVxX3NvZnRsaW1pdCkKIAkJCWxpbWl0cyB8 PSAoZGV2X3ByaXYtPnJwcy5taW5fZnJlcV9zb2Z0bGltaXQpIDw8IDE0OwpAQCAtNTIzMCw3ICs1 MjMwLDcgQEAgc3RhdGljIGludCBnZW42X3NldF9ycHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCB1OCB2YWwpCiAJaWYgKHZhbCAhPSBkZXZfcHJpdi0+cnBzLmN1cl9mcmVxKSB7 CiAJCWdlbjZfc2V0X3Jwc190aHJlc2hvbGRzKGRldl9wcml2LCB2YWwpOwogCi0JCWlmIChJU19H RU45KGRldl9wcml2KSkKKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKIAkJCUk5MTVf V1JJVEUoR0VONl9SUE5TV1JFUSwKIAkJCQkgICBHRU45X0ZSRVFVRU5DWSh2YWwpKTsKIAkJZWxz ZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKQEAg LTU2MTIsNyArNTYxMiw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfaW5pdF9ycHNfZnJlcXVlbmNpZXMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJZGV2X3ByaXYtPnJwcy5lZmZp Y2llbnRfZnJlcSA9IGRldl9wcml2LT5ycHMucnAxX2ZyZXE7CiAJaWYgKElTX0hBU1dFTEwoZGV2 X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwKLQkgICAgSVNfR0VOOV9CQyhkZXZf cHJpdikpIHsKKwkgICAgSVNfR0VOOV9CQyhkZXZfcHJpdikgfHwgSVNfQ0FOTk9OTEFLRShkZXZf cHJpdikpIHsKIAkJdTMyIGRkY2Nfc3RhdHVzID0gMDsKIAogCQlpZiAoc2FuZHlicmlkZ2VfcGNv ZGVfcmVhZChkZXZfcHJpdiwKQEAgLTU2MjUsNyArNTYyNSw3IEBAIHN0YXRpYyB2b2lkIGdlbjZf aW5pdF9ycHNfZnJlcXVlbmNpZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CQkJCQlkZXZfcHJpdi0+cnBzLm1heF9mcmVxKTsKIAl9CiAKLQlpZiAoSVNfR0VOOV9CQyhkZXZf cHJpdikpIHsKKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikgfHwgSVNfQ0FOTk9OTEFLRShkZXZf cHJpdikpIHsKIAkJLyogU3RvcmUgdGhlIGZyZXF1ZW5jeSB2YWx1ZXMgaW4gMTYuNjYgTUhaIHVu aXRzLCB3aGljaCBpcwogCQkgKiB0aGUgbmF0dXJhbCBoYXJkd2FyZSB1bml0IGZvciBTS0wKIAkJ ICovCkBAIC01OTMxLDcgKzU5MzEsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3VwZGF0ZV9yaW5nX2Zy ZXEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCS8qIGNvbnZlcnQgRERSIGZy ZXF1ZW5jeSBmcm9tIHVuaXRzIG9mIDI2Ni42TUh6IHRvIGJhbmR3aWR0aCAqLwogCW1pbl9yaW5n X2ZyZXEgPSBtdWx0X2ZyYWMobWluX3JpbmdfZnJlcSwgOCwgMyk7CiAKLQlpZiAoSVNfR0VOOV9C QyhkZXZfcHJpdikpIHsKKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikgfHwgSVNfQ0FOTk9OTEFL RShkZXZfcHJpdikpIHsKIAkJLyogQ29udmVydCBHVCBmcmVxdWVuY3kgdG8gNTAgSFogdW5pdHMg Ki8KIAkJbWluX2dwdV9mcmVxID0gZGV2X3ByaXYtPnJwcy5taW5fZnJlcSAvIEdFTjlfRlJFUV9T Q0FMRVI7CiAJCW1heF9ncHVfZnJlcSA9IGRldl9wcml2LT5ycHMubWF4X2ZyZXEgLyBHRU45X0ZS RVFfU0NBTEVSOwpAQCAtNTk0OSw3ICs1OTQ5LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl91cGRhdGVf cmluZ19mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaW50IGRpZmYg PSBtYXhfZ3B1X2ZyZXEgLSBncHVfZnJlcTsKIAkJdW5zaWduZWQgaW50IGlhX2ZyZXEgPSAwLCBy aW5nX2ZyZXEgPSAwOwogCi0JCWlmIChJU19HRU45X0JDKGRldl9wcml2KSkgeworCQlpZiAoSVNf R0VOOV9CQyhkZXZfcHJpdikgfHwgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKIAkJCS8qCiAJ CQkgKiByaW5nX2ZyZXEgPSAyICogR1QuIHJpbmdfZnJlcSBpcyBpbiAxMDBNSHogdW5pdHMKIAkJ CSAqIE5vIGZsb29yIHJlcXVpcmVkIGZvciByaW5nIGZyZXF1ZW5jeSBvbiBTS0wuCkBAIC03MDgw LDcgKzcwODAsNyBAQCB2b2lkIGludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA5KSB7CiAJCWdlbjlfZW5hYmxlX3JjNihkZXZfcHJpdik7CiAJCWdlbjlfZW5hYmxlX3Jwcyhk ZXZfcHJpdik7Ci0JCWlmIChJU19HRU45X0JDKGRldl9wcml2KSkKKwkJaWYgKElTX0dFTjlfQkMo ZGV2X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQogCQkJZ2VuNl91cGRhdGVfcmlu Z19mcmVxKGRldl9wcml2KTsKIAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsK IAkJZ2VuOF9lbmFibGVfcnBzKGRldl9wcml2KTsKQEAgLTgzNDUsNyArODM0NSw3IEBAIHN0YXRp YyBpbnQgY2h2X2ZyZXFfb3Bjb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg aW50IHZhbCkKIAogaW50IGludGVsX2dwdV9mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgaW50IHZhbCkKIHsKLQlpZiAoSVNfR0VOOShkZXZfcHJpdikpCisJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gOSkKIAkJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKHZhbCAqIEdU X0ZSRVFVRU5DWV9NVUxUSVBMSUVSLAogCQkJCQkgR0VOOV9GUkVRX1NDQUxFUik7CiAJZWxzZSBp ZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCkBAIC04MzU4LDcgKzgzNTgsNyBAQCBpbnQgaW50 ZWxfZ3B1X2ZyZXEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKQog CiBpbnQgaW50ZWxfZnJlcV9vcGNvZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBpbnQgdmFsKQogewotCWlmIChJU19HRU45KGRldl9wcml2KSkKKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5KQogCQlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QodmFsICogR0VOOV9GUkVR X1NDQUxFUiwKIAkJCQkJIEdUX0ZSRVFVRU5DWV9NVUxUSVBMSUVSKTsKIAllbHNlIGlmIChJU19D SEVSUllWSUVXKGRldl9wcml2KSkKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK