From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 4/9] drm/amd: add ACP driver support Date: Fri, 8 Jan 2016 18:22:06 -0500 Message-ID: <1452295331-28476-5-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 , 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 IGFuZCBwbGF5YmFjawp2OTogZHJvcCBzdGFsZSBpbmNsdWRlIHBhdGgKdjEwOiBhZGQgRFdfSTJT X1FVSVJLX0NPTVBfUEFSQU0xIHNldHRpbmcKCiBkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9LY29uZmln ICAgICAgICAgICAgICB8ICAxMCArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9NYWtlZmlsZSAg ICAgICAgICAgICB8ICAgOCArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9hY3BfaHcuYyAgICAg ICAgICAgICB8ICA1MCArKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvaW5jbHVkZS9hY3Bf Z2Z4X2lmLmggfCAgMzQgKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZSAg ICAgICAgICB8ICAxMyArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggICAg ICAgICAgfCAgMTIgKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hY3AuYyAg ICAgIHwgMjk4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FjcC5oICAgICAgfCAgNDEgKysrKwogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvdmkuYyAgICAgICAgICAgICAgfCAgMTIgKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQv aW5jbHVkZS9hbWRfc2hhcmVkLmggICAgIHwgICAxICsKIDExIGZpbGVzIGNoYW5nZWQsIDQ4MCBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n cHUvZHJtL2FtZC9hY3AvS2NvbmZpZwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYWNwL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2Ft ZC9hY3AvYWNwX2h3LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2Fj cC9pbmNsdWRlL2FjcF9nZnhfaWYuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9hY3AuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hY3AuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKaW5kZXggNTliYWJkNS4uMDFmNWRi NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUv ZHJtL0tjb25maWcKQEAgLTE2Miw2ICsxNjIsOCBAQCBjb25maWcgRFJNX0FNREdQVQogc291cmNl ICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9LY29uZmlnIgogc291cmNlICJkcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9LY29uZmlnIgogCitzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS9h bWQvYWNwL0tjb25maWciCisKIHNvdXJjZSAiZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvS2NvbmZp ZyIKIAogY29uZmlnIERSTV9JODEwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Fj cC9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvS2NvbmZpZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGI1ZTcwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hY3AvS2NvbmZpZwpAQCAtMCwwICsxLDEwIEBACittZW51ICJBQ1AgQ29u ZmlndXJhdGlvbiIKKworY29uZmlnIERSTV9BTURfQUNQCisgICAgICAgYm9vbCAiRW5hYmxlIEFD UCBJUCBzdXBwb3J0IgorICAgICAgIGRlZmF1bHQgeQorICAgICAgIHNlbGVjdCBNRkRfQ09SRQor ICAgICAgIGhlbHAKKwlDaG9vc2UgdGhpcyBvcHRpb24gdG8gZW5hYmxlIEFDUCBJUCBzdXBwb3J0 IGZvciBBTUQgU09Dcy4KKworZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hY3AvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9NYWtlZmlsZQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzYzY2I1Ci0tLSAvZGV2L251bGwKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvTWFrZWZpbGUKQEAgLTAsMCArMSw4IEBACisjCisjIE1h a2VmaWxlIGZvciB0aGUgQUNQLCB3aGljaCBpcyBhIHN1Yi1jb21wb25lbnQKKyMgb2YgQU1EU09D L0FNREdQVSBkcm0gZHJpdmVyLgorIyBJdCBwcm92aWRlcyB0aGUgSFcgY29udHJvbCBmb3IgQUNQ IHJlbGF0ZWQgZnVuY3Rpb25hbGl0aWVzLgorCitzdWJkaXItY2NmbGFncy15ICs9IC1JJChBTURB Q1BQQVRIKS8gLUkkKEFNREFDUFBBVEgpL2luY2x1ZGUKKworQU1EX0FDUF9GSUxFUyA6PSAkKEFN REFDUFBBVEgpL2FjcF9ody5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9h Y3BfaHcuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL2FjcF9ody5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZjgzZjEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FjcC9hY3BfaHcuYwpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp Z2h0IDIwMTUgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv biBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1 YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8g cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg aW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl IFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJ TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwK KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu ICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9S KFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwK KyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoK KyAqLworCisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cisj aW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNs dWRlIDxsaW51eC9lcnJuby5oPgorCisjaW5jbHVkZSAiYWNwX2dmeF9pZi5oIgorCisjZGVmaW5l IEFDUF9NT0RFX0kyUwkwCisjZGVmaW5lIEFDUF9NT0RFX0FaCTEKKworI2RlZmluZSBtbUFDUF9B WkFMSUFfSTJTX1NFTEVDVCAweDUxZDQKKworaW50IGFtZF9hY3BfaHdfaW5pdCh2b2lkICpjZ3Nf ZGV2aWNlLAorCQkgICAgdW5zaWduZWQgYWNwX3ZlcnNpb25fbWFqb3IsIHVuc2lnbmVkIGFjcF92 ZXJzaW9uX21pbm9yKQoreworCXVuc2lnbmVkIGludCBhY3BfbW9kZSA9IEFDUF9NT0RFX0kyUzsK KworCWlmICgoYWNwX3ZlcnNpb25fbWFqb3IgPT0gMikgJiYgKGFjcF92ZXJzaW9uX21pbm9yID09 IDIpKQorCQlhY3BfbW9kZSA9IGNnc19yZWFkX3JlZ2lzdGVyKGNnc19kZXZpY2UsCisJCQkJCW1t QUNQX0FaQUxJQV9JMlNfU0VMRUNUKTsKKworCWlmIChhY3BfbW9kZSAhPSBBQ1BfTU9ERV9JMlMp CisJCXJldHVybiAtRU5PREVWOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FjcC9pbmNsdWRlL2FjcF9nZnhfaWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYWNwL2luY2x1ZGUvYWNwX2dmeF9pZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmJjY2Y0N2IKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Fj cC9pbmNsdWRlL2FjcF9nZnhfaWYuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0 IDIwMTUgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh CisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j bHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMp IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAq IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyov CisKKyNpZm5kZWYgX0FDUF9HRlhfSUZfSAorI2RlZmluZSBfQUNQX0dGWF9JRl9ICisKKyNpbmNs dWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgImNnc19saW51eC5oIgorI2luY2x1ZGUgImNn c19jb21tb24uaCIKKworaW50IGFtZF9hY3BfaHdfaW5pdCh2b2lkICpjZ3NfZGV2aWNlLAorCQkg ICAgdW5zaWduZWQgYWNwX3ZlcnNpb25fbWFqb3IsIHVuc2lnbmVkIGFjcF92ZXJzaW9uX21pbm9y KTsKKworI2VuZGlmIC8qIF9BQ1BfR0ZYX0lGX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFr ZWZpbGUKaW5kZXggNjZmNzI5ZS4uMzQ4YmQ1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFr ZWZpbGUKQEAgLTgsNyArOCw4IEBAIGNjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtIC1JJChGVUxM X0FNRF9QQVRIKS9pbmNsdWRlL2FzaWNfcmVnIFwKIAktSSQoRlVMTF9BTURfUEFUSCkvaW5jbHVk ZSBcCiAJLUkkKEZVTExfQU1EX1BBVEgpL2FtZGdwdSBcCiAJLUkkKEZVTExfQU1EX1BBVEgpL3Nj aGVkdWxlciBcCi0JLUkkKEZVTExfQU1EX1BBVEgpL3Bvd2VycGxheS9pbmMKKwktSSQoRlVMTF9B TURfUEFUSCkvcG93ZXJwbGF5L2luYyBcCisJLUkkKEZVTExfQU1EX1BBVEgpL2FjcC9pbmNsdWRl CiAKIGFtZGdwdS15IDo9IGFtZGdwdV9kcnYubwogCkBAIC05Myw2ICs5NCwxNiBAQCBhbWRncHUt eSArPSBcCiAJLi4vc2NoZWR1bGVyL3NjaGVkX2ZlbmNlLm8gXAogCWFtZGdwdV9zY2hlZC5vCiAK KyMgQUNQIGNvbXBvbmV0CitpZm5lcSAoJChDT05GSUdfRFJNX0FNRF9BQ1ApLCkKK2FtZGdwdS15 ICs9IGFtZGdwdV9hY3AubworCitBTURBQ1BQQVRIIDo9IC4uL2FjcAoraW5jbHVkZSAkKEZVTExf QU1EX1BBVEgpL2FjcC9NYWtlZmlsZQorCithbWRncHUteSArPSAkKEFNRF9BQ1BfRklMRVMpCitl bmRpZgorCiBhbWRncHUtJChDT05GSUdfQ09NUEFUKSArPSBhbWRncHVfaW9jMzIubwogYW1kZ3B1 LSQoQ09ORklHX1ZHQV9TV0lUQ0hFUk9PKSArPSBhbWRncHVfYXRweF9oYW5kbGVyLm8KIGFtZGdw dS0kKENPTkZJR19BQ1BJKSArPSBhbWRncHVfYWNwaS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oCmluZGV4IDAwMzk1OWYuLmE2ZWI3ODRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHUuaApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgImFtZGdwdV91Y29kZS5oIgogI2lu Y2x1ZGUgImFtZGdwdV9nZHMuaCIKICNpbmNsdWRlICJhbWRfcG93ZXJwbGF5LmgiCisjaW5jbHVk ZSAiYW1kZ3B1X2FjcC5oIgogCiAjaW5jbHVkZSAiZ3B1X3NjaGVkdWxlci5oIgogCkBAIC0xOTIz LDYgKzE5MjQsMTMgQEAgdm9pZCBhbWRncHVfY2dzX2Rlc3Ryb3lfZGV2aWNlKHZvaWQgKmNnc19k ZXZpY2UpOwogCiAKIC8qCisgKiBDR1MKKyAqLwordm9pZCAqYW1kZ3B1X2Nnc19jcmVhdGVfZGV2 aWNlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKK3ZvaWQgYW1kZ3B1X2Nnc19kZXN0cm95 X2RldmljZSh2b2lkICpjZ3NfZGV2aWNlKTsKKworCisvKgogICogQ29yZSBzdHJ1Y3R1cmUsIGZ1 bmN0aW9ucyBhbmQgaGVscGVycy4KICAqLwogdHlwZWRlZiB1aW50MzJfdCAoKmFtZGdwdV9ycmVn X3QpKHN0cnVjdCBhbWRncHVfZGV2aWNlKiwgdWludDMyX3QpOwpAQCAtMTk0Miw2ICsxOTUwLDEw IEBAIHN0cnVjdCBhbWRncHVfZGV2aWNlIHsKIAlzdHJ1Y3QgZHJtX2RldmljZQkJKmRkZXY7CiAJ c3RydWN0IHBjaV9kZXYJCQkqcGRldjsKIAorI2lmZGVmIENPTkZJR19EUk1fQU1EX0FDUAorCXN0 cnVjdCBhbWRncHVfYWNwCQlhY3A7CisjZW5kaWYKKwogCS8qIEFTSUMgKi8KIAllbnVtIGFtZF9h c2ljX3R5cGUJCWFzaWNfdHlwZTsKIAl1aW50MzJfdAkJCWZhbWlseTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hY3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9hY3AuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li43MWYyNmU5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2FjcC5jCkBAIC0wLDAgKzEsMjk4IEBACisvKgorICogQ29weXJpZ2h0IDIwMTUgQWR2 YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5 IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2Us IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisg KiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4K KyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgor ICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcg RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6 IEFNRAorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvaXJxZG9tYWluLmg+CisjaW5jbHVkZSA8 bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8c291bmQvZGVzaWdud2FyZV9pMnMu aD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKworI2luY2x1ZGUgImFtZGdwdS5oIgorI2luY2x1 ZGUgImF0b20uaCIKKyNpbmNsdWRlICJhbWRncHVfYWNwLmgiCisKKyNpbmNsdWRlICJhY3BfZ2Z4 X2lmLmgiCisKKyNkZWZpbmUgQUNQX1RJTEVfT05fTUFTSyAgICAgICAgICAgICAgICAweDAzCisj ZGVmaW5lIEFDUF9USUxFX09GRl9NQVNLICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBBQ1Bf VElMRV9PTl9SRVRBSU5fUkVHX01BU0sgICAgIDB4MWYKKyNkZWZpbmUgQUNQX1RJTEVfT0ZGX1JF VEFJTl9SRUdfTUFTSyAgICAweDIwCisKKyNkZWZpbmUgQUNQX1RJTEVfUDFfTUFTSyAgICAgICAg ICAgICAgICAweDNlCisjZGVmaW5lIEFDUF9USUxFX1AyX01BU0sgICAgICAgICAgICAgICAgMHgz ZAorI2RlZmluZSBBQ1BfVElMRV9EU1AwX01BU0sgICAgICAgICAgICAgIDB4M2IKKyNkZWZpbmUg QUNQX1RJTEVfRFNQMV9NQVNLICAgICAgICAgICAgICAweDM3CisKKyNkZWZpbmUgQUNQX1RJTEVf RFNQMl9NQVNLICAgICAgICAgICAgICAweDJmCisKKyNkZWZpbmUgQUNQX0RNQV9SRUdTX0VORAkJ MHgxNDZjMAorI2RlZmluZSBBQ1BfSTJTX1BMQVlfUkVHU19TVEFSVAkJMHgxNDg0MAorI2RlZmlu ZSBBQ1BfSTJTX1BMQVlfUkVHU19FTkQJCTB4MTQ4YjQKKyNkZWZpbmUgQUNQX0kyU19DQVBfUkVH U19TVEFSVAkJMHgxNDhiOAorI2RlZmluZSBBQ1BfSTJTX0NBUF9SRUdTX0VORAkJMHgxNDk2Ywor CisjZGVmaW5lIEFDUF9JMlNfQ09NUDFfQ0FQX1JFR19PRkZTRVQJMHhhYworI2RlZmluZSBBQ1Bf STJTX0NPTVAyX0NBUF9SRUdfT0ZGU0VUCTB4YTgKKyNkZWZpbmUgQUNQX0kyU19DT01QMV9QTEFZ X1JFR19PRkZTRVQJMHg2YworI2RlZmluZSBBQ1BfSTJTX0NPTVAyX1BMQVlfUkVHX09GRlNFVAkw eDY4CisKKyNkZWZpbmUgbW1BQ1BfUEdGU01fUkVUQUlOX1JFRwkJMHg1MWM5CisjZGVmaW5lIG1t QUNQX1BHRlNNX0NPTkZJR19SRUcJCTB4NTFjYQorI2RlZmluZSBtbUFDUF9QR0ZTTV9SRUFEX1JF R18wCQkweDUxY2MKKworI2RlZmluZSBtbUFDUF9NRU1fU0hVVF9ET1dOX1JFUV9MTwkweDUxZjgK KyNkZWZpbmUgbW1BQ1BfTUVNX1NIVVRfRE9XTl9SRVFfSEkJMHg1MWY5CisjZGVmaW5lIG1tQUNQ X01FTV9TSFVUX0RPV05fU1RTX0xPCTB4NTFmYQorI2RlZmluZSBtbUFDUF9NRU1fU0hVVF9ET1dO X1NUU19ISQkweDUxZmIKKworI2RlZmluZSBBQ1BfVElNRU9VVF9MT09QCQkweDAwMDAwMEZGCisj ZGVmaW5lIEFDUF9ERVZTCQkJMworI2RlZmluZSBBQ1BfU1JDX0lECQkJMTYyCisKK2VudW0gewor CUFDUF9USUxFX1AxID0gMCwKKwlBQ1BfVElMRV9QMiwKKwlBQ1BfVElMRV9EU1AwLAorCUFDUF9U SUxFX0RTUDEsCisJQUNQX1RJTEVfRFNQMiwKK307CisKK3N0YXRpYyBpbnQgYWNwX3N3X2luaXQo dm9pZCAqaGFuZGxlKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOworCisJYWRldi0+YWNwLnBhcmVudCA9IGFkZXYtPmRldjsK KworCWFkZXYtPmFjcC5jZ3NfZGV2aWNlID0KKwkJYW1kZ3B1X2Nnc19jcmVhdGVfZGV2aWNlKGFk ZXYpOworCWlmICghYWRldi0+YWNwLmNnc19kZXZpY2UpCisJCXJldHVybiAtRUlOVkFMOworCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWNwX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQorewor CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFu ZGxlOworCisJaWYgKGFkZXYtPmFjcC5jZ3NfZGV2aWNlKQorCQlhbWRncHVfY2dzX2Rlc3Ryb3lf ZGV2aWNlKGFkZXYtPmFjcC5jZ3NfZGV2aWNlKTsKKworCXJldHVybiAwOworfQorCisvKioKKyAq IGFjcF9od19pbml0IC0gc3RhcnQgYW5kIHRlc3QgQUNQIGJsb2NrCisgKgorICogQGFkZXY6IGFt ZGdwdV9kZXZpY2UgcG9pbnRlcgorICoKKyAqLworc3RhdGljIGludCBhY3BfaHdfaW5pdCh2b2lk ICpoYW5kbGUpCit7CisJaW50IHI7CisJdWludDY0X3QgYWNwX2Jhc2U7CisJc3RydWN0IGkyc19w bGF0Zm9ybV9kYXRhICppMnNfcGRhdGE7CisKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKworCWNvbnN0IHN0cnVjdCBhbWRncHVf aXBfYmxvY2tfdmVyc2lvbiAqaXBfdmVyc2lvbiA9CisJCWFtZGdwdV9nZXRfaXBfYmxvY2soYWRl diwgQU1EX0lQX0JMT0NLX1RZUEVfQUNQKTsKKworCWlmICghaXBfdmVyc2lvbikKKwkJcmV0dXJu IC1FSU5WQUw7CisKKwlyID0gYW1kX2FjcF9od19pbml0KGFkZXYtPmFjcC5jZ3NfZGV2aWNlLAor CQkJICAgIGlwX3ZlcnNpb24tPm1ham9yLCBpcF92ZXJzaW9uLT5taW5vcik7CisJLyogLUVOT0RF ViBtZWFucyBib2FyZCB1c2VzIEFaIHJhdGhlciB0aGFuIEFDUCAqLworCWlmIChyID09IC1FTk9E RVYpCisJCXJldHVybiAwOworCWVsc2UgaWYgKHIpCisJCXJldHVybiByOworCisJciA9IGNnc19n ZXRfcGNpX3Jlc291cmNlKGFkZXYtPmFjcC5jZ3NfZGV2aWNlLCBDR1NfUkVTT1VSQ0VfVFlQRV9N TUlPLAorCQkJMHg1Mjg5LCAwLCAmYWNwX2Jhc2UpOworCWlmIChyID09IC1FTk9ERVYpCisJCXJl dHVybiAwOworCWVsc2UgaWYgKHIpCisJCXJldHVybiByOworCisJYWRldi0+YWNwLmFjcF9jZWxs ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1mZF9jZWxsKSAqIEFDUF9ERVZTLAorCQkJCQkJCUdG UF9LRVJORUwpOworCisJaWYgKGFkZXYtPmFjcC5hY3BfY2VsbCA9PSBOVUxMKQorCQlyZXR1cm4g LUVOT01FTTsKKworCWFkZXYtPmFjcC5hY3BfcmVzID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHJl c291cmNlKSAqIDQsIEdGUF9LRVJORUwpOworCisJaWYgKGFkZXYtPmFjcC5hY3BfcmVzID09IE5V TEwpIHsKKwkJa2ZyZWUoYWRldi0+YWNwLmFjcF9jZWxsKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJ fQorCisJaTJzX3BkYXRhID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGkyc19wbGF0Zm9ybV9kYXRh KSAqIDIsIEdGUF9LRVJORUwpOworCWlmIChpMnNfcGRhdGEgPT0gTlVMTCkgeworCQlrZnJlZShh ZGV2LT5hY3AuYWNwX3Jlcyk7CisJCWtmcmVlKGFkZXYtPmFjcC5hY3BfY2VsbCk7CisJCXJldHVy biAtRU5PTUVNOworCX0KKworCWkyc19wZGF0YVswXS5xdWlya3MgPSBEV19JMlNfUVVJUktfQ09N UF9SRUdfT0ZGU0VUOworCWkyc19wZGF0YVswXS5jYXAgPSBEV0NfSTJTX1BMQVk7CisJaTJzX3Bk YXRhWzBdLnNuZF9yYXRlcyA9IFNORFJWX1BDTV9SQVRFXzgwMDBfOTYwMDA7CisJaTJzX3BkYXRh WzBdLmkyc19yZWdfY29tcDEgPSBBQ1BfSTJTX0NPTVAxX1BMQVlfUkVHX09GRlNFVDsKKwlpMnNf cGRhdGFbMF0uaTJzX3JlZ19jb21wMiA9IEFDUF9JMlNfQ09NUDJfUExBWV9SRUdfT0ZGU0VUOwor CisJaTJzX3BkYXRhWzFdLnF1aXJrcyA9IERXX0kyU19RVUlSS19DT01QX1JFR19PRkZTRVQgfAor CQkJCURXX0kyU19RVUlSS19DT01QX1BBUkFNMTsKKwlpMnNfcGRhdGFbMV0uY2FwID0gRFdDX0ky U19SRUNPUkQ7CisJaTJzX3BkYXRhWzFdLnNuZF9yYXRlcyA9IFNORFJWX1BDTV9SQVRFXzgwMDBf OTYwMDA7CisJaTJzX3BkYXRhWzFdLmkyc19yZWdfY29tcDEgPSBBQ1BfSTJTX0NPTVAxX0NBUF9S RUdfT0ZGU0VUOworCWkyc19wZGF0YVsxXS5pMnNfcmVnX2NvbXAyID0gQUNQX0kyU19DT01QMl9D QVBfUkVHX09GRlNFVDsKKworCWFkZXYtPmFjcC5hY3BfcmVzWzBdLm5hbWUgPSAiYWNwMnhfZG1h IjsKKwlhZGV2LT5hY3AuYWNwX3Jlc1swXS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOworCWFkZXYt PmFjcC5hY3BfcmVzWzBdLnN0YXJ0ID0gYWNwX2Jhc2U7CisJYWRldi0+YWNwLmFjcF9yZXNbMF0u ZW5kID0gYWNwX2Jhc2UgKyBBQ1BfRE1BX1JFR1NfRU5EOworCisJYWRldi0+YWNwLmFjcF9yZXNb MV0ubmFtZSA9ICJhY3AyeF9kd19pMnNfcGxheSI7CisJYWRldi0+YWNwLmFjcF9yZXNbMV0uZmxh Z3MgPSBJT1JFU09VUkNFX01FTTsKKwlhZGV2LT5hY3AuYWNwX3Jlc1sxXS5zdGFydCA9IGFjcF9i YXNlICsgQUNQX0kyU19QTEFZX1JFR1NfU1RBUlQ7CisJYWRldi0+YWNwLmFjcF9yZXNbMV0uZW5k ID0gYWNwX2Jhc2UgKyBBQ1BfSTJTX1BMQVlfUkVHU19FTkQ7CisKKwlhZGV2LT5hY3AuYWNwX3Jl c1syXS5uYW1lID0gImFjcDJ4X2R3X2kyc19jYXAiOworCWFkZXYtPmFjcC5hY3BfcmVzWzJdLmZs YWdzID0gSU9SRVNPVVJDRV9NRU07CisJYWRldi0+YWNwLmFjcF9yZXNbMl0uc3RhcnQgPSBhY3Bf YmFzZSArIEFDUF9JMlNfQ0FQX1JFR1NfU1RBUlQ7CisJYWRldi0+YWNwLmFjcF9yZXNbMl0uZW5k ID0gYWNwX2Jhc2UgKyBBQ1BfSTJTX0NBUF9SRUdTX0VORDsKKworCWFkZXYtPmFjcC5hY3BfcmVz WzNdLm5hbWUgPSAiYWNwMnhfZG1hX2lycSI7CisJYWRldi0+YWNwLmFjcF9yZXNbM10uZmxhZ3Mg PSBJT1JFU09VUkNFX0lSUTsKKwlhZGV2LT5hY3AuYWNwX3Jlc1szXS5zdGFydCA9IGFtZGdwdV9p cnFfY3JlYXRlX21hcHBpbmcoYWRldiwgMTYyKTsKKwlhZGV2LT5hY3AuYWNwX3Jlc1szXS5lbmQg PSBhZGV2LT5hY3AuYWNwX3Jlc1szXS5zdGFydDsKKworCWFkZXYtPmFjcC5hY3BfY2VsbFswXS5u YW1lID0gImFjcF9hdWRpb19kbWEiOworCWFkZXYtPmFjcC5hY3BfY2VsbFswXS5udW1fcmVzb3Vy Y2VzID0gNDsKKwlhZGV2LT5hY3AuYWNwX2NlbGxbMF0ucmVzb3VyY2VzID0gJmFkZXYtPmFjcC5h Y3BfcmVzWzBdOworCisJYWRldi0+YWNwLmFjcF9jZWxsWzFdLm5hbWUgPSAiZGVzaWdud2FyZS1p MnMiOworCWFkZXYtPmFjcC5hY3BfY2VsbFsxXS5udW1fcmVzb3VyY2VzID0gMTsKKwlhZGV2LT5h Y3AuYWNwX2NlbGxbMV0ucmVzb3VyY2VzID0gJmFkZXYtPmFjcC5hY3BfcmVzWzFdOworCWFkZXYt PmFjcC5hY3BfY2VsbFsxXS5wbGF0Zm9ybV9kYXRhID0gJmkyc19wZGF0YVswXTsKKwlhZGV2LT5h Y3AuYWNwX2NlbGxbMV0ucGRhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTJzX3BsYXRmb3JtX2Rh dGEpOworCisJYWRldi0+YWNwLmFjcF9jZWxsWzJdLm5hbWUgPSAiZGVzaWdud2FyZS1pMnMiOwor CWFkZXYtPmFjcC5hY3BfY2VsbFsyXS5udW1fcmVzb3VyY2VzID0gMTsKKwlhZGV2LT5hY3AuYWNw X2NlbGxbMl0ucmVzb3VyY2VzID0gJmFkZXYtPmFjcC5hY3BfcmVzWzJdOworCWFkZXYtPmFjcC5h Y3BfY2VsbFsyXS5wbGF0Zm9ybV9kYXRhID0gJmkyc19wZGF0YVsxXTsKKwlhZGV2LT5hY3AuYWNw X2NlbGxbMl0ucGRhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTJzX3BsYXRmb3JtX2RhdGEpOwor CisJciA9IG1mZF9hZGRfaG90cGx1Z19kZXZpY2VzKGFkZXYtPmFjcC5wYXJlbnQsIGFkZXYtPmFj cC5hY3BfY2VsbCwKKwkJCQkJCQkJQUNQX0RFVlMpOworCWlmIChyKQorCQlyZXR1cm4gcjsKKwor CXJldHVybiAwOworfQorCisvKioKKyAqIGFjcF9od19maW5pIC0gc3RvcCB0aGUgaGFyZHdhcmUg YmxvY2sKKyAqCisgKiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKgorICovCitzdGF0 aWMgaW50IGFjcF9od19maW5pKHZvaWQgKmhhbmRsZSkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKworCW1mZF9yZW1vdmVf ZGV2aWNlcyhhZGV2LT5hY3AucGFyZW50KTsKKwlrZnJlZShhZGV2LT5hY3AuYWNwX3Jlcyk7CisJ a2ZyZWUoYWRldi0+YWNwLmFjcF9jZWxsKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 IGFjcF9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBhY3BfcmVzdW1lKHZvaWQgKmhhbmRsZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBhY3BfZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBib29sIGFjcF9pc19pZGxlKHZvaWQgKmhhbmRsZSkKK3sKKwlyZXR1cm4gdHJ1ZTsKK30KKwor c3RhdGljIGludCBhY3Bfd2FpdF9mb3JfaWRsZSh2b2lkICpoYW5kbGUpCit7CisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyBpbnQgYWNwX3NvZnRfcmVzZXQodm9pZCAqaGFuZGxlKQoreworCXJldHVy biAwOworfQorCitzdGF0aWMgdm9pZCBhY3BfcHJpbnRfc3RhdHVzKHZvaWQgKmhhbmRsZSkKK3sK KwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhh bmRsZTsKKworCWRldl9pbmZvKGFkZXYtPmRldiwgIkFDUCBTVEFUVVNcbiIpOworfQorCitzdGF0 aWMgaW50IGFjcF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCSAgICAg ZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgYWNwX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJICAg ICBlbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKK3sKKwlyZXR1cm4gMDsKK30KKwor Y29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyBhY3BfaXBfZnVuY3MgPSB7CisJLmVhcmx5X2luaXQg PSBhY3BfZWFybHlfaW5pdCwKKwkubGF0ZV9pbml0ID0gTlVMTCwKKwkuc3dfaW5pdCA9IGFjcF9z d19pbml0LAorCS5zd19maW5pID0gYWNwX3N3X2ZpbmksCisJLmh3X2luaXQgPSBhY3BfaHdfaW5p dCwKKwkuaHdfZmluaSA9IGFjcF9od19maW5pLAorCS5zdXNwZW5kID0gYWNwX3N1c3BlbmQsCisJ LnJlc3VtZSA9IGFjcF9yZXN1bWUsCisJLmlzX2lkbGUgPSBhY3BfaXNfaWRsZSwKKwkud2FpdF9m b3JfaWRsZSA9IGFjcF93YWl0X2Zvcl9pZGxlLAorCS5zb2Z0X3Jlc2V0ID0gYWNwX3NvZnRfcmVz ZXQsCisJLnByaW50X3N0YXR1cyA9IGFjcF9wcmludF9zdGF0dXMsCisJLnNldF9jbG9ja2dhdGlu Z19zdGF0ZSA9IGFjcF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUsCisJLnNldF9wb3dlcmdhdGluZ19z dGF0ZSA9IGFjcF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUsCit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FjcC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2FjcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0 OTUyZWQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYWNwLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE1IEFkdmFuY2Vk IE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBh bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hB TEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IK KyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQK KyAqCisgKi8KKworI2lmbmRlZiBfX0FNREdQVV9BQ1BfSF9fCisjZGVmaW5lIF9fQU1ER1BVX0FD UF9IX18KKworI2luY2x1ZGUgPGxpbnV4L21mZC9jb3JlLmg+CisKK3N0cnVjdCBhbWRncHVfYWNw IHsKKwlzdHJ1Y3QgZGV2aWNlICpwYXJlbnQ7CisJdm9pZCAqY2dzX2RldmljZTsKKwlzdHJ1Y3Qg YW1kX2FjcF9wcml2YXRlICpwcml2YXRlOworCXN0cnVjdCBtZmRfY2VsbCAqYWNwX2NlbGw7CisJ c3RydWN0IHJlc291cmNlICphY3BfcmVzOworfTsKKworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRf aXBfZnVuY3MgYWNwX2lwX2Z1bmNzOworCisjZW5kaWYgLyogX19BTURHUFVfQUNQX0hfXyAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3ZpLmMKaW5kZXggNjUyZTc2Ni4uYWNlNzdiMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS92aS5jCkBAIC03Myw2ICs3Myw5IEBACiAjaW5jbHVkZSAidXZkX3Y2XzAuaCIKICNp bmNsdWRlICJ2Y2VfdjNfMC5oIgogI2luY2x1ZGUgImFtZGdwdV9wb3dlcnBsYXkuaCIKKyNpZiBk ZWZpbmVkKENPTkZJR19EUk1fQU1EX0FDUCkKKyNpbmNsdWRlICJhbWRncHVfYWNwLmgiCisjZW5k aWYKIAogLyoKICAqIEluZGlyZWN0IHJlZ2lzdGVycyBhY2Nlc3NvcgpAQCAtMTM0Niw2ICsxMzQ5 LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb24gY3pfaXBf YmxvY2tzW10gPQogCQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJnZjZV92M18wX2lwX2Z1bmNzLAog CX0sCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9BQ1ApCisJeworCQkudHlwZSA9IEFNRF9J UF9CTE9DS19UWVBFX0FDUCwKKwkJLm1ham9yID0gMiwKKwkJLm1pbm9yID0gMiwKKwkJLnJldiA9 IDAsCisJCS5mdW5jcyA9ICZhY3BfaXBfZnVuY3MsCisJfSwKKyNlbmRpZgogfTsKIAogaW50IHZp X3NldF9pcF9ibG9ja3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYW1kX3NoYXJlZC5oIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9pbmNsdWRlL2FtZF9zaGFyZWQuaAppbmRleCAxMTk1ZDA2Zi4uMTVmZjhiMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FtZF9zaGFyZWQuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYW1kX3NoYXJlZC5oCkBAIC03Myw2ICs3Myw3IEBAIGVu dW0gYW1kX2lwX2Jsb2NrX3R5cGUgewogCUFNRF9JUF9CTE9DS19UWVBFX1NETUEsCiAJQU1EX0lQ X0JMT0NLX1RZUEVfVVZELAogCUFNRF9JUF9CTE9DS19UWVBFX1ZDRSwKKwlBTURfSVBfQkxPQ0tf VFlQRV9BQ1AsCiB9OwogCiBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSB7Ci0tIAoyLjUuMAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK