From mboxrd@z Thu Jan 1 00:00:00 1970 From: Richard Genoud Subject: [PATCH v3 1/7] sound: sam9x5_wm8731: machine driver for at91sam9x5 wm8731 boards Date: Tue, 9 Jul 2013 14:28:43 +0200 Message-ID: <1373372929-17800-2-git-send-email-richard.genoud@gmail.com> References: <1373290193-25300-1-git-send-email-richard.genoud@gmail.com> <1373372929-17800-1-git-send-email-richard.genoud@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1373372929-17800-1-git-send-email-richard.genoud-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Sender: "devicetree-discuss" To: Mark Brown , Nicolas Ferre , Liam Girdwood Cc: alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org, Lars-Peter Clausen , devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Bo Shen , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: devicetree@vger.kernel.org RnJvbTogTmljb2xhcyBGZXJyZSA8bmljb2xhcy5mZXJyZUBhdG1lbC5jb20+CgpEZXNjcmlwdGlv biBvZiB0aGUgQXNvYyBtYWNoaW5lIGRyaXZlciBmb3IgYW4gYXQ5MXNhbTl4NSBiYXNlZCBib2Fy ZAp3aXRoIGEgd204NzMxIGF1ZGlvIERBQy4gV204NzMxIGlzIGNsb2NrZWQgYnkgYSBjcnlzdGFs IGFuZCB1c2VkIGFzIGEKbWFzdGVyIG9uIHRoZSBTU0MvSTJTIGludGVyZmFjZS4gSXRzIGNvbm5l Y3Rpb25zIGFyZSBhIGhlYWRwaG9uZSBqYWNrCmFuZCBhbiBMaW5lIGlucHV0IGphY2suCgpbUmlj aGFyZDogdGhpcyBpcyBiYXNlZCBvbiBhbiBvbGQgcGF0Y2ggZnJvbSBOaWNvbGFzIHRoYXQgSSBm b3J3YXJkCnBvcnRlZCBhbmQgcmV3b3JrZWQgdG8gdXNlIG9ubHkgZGV2aWNlIHRyZWVdCgpTaWdu ZWQtb2ZmLWJ5OiBOaWNvbGFzIEZlcnJlIDxuaWNvbGFzLmZlcnJlQGF0bWVsLmNvbT4KU2lnbmVk LW9mZi1ieTogVXdlIEtsZWluZS1Lw7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5k ZT4KU2lnbmVkLW9mZi1ieTogUmljaGFyZCBHZW5vdWQgPHJpY2hhcmQuZ2Vub3VkQGdtYWlsLmNv bT4KLS0tCiBzb3VuZC9zb2MvYXRtZWwvS2NvbmZpZyAgICAgICAgIHwgICAxMCArKwogc291bmQv c29jL2F0bWVsL01ha2VmaWxlICAgICAgICB8ICAgIDIgKwogc291bmQvc29jL2F0bWVsL3NhbTl4 NV93bTg3MzEuYyB8ICAyMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiAzIGZpbGVzIGNoYW5nZWQsIDI1MCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg c291bmQvc29jL2F0bWVsL3NhbTl4NV93bTg3MzEuYwoKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9h dG1lbC9LY29uZmlnIGIvc291bmQvc29jL2F0bWVsL0tjb25maWcKaW5kZXggMWMwYjE4NS4uOWVi OGM0OSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2F0bWVsL0tjb25maWcKKysrIGIvc291bmQvc29j L2F0bWVsL0tjb25maWcKQEAgLTMzLDYgKzMzLDE2IEBAIGNvbmZpZyBTTkRfQVQ5MV9TT0NfU0FN OUcyMF9XTTg3MzEKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBTb0Mg YXVkaW8gb24gV004NzMxLWJhc2VkCiAJICBBVDkxc2FtOWcyMCBldmFsdWF0aW9uIGJvYXJkLgog Citjb25maWcgU05EX0FUOTFfU09DX1NBTTlYNV9XTTg3MzEKKwl0cmlzdGF0ZSAiU29DIEF1ZGlv IHN1cHBvcnQgZm9yIFdNODczMS1iYXNlZCBhdDkxc2FtOXg1IGJvYXJkIgorCWRlcGVuZHMgb24g QVRNRUxfU1NDICYmIFNORF9BVE1FTF9TT0MgJiYgU09DX0FUOTFTQU05WDUKKwlzZWxlY3QgU05E X0FUTUVMX1NPQ19TU0MKKwlzZWxlY3QgU05EX0FUTUVMX1NPQ19ETUEKKwlzZWxlY3QgU05EX1NP Q19XTTg3MzEKKwloZWxwCisJICBTYXkgWSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3Ig YXVkaW8gU29DIG9uIGFuCisJICBhdDkxc2FtOXg1IGJhc2VkIGJvYXJkIHRoYXQgaXMgdXNpbmcg V004NzMxIGNvZGVjLgorCiBjb25maWcgU05EX0FUOTFfU09DX0FGRUI5MjYwCiAJdHJpc3RhdGUg IlNvQyBBdWRpbyBzdXBwb3J0IGZvciBBRkVCOTI2MCBib2FyZCIKIAlkZXBlbmRzIG9uIEFSQ0hf QVQ5MSAmJiBBVE1FTF9TU0MgJiYgQVJDSF9BVDkxICYmIE1BQ0hfQUZFQjkyNjAgJiYgU05EX0FU TUVMX1NPQwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F0bWVsL01ha2VmaWxlIGIvc291bmQvc29j L2F0bWVsL01ha2VmaWxlCmluZGV4IDQxOTY3Y2MuLjc3ODRjMDkgMTAwNjQ0Ci0tLSBhL3NvdW5k L3NvYy9hdG1lbC9NYWtlZmlsZQorKysgYi9zb3VuZC9zb2MvYXRtZWwvTWFrZWZpbGUKQEAgLTEx LDYgKzExLDggQEAgb2JqLSQoQ09ORklHX1NORF9BVE1FTF9TT0NfU1NDKSArPSBzbmQtc29jLWF0 bWVsX3NzY19kYWkubwogCiAjIEFUOTEgTWFjaGluZSBTdXBwb3J0CiBzbmQtc29jLXNhbTlnMjAt d204NzMxLW9ianMgOj0gc2FtOWcyMF93bTg3MzEubworc25kLXNvYy1zYW05eDUtd204NzMxLW9i anMgOj0gc2FtOXg1X3dtODczMS5vCiAKIG9iai0kKENPTkZJR19TTkRfQVQ5MV9TT0NfU0FNOUcy MF9XTTg3MzEpICs9IHNuZC1zb2Mtc2FtOWcyMC13bTg3MzEubworb2JqLSQoQ09ORklHX1NORF9B VDkxX1NPQ19TQU05WDVfV004NzMxKSArPSBzbmQtc29jLXNhbTl4NS13bTg3MzEubwogb2JqLSQo Q09ORklHX1NORF9BVDkxX1NPQ19BRkVCOTI2MCkgKz0gc25kLXNvYy1hZmViOTI2MC5vCmRpZmYg LS1naXQgYS9zb3VuZC9zb2MvYXRtZWwvc2FtOXg1X3dtODczMS5jIGIvc291bmQvc29jL2F0bWVs L3NhbTl4NV93bTg3MzEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTZl MzZiCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F0bWVsL3NhbTl4NV93bTg3MzEuYwpA QCAtMCwwICsxLDIzOCBAQAorLyoKKyAqIHNhbTl4NV93bTg3MzEgICAtLQlTb0MgYXVkaW8gZm9y IEFUOTFTQU05WDUtYmFzZWQgYm9hcmRzCisgKgkJCXRoYXQgYXJlIHVzaW5nIFdNODczMSBhcyBj b2RlYy4KKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDExIEF0bWVsLAorICoJCSAgTmljb2xhcyBG ZXJyZSA8bmljb2xhcy5mZXJyZUBhdG1lbC5jb20+CisgKgorICogIENvcHlyaWdodCAoQykgMjAx MyBQYXJhdHJvbmljLAorICoJCSAgUmljaGFyZCBHZW5vdWQgPHJpY2hhcmQuZ2Vub3VkQGdtYWls LmNvbT4KKyAqCisgKiBCYXNlZCBvbiBzYW05ZzIwX3dtODczMS5jIGJ5OgorICogU2VkamkgR2Fv dWFvdSA8c2VkamkuZ2FvdWFvdUBhdG1lbC5jb20+CisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSAgaXQgYW5kL29yIG1vZGlmeSBpdAor ICogIHVuZGVyICB0aGUgdGVybXMgb2YgIHRoZSBHTlUgR2VuZXJhbCAgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZQorICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhl ciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgorICogIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNp bmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgor I2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVk ZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+ CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisKKyNpbmNsdWRlIDxsaW51eC9hdG1lbC1zc2MuaD4K KworI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNs dWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisKKyNpbmNs dWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPG1hY2gvaGFyZHdhcmUuaD4KKyNpbmNs dWRlIDxtYWNoL2dwaW8uaD4KKworI2luY2x1ZGUgIi4uL2NvZGVjcy93bTg3MzEuaCIKKyNpbmNs dWRlICJhdG1lbC1wY20uaCIKKyNpbmNsdWRlICJhdG1lbF9zc2NfZGFpLmgiCisKKyNkZWZpbmUg TUNMS19SQVRFIDEyMjg4MDAwCisKKyNkZWZpbmUgRFJWX05BTUUgInNhbTl4NS1zbmQtd204NzMx IgorCisvKgorICogQXV0aG9yaXplZCByYXRlcyBhcmU6CisgKiBSYXRlID0gTUNMS19SQVRFIC8g KG4gKiAyKQorICogV2hlcmUgbiBpcyBpbiBbMS4uNDA5NV0KKyAqIChjZiByZWdpc3RlciBTU0Nf Q01SKQorICovCitzdGF0aWMgdW5zaWduZWQgaW50IHJhdGVzW10gPSB7CisJODAwMCwKKwkxNjAw MCwKKwkzMjAwMCwKKwk0ODAwMCwKKwk2NDAwMCwKKwk5NjAwMCwKK307CisKK3N0YXRpYyBzdHJ1 Y3Qgc25kX3BjbV9od19jb25zdHJhaW50X2xpc3QgaHdfcmF0ZXMgPSB7CisJLmNvdW50ID0gQVJS QVlfU0laRShyYXRlcyksCisJLmxpc3QgPSByYXRlcywKK307CisKKy8qCisgKiBMb2dpYyBmb3Ig YSB3bTg3MzEgYXMgY29ubmVjdGVkIG9uIGEgYXQ5MXNhbTl4NSBiYXNlZCBib2FyZC4KKyAqLwor c3RhdGljIGludCBhdDkxc2FtOXg1ZWtfd204NzMxX2luaXQoc3RydWN0IHNuZF9zb2NfcGNtX3J1 bnRpbWUgKnJ0ZCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+Y29k ZWNfZGFpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9IHJ0ZC0+ZGV2OworCWludCByZXQ7CisKKwlk ZXZfZGJnKGRldiwgIkFTb0M6ICVzIGNhbGxlZFxuIiwgX19mdW5jX18pOworCisJLyogc2V0IHRo ZSBjb2RlYyBzeXN0ZW0gY2xvY2sgZm9yIERBQyBhbmQgQURDICovCisJcmV0ID0gc25kX3NvY19k YWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODczMV9TWVNDTEtfWFRBTCwKKwkJCQkgICAgIE1D TEtfUkFURSwgU05EX1NPQ19DTE9DS19JTik7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2Vycihk ZXYsICJBU29DOiBGYWlsZWQgdG8gc2V0IFdNODczMSBTWVNDTEs6ICVkXG4iLCByZXQpOworCQly ZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNhbTl4NWVrX3dt ODczMV9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0 cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisKKwly dW50aW1lLT5ody5yYXRlX21pbiA9IGh3X3JhdGVzLmxpc3RbMF07CisJcnVudGltZS0+aHcucmF0 ZV9tYXggPSBod19yYXRlcy5saXN0W2h3X3JhdGVzLmNvdW50IC0gMV07CisJcnVudGltZS0+aHcu cmF0ZXMgPSBTTkRSVl9QQ01fUkFURV9LTk9UOworCisJcmV0dXJuIHNuZF9wY21faHdfY29uc3Ry YWludF9saXN0KHJ1bnRpbWUsIDAsIFNORFJWX1BDTV9IV19QQVJBTV9SQVRFLAorCQkJCQkgICZo d19yYXRlcyk7Cit9CisKKy8qCisgKiBBdWRpbyBwYXRocyBvbiBhdDkxc2FtOXg1ZWsgYm9hcmQ6 CisgKgorICogIHxBfCAtLS0tLS0tLS0tLS0+IHwgICAgICB8IC0tLVItLS0tPiBIZWFkcGhvbmUg SmFjaworICogIHxUfCA8LS0tLVwgICAgICAgIHwgIFdNICB8IC0tLUwtLS8KKyAqICB8OXwgLS0t PiBDTEsgPC0tPiB8IDg3MzEgfCA8LS1SLS0tLS0gTGluZSBJbiBKYWNrCisgKiAgfDF8IDwtLS0t LS0tLS0tLS0gfCAgICAgIHwgPC0tTC0tLworICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9z b2NfZGFwbV93aWRnZXQgYXQ5MXNhbTl4NWVrX2RhcG1fd2lkZ2V0c1tdID0geworCVNORF9TT0Nf REFQTV9IUCgiSGVhZHBob25lIEphY2siLCBOVUxMKSwKKwlTTkRfU09DX0RBUE1fTElORSgiTGlu ZSBJbiBKYWNrIiwgTlVMTCksCit9OworCitzdGF0aWMgc3RydWN0IHNuZF9zb2Nfb3BzIHNhbTl4 NWVrX3dtODczMV9vcHMgPSB7CisJLnN0YXJ0dXAgPSBzYW05eDVla193bTg3MzFfc3RhcnR1cCwK K307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayBhdDkxc2FtOXg1ZWtfZGFpID0g eworCS5uYW1lID0gIldNODczMSIsCisJLnN0cmVhbV9uYW1lID0gIldNODczMSBQQ00iLAorCS5j b2RlY19kYWlfbmFtZSA9ICJ3bTg3MzEtaGlmaSIsCisJLmluaXQgPSBhdDkxc2FtOXg1ZWtfd204 NzMxX2luaXQsCisJLm9wcyA9ICZzYW05eDVla193bTg3MzFfb3BzLAorfTsKKworc3RhdGljIHN0 cnVjdCBzbmRfc29jX2NhcmQgc25kX3NvY19hdDkxc2FtOXg1ZWsgPSB7CisJLm93bmVyID0gVEhJ U19NT0RVTEUsCisJLmRhaV9saW5rID0gJmF0OTFzYW05eDVla19kYWksCisJLm51bV9saW5rcyA9 IDEsCisJLmRhcG1fd2lkZ2V0cyA9IGF0OTFzYW05eDVla19kYXBtX3dpZGdldHMsCisJLm51bV9k YXBtX3dpZGdldHMgPSBBUlJBWV9TSVpFKGF0OTFzYW05eDVla19kYXBtX3dpZGdldHMpLAorfTsK Kworc3RhdGljIGludCBzYW05eDVfd204NzMxX2RyaXZlcl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBwZGV2LT5kZXYub2Zf bm9kZTsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmNvZGVjX25wLCAqY3B1X25wOworCWludCByZXQ7 CisKKwlpZiAoIW5wKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIk5vIGRldmljZSBub2RlIHN1 cHBsaWVkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gYXRtZWxfc3NjX3Nl dF9hdWRpbygwKTsKKwlpZiAocmV0ICE9IDApIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LAorCQkJ IkFTb0M6IEZhaWxlZCB0byBzZXQgU1NDIDAgZm9yIGF1ZGlvOiAlZFxuIiwgcmV0KTsKKwkJcmV0 dXJuIHJldDsKKwl9CisKKwlzbmRfc29jX2F0OTFzYW05eDVlay5kZXYgPSAmcGRldi0+ZGV2Owor CisJcmV0ID0gc25kX3NvY19vZl9wYXJzZV9jYXJkX25hbWUoJnNuZF9zb2NfYXQ5MXNhbTl4NWVr LCAiYXRtZWwsbW9kZWwiKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCXJldCA9IHNuZF9z b2Nfb2ZfcGFyc2VfYXVkaW9fcm91dGluZygmc25kX3NvY19hdDkxc2FtOXg1ZWssCisJCQkJCSAg ICAgImF0bWVsLGF1ZGlvLXJvdXRpbmciKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCWNv ZGVjX25wID0gb2ZfcGFyc2VfcGhhbmRsZShucCwgImF0bWVsLGF1ZGlvLWNvZGVjIiwgMCk7CisJ aWYgKCFjb2RlY19ucCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJjb2RlYyBpbmZvIG1pc3Np bmdcbiIpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIG91dDsKKwl9CisKKwlhdDkxc2FtOXg1 ZWtfZGFpLmNvZGVjX29mX25vZGUgPSBjb2RlY19ucDsKKworCWNwdV9ucCA9IG9mX3BhcnNlX3Bo YW5kbGUobnAsICJhdG1lbCxzc2MtY29udHJvbGxlciIsIDApOworCWlmICghY3B1X25wKSB7CisJ CWRldl9lcnIoJnBkZXYtPmRldiwgInNzYyBjb250cm9sbGVyIG5vZGUgbWlzc2luZ1xuIik7CisJ CXJldCA9IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKwlhdDkxc2FtOXg1ZWtfZGFpLmNwdV9v Zl9ub2RlID0gY3B1X25wOworCWF0OTFzYW05eDVla19kYWkucGxhdGZvcm1fb2Zfbm9kZSA9IGNw dV9ucDsKKworCW9mX25vZGVfcHV0KGNvZGVjX25wKTsKKwlvZl9ub2RlX3B1dChjcHVfbnApOwor CisJYXQ5MXNhbTl4NWVrX2RhaS5kYWlfZm10ID0gc25kX3NvY19vZl9wYXJzZV9kYWlmbXQobnAs ICJhdG1lbCwiKTsKKworCXJldCA9IHNuZF9zb2NfcmVnaXN0ZXJfY2FyZCgmc25kX3NvY19hdDkx c2FtOXg1ZWspOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LAorCQkJIkFTb0M6 IFBsYXRmb3JtIGRldmljZSBhbGxvY2F0aW9uIGZhaWxlZFxuIik7CisJCWdvdG8gb3V0OworCX0K KworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsICZzbmRfc29jX2F0OTFzYW05eDVlayk7CisK KwlkZXZfZGJnKCZwZGV2LT5kZXYsICJBU29DOiAlcyBva1xuIiwgX19mdW5jX18pOworCisJcmV0 dXJuIHJldDsKKworb3V0OgorCWF0bWVsX3NzY19wdXRfYXVkaW8oMCk7CisJcmV0dXJuIHJldDsK K30KKworc3RhdGljIGludCBzYW05eDVfd204NzMxX2RyaXZlcl9yZW1vdmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jYXJkICpjYXJkID0gcGxhdGZv cm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlzbmRfc29jX3VucmVnaXN0ZXJfY2FyZChjYXJkKTsK KwlhdG1lbF9zc2NfcHV0X2F1ZGlvKDApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNhbTl4NV93bTg3MzFfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5j b21wYXRpYmxlID0gImF0bWVsLHNhbTl4NS13bTg3MzEtYXVkaW8iLCB9LAorCXt9LAorfTsKK01P RFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNhbTl4NV93bTg3MzFfb2ZfbWF0Y2gpOworCitzdGF0aWMg c3RydWN0IHBsYXRmb3JtX2RyaXZlciBzYW05eDVfd204NzMxX2RyaXZlciA9IHsKKwkuZHJpdmVy ID0geworCQkubmFtZSA9IERSVl9OQU1FLAorCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwkJLm9m X21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfcHRyKHNhbTl4NV93bTg3MzFfb2ZfbWF0Y2gpLAorCX0s CisJLnByb2JlID0gc2FtOXg1X3dtODczMV9kcml2ZXJfcHJvYmUsCisJLnJlbW92ZSA9IHNhbTl4 NV93bTg3MzFfZHJpdmVyX3JlbW92ZSwKK307Cittb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHNhbTl4 NV93bTg3MzFfZHJpdmVyKTsKKworLyogTW9kdWxlIGluZm9ybWF0aW9uICovCitNT0RVTEVfQVVU SE9SKCJOaWNvbGFzIEZlcnJlIDxuaWNvbGFzLmZlcnJlQGF0bWVsLmNvbT4iKTsKK01PRFVMRV9B VVRIT1IoIlJpY2hhcmQgR2Vub3VkIDxyaWNoYXJkLmdlbm91ZEBnbWFpbC5jb20+Iik7CitNT0RV TEVfREVTQ1JJUFRJT04oIkFMU0EgU29DIG1hY2hpbmUgZHJpdmVyIGZvciBBVDkxU0FNOXg1IC0g V004NzMxIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3Jt OiIgRFJWX05BTUUpOwotLSAKMS43LjEwLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRldmljZXRyZWUtZGlzY3VzcyBtYWlsaW5nIGxpc3QKZGV2aWNl dHJlZS1kaXNjdXNzQGxpc3RzLm96bGFicy5vcmcKaHR0cHM6Ly9saXN0cy5vemxhYnMub3JnL2xp c3RpbmZvL2RldmljZXRyZWUtZGlzY3Vzcwo=