From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 07/13] drm/amd: add ACP driver support Date: Fri, 4 Dec 2015 18:40:35 -0500 Message-ID: <1449272440-8735-8-git-send-email-alexander.deucher@amd.com> References: <1449272440-8735-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: <1449272440-8735-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: broonie@kernel.org, airlied@gmail.com, dri-devel@lists.freedesktop.org, alsa-devel@alsa-project.org, maruthi.bayyavarapu@amd.com, rajeevkumar.linux@gmail.com Cc: Alex Deucher , lgirdwood@gmail.com, perex@perex.cz List-Id: alsa-devel@alsa-project.org RnJvbTogTWFydXRoaSBCYXl5YXZhcmFwdSA8bWFydXRoaS5iYXl5YXZhcmFwdUBhbWQuY29tPgoK VGhpcyBhZGRzIHRoZSBBQ1AgKEF1ZGlvIENvUHJvY2Vzc29yKSBJUCBkcml2ZXIgYW5kIHdpcmVz Cml0IHVwIHRvIHRoZSBhbWRncHUgZHJpdmVyLiAgVGhlIEFDUCBibG9jayBwcm92aWRlcyB0aGUg RE1BCmVuZ2luZSBmb3IgaTJzIGJhc2VkIEFMU0EgZHJpdmVyLiBUaGlzIGlzIHJlcXVpcmVkIGZv ciBhdWRpbwpvbiBBUFVzIHRoYXQgdXRpbGl6ZSBhbiBpMnMgY29kZWMuCgpSZXZpZXdlZC1ieTog SmFtbXkgWmhvdSA8SmFtbXkuWmhvdUBhbWQuY29tPgpSZXZpZXdlZC1ieTogTWFydXRoaSBCYXl5 YXZhcmFwdSA8bWFydXRoaS5iYXl5YXZhcmFwdUBhbWQuY29tPgpSZXZpZXdlZC1ieTogQWxleCBE ZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgpSZXZpZXdlZC1ieTogTXVyYWxpIEty aXNobmEgVmVtdXJpIDxtdXJhbGkta3Jpc2huYS52ZW11cmlAYW1kLmNvbT4KU2lnbmVkLW9mZi1i eTogTWFydXRoaSBCYXl5YXZhcmFwdSA8bWFydXRoaS5iYXl5YXZhcmFwdUBhbWQuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgpTaWduZWQtb2Zm LWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Ci0tLQoKdjI6IGlu dGVncmF0ZSBpMnMvYXogY2hlY2sgcGF0Y2gKdjM6IHMvYW1kX2FjcC9hbWRncHVfYWNwLwp2NDog dXBkYXRlIGNvcHlyaWdodCBub3RpY2UKdjU6IHNxdWFzaCBtdWx0aXBsZSBwYXRjaGVzLCBjb252 ZXJ0IHRvIG1mZAp2NjogbWFqb3IgY2hhbmdlcyBhcyBiZWxvdyA6CiAgICAxLiBQYXNzIEFDUCBy ZWdpc3RlciBiYXNlIHRvIERNQSBhbmQgZHcgaTJzIGRyaXZlcnMKICAgICAgIGFzIElPUkVTT1VS Q0VfTUVNIHJlc291cmNlcy4KICAgIDIuIGFkZCBkdyBpMnMgYXMgYSBuZXcgbWZkIGNlbGwuCnY3 OiBzcGVjaWZ5IGJyb2tlbiBvdXQgZHcgcXVpcmtzIHRoYXQgYXBwbHkgdG8gQU1EIGhhcmR3YXJl CnY4OiBDaGFuZ2VzOgogICAgMS4gU2VsZWN0IE1GRF9DT1JFCiAgICAyLiB1c2UgZ2VuaXJxIGZv ciBBQ1AgaW50ZXJydXB0CiAgICAzLiBBZGQgc2VwYXJhdGUgY2VsbHMgZm9yIGR3cyBjYXB0dXJl IGFuZCBwbGF5YmFjawoKIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAgICAgICAgICAgICAg ICAgIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL0tjb25maWcgICAgICAgICAgICAg IHwgIDEwICsKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL01ha2VmaWxlICAgICAgICAgICAgIHwg ICA5ICsKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL2FjcF9ody5jICAgICAgICAgICAgIHwgIDUw ICsrKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9pbmNsdWRlL2FjcF9nZnhfaWYuaCB8ICAz NCArKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxlICAgICAgICAgIHwgIDEz ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgICB8ICAxMiAr KwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FjcC5jICAgICAgfCAyOTcgKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYWNwLmggICAgICB8ICA0MSArKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92aS5j ICAgICAgICAgICAgICB8ICAxMiArKwogZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FtZF9z aGFyZWQuaCAgICAgfCAgIDEgKwogMTEgZmlsZXMgY2hhbmdlZCwgNDgwIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2Fj cC9LY29uZmlnCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvTWFr ZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9hY3BfaHcu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL2luY2x1ZGUvYWNw X2dmeF9pZi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2FjcC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2FjcC5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcgYi9k cml2ZXJzL2dwdS9kcm0vS2NvbmZpZwppbmRleCBjNGJmOWExLi5iN2FkZDE1IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwpA QCAtMTYxLDYgKzE2MSw4IEBAIGNvbmZpZyBEUk1fQU1ER1BVCiAKIHNvdXJjZSAiZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZyIKIAorc291cmNlICJkcml2ZXJzL2dwdS9kcm0vYW1k L2FjcC9LY29uZmlnIgorCiBzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L0tjb25maWci CiAKIGNvbmZpZyBEUk1fSTgxMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3Av S2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL0tjb25maWcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMjhiNWU3MAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYWNwL0tjb25maWcKQEAgLTAsMCArMSwxMCBAQAorbWVudSAiQUNQIENvbmZp Z3VyYXRpb24iCisKK2NvbmZpZyBEUk1fQU1EX0FDUAorICAgICAgIGJvb2wgIkVuYWJsZSBBQ1Ag SVAgc3VwcG9ydCIKKyAgICAgICBkZWZhdWx0IHkKKyAgICAgICBzZWxlY3QgTUZEX0NPUkUKKyAg ICAgICBoZWxwCisJQ2hvb3NlIHRoaXMgb3B0aW9uIHRvIGVuYWJsZSBBQ1AgSVAgc3VwcG9ydCBm b3IgQU1EIFNPQ3MuCisKK2VuZG1lbnUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YWNwL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvTWFrZWZpbGUKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhjMzMwMwotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYWNwL01ha2VmaWxlCkBAIC0wLDAgKzEsOSBAQAorIworIyBNYWtl ZmlsZSBmb3IgdGhlIEFDUCwgd2hpY2ggaXMgYSBzdWItY29tcG9uZW50CisjIG9mIEFNRFNPQy9B TURHUFUgZHJtIGRyaXZlci4KKyMgSXQgcHJvdmlkZXMgdGhlIEhXIGNvbnRyb2wgZm9yIEFDUCBy ZWxhdGVkIGZ1bmN0aW9uYWxpdGllcy4KKworY2NmbGFncy15ICs9IC1JZHJpdmVycy9ncHUvZHJt L2FtZC9pbmNsdWRlL2FzaWNfcmVnL2FjcAorc3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoQU1EQUNQ UEFUSCkvIC1JJChBTURBQ1BQQVRIKS9pbmNsdWRlCisKK0FNRF9BQ1BfRklMRVMgOj0gJChBTURB Q1BQQVRIKS9hY3BfaHcubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvYWNw X2h3LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9hY3BfaHcuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi43YWY4M2YxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hY3AvYWNwX2h3LmMKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo dCAyMDE1IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg YQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs aWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl cm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8g c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92 ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu Y2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBT b2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAg SU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihT KSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisg KiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisg Ki8KKworI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2lu Y2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVk ZSA8bGludXgvZXJybm8uaD4KKworI2luY2x1ZGUgImFjcF9nZnhfaWYuaCIKKworI2RlZmluZSBB Q1BfTU9ERV9JMlMJMAorI2RlZmluZSBBQ1BfTU9ERV9BWgkxCisKKyNkZWZpbmUgbW1BQ1BfQVpB TElBX0kyU19TRUxFQ1QgMHg1MWQ0CisKK2ludCBhbWRfYWNwX2h3X2luaXQodm9pZCAqY2dzX2Rl dmljZSwKKwkJICAgIHVuc2lnbmVkIGFjcF92ZXJzaW9uX21ham9yLCB1bnNpZ25lZCBhY3BfdmVy c2lvbl9taW5vcikKK3sKKwl1bnNpZ25lZCBpbnQgYWNwX21vZGUgPSBBQ1BfTU9ERV9JMlM7CisK KwlpZiAoKGFjcF92ZXJzaW9uX21ham9yID09IDIpICYmIChhY3BfdmVyc2lvbl9taW5vciA9PSAy KSkKKwkJYWNwX21vZGUgPSBjZ3NfcmVhZF9yZWdpc3RlcihjZ3NfZGV2aWNlLAorCQkJCQltbUFD UF9BWkFMSUFfSTJTX1NFTEVDVCk7CisKKwlpZiAoYWNwX21vZGUgIT0gQUNQX01PREVfSTJTKQor CQlyZXR1cm4gLUVOT0RFVjsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hY3AvaW5jbHVkZS9hY3BfZ2Z4X2lmLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FjcC9pbmNsdWRlL2FjcF9nZnhfaWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5iY2NmNDdiCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3Av aW5jbHVkZS9hY3BfZ2Z4X2lmLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAy MDE1IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1 ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0 d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBC RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBX SEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBB UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisqLwor CisjaWZuZGVmIF9BQ1BfR0ZYX0lGX0gKKyNkZWZpbmUgX0FDUF9HRlhfSUZfSAorCisjaW5jbHVk ZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlICJjZ3NfbGludXguaCIKKyNpbmNsdWRlICJjZ3Nf Y29tbW9uLmgiCisKK2ludCBhbWRfYWNwX2h3X2luaXQodm9pZCAqY2dzX2RldmljZSwKKwkJICAg IHVuc2lnbmVkIGFjcF92ZXJzaW9uX21ham9yLCB1bnNpZ25lZCBhY3BfdmVyc2lvbl9taW5vcik7 CisKKyNlbmRpZiAvKiBfQUNQX0dGWF9JRl9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2Vm aWxlCmluZGV4IGE1YzNhYTAuLjU3N2QyNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2Vm aWxlCkBAIC03LDcgKzcsOCBAQCBGVUxMX0FNRF9QQVRIPSQoc3JjKS8uLgogY2NmbGFncy15IDo9 IC1JaW5jbHVkZS9kcm0gLUkkKEZVTExfQU1EX1BBVEgpL2luY2x1ZGUvYXNpY19yZWcgXAogCS1J JChGVUxMX0FNRF9QQVRIKS9pbmNsdWRlIFwKIAktSSQoRlVMTF9BTURfUEFUSCkvYW1kZ3B1IFwK LQktSSQoRlVMTF9BTURfUEFUSCkvc2NoZWR1bGVyCisJLUkkKEZVTExfQU1EX1BBVEgpL3NjaGVk dWxlciBcCisJLUkkKEZVTExfQU1EX1BBVEgpL2FjcC9pbmNsdWRlCiAKIGFtZGdwdS15IDo9IGFt ZGdwdV9kcnYubwogCkBAIC05MSw2ICs5MiwxNiBAQCBhbWRncHUteSArPSBcCiAJLi4vc2NoZWR1 bGVyL3NjaGVkX2ZlbmNlLm8gXAogCWFtZGdwdV9zY2hlZC5vCiAKKyMgQUNQIGNvbXBvbmV0Citp Zm5lcSAoJChDT05GSUdfRFJNX0FNRF9BQ1ApLCkKK2FtZGdwdS15ICs9IGFtZGdwdV9hY3Aubwor CitBTURBQ1BQQVRIIDo9IC4uL2FjcAoraW5jbHVkZSBkcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9N YWtlZmlsZQorCithbWRncHUteSArPSAkKEFNRF9BQ1BfRklMRVMpCitlbmRpZgorCiBhbWRncHUt JChDT05GSUdfQ09NUEFUKSArPSBhbWRncHVfaW9jMzIubwogYW1kZ3B1LSQoQ09ORklHX1ZHQV9T V0lUQ0hFUk9PKSArPSBhbWRncHVfYXRweF9oYW5kbGVyLm8KIGFtZGdwdS0kKENPTkZJR19BQ1BJ KSArPSBhbWRncHVfYWNwaS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4IDNi NWQzNzAuLmY5N2M2Y2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCkBAIC01Miw2 ICs1Miw3IEBACiAjaW5jbHVkZSAiYW1kZ3B1X2lycS5oIgogI2luY2x1ZGUgImFtZGdwdV91Y29k ZS5oIgogI2luY2x1ZGUgImFtZGdwdV9nZHMuaCIKKyNpbmNsdWRlICJhbWRncHVfYWNwLmgiCiAK ICNpbmNsdWRlICJncHVfc2NoZWR1bGVyLmgiCiAKQEAgLTE5MzgsNiArMTkzOSwxMyBAQCB2b2lk IGFtZGdwdV9jZ3NfZGVzdHJveV9kZXZpY2Uodm9pZCAqY2dzX2RldmljZSk7CiAKIAogLyoKKyAq IENHUworICovCit2b2lkICphbWRncHVfY2dzX2NyZWF0ZV9kZXZpY2Uoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpOwordm9pZCBhbWRncHVfY2dzX2Rlc3Ryb3lfZGV2aWNlKHZvaWQgKmNnc19k ZXZpY2UpOworCisKKy8qCiAgKiBDb3JlIHN0cnVjdHVyZSwgZnVuY3Rpb25zIGFuZCBoZWxwZXJz LgogICovCiB0eXBlZGVmIHVpbnQzMl90ICgqYW1kZ3B1X3JyZWdfdCkoc3RydWN0IGFtZGdwdV9k ZXZpY2UqLCB1aW50MzJfdCk7CkBAIC0xOTU3LDYgKzE5NjUsMTAgQEAgc3RydWN0IGFtZGdwdV9k ZXZpY2UgewogCXN0cnVjdCBkcm1fZGV2aWNlCQkqZGRldjsKIAlzdHJ1Y3QgcGNpX2RldgkJCSpw ZGV2OwogCisjaWZkZWYgQ09ORklHX0RSTV9BTURfQUNQCisJc3RydWN0IGFtZGdwdV9hY3AJCWFj cDsKKyNlbmRpZgorCiAJLyogQVNJQyAqLwogCWVudW0gYW1kX2FzaWNfdHlwZQkJYXNpY190eXBl OwogCXVpbnQzMl90CQkJZmFtaWx5OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2FjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Fj cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNWRjMTAKLS0tIC9kZXYv bnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYWNwLmMKQEAgLTAs MCArMSwyOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNSBBZHZhbmNlZCBNaWNybyBEZXZpY2Vz LCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0 byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGll cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICog U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF U1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09Q WVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFM SU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNp bmNsdWRlIDxsaW51eC9pcnFkb21haW4uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZp Y2UuaD4KKyNpbmNsdWRlIDxzb3VuZC9kZXNpZ253YXJlX2kycy5oPgorI2luY2x1ZGUgPHNvdW5k L3BjbS5oPgorCisjaW5jbHVkZSAiYW1kZ3B1LmgiCisjaW5jbHVkZSAiYXRvbS5oIgorI2luY2x1 ZGUgImFtZGdwdV9hY3AuaCIKKworI2luY2x1ZGUgImFjcF9nZnhfaWYuaCIKKworI2RlZmluZSBB Q1BfVElMRV9PTl9NQVNLICAgICAgICAgICAgICAgIDB4MDMKKyNkZWZpbmUgQUNQX1RJTEVfT0ZG X01BU0sgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIEFDUF9USUxFX09OX1JFVEFJTl9SRUdf TUFTSyAgICAgMHgxZgorI2RlZmluZSBBQ1BfVElMRV9PRkZfUkVUQUlOX1JFR19NQVNLICAgIDB4 MjAKKworI2RlZmluZSBBQ1BfVElMRV9QMV9NQVNLICAgICAgICAgICAgICAgIDB4M2UKKyNkZWZp bmUgQUNQX1RJTEVfUDJfTUFTSyAgICAgICAgICAgICAgICAweDNkCisjZGVmaW5lIEFDUF9USUxF X0RTUDBfTUFTSyAgICAgICAgICAgICAgMHgzYgorI2RlZmluZSBBQ1BfVElMRV9EU1AxX01BU0sg ICAgICAgICAgICAgIDB4MzcKKworI2RlZmluZSBBQ1BfVElMRV9EU1AyX01BU0sgICAgICAgICAg ICAgIDB4MmYKKworI2RlZmluZSBBQ1BfRE1BX1JFR1NfRU5ECQkweDE0NmMwCisjZGVmaW5lIEFD UF9JMlNfUExBWV9SRUdTX1NUQVJUCQkweDE0ODQwCisjZGVmaW5lIEFDUF9JMlNfUExBWV9SRUdT X0VORAkJMHgxNDhiNAorI2RlZmluZSBBQ1BfSTJTX0NBUF9SRUdTX1NUQVJUCQkweDE0OGI4Cisj ZGVmaW5lIEFDUF9JMlNfQ0FQX1JFR1NfRU5ECQkweDE0OTZjCisKKyNkZWZpbmUgQUNQX0kyU19D T01QMV9DQVBfUkVHX09GRlNFVAkweDI0OAorI2RlZmluZSBBQ1BfSTJTX0NPTVAyX0NBUF9SRUdf T0ZGU0VUCTB4YTgKKyNkZWZpbmUgQUNQX0kyU19DT01QMV9QTEFZX1JFR19PRkZTRVQJMHg2Ywor I2RlZmluZSBBQ1BfSTJTX0NPTVAyX1BMQVlfUkVHX09GRlNFVAkweDY4CisKKyNkZWZpbmUgbW1B Q1BfUEdGU01fUkVUQUlOX1JFRwkJMHg1MWM5CisjZGVmaW5lIG1tQUNQX1BHRlNNX0NPTkZJR19S RUcJCTB4NTFjYQorI2RlZmluZSBtbUFDUF9QR0ZTTV9SRUFEX1JFR18wCQkweDUxY2MKKworI2Rl ZmluZSBtbUFDUF9NRU1fU0hVVF9ET1dOX1JFUV9MTwkweDUxZjgKKyNkZWZpbmUgbW1BQ1BfTUVN X1NIVVRfRE9XTl9SRVFfSEkJMHg1MWY5CisjZGVmaW5lIG1tQUNQX01FTV9TSFVUX0RPV05fU1RT X0xPCTB4NTFmYQorI2RlZmluZSBtbUFDUF9NRU1fU0hVVF9ET1dOX1NUU19ISQkweDUxZmIKKwor I2RlZmluZSBBQ1BfVElNRU9VVF9MT09QCQkweDAwMDAwMEZGCisjZGVmaW5lIEFDUF9ERVZTCQkJ MworI2RlZmluZSBBQ1BfU1JDX0lECQkJMTYyCisKK2VudW0geworCUFDUF9USUxFX1AxID0gMCwK KwlBQ1BfVElMRV9QMiwKKwlBQ1BfVElMRV9EU1AwLAorCUFDUF9USUxFX0RTUDEsCisJQUNQX1RJ TEVfRFNQMiwKK307CisKK3N0YXRpYyBpbnQgYWNwX3N3X2luaXQodm9pZCAqaGFuZGxlKQorewor CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFu ZGxlOworCisJYWRldi0+YWNwLnBhcmVudCA9IGFkZXYtPmRldjsKKworCWFkZXYtPmFjcC5jZ3Nf ZGV2aWNlID0KKwkJYW1kZ3B1X2Nnc19jcmVhdGVfZGV2aWNlKGFkZXYpOworCWlmICghYWRldi0+ YWNwLmNnc19kZXZpY2UpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgYWNwX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQoreworCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCisJaWYgKGFkZXYt PmFjcC5jZ3NfZGV2aWNlKQorCQlhbWRncHVfY2dzX2Rlc3Ryb3lfZGV2aWNlKGFkZXYtPmFjcC5j Z3NfZGV2aWNlKTsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIGFjcF9od19pbml0IC0gc3Rh cnQgYW5kIHRlc3QgQUNQIGJsb2NrCisgKgorICogQGFkZXY6IGFtZGdwdV9kZXZpY2UgcG9pbnRl cgorICoKKyAqLworc3RhdGljIGludCBhY3BfaHdfaW5pdCh2b2lkICpoYW5kbGUpCit7CisJaW50 IHI7CisJdWludDY0X3QgYWNwX2Jhc2U7CisJc3RydWN0IGkyc19wbGF0Zm9ybV9kYXRhICppMnNf cGRhdGE7CisKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqKWhhbmRsZTsKKworCWNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiAq aXBfdmVyc2lvbiA9CisJCWFtZGdwdV9nZXRfaXBfYmxvY2soYWRldiwgQU1EX0lQX0JMT0NLX1RZ UEVfQUNQKTsKKworCWlmICghaXBfdmVyc2lvbikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyID0g YW1kX2FjcF9od19pbml0KGFkZXYtPmFjcC5jZ3NfZGV2aWNlLAorCQkJICAgIGlwX3ZlcnNpb24t Pm1ham9yLCBpcF92ZXJzaW9uLT5taW5vcik7CisJLyogLUVOT0RFViBtZWFucyBib2FyZCB1c2Vz IEFaIHJhdGhlciB0aGFuIEFDUCAqLworCWlmIChyID09IC1FTk9ERVYpCisJCXJldHVybiAwOwor CWVsc2UgaWYgKHIpCisJCXJldHVybiByOworCisJciA9IGNnc19nZXRfcGNpX3Jlc291cmNlKGFk ZXYtPmFjcC5jZ3NfZGV2aWNlLCBDR1NfUkVTT1VSQ0VfVFlQRV9NTUlPLAorCQkJMHg1Mjg5LCAw LCAmYWNwX2Jhc2UpOworCWlmIChyID09IC1FTk9ERVYpCisJCXJldHVybiAwOworCWVsc2UgaWYg KHIpCisJCXJldHVybiByOworCisJYWRldi0+YWNwLmFjcF9jZWxsID0ga3phbGxvYyhzaXplb2Yo c3RydWN0IG1mZF9jZWxsKSAqIEFDUF9ERVZTLAorCQkJCQkJCUdGUF9LRVJORUwpOworCisJaWYg KGFkZXYtPmFjcC5hY3BfY2VsbCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWFkZXYt PmFjcC5hY3BfcmVzID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHJlc291cmNlKSAqIDQsIEdGUF9L RVJORUwpOworCisJaWYgKGFkZXYtPmFjcC5hY3BfcmVzID09IE5VTEwpIHsKKwkJa2ZyZWUoYWRl di0+YWNwLmFjcF9jZWxsKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJaTJzX3BkYXRhID0g a3phbGxvYyhzaXplb2Yoc3RydWN0IGkyc19wbGF0Zm9ybV9kYXRhKSAqIDIsIEdGUF9LRVJORUwp OworCWlmIChpMnNfcGRhdGEgPT0gTlVMTCkgeworCQlrZnJlZShhZGV2LT5hY3AuYWNwX3Jlcyk7 CisJCWtmcmVlKGFkZXYtPmFjcC5hY3BfY2VsbCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwor CWkyc19wZGF0YVswXS5xdWlya3MgPSBEV19JMlNfUVVJUktfQ09NUF9SRUdfT0ZGU0VUOworCWky c19wZGF0YVswXS5jYXAgPSBEV0NfSTJTX1BMQVk7CisJaTJzX3BkYXRhWzBdLnNuZF9yYXRlcyA9 IFNORFJWX1BDTV9SQVRFXzgwMDBfOTYwMDA7CisJaTJzX3BkYXRhWzBdLmkyc19yZWdfY29tcDEg PSBBQ1BfSTJTX0NPTVAxX1BMQVlfUkVHX09GRlNFVDsKKwlpMnNfcGRhdGFbMF0uaTJzX3JlZ19j b21wMiA9IEFDUF9JMlNfQ09NUDJfUExBWV9SRUdfT0ZGU0VUOworCisJaTJzX3BkYXRhWzFdLnF1 aXJrcyA9IERXX0kyU19RVUlSS19DT01QX1JFR19PRkZTRVQ7CisJaTJzX3BkYXRhWzFdLmNhcCA9 IERXQ19JMlNfUkVDT1JEOworCWkyc19wZGF0YVsxXS5zbmRfcmF0ZXMgPSBTTkRSVl9QQ01fUkFU RV84MDAwXzk2MDAwOworCWkyc19wZGF0YVsxXS5pMnNfcmVnX2NvbXAxID0gQUNQX0kyU19DT01Q MV9DQVBfUkVHX09GRlNFVDsKKwlpMnNfcGRhdGFbMV0uaTJzX3JlZ19jb21wMiA9IEFDUF9JMlNf Q09NUDJfQ0FQX1JFR19PRkZTRVQ7CisKKwlhZGV2LT5hY3AuYWNwX3Jlc1swXS5uYW1lID0gImFj cDJ4X2RtYSI7CisJYWRldi0+YWNwLmFjcF9yZXNbMF0uZmxhZ3MgPSBJT1JFU09VUkNFX01FTTsK KwlhZGV2LT5hY3AuYWNwX3Jlc1swXS5zdGFydCA9IGFjcF9iYXNlOworCWFkZXYtPmFjcC5hY3Bf cmVzWzBdLmVuZCA9IGFjcF9iYXNlICsgQUNQX0RNQV9SRUdTX0VORDsKKworCWFkZXYtPmFjcC5h Y3BfcmVzWzFdLm5hbWUgPSAiYWNwMnhfZHdfaTJzX3BsYXkiOworCWFkZXYtPmFjcC5hY3BfcmVz WzFdLmZsYWdzID0gSU9SRVNPVVJDRV9NRU07CisJYWRldi0+YWNwLmFjcF9yZXNbMV0uc3RhcnQg PSBhY3BfYmFzZSArIEFDUF9JMlNfUExBWV9SRUdTX1NUQVJUOworCWFkZXYtPmFjcC5hY3BfcmVz WzFdLmVuZCA9IGFjcF9iYXNlICsgQUNQX0kyU19QTEFZX1JFR1NfRU5EOworCisJYWRldi0+YWNw LmFjcF9yZXNbMl0ubmFtZSA9ICJhY3AyeF9kd19pMnNfY2FwIjsKKwlhZGV2LT5hY3AuYWNwX3Jl c1syXS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOworCWFkZXYtPmFjcC5hY3BfcmVzWzJdLnN0YXJ0 ID0gYWNwX2Jhc2UgKyBBQ1BfSTJTX0NBUF9SRUdTX1NUQVJUOworCWFkZXYtPmFjcC5hY3BfcmVz WzJdLmVuZCA9IGFjcF9iYXNlICsgQUNQX0kyU19DQVBfUkVHU19FTkQ7CisKKwlhZGV2LT5hY3Au YWNwX3Jlc1szXS5uYW1lID0gImFjcDJ4X2RtYV9pcnEiOworCWFkZXYtPmFjcC5hY3BfcmVzWzNd LmZsYWdzID0gSU9SRVNPVVJDRV9JUlE7CisJYWRldi0+YWNwLmFjcF9yZXNbM10uc3RhcnQgPSBh bWRncHVfaXJxX2NyZWF0ZV9tYXBwaW5nKGFkZXYsIDE2Mik7CisJYWRldi0+YWNwLmFjcF9yZXNb M10uZW5kID0gYWRldi0+YWNwLmFjcF9yZXNbM10uc3RhcnQ7CisKKwlhZGV2LT5hY3AuYWNwX2Nl bGxbMF0ubmFtZSA9ICJhY3BfYXVkaW9fZG1hIjsKKwlhZGV2LT5hY3AuYWNwX2NlbGxbMF0ubnVt X3Jlc291cmNlcyA9IDQ7CisJYWRldi0+YWNwLmFjcF9jZWxsWzBdLnJlc291cmNlcyA9ICZhZGV2 LT5hY3AuYWNwX3Jlc1swXTsKKworCWFkZXYtPmFjcC5hY3BfY2VsbFsxXS5uYW1lID0gImRlc2ln bndhcmUtaTJzIjsKKwlhZGV2LT5hY3AuYWNwX2NlbGxbMV0ubnVtX3Jlc291cmNlcyA9IDE7CisJ YWRldi0+YWNwLmFjcF9jZWxsWzFdLnJlc291cmNlcyA9ICZhZGV2LT5hY3AuYWNwX3Jlc1sxXTsK KwlhZGV2LT5hY3AuYWNwX2NlbGxbMV0ucGxhdGZvcm1fZGF0YSA9ICZpMnNfcGRhdGFbMF07CisJ YWRldi0+YWNwLmFjcF9jZWxsWzFdLnBkYXRhX3NpemUgPSBzaXplb2Yoc3RydWN0IGkyc19wbGF0 Zm9ybV9kYXRhKTsKKworCWFkZXYtPmFjcC5hY3BfY2VsbFsyXS5uYW1lID0gImRlc2lnbndhcmUt aTJzIjsKKwlhZGV2LT5hY3AuYWNwX2NlbGxbMl0ubnVtX3Jlc291cmNlcyA9IDE7CisJYWRldi0+ YWNwLmFjcF9jZWxsWzJdLnJlc291cmNlcyA9ICZhZGV2LT5hY3AuYWNwX3Jlc1syXTsKKwlhZGV2 LT5hY3AuYWNwX2NlbGxbMl0ucGxhdGZvcm1fZGF0YSA9ICZpMnNfcGRhdGFbMV07CisJYWRldi0+ YWNwLmFjcF9jZWxsWzJdLnBkYXRhX3NpemUgPSBzaXplb2Yoc3RydWN0IGkyc19wbGF0Zm9ybV9k YXRhKTsKKworCXIgPSBtZmRfYWRkX2hvdHBsdWdfZGV2aWNlcyhhZGV2LT5hY3AucGFyZW50LCBh ZGV2LT5hY3AuYWNwX2NlbGwsCisJCQkJCQkJCUFDUF9ERVZTKTsKKwlpZiAocikKKwkJcmV0dXJu IHI7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBhY3BfaHdfZmluaSAtIHN0b3AgdGhlIGhh cmR3YXJlIGJsb2NrCisgKgorICogQGFkZXY6IGFtZGdwdV9kZXZpY2UgcG9pbnRlcgorICoKKyAq Lworc3RhdGljIGludCBhY3BfaHdfZmluaSh2b2lkICpoYW5kbGUpCit7CisJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKKwltZmRf cmVtb3ZlX2RldmljZXMoYWRldi0+YWNwLnBhcmVudCk7CisJa2ZyZWUoYWRldi0+YWNwLmFjcF9y ZXMpOworCWtmcmVlKGFkZXYtPmFjcC5hY3BfY2VsbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIGludCBhY3Bfc3VzcGVuZCh2b2lkICpoYW5kbGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgYWNwX3Jlc3VtZSh2b2lkICpoYW5kbGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgYWNwX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQoreworCXJldHVybiAwOworfQor CitzdGF0aWMgYm9vbCBhY3BfaXNfaWRsZSh2b2lkICpoYW5kbGUpCit7CisJcmV0dXJuIHRydWU7 Cit9CisKK3N0YXRpYyBpbnQgYWNwX3dhaXRfZm9yX2lkbGUodm9pZCAqaGFuZGxlKQoreworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IGFjcF9zb2Z0X3Jlc2V0KHZvaWQgKmhhbmRsZSkKK3sK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYWNwX3ByaW50X3N0YXR1cyh2b2lkICpoYW5k bGUpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKiloYW5kbGU7CisKKwlkZXZfaW5mbyhhZGV2LT5kZXYsICJBQ1AgU1RBVFVTXG4iKTsKK30K Kworc3RhdGljIGludCBhY3Bfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJ CQkgICAgIGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQoreworCXJldHVybiAwOwor fQorCitzdGF0aWMgaW50IGFjcF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAor CQkJCSAgICAgZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCit7CisJcmV0dXJuIDA7 Cit9CisKK2NvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgYWNwX2lwX2Z1bmNzID0geworCS5lYXJs eV9pbml0ID0gYWNwX2Vhcmx5X2luaXQsCisJLmxhdGVfaW5pdCA9IE5VTEwsCisJLnN3X2luaXQg PSBhY3Bfc3dfaW5pdCwKKwkuc3dfZmluaSA9IGFjcF9zd19maW5pLAorCS5od19pbml0ID0gYWNw X2h3X2luaXQsCisJLmh3X2ZpbmkgPSBhY3BfaHdfZmluaSwKKwkuc3VzcGVuZCA9IGFjcF9zdXNw ZW5kLAorCS5yZXN1bWUgPSBhY3BfcmVzdW1lLAorCS5pc19pZGxlID0gYWNwX2lzX2lkbGUsCisJ LndhaXRfZm9yX2lkbGUgPSBhY3Bfd2FpdF9mb3JfaWRsZSwKKwkuc29mdF9yZXNldCA9IGFjcF9z b2Z0X3Jlc2V0LAorCS5wcmludF9zdGF0dXMgPSBhY3BfcHJpbnRfc3RhdHVzLAorCS5zZXRfY2xv Y2tnYXRpbmdfc3RhdGUgPSBhY3Bfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlLAorCS5zZXRfcG93ZXJn YXRpbmdfc3RhdGUgPSBhY3Bfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlLAorfTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hY3AuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9hY3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4yNDk1MmVkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2FjcC5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNSBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp bgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVW RU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElB QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhF UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lO RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg VVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9y czogQU1ECisgKgorICovCisKKyNpZm5kZWYgX19BTURHUFVfQUNQX0hfXworI2RlZmluZSBfX0FN REdQVV9BQ1BfSF9fCisKKyNpbmNsdWRlIDxsaW51eC9tZmQvY29yZS5oPgorCitzdHJ1Y3QgYW1k Z3B1X2FjcCB7CisJc3RydWN0IGRldmljZSAqcGFyZW50OworCXZvaWQgKmNnc19kZXZpY2U7CisJ c3RydWN0IGFtZF9hY3BfcHJpdmF0ZSAqcHJpdmF0ZTsKKwlzdHJ1Y3QgbWZkX2NlbGwgKmFjcF9j ZWxsOworCXN0cnVjdCByZXNvdXJjZSAqYWNwX3JlczsKK307CisKK2V4dGVybiBjb25zdCBzdHJ1 Y3QgYW1kX2lwX2Z1bmNzIGFjcF9pcF9mdW5jczsKKworI2VuZGlmIC8qIF9fQU1ER1BVX0FDUF9I X18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92aS5jCmluZGV4IGJmNWJkOTMuLjUwOWNjZGMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvdmkuYwpAQCAtNzEsNiArNzEsOSBAQAogI2luY2x1ZGUgInV2ZF92NV8w LmgiCiAjaW5jbHVkZSAidXZkX3Y2XzAuaCIKICNpbmNsdWRlICJ2Y2VfdjNfMC5oIgorI2lmIGRl ZmluZWQoQ09ORklHX0RSTV9BTURfQUNQKQorI2luY2x1ZGUgImFtZGdwdV9hY3AuaCIKKyNlbmRp ZgogCiAvKgogICogSW5kaXJlY3QgcmVnaXN0ZXJzIGFjY2Vzc29yCkBAIC0xMzUwLDYgKzEzNTMs MTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiBjel9pcF9i bG9ja3NbXSA9CiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmdmNlX3YzXzBfaXBfZnVuY3MsCiAJ fSwKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0FDUCkKKwl7CisJCS50eXBlID0gQU1EX0lQ X0JMT0NLX1RZUEVfQUNQLAorCQkubWFqb3IgPSAyLAorCQkubWlub3IgPSAyLAorCQkucmV2ID0g MCwKKwkJLmZ1bmNzID0gJmFjcF9pcF9mdW5jcywKKwl9LAorI2VuZGlmCiB9OwogCiBpbnQgdmlf c2V0X2lwX2Jsb2NrcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hbWRfc2hhcmVkLmggYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2luY2x1ZGUvYW1kX3NoYXJlZC5oCmluZGV4IGZlMjhmYjMuLjJkN2RmODUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hbWRfc2hhcmVkLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FtZF9zaGFyZWQuaApAQCAtNzMsNiArNzMsNyBAQCBlbnVt IGFtZF9pcF9ibG9ja190eXBlIHsKIAlBTURfSVBfQkxPQ0tfVFlQRV9TRE1BLAogCUFNRF9JUF9C TE9DS19UWVBFX1VWRCwKIAlBTURfSVBfQkxPQ0tfVFlQRV9WQ0UsCisJQU1EX0lQX0JMT0NLX1RZ UEVfQUNQLAogfTsKIAogZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgewotLSAKMS44LjMuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK