From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 5/9] drm/amd: add pm domain for ACP IP sub blocks Date: Fri, 8 Jan 2016 18:22:07 -0500 Message-ID: <1452295331-28476-6-git-send-email-alexander.deucher@amd.com> References: <1452295331-28476-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1452295331-28476-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@gmail.com, dri-devel@lists.freedesktop.org, broonie@kernel.org, alsa-devel@alsa-project.org, maruthi.bayyavarapu@amd.com, rajeevkumar.linux@gmail.com Cc: Alex Deucher , Maruthi Srinivas Bayyavarapu , lgirdwood@gmail.com, perex@perex.cz List-Id: alsa-devel@alsa-project.org RnJvbTogTWFydXRoaSBTcmluaXZhcyBCYXl5YXZhcmFwdSA8TWFydXRoaS5CYXl5YXZhcmFwdUBh bWQuY29tPgoKQUNQIElQIGhhdmUgaW50ZXJuYWwgRE1BIGNvbnRyb2xsZXIsIERXIEkyUyBjb250 cm9sbGVyIGFuZCBEU1BzCmFzIHNlcGFyYXRlIHBvd2VyIHRpbGVzLiBETUEgYW5kIEkyUyBkZXZp Y2VzIGFyZSBhZGRlZCB0byBnZW5lcmljCnBtIGRvbWFpbiwgc28gdGhhdCBlbnRpcmUgSVAgY2Fu IGJlIHBvd2VyZWQgb2ZmL29uIGF0IGFwcHJvcHJpYXRlCnRpbWVzLiBVbnVzZWQgRFNQcyBhcmUg bWFkZSB0byBiZSBwb3dlcmVkIG9mZiB0aG91Z2ggdGhleSBhcmUgcG93ZXJlZApvbiBkdXJpbmcg QUNQIHBtIGRvbWFpbiBwb3dlciBvbiBzZXF1ZW5jZS4KClNpZ25lZC1vZmYtYnk6IE1hcnV0aGkg QmF5eWF2YXJhcHUgPG1hcnV0aGkuYmF5eWF2YXJhcHVAYW1kLmNvbT4KUmV2aWV3ZWQtYnk6IEFs ZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogQWxl eCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYWNwL0tjb25maWcgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfYWNwLmMgfCAyMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hY3AuaCB8ICAgMSArCiAzIGZpbGVz IGNoYW5nZWQsIDIwNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYWNw L0tjb25maWcKaW5kZXggMjhiNWU3MC4uMmIwNzgxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hY3AvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9LY29uZmln CkBAIC00LDYgKzQsNyBAQCBjb25maWcgRFJNX0FNRF9BQ1AKICAgICAgICBib29sICJFbmFibGUg QUNQIElQIHN1cHBvcnQiCiAgICAgICAgZGVmYXVsdCB5CiAgICAgICAgc2VsZWN0IE1GRF9DT1JF CisgICAgICAgc2VsZWN0IFBNX0dFTkVSSUNfRE9NQUlOUyBpZiBQTQogICAgICAgIGhlbHAKIAlD aG9vc2UgdGhpcyBvcHRpb24gdG8gZW5hYmxlIEFDUCBJUCBzdXBwb3J0IGZvciBBTUQgU09Dcy4K IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FjcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FjcC5jCmluZGV4IDcxZjI2ZTkuLjlm OGNmYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hY3Au YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYWNwLmMKQEAgLTI0LDYg KzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvaXJxZG9tYWluLmg+CisjaW5jbHVkZSA8 bGludXgvcG1fZG9tYWluLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAj aW5jbHVkZSA8c291bmQvZGVzaWdud2FyZV9pMnMuaD4KICNpbmNsdWRlIDxzb3VuZC9wY20uaD4K QEAgLTEwMiw2ICsxMDMsMTU1IEBAIHN0YXRpYyBpbnQgYWNwX3N3X2Zpbmkodm9pZCAqaGFuZGxl KQogCXJldHVybiAwOwogfQogCisvKiBwb3dlciBvZmYgYSB0aWxlL2Jsb2NrIHdpdGhpbiBBQ1Ag Ki8KK3N0YXRpYyBpbnQgYWNwX3N1c3BlbmRfdGlsZSh2b2lkICpjZ3NfZGV2LCBpbnQgdGlsZSkK K3sKKwl1MzIgdmFsID0gMDsKKwl1MzIgY291bnQgPSAwOworCisJaWYgKCh0aWxlICA8IEFDUF9U SUxFX1AxKSB8fCAodGlsZSA+IEFDUF9USUxFX0RTUDIpKSB7CisJCXByX2VycigiSW52YWxpZCBB Q1AgdGlsZSA6ICVkIHRvIHN1c3BlbmRcbiIsIHRpbGUpOworCQlyZXR1cm4gLTE7CisJfQorCisJ dmFsID0gY2dzX3JlYWRfcmVnaXN0ZXIoY2dzX2RldiwgbW1BQ1BfUEdGU01fUkVBRF9SRUdfMCAr IHRpbGUpOworCXZhbCAmPSBBQ1BfVElMRV9PTl9NQVNLOworCisJaWYgKHZhbCA9PSAweDApIHsK KwkJdmFsID0gY2dzX3JlYWRfcmVnaXN0ZXIoY2dzX2RldiwgbW1BQ1BfUEdGU01fUkVUQUlOX1JF Ryk7CisJCXZhbCA9IHZhbCB8ICgxIDw8IHRpbGUpOworCQljZ3Nfd3JpdGVfcmVnaXN0ZXIoY2dz X2RldiwgbW1BQ1BfUEdGU01fUkVUQUlOX1JFRywgdmFsKTsKKwkJY2dzX3dyaXRlX3JlZ2lzdGVy KGNnc19kZXYsIG1tQUNQX1BHRlNNX0NPTkZJR19SRUcsCisJCQkJCTB4NTAwICsgdGlsZSk7CisK KwkJY291bnQgPSBBQ1BfVElNRU9VVF9MT09QOworCQl3aGlsZSAodHJ1ZSkgeworCQkJdmFsID0g Y2dzX3JlYWRfcmVnaXN0ZXIoY2dzX2RldiwgbW1BQ1BfUEdGU01fUkVBRF9SRUdfMAorCQkJCQkJ CQkrIHRpbGUpOworCQkJdmFsID0gdmFsICYgQUNQX1RJTEVfT05fTUFTSzsKKwkJCWlmICh2YWwg PT0gQUNQX1RJTEVfT0ZGX01BU0spCisJCQkJYnJlYWs7CisJCQlpZiAoLS1jb3VudCA9PSAwKSB7 CisJCQkJcHJfZXJyKCJUaW1lb3V0IHJlYWRpbmcgQUNQIFBHRlNNIHN0YXR1c1xuIik7CisJCQkJ cmV0dXJuIC1FVElNRURPVVQ7CisJCQl9CisJCQl1ZGVsYXkoMTAwKTsKKwkJfQorCisJCXZhbCA9 IGNnc19yZWFkX3JlZ2lzdGVyKGNnc19kZXYsIG1tQUNQX1BHRlNNX1JFVEFJTl9SRUcpOworCisJ CXZhbCB8PSBBQ1BfVElMRV9PRkZfUkVUQUlOX1JFR19NQVNLOworCQljZ3Nfd3JpdGVfcmVnaXN0 ZXIoY2dzX2RldiwgbW1BQ1BfUEdGU01fUkVUQUlOX1JFRywgdmFsKTsKKwl9CisJcmV0dXJuIDA7 Cit9CisKKy8qIHBvd2VyIG9uIGEgdGlsZS9ibG9jayB3aXRoaW4gQUNQICovCitzdGF0aWMgaW50 IGFjcF9yZXN1bWVfdGlsZSh2b2lkICpjZ3NfZGV2LCBpbnQgdGlsZSkKK3sKKwl1MzIgdmFsID0g MDsKKwl1MzIgY291bnQgPSAwOworCisJaWYgKCh0aWxlICA8IEFDUF9USUxFX1AxKSB8fCAodGls ZSA+IEFDUF9USUxFX0RTUDIpKSB7CisJCXByX2VycigiSW52YWxpZCBBQ1AgdGlsZSB0byByZXN1 bWVcbiIpOworCQlyZXR1cm4gLTE7CisJfQorCisJdmFsID0gY2dzX3JlYWRfcmVnaXN0ZXIoY2dz X2RldiwgbW1BQ1BfUEdGU01fUkVBRF9SRUdfMCArIHRpbGUpOworCXZhbCA9IHZhbCAmIEFDUF9U SUxFX09OX01BU0s7CisKKwlpZiAodmFsICE9IDB4MCkgeworCQljZ3Nfd3JpdGVfcmVnaXN0ZXIo Y2dzX2RldiwgbW1BQ1BfUEdGU01fQ09ORklHX1JFRywKKwkJCQkJMHg2MDAgKyB0aWxlKTsKKwkJ Y291bnQgPSBBQ1BfVElNRU9VVF9MT09QOworCQl3aGlsZSAodHJ1ZSkgeworCQkJdmFsID0gY2dz X3JlYWRfcmVnaXN0ZXIoY2dzX2RldiwgbW1BQ1BfUEdGU01fUkVBRF9SRUdfMAorCQkJCQkJCSsg dGlsZSk7CisJCQl2YWwgPSB2YWwgJiBBQ1BfVElMRV9PTl9NQVNLOworCQkJaWYgKHZhbCA9PSAw eDApCisJCQkJYnJlYWs7CisJCQlpZiAoLS1jb3VudCA9PSAwKSB7CisJCQkJcHJfZXJyKCJUaW1l b3V0IHJlYWRpbmcgQUNQIFBHRlNNIHN0YXR1c1xuIik7CisJCQkJcmV0dXJuIC1FVElNRURPVVQ7 CisJCQl9CisJCQl1ZGVsYXkoMTAwKTsKKwkJfQorCQl2YWwgPSBjZ3NfcmVhZF9yZWdpc3Rlcihj Z3NfZGV2LCBtbUFDUF9QR0ZTTV9SRVRBSU5fUkVHKTsKKwkJaWYgKHRpbGUgPT0gQUNQX1RJTEVf UDEpCisJCQl2YWwgPSB2YWwgJiAoQUNQX1RJTEVfUDFfTUFTSyk7CisJCWVsc2UgaWYgKHRpbGUg PT0gQUNQX1RJTEVfUDIpCisJCQl2YWwgPSB2YWwgJiAoQUNQX1RJTEVfUDJfTUFTSyk7CisKKwkJ Y2dzX3dyaXRlX3JlZ2lzdGVyKGNnc19kZXYsIG1tQUNQX1BHRlNNX1JFVEFJTl9SRUcsIHZhbCk7 CisJfQorCXJldHVybiAwOworfQorCitzdHJ1Y3QgYWNwX3BtX2RvbWFpbiB7CisJdm9pZCAqY2dz X2RldjsKKwlzdHJ1Y3QgZ2VuZXJpY19wbV9kb21haW4gZ3BkOworfTsKKworc3RhdGljIGludCBh Y3BfcG93ZXJvZmYoc3RydWN0IGdlbmVyaWNfcG1fZG9tYWluICpnZW5wZCkKK3sKKwlpbnQgaSwg cmV0OworCXN0cnVjdCBhY3BfcG1fZG9tYWluICphcGQ7CisKKwlhcGQgPSBjb250YWluZXJfb2Yo Z2VucGQsIHN0cnVjdCBhY3BfcG1fZG9tYWluLCBncGQpOworCWlmIChhcGQgIT0gTlVMTCkgewor CQkvKiBEb25vdCByZXR1cm4gYWJydXB0bHkgaWYgYW55IG9mIHBvd2VyIHRpbGUgZmFpbHMgdG8g c3VzcGVuZC4KKwkJICogTG9nIGl0IGFuZCBjb250aW51ZSBwb3dlcmluZyBvZmYgb3RoZXIgdGls ZQorCQkgKi8KKwkJZm9yIChpID0gNDsgaSA+PSAwIDsgaS0tKSB7CisJCQlyZXQgPSBhY3Bfc3Vz cGVuZF90aWxlKGFwZC0+Y2dzX2RldiwgQUNQX1RJTEVfUDEgKyBpKTsKKwkJCWlmIChyZXQpCisJ CQkJcHJfZXJyKCJBQ1AgdGlsZSAlZCB0aWxlIHN1c3BlbmQgZmFpbGVkXG4iLCBpKTsKKwkJfQor CX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhY3BfcG93ZXJvbihzdHJ1Y3QgZ2VuZXJp Y19wbV9kb21haW4gKmdlbnBkKQoreworCWludCBpLCByZXQ7CisJc3RydWN0IGFjcF9wbV9kb21h aW4gKmFwZDsKKworCWFwZCA9IGNvbnRhaW5lcl9vZihnZW5wZCwgc3RydWN0IGFjcF9wbV9kb21h aW4sIGdwZCk7CisJaWYgKGFwZCAhPSBOVUxMKSB7CisJCWZvciAoaSA9IDA7IGkgPCAyOyBpKysp IHsKKwkJCXJldCA9IGFjcF9yZXN1bWVfdGlsZShhcGQtPmNnc19kZXYsIEFDUF9USUxFX1AxICsg aSk7CisJCQlpZiAocmV0KSB7CisJCQkJcHJfZXJyKCJBQ1AgdGlsZSAlZCByZXN1bWUgZmFpbGVk XG4iLCBpKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCS8qIERpc2FibGUgRFNQcyB3aGlj aCBhcmUgbm90IGdvaW5nIHRvIGJlIHVzZWQgKi8KKwkJZm9yIChpID0gMDsgaSA8IDM7IGkrKykg eworCQkJcmV0ID0gYWNwX3N1c3BlbmRfdGlsZShhcGQtPmNnc19kZXYsIEFDUF9USUxFX0RTUDAg KyBpKTsKKwkJCS8qIENvbnRpbnVlIHN1c3BlbmRpbmcgb3RoZXIgRFNQLCBldmVuIGlmIG9uZSBm YWlscyAqLworCQkJaWYgKHJldCkKKwkJCQlwcl9lcnIoIkFDUCBEU1AgJWQgc3VzcGVuZCBmYWls ZWRcbiIsIGkpOworCQl9CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGRldmlj ZSAqZ2V0X21mZF9jZWxsX2Rldihjb25zdCBjaGFyICpkZXZpY2VfbmFtZSwgaW50IHIpCit7CisJ Y2hhciBhdXRvX2Rldl9uYW1lWzI1XTsKKwljaGFyIGJ1Zls4XTsKKwlzdHJ1Y3QgZGV2aWNlICpk ZXY7CisKKwlzcHJpbnRmKGJ1ZiwgIi4lZC5hdXRvIiwgcik7CisJc3RyY3B5KGF1dG9fZGV2X25h bWUsIGRldmljZV9uYW1lKTsKKwlzdHJjYXQoYXV0b19kZXZfbmFtZSwgYnVmKTsKKwlkZXYgPSBi dXNfZmluZF9kZXZpY2VfYnlfbmFtZSgmcGxhdGZvcm1fYnVzX3R5cGUsIE5VTEwsIGF1dG9fZGV2 X25hbWUpOworCWRldl9pbmZvKGRldiwgImRldmljZSAlcyBhZGRlZCB0byBwbSBkb21haW5cbiIs IGF1dG9fZGV2X25hbWUpOworCisJcmV0dXJuIGRldjsKK30KKwogLyoqCiAgKiBhY3BfaHdfaW5p dCAtIHN0YXJ0IGFuZCB0ZXN0IEFDUCBibG9jawogICoKQEAgLTExMCw4ICsyNjAsOSBAQCBzdGF0 aWMgaW50IGFjcF9zd19maW5pKHZvaWQgKmhhbmRsZSkKICAqLwogc3RhdGljIGludCBhY3BfaHdf aW5pdCh2b2lkICpoYW5kbGUpCiB7Ci0JaW50IHI7CisJaW50IHIsIGk7CiAJdWludDY0X3QgYWNw X2Jhc2U7CisJc3RydWN0IGRldmljZSAqZGV2OwogCXN0cnVjdCBpMnNfcGxhdGZvcm1fZGF0YSAq aTJzX3BkYXRhOwogCiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdw dV9kZXZpY2UgKiloYW5kbGU7CkBAIC0xMzcsNiArMjg4LDE5IEBAIHN0YXRpYyBpbnQgYWNwX2h3 X2luaXQodm9pZCAqaGFuZGxlKQogCWVsc2UgaWYgKHIpCiAJCXJldHVybiByOwogCisJYWRldi0+ YWNwLmFjcF9nZW5wZCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhY3BfcG1fZG9tYWluKSwgR0ZQ X0tFUk5FTCk7CisJaWYgKGFkZXYtPmFjcC5hY3BfZ2VucGQgPT0gTlVMTCkKKwkJcmV0dXJuIC1F Tk9NRU07CisKKwlhZGV2LT5hY3AuYWNwX2dlbnBkLT5ncGQubmFtZSA9ICJBQ1BfQVVESU8iOwor CWFkZXYtPmFjcC5hY3BfZ2VucGQtPmdwZC5wb3dlcl9vZmYgPSBhY3BfcG93ZXJvZmY7CisJYWRl di0+YWNwLmFjcF9nZW5wZC0+Z3BkLnBvd2VyX29uID0gYWNwX3Bvd2Vyb247CisKKworCWFkZXYt PmFjcC5hY3BfZ2VucGQtPmNnc19kZXYgPSBhZGV2LT5hY3AuY2dzX2RldmljZTsKKworCXBtX2dl bnBkX2luaXQoJmFkZXYtPmFjcC5hY3BfZ2VucGQtPmdwZCwgTlVMTCwgZmFsc2UpOworCiAJYWRl di0+YWNwLmFjcF9jZWxsID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1mZF9jZWxsKSAqIEFDUF9E RVZTLAogCQkJCQkJCUdGUF9LRVJORUwpOwogCkBAIC0yMTEsNiArMzc1LDE1IEBAIHN0YXRpYyBp bnQgYWNwX2h3X2luaXQodm9pZCAqaGFuZGxlKQogCWlmIChyKQogCQlyZXR1cm4gcjsKIAorCWZv ciAoaSA9IDA7IGkgPCBBQ1BfREVWUyA7IGkrKykgeworCQlkZXYgPSBnZXRfbWZkX2NlbGxfZGV2 KGFkZXYtPmFjcC5hY3BfY2VsbFtpXS5uYW1lLCBpKTsKKwkJciA9IHBtX2dlbnBkX2FkZF9kZXZp Y2UoJmFkZXYtPmFjcC5hY3BfZ2VucGQtPmdwZCwgZGV2KTsKKwkJaWYgKHIpIHsKKwkJCWRldl9l cnIoZGV2LCAiRmFpbGVkIHRvIGFkZCBkZXYgdG8gZ2VucGRcbiIpOworCQkJcmV0dXJuIHI7CisJ CX0KKwl9CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjIyLDEwICszOTUsMjIgQEAgc3RhdGljIGlu dCBhY3BfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiAgKi8KIHN0YXRpYyBpbnQgYWNwX2h3X2Zpbmko dm9pZCAqaGFuZGxlKQogeworCWludCBpLCByZXQ7CisJc3RydWN0IGRldmljZSAqZGV2OworCiAJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5k bGU7CiAKKwlmb3IgKGkgPSAwOyBpIDwgQUNQX0RFVlMgOyBpKyspIHsKKwkJZGV2ID0gZ2V0X21m ZF9jZWxsX2RldihhZGV2LT5hY3AuYWNwX2NlbGxbaV0ubmFtZSwgaSk7CisJCXJldCA9IHBtX2dl bnBkX3JlbW92ZV9kZXZpY2UoJmFkZXYtPmFjcC5hY3BfZ2VucGQtPmdwZCwgZGV2KTsKKwkJLyog SWYgcmVtb3ZhbCBmYWlscywgZG9udCBnaXZldXAgYW5kIHRyeSByZXN0ICovCisJCWlmIChyZXQp CisJCQlkZXZfZXJyKGRldiwgInJlbW92ZSBkZXYgZnJvbSBnZW5wZCBmYWlsZWRcbiIpOworCX0K KwogCW1mZF9yZW1vdmVfZGV2aWNlcyhhZGV2LT5hY3AucGFyZW50KTsKIAlrZnJlZShhZGV2LT5h Y3AuYWNwX3Jlcyk7CisJa2ZyZWUoYWRldi0+YWNwLmFjcF9nZW5wZCk7CiAJa2ZyZWUoYWRldi0+ YWNwLmFjcF9jZWxsKTsKIAogCXJldHVybiAwOwpAQCAtMjM4LDYgKzQyMywyNSBAQCBzdGF0aWMg aW50IGFjcF9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKIAogc3RhdGljIGludCBhY3BfcmVzdW1lKHZv aWQgKmhhbmRsZSkKIHsKKwlpbnQgaSwgcmV0OworCXN0cnVjdCBhY3BfcG1fZG9tYWluICphcGQ7 CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilo YW5kbGU7CisKKwkvKiBTTVUgYmxvY2sgd2lsbCBwb3dlciBvbiBBQ1AgaXJyZXNwZWN0aXZlIG9m IEFDUCBydW50aW1lIHN0YXR1cy4KKwkgKiBQb3dlciBvZmYgZXhwbGljaXRseSBiYXNlZCBvbiBn ZW5wZCBBQ1AgcnVudGltZSBzdGF0dXMgc28gdGhhdCBBQ1AKKwkgKiBodyBhbmQgQUNQLWdlbnBk IHN0YXR1cyBhcmUgaW4gc3luYy4KKwkgKiAnc3VzcGVuZF9wb3dlcl9vZmYnIHJlcHJlc2VudHMg IlBvd2VyIHN0YXR1cyBiZWZvcmUgc3lzdGVtIHN1c3BlbmQiCisJKi8KKwlpZiAoYWRldi0+YWNw LmFjcF9nZW5wZC0+Z3BkLnN1c3BlbmRfcG93ZXJfb2ZmID09IHRydWUpIHsKKwkJYXBkID0gY29u dGFpbmVyX29mKCZhZGV2LT5hY3AuYWNwX2dlbnBkLT5ncGQsCisJCQkJCXN0cnVjdCBhY3BfcG1f ZG9tYWluLCBncGQpOworCisJCWZvciAoaSA9IDQ7IGkgPj0gMCA7IGktLSkgeworCQkJcmV0ID0g YWNwX3N1c3BlbmRfdGlsZShhcGQtPmNnc19kZXYsIEFDUF9USUxFX1AxICsgaSk7CisJCQlpZiAo cmV0KQorCQkJCXByX2VycigiQUNQIHRpbGUgJWQgdGlsZSBzdXNwZW5kIGZhaWxlZFxuIiwgaSk7 CisJCX0KKwl9CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9hY3AuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9hY3AuaAppbmRleCAyNDk1MmVkLi5mNmUzMmE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfYWNwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2FjcC5oCkBAIC0zNCw2ICszNCw3IEBAIHN0cnVjdCBhbWRncHVfYWNwIHsKIAlz dHJ1Y3QgYW1kX2FjcF9wcml2YXRlICpwcml2YXRlOwogCXN0cnVjdCBtZmRfY2VsbCAqYWNwX2Nl bGw7CiAJc3RydWN0IHJlc291cmNlICphY3BfcmVzOworCXN0cnVjdCBhY3BfcG1fZG9tYWluICph Y3BfZ2VucGQ7CiB9OwogCiBleHRlcm4gY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyBhY3BfaXBf ZnVuY3M7Ci0tIAoyLjUuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK