From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shawn Guo Subject: [PATCH 2/6] spi/imx: use soc name in spi device type naming scheme Date: Fri, 8 Jul 2011 16:27:30 +0800 Message-ID: <1310113654-25887-3-git-send-email-shawn.guo@linaro.org> References: <1310113654-25887-1-git-send-email-shawn.guo@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Sascha Hauer , linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Return-path: In-Reply-To: <1310113654-25887-1-git-send-email-shawn.guo-QSEj5FYQhm4dnm+yROfE0A@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-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org List-Id: linux-spi.vger.kernel.org U29mdHdhcmUgZGVmaW5lZCB2ZXJzaW9uIG51bWJlciBpcyBub3Qgc3RhYmxlIGVub3VnaCB0byBi ZSB1c2VkCmluIGRldmljZSB0eXBlIG5hbWluZyBzY2hlbWUuICBUaGUgcGF0Y2ggY2hhbmdlcyBp dCB0byB1c2UgaW1wbGljaXQKc29jIG5hbWUgZm9yIHNwaSBkZXZpY2UgdHlwZSBkZWZpbml0aW9u LiAgSW4gdGhpcyB3YXksIHdlIGNhbiBlYXNpbHkKYWxpZ24gdGhlIG5hbWluZyBzY2hlbWUgd2l0 aCBkZXZpY2UgdHJlZSBiaW5kaW5nLCB3aGljaCBjb21lcyBsYXRlci4KClNpZ25lZC1vZmYtYnk6 IFNoYXduIEd1byA8c2hhd24uZ3VvQGxpbmFyby5vcmc+CkNjOiBVd2UgS2xlaW5lLUvDtm5pZyA8 dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPgpDYzogU2FzY2hhIEhhdWVyIDxzLmhhdWVy QHBlbmd1dHJvbml4LmRlPgpDYzogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFi LmNhPgotLS0KIGFyY2gvYXJtL21hY2gtaW14L2Nsb2NrLWlteDI1LmMgICAgICAgICAgICAgIHwg ICAgNyArLQogYXJjaC9hcm0vbWFjaC1teDUvY2xvY2stbXg1MS1teDUzLmMgICAgICAgICAgfCAg IDExICstCiBhcmNoL2FybS9wbGF0LW14Yy9kZXZpY2VzL3BsYXRmb3JtLXNwaV9pbXguYyB8ICAg MTIgKy0KIGRyaXZlcnMvc3BpL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx NSAtCiBkcml2ZXJzL3NwaS9zcGktaW14LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA0MjMg KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMjE5IGluc2VydGlv bnMoKyksIDI0OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9j bG9jay1pbXgyNS5jIGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xvY2staW14MjUuYwppbmRleCA5YmI5 MDYyLi4xN2Q2ZDFiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9jbG9jay1pbXgyNS5j CisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsb2NrLWlteDI1LmMKQEAgLTI4Myw5ICsyODMsMTAg QEAgc3RhdGljIHN0cnVjdCBjbGtfbG9va3VwIGxvb2t1cHNbXSA9IHsKIAlfUkVHSVNURVJfQ0xP Q0soIm14Yy1laGNpLjIiLCAidXNiIiwgdXNib3RnX2NsaykKIAlfUkVHSVNURVJfQ0xPQ0soImZz bC11c2IyLXVkYyIsICJ1c2IiLCB1c2JvdGdfY2xrKQogCV9SRUdJU1RFUl9DTE9DSygibXhjX25h bmQuMCIsIE5VTEwsIG5mY19jbGspCi0JX1JFR0lTVEVSX0NMT0NLKCJpbXgyNS1jc3BpLjAiLCBO VUxMLCBjc3BpMV9jbGspCi0JX1JFR0lTVEVSX0NMT0NLKCJpbXgyNS1jc3BpLjEiLCBOVUxMLCBj c3BpMl9jbGspCi0JX1JFR0lTVEVSX0NMT0NLKCJpbXgyNS1jc3BpLjIiLCBOVUxMLCBjc3BpM19j bGspCisJLyogaS5teDI1IGhhcyB0aGUgaS5teDM1IHR5cGUgY3NwaSAqLworCV9SRUdJU1RFUl9D TE9DSygiaW14MzUtY3NwaS4wIiwgTlVMTCwgY3NwaTFfY2xrKQorCV9SRUdJU1RFUl9DTE9DSygi aW14MzUtY3NwaS4xIiwgTlVMTCwgY3NwaTJfY2xrKQorCV9SRUdJU1RFUl9DTE9DSygiaW14MzUt Y3NwaS4yIiwgTlVMTCwgY3NwaTNfY2xrKQogCV9SRUdJU1RFUl9DTE9DSygibXhjX3B3bS4wIiwg TlVMTCwgcHdtMV9jbGspCiAJX1JFR0lTVEVSX0NMT0NLKCJteGNfcHdtLjEiLCBOVUxMLCBwd20y X2NsaykKIAlfUkVHSVNURVJfQ0xPQ0soIm14Y19wd20uMiIsIE5VTEwsIHB3bTNfY2xrKQpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDUvY2xvY2stbXg1MS1teDUzLmMgYi9hcmNoL2FybS9t YWNoLW14NS9jbG9jay1teDUxLW14NTMuYwppbmRleCBlMDBjNDI3Li4zMWQ5MDRjIDEwMDY0NAot LS0gYS9hcmNoL2FybS9tYWNoLW14NS9jbG9jay1teDUxLW14NTMuYworKysgYi9hcmNoL2FybS9t YWNoLW14NS9jbG9jay1teDUxLW14NTMuYwpAQCAtMTQ1Myw3ICsxNDUzLDggQEAgc3RhdGljIHN0 cnVjdCBjbGtfbG9va3VwIG14NTFfbG9va3Vwc1tdID0gewogCV9SRUdJU1RFUl9DTE9DSyhOVUxM LCAiZ3B0XzMyayIsIGdwdF8zMmtfY2xrKQogCV9SRUdJU1RFUl9DTE9DSygiaW14NTEtZWNzcGku MCIsIE5VTEwsIGVjc3BpMV9jbGspCiAJX1JFR0lTVEVSX0NMT0NLKCJpbXg1MS1lY3NwaS4xIiwg TlVMTCwgZWNzcGkyX2NsaykKLQlfUkVHSVNURVJfQ0xPQ0soImlteDUxLWNzcGkuMCIsIE5VTEws IGNzcGlfY2xrKQorCS8qIGkubXg1MSBoYXMgdGhlIGkubXgzNSB0eXBlIGNzcGkgKi8KKwlfUkVH SVNURVJfQ0xPQ0soImlteDM1LWNzcGkuMCIsIE5VTEwsIGNzcGlfY2xrKQogCV9SRUdJU1RFUl9D TE9DSygic2RoY2ktZXNkaGMtaW14NTEuMCIsIE5VTEwsIGVzZGhjMV9jbGspCiAJX1JFR0lTVEVS X0NMT0NLKCJzZGhjaS1lc2RoYy1pbXg1MS4xIiwgTlVMTCwgZXNkaGMyX2NsaykKIAlfUkVHSVNU RVJfQ0xPQ0soInNkaGNpLWVzZGhjLWlteDUxLjIiLCBOVUxMLCBlc2RoYzNfY2xrKQpAQCAtMTQ4 Niw5ICsxNDg3LDExIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2xvb2t1cCBteDUzX2xvb2t1cHNbXSA9 IHsKIAlfUkVHSVNURVJfQ0xPQ0soInNkaGNpLWVzZGhjLWlteDUzLjEiLCBOVUxMLCBlc2RoYzJf bXg1M19jbGspCiAJX1JFR0lTVEVSX0NMT0NLKCJzZGhjaS1lc2RoYy1pbXg1My4yIiwgTlVMTCwg ZXNkaGMzX214NTNfY2xrKQogCV9SRUdJU1RFUl9DTE9DSygic2RoY2ktZXNkaGMtaW14NTMuMyIs IE5VTEwsIGVzZGhjNF9teDUzX2NsaykKLQlfUkVHSVNURVJfQ0xPQ0soImlteDUzLWVjc3BpLjAi LCBOVUxMLCBlY3NwaTFfY2xrKQotCV9SRUdJU1RFUl9DTE9DSygiaW14NTMtZWNzcGkuMSIsIE5V TEwsIGVjc3BpMl9jbGspCi0JX1JFR0lTVEVSX0NMT0NLKCJpbXg1My1jc3BpLjAiLCBOVUxMLCBj c3BpX2NsaykKKwkvKiBpLm14NTMgaGFzIHRoZSBpLm14NTEgdHlwZSBlY3NwaSAqLworCV9SRUdJ U1RFUl9DTE9DSygiaW14NTEtZWNzcGkuMCIsIE5VTEwsIGVjc3BpMV9jbGspCisJX1JFR0lTVEVS X0NMT0NLKCJpbXg1MS1lY3NwaS4xIiwgTlVMTCwgZWNzcGkyX2NsaykKKwkvKiBpLm14NTMgaGFz IHRoZSBpLm14MzUgdHlwZSBjc3BpICovCisJX1JFR0lTVEVSX0NMT0NLKCJpbXgzNS1jc3BpLjAi LCBOVUxMLCBjc3BpX2NsaykKIAlfUkVHSVNURVJfQ0xPQ0soImlteDItd2R0LjAiLCBOVUxMLCBk dW1teV9jbGspCiAJX1JFR0lTVEVSX0NMT0NLKCJpbXgyLXdkdC4xIiwgTlVMTCwgZHVtbXlfY2xr KQogCV9SRUdJU1RFUl9DTE9DSygiaW14LXNkbWEiLCBOVUxMLCBzZG1hX2NsaykKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL3BsYXQtbXhjL2RldmljZXMvcGxhdGZvcm0tc3BpX2lteC5jIGIvYXJjaC9h cm0vcGxhdC1teGMvZGV2aWNlcy9wbGF0Zm9ybS1zcGlfaW14LmMKaW5kZXggZjk3ZWIzNi4uOWJm YWU4YiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1teGMvZGV2aWNlcy9wbGF0Zm9ybS1zcGlf aW14LmMKKysrIGIvYXJjaC9hcm0vcGxhdC1teGMvZGV2aWNlcy9wbGF0Zm9ybS1zcGlfaW14LmMK QEAgLTQwLDkgKzQwLDEwIEBAIGNvbnN0IHN0cnVjdCBpbXhfc3BpX2lteF9kYXRhIGlteDIxX2Nz cGlfZGF0YVtdIF9faW5pdGNvbnN0ID0gewogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfU09DX0lN WDI1CisvKiBpLm14MjUgaGFzIHRoZSBpLm14MzUgdHlwZSBjc3BpICovCiBjb25zdCBzdHJ1Y3Qg aW14X3NwaV9pbXhfZGF0YSBpbXgyNV9jc3BpX2RhdGFbXSBfX2luaXRjb25zdCA9IHsKICNkZWZp bmUgaW14MjVfY3NwaV9kYXRhX2VudHJ5KF9pZCwgX2h3aWQpCQkJCVwKLQlpbXhfc3BpX2lteF9k YXRhX2VudHJ5KE1YMjUsIENTUEksICJpbXgyNS1jc3BpIiwgX2lkLCBfaHdpZCwgU1pfMTZLKQor CWlteF9zcGlfaW14X2RhdGFfZW50cnkoTVgyNSwgQ1NQSSwgImlteDM1LWNzcGkiLCBfaWQsIF9o d2lkLCBTWl8xNkspCiAJaW14MjVfY3NwaV9kYXRhX2VudHJ5KDAsIDEpLAogCWlteDI1X2NzcGlf ZGF0YV9lbnRyeSgxLCAyKSwKIAlpbXgyNV9jc3BpX2RhdGFfZW50cnkoMiwgMyksCkBAIC03OSw4 ICs4MCw5IEBAIGNvbnN0IHN0cnVjdCBpbXhfc3BpX2lteF9kYXRhIGlteDM1X2NzcGlfZGF0YVtd IF9faW5pdGNvbnN0ID0gewogI2VuZGlmIC8qIGlmZGVmIENPTkZJR19TT0NfSU1YMzUgKi8KIAog I2lmZGVmIENPTkZJR19TT0NfSU1YNTEKKy8qIGkubXg1MSBoYXMgdGhlIGkubXgzNSB0eXBlIGNz cGkgKi8KIGNvbnN0IHN0cnVjdCBpbXhfc3BpX2lteF9kYXRhIGlteDUxX2NzcGlfZGF0YSBfX2lu aXRjb25zdCA9Ci0JaW14X3NwaV9pbXhfZGF0YV9lbnRyeV9zaW5nbGUoTVg1MSwgQ1NQSSwgImlt eDUxLWNzcGkiLCAyLCAsIFNaXzRLKTsKKwlpbXhfc3BpX2lteF9kYXRhX2VudHJ5X3NpbmdsZShN WDUxLCBDU1BJLCAiaW14MzUtY3NwaSIsIDIsICwgU1pfNEspOwogCiBjb25zdCBzdHJ1Y3QgaW14 X3NwaV9pbXhfZGF0YSBpbXg1MV9lY3NwaV9kYXRhW10gX19pbml0Y29uc3QgPSB7CiAjZGVmaW5l IGlteDUxX2Vjc3BpX2RhdGFfZW50cnkoX2lkLCBfaHdpZCkJCQkJXApAQCAtOTEsMTIgKzkzLDE0 IEBAIGNvbnN0IHN0cnVjdCBpbXhfc3BpX2lteF9kYXRhIGlteDUxX2Vjc3BpX2RhdGFbXSBfX2lu aXRjb25zdCA9IHsKICNlbmRpZiAvKiBpZmRlZiBDT05GSUdfU09DX0lNWDUxICovCiAKICNpZmRl ZiBDT05GSUdfU09DX0lNWDUzCisvKiBpLm14NTMgaGFzIHRoZSBpLm14MzUgdHlwZSBjc3BpICov CiBjb25zdCBzdHJ1Y3QgaW14X3NwaV9pbXhfZGF0YSBpbXg1M19jc3BpX2RhdGEgX19pbml0Y29u c3QgPQotCWlteF9zcGlfaW14X2RhdGFfZW50cnlfc2luZ2xlKE1YNTMsIENTUEksICJpbXg1My1j c3BpIiwgMCwgLCBTWl80Syk7CisJaW14X3NwaV9pbXhfZGF0YV9lbnRyeV9zaW5nbGUoTVg1Mywg Q1NQSSwgImlteDM1LWNzcGkiLCAwLCAsIFNaXzRLKTsKIAorLyogaS5teDUzIGhhcyB0aGUgaS5t eDUxIHR5cGUgZWNzcGkgKi8KIGNvbnN0IHN0cnVjdCBpbXhfc3BpX2lteF9kYXRhIGlteDUzX2Vj c3BpX2RhdGFbXSBfX2luaXRjb25zdCA9IHsKICNkZWZpbmUgaW14NTNfZWNzcGlfZGF0YV9lbnRy eShfaWQsIF9od2lkKQkJCQlcCi0JaW14X3NwaV9pbXhfZGF0YV9lbnRyeShNWDUzLCBFQ1NQSSwg ImlteDUzLWVjc3BpIiwgX2lkLCBfaHdpZCwgU1pfNEspCisJaW14X3NwaV9pbXhfZGF0YV9lbnRy eShNWDUzLCBFQ1NQSSwgImlteDUxLWVjc3BpIiwgX2lkLCBfaHdpZCwgU1pfNEspCiAJaW14NTNf ZWNzcGlfZGF0YV9lbnRyeSgwLCAxKSwKIAlpbXg1M19lY3NwaV9kYXRhX2VudHJ5KDEsIDIpLAog fTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL0tjb25maWcgYi9kcml2ZXJzL3NwaS9LY29uZmln CmluZGV4IDlhYWZhOTguLjUyZTI5MDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL0tjb25maWcK KysrIGIvZHJpdmVycy9zcGkvS2NvbmZpZwpAQCAtMTU0LDIxICsxNTQsNiBAQCBjb25maWcgU1BJ X0dQSU8KIAkgIEdQSU8gb3BlcmF0aW9ucywgeW91IHNob3VsZCBiZSBhYmxlIHRvIGxldmVyYWdl IHRoYXQgZm9yIGJldHRlcgogCSAgc3BlZWQgd2l0aCBhIGN1c3RvbSB2ZXJzaW9uIG9mIHRoaXMg ZHJpdmVyOyBzZWUgdGhlIHNvdXJjZSBjb2RlLgogCi1jb25maWcgU1BJX0lNWF9WRVJfSU1YMQot CWRlZl9ib29sIHkgaWYgU09DX0lNWDEKLQotY29uZmlnIFNQSV9JTVhfVkVSXzBfMAotCWRlZl9i b29sIHkgaWYgU09DX0lNWDIxIHx8IFNPQ19JTVgyNwotCi1jb25maWcgU1BJX0lNWF9WRVJfMF80 Ci0JZGVmX2Jvb2wgeSBpZiBTT0NfSU1YMzEKLQotY29uZmlnIFNQSV9JTVhfVkVSXzBfNwotCWRl Zl9ib29sIHkgaWYgQVJDSF9NWDI1IHx8IFNPQ19JTVgzNSB8fCBTT0NfSU1YNTEgfHwgU09DX0lN WDUzCi0KLWNvbmZpZyBTUElfSU1YX1ZFUl8yXzMKLQlkZWZfYm9vbCB5IGlmIFNPQ19JTVg1MSB8 fCBTT0NfSU1YNTMKLQogY29uZmlnIFNQSV9JTVgKIAl0cmlzdGF0ZSAiRnJlZXNjYWxlIGkuTVgg U1BJIGNvbnRyb2xsZXJzIgogCWRlcGVuZHMgb24gQVJDSF9NWEMKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3BpL3NwaS1pbXguYyBiL2RyaXZlcnMvc3BpL3NwaS1pbXguYwppbmRleCA3MDk3ZDQzLi4z ZDRlZmFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktaW14LmMKKysrIGIvZHJpdmVycy9z cGkvc3BpLWlteC5jCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4K IAogI2luY2x1ZGUgPG1hY2gvc3BpLmg+Ci0jaW5jbHVkZSA8bWFjaC9oYXJkd2FyZS5oPgogCiAj ZGVmaW5lIERSSVZFUl9OQU1FICJzcGlfaW14IgogCkBAIC00Niw5ICs0NSw2IEBACiAjZGVmaW5l IE1YQ19DU1BJSU5UCQkweDBjCiAjZGVmaW5lIE1YQ19SRVNFVAkJMHgxYwogCi0jZGVmaW5lIE1Y M19DU1BJU1RBVAkJMHgxNAotI2RlZmluZSBNWDNfQ1NQSVNUQVRfUlIJCSgxIDw8IDMpCi0KIC8q IGdlbmVyaWMgZGVmaW5lcyB0byBhYnN0cmFjdCBmcm9tIHRoZSBkaWZmZXJlbnQgcmVnaXN0ZXIg bGF5b3V0cyAqLwogI2RlZmluZSBNWENfSU5UX1JSCSgxIDw8IDApIC8qIFJlY2VpdmUgZGF0YSBy ZWFkeSBpbnRlcnJ1cHQgKi8KICNkZWZpbmUgTVhDX0lOVF9URQkoMSA8PCAxKSAvKiBUcmFuc21p dCBGSUZPIGVtcHR5IGludGVycnVwdCAqLwpAQCAtNjEsMTIgKzU3LDEyIEBAIHN0cnVjdCBzcGlf aW14X2NvbmZpZyB7CiB9OwogCiBlbnVtIHNwaV9pbXhfZGV2dHlwZSB7Ci0JU1BJX0lNWF9WRVJf SU1YMSwKLQlTUElfSU1YX1ZFUl8wXzAsCi0JU1BJX0lNWF9WRVJfMF80LAotCVNQSV9JTVhfVkVS XzBfNSwKLQlTUElfSU1YX1ZFUl8wXzcsCi0JU1BJX0lNWF9WRVJfMl8zLAorCUlNWDFfQ1NQSSwK KwlJTVgyMV9DU1BJLAorCUlNWDI3X0NTUEksCisJSU1YMzFfQ1NQSSwKKwlJTVgzNV9DU1BJLAkv KiBDU1BJIG9uIGFsbCBpLm14IGV4Y2VwdCBhYm92ZSAqLworCUlNWDUxX0VDU1BJLAkvKiBFQ1NQ SSBvbiBpLm14NTEgYW5kIGxhdGVyICovCiB9OwogCiBzdHJ1Y3Qgc3BpX2lteF9kYXRhOwpAQCAt NzcsNyArNzMsNyBAQCBzdHJ1Y3Qgc3BpX2lteF9kZXZ0eXBlX2RhdGEgewogCXZvaWQgKCp0cmln Z2VyKShzdHJ1Y3Qgc3BpX2lteF9kYXRhICopOwogCWludCAoKnJ4X2F2YWlsYWJsZSkoc3RydWN0 IHNwaV9pbXhfZGF0YSAqKTsKIAl2b2lkICgqcmVzZXQpKHN0cnVjdCBzcGlfaW14X2RhdGEgKik7 Ci0JdW5zaWduZWQgaW50IGZpZm9zaXplOworCWVudW0gc3BpX2lteF9kZXZ0eXBlIGRldnR5cGU7 CiB9OwogCiBzdHJ1Y3Qgc3BpX2lteF9kYXRhIHsKQEAgLTk3LDkgKzkzLDI0IEBAIHN0cnVjdCBz cGlfaW14X2RhdGEgewogCWNvbnN0IHZvaWQgKnR4X2J1ZjsKIAl1bnNpZ25lZCBpbnQgdHhmaWZv OyAvKiBudW1iZXIgb2Ygd29yZHMgcHVzaGVkIGluIHR4IEZJRk8gKi8KIAotCXN0cnVjdCBzcGlf aW14X2RldnR5cGVfZGF0YSBkZXZ0eXBlX2RhdGE7CisJc3RydWN0IHNwaV9pbXhfZGV2dHlwZV9k YXRhICpkZXZ0eXBlX2RhdGE7CiB9OwogCitzdGF0aWMgaW5saW5lIGludCBpc19pbXgyN19jc3Bp KHN0cnVjdCBzcGlfaW14X2RhdGEgKmQpCit7CisJcmV0dXJuIGQtPmRldnR5cGVfZGF0YS0+ZGV2 dHlwZSA9PSBJTVgyN19DU1BJOworfQorCitzdGF0aWMgaW5saW5lIGludCBpc19pbXgzNV9jc3Bp KHN0cnVjdCBzcGlfaW14X2RhdGEgKmQpCit7CisJcmV0dXJuIGQtPmRldnR5cGVfZGF0YS0+ZGV2 dHlwZSA9PSBJTVgzNV9DU1BJOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHNwaV9pbXhf Z2V0X2ZpZm9zaXplKHN0cnVjdCBzcGlfaW14X2RhdGEgKmQpCit7CisJcmV0dXJuIChkLT5kZXZ0 eXBlX2RhdGEtPmRldnR5cGUgPT0gSU1YNTFfRUNTUEkpID8gNjQgOiA4OworfQorCiAjZGVmaW5l IE1YQ19TUElfQlVGX1JYKHR5cGUpCQkJCQkJXAogc3RhdGljIHZvaWQgc3BpX2lteF9idWZfcnhf IyN0eXBlKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCQlcCiB7CQkJCQkJCQkJXApAQCAt MTQxLDE0ICsxNTIsOSBAQCBzdGF0aWMgaW50IG14Y19jbGtkaXZzW10gPSB7MCwgMywgNCwgNiwg OCwgMTIsIDE2LCAyNCwgMzIsIDQ4LCA2NCwgOTYsIDEyOCwgMTkyLAogCiAvKiBNWDIxLCBNWDI3 ICovCiBzdGF0aWMgdW5zaWduZWQgaW50IHNwaV9pbXhfY2xrZGl2XzEodW5zaWduZWQgaW50IGZp biwKLQkJdW5zaWduZWQgaW50IGZzcGkpCisJCXVuc2lnbmVkIGludCBmc3BpLCB1bnNpZ25lZCBp bnQgbWF4KQogewotCWludCBpLCBtYXg7Ci0KLQlpZiAoY3B1X2lzX214MjEoKSkKLQkJbWF4ID0g MTg7Ci0JZWxzZQotCQltYXggPSAxNjsKKwlpbnQgaTsKIAogCWZvciAoaSA9IDI7IGkgPCBtYXg7 IGkrKykKIAkJaWYgKGZzcGkgKiBteGNfY2xrZGl2c1tpXSA+PSBmaW4pCkBAIC0xNzIsMzAgKzE3 OCwzMCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNwaV9pbXhfY2xrZGl2XzIodW5zaWduZWQgaW50 IGZpbiwKIAlyZXR1cm4gNzsKIH0KIAotI2RlZmluZSBTUElfSU1YMl8zX0NUUkwJCTB4MDgKLSNk ZWZpbmUgU1BJX0lNWDJfM19DVFJMX0VOQUJMRQkJKDEgPDwgIDApCi0jZGVmaW5lIFNQSV9JTVgy XzNfQ1RSTF9YQ0gJCSgxIDw8ICAyKQotI2RlZmluZSBTUElfSU1YMl8zX0NUUkxfTU9ERV9NQVNL CSgweGYgPDwgNCkKLSNkZWZpbmUgU1BJX0lNWDJfM19DVFJMX1BPU1RESVZfT0ZGU0VUCTgKLSNk ZWZpbmUgU1BJX0lNWDJfM19DVFJMX1BSRURJVl9PRkZTRVQJMTIKLSNkZWZpbmUgU1BJX0lNWDJf M19DVFJMX0NTKGNzKQkJKChjcykgPDwgMTgpCi0jZGVmaW5lIFNQSV9JTVgyXzNfQ1RSTF9CTF9P RkZTRVQJMjAKKyNkZWZpbmUgTVg1MV9FQ1NQSV9DVFJMCQkweDA4CisjZGVmaW5lIE1YNTFfRUNT UElfQ1RSTF9FTkFCTEUJCSgxIDw8ICAwKQorI2RlZmluZSBNWDUxX0VDU1BJX0NUUkxfWENICQko MSA8PCAgMikKKyNkZWZpbmUgTVg1MV9FQ1NQSV9DVFJMX01PREVfTUFTSwkoMHhmIDw8IDQpCisj ZGVmaW5lIE1YNTFfRUNTUElfQ1RSTF9QT1NURElWX09GRlNFVAk4CisjZGVmaW5lIE1YNTFfRUNT UElfQ1RSTF9QUkVESVZfT0ZGU0VUCTEyCisjZGVmaW5lIE1YNTFfRUNTUElfQ1RSTF9DUyhjcykJ CSgoY3MpIDw8IDE4KQorI2RlZmluZSBNWDUxX0VDU1BJX0NUUkxfQkxfT0ZGU0VUCTIwCiAKLSNk ZWZpbmUgU1BJX0lNWDJfM19DT05GSUcJMHgwYwotI2RlZmluZSBTUElfSU1YMl8zX0NPTkZJR19T Q0xLUEhBKGNzKQkoMSA8PCAoKGNzKSArICAwKSkKLSNkZWZpbmUgU1BJX0lNWDJfM19DT05GSUdf U0NMS1BPTChjcykJKDEgPDwgKChjcykgKyAgNCkpCi0jZGVmaW5lIFNQSV9JTVgyXzNfQ09ORklH X1NCQkNUUkwoY3MpCSgxIDw8ICgoY3MpICsgIDgpKQotI2RlZmluZSBTUElfSU1YMl8zX0NPTkZJ R19TU0JQT0woY3MpCSgxIDw8ICgoY3MpICsgMTIpKQorI2RlZmluZSBNWDUxX0VDU1BJX0NPTkZJ RwkweDBjCisjZGVmaW5lIE1YNTFfRUNTUElfQ09ORklHX1NDTEtQSEEoY3MpCSgxIDw8ICgoY3Mp ICsgIDApKQorI2RlZmluZSBNWDUxX0VDU1BJX0NPTkZJR19TQ0xLUE9MKGNzKQkoMSA8PCAoKGNz KSArICA0KSkKKyNkZWZpbmUgTVg1MV9FQ1NQSV9DT05GSUdfU0JCQ1RSTChjcykJKDEgPDwgKChj cykgKyAgOCkpCisjZGVmaW5lIE1YNTFfRUNTUElfQ09ORklHX1NTQlBPTChjcykJKDEgPDwgKChj cykgKyAxMikpCiAKLSNkZWZpbmUgU1BJX0lNWDJfM19JTlQJCTB4MTAKLSNkZWZpbmUgU1BJX0lN WDJfM19JTlRfVEVFTgkJKDEgPDwgIDApCi0jZGVmaW5lIFNQSV9JTVgyXzNfSU5UX1JSRU4JCSgx IDw8ICAzKQorI2RlZmluZSBNWDUxX0VDU1BJX0lOVAkJMHgxMAorI2RlZmluZSBNWDUxX0VDU1BJ X0lOVF9URUVOCQkoMSA8PCAgMCkKKyNkZWZpbmUgTVg1MV9FQ1NQSV9JTlRfUlJFTgkJKDEgPDwg IDMpCiAKLSNkZWZpbmUgU1BJX0lNWDJfM19TVEFUCQkweDE4Ci0jZGVmaW5lIFNQSV9JTVgyXzNf U1RBVF9SUgkJKDEgPDwgIDMpCisjZGVmaW5lIE1YNTFfRUNTUElfU1RBVAkJMHgxOAorI2RlZmlu ZSBNWDUxX0VDU1BJX1NUQVRfUlIJCSgxIDw8ICAzKQogCiAvKiBNWDUxIGVDU1BJICovCi1zdGF0 aWMgdW5zaWduZWQgaW50IHNwaV9pbXgyXzNfY2xrZGl2KHVuc2lnbmVkIGludCBmaW4sIHVuc2ln bmVkIGludCBmc3BpKQorc3RhdGljIHVuc2lnbmVkIGludCBteDUxX2Vjc3BpX2Nsa2Rpdih1bnNp Z25lZCBpbnQgZmluLCB1bnNpZ25lZCBpbnQgZnNwaSkKIHsKIAkvKgogCSAqIHRoZXJlIGFyZSB0 d28gNC1iaXQgZGl2aWRlcnMsIHRoZSBwcmUtZGl2aWRlciBkaXZpZGVzIGJ5CkBAIC0yMjMsMzYg KzIyOSwzNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNwaV9pbXgyXzNfY2xrZGl2KHVuc2lnbmVk IGludCBmaW4sIHVuc2lnbmVkIGludCBmc3BpKQogCiAJcHJfZGVidWcoIiVzOiBmaW46ICV1LCBm c3BpOiAldSwgcG9zdDogJXUsIHByZTogJXVcbiIsCiAJCQlfX2Z1bmNfXywgZmluLCBmc3BpLCBw b3N0LCBwcmUpOwotCXJldHVybiAocHJlIDw8IFNQSV9JTVgyXzNfQ1RSTF9QUkVESVZfT0ZGU0VU KSB8Ci0JCShwb3N0IDw8IFNQSV9JTVgyXzNfQ1RSTF9QT1NURElWX09GRlNFVCk7CisJcmV0dXJu IChwcmUgPDwgTVg1MV9FQ1NQSV9DVFJMX1BSRURJVl9PRkZTRVQpIHwKKwkJKHBvc3QgPDwgTVg1 MV9FQ1NQSV9DVFJMX1BPU1RESVZfT0ZGU0VUKTsKIH0KIAotc3RhdGljIHZvaWQgX19tYXliZV91 bnVzZWQgc3BpX2lteDJfM19pbnRjdHJsKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgsIGlu dCBlbmFibGUpCitzdGF0aWMgdm9pZCBfX21heWJlX3VudXNlZAorbXg1MV9lY3NwaV9pbnRjdHJs KHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgsIGludCBlbmFibGUpCiB7CiAJdW5zaWduZWQg dmFsID0gMDsKIAogCWlmIChlbmFibGUgJiBNWENfSU5UX1RFKQotCQl2YWwgfD0gU1BJX0lNWDJf M19JTlRfVEVFTjsKKwkJdmFsIHw9IE1YNTFfRUNTUElfSU5UX1RFRU47CiAKIAlpZiAoZW5hYmxl ICYgTVhDX0lOVF9SUikKLQkJdmFsIHw9IFNQSV9JTVgyXzNfSU5UX1JSRU47CisJCXZhbCB8PSBN WDUxX0VDU1BJX0lOVF9SUkVOOwogCi0Jd3JpdGVsKHZhbCwgc3BpX2lteC0+YmFzZSArIFNQSV9J TVgyXzNfSU5UKTsKKwl3cml0ZWwodmFsLCBzcGlfaW14LT5iYXNlICsgTVg1MV9FQ1NQSV9JTlQp OwogfQogCi1zdGF0aWMgdm9pZCBfX21heWJlX3VudXNlZCBzcGlfaW14Ml8zX3RyaWdnZXIoc3Ry dWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCkKK3N0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkIG14 NTFfZWNzcGlfdHJpZ2dlcihzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14KQogewogCXUzMiBy ZWc7CiAKLQlyZWcgPSByZWFkbChzcGlfaW14LT5iYXNlICsgU1BJX0lNWDJfM19DVFJMKTsKLQly ZWcgfD0gU1BJX0lNWDJfM19DVFJMX1hDSDsKLQl3cml0ZWwocmVnLCBzcGlfaW14LT5iYXNlICsg U1BJX0lNWDJfM19DVFJMKTsKKwlyZWcgPSByZWFkbChzcGlfaW14LT5iYXNlICsgTVg1MV9FQ1NQ SV9DVFJMKTsKKwlyZWcgfD0gTVg1MV9FQ1NQSV9DVFJMX1hDSDsKKwl3cml0ZWwocmVnLCBzcGlf aW14LT5iYXNlICsgTVg1MV9FQ1NQSV9DVFJMKTsKIH0KIAotc3RhdGljIGludCBfX21heWJlX3Vu dXNlZCBzcGlfaW14Ml8zX2NvbmZpZyhzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14LAorc3Rh dGljIGludCBfX21heWJlX3VudXNlZCBteDUxX2Vjc3BpX2NvbmZpZyhzdHJ1Y3Qgc3BpX2lteF9k YXRhICpzcGlfaW14LAogCQlzdHJ1Y3Qgc3BpX2lteF9jb25maWcgKmNvbmZpZykKIHsKLQl1MzIg Y3RybCA9IFNQSV9JTVgyXzNfQ1RSTF9FTkFCTEUsIGNmZyA9IDA7CisJdTMyIGN0cmwgPSBNWDUx X0VDU1BJX0NUUkxfRU5BQkxFLCBjZmcgPSAwOwogCiAJLyoKIAkgKiBUaGUgaGFyZHdhcmUgc2Vl bXMgdG8gaGF2ZSBhIHJhY2UgY29uZGl0aW9uIHdoZW4gY2hhbmdpbmcgbW9kZXMuIFRoZQpAQCAt MjYxLDQyICsyNjgsNDIgQEAgc3RhdGljIGludCBfX21heWJlX3VudXNlZCBzcGlfaW14Ml8zX2Nv bmZpZyhzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14LAogCSAqIHRoZSBzYW1lIHRpbWUuCiAJ ICogU28gc2V0IG1hc3RlciBtb2RlIGZvciBhbGwgY2hhbm5lbHMgYXMgd2UgZG8gbm90IHN1cHBv cnQgc2xhdmUgbW9kZS4KIAkgKi8KLQljdHJsIHw9IFNQSV9JTVgyXzNfQ1RSTF9NT0RFX01BU0s7 CisJY3RybCB8PSBNWDUxX0VDU1BJX0NUUkxfTU9ERV9NQVNLOwogCiAJLyogc2V0IGNsb2NrIHNw ZWVkICovCi0JY3RybCB8PSBzcGlfaW14Ml8zX2Nsa2RpdihzcGlfaW14LT5zcGlfY2xrLCBjb25m aWctPnNwZWVkX2h6KTsKKwljdHJsIHw9IG14NTFfZWNzcGlfY2xrZGl2KHNwaV9pbXgtPnNwaV9j bGssIGNvbmZpZy0+c3BlZWRfaHopOwogCiAJLyogc2V0IGNoaXAgc2VsZWN0IHRvIHVzZSAqLwot CWN0cmwgfD0gU1BJX0lNWDJfM19DVFJMX0NTKGNvbmZpZy0+Y3MpOworCWN0cmwgfD0gTVg1MV9F Q1NQSV9DVFJMX0NTKGNvbmZpZy0+Y3MpOwogCi0JY3RybCB8PSAoY29uZmlnLT5icHcgLSAxKSA8 PCBTUElfSU1YMl8zX0NUUkxfQkxfT0ZGU0VUOworCWN0cmwgfD0gKGNvbmZpZy0+YnB3IC0gMSkg PDwgTVg1MV9FQ1NQSV9DVFJMX0JMX09GRlNFVDsKIAotCWNmZyB8PSBTUElfSU1YMl8zX0NPTkZJ R19TQkJDVFJMKGNvbmZpZy0+Y3MpOworCWNmZyB8PSBNWDUxX0VDU1BJX0NPTkZJR19TQkJDVFJM KGNvbmZpZy0+Y3MpOwogCiAJaWYgKGNvbmZpZy0+bW9kZSAmIFNQSV9DUEhBKQotCQljZmcgfD0g U1BJX0lNWDJfM19DT05GSUdfU0NMS1BIQShjb25maWctPmNzKTsKKwkJY2ZnIHw9IE1YNTFfRUNT UElfQ09ORklHX1NDTEtQSEEoY29uZmlnLT5jcyk7CiAKIAlpZiAoY29uZmlnLT5tb2RlICYgU1BJ X0NQT0wpCi0JCWNmZyB8PSBTUElfSU1YMl8zX0NPTkZJR19TQ0xLUE9MKGNvbmZpZy0+Y3MpOwor CQljZmcgfD0gTVg1MV9FQ1NQSV9DT05GSUdfU0NMS1BPTChjb25maWctPmNzKTsKIAogCWlmIChj b25maWctPm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJY2ZnIHw9IFNQSV9JTVgyXzNfQ09ORklHX1NT QlBPTChjb25maWctPmNzKTsKKwkJY2ZnIHw9IE1YNTFfRUNTUElfQ09ORklHX1NTQlBPTChjb25m aWctPmNzKTsKIAotCXdyaXRlbChjdHJsLCBzcGlfaW14LT5iYXNlICsgU1BJX0lNWDJfM19DVFJM KTsKLQl3cml0ZWwoY2ZnLCBzcGlfaW14LT5iYXNlICsgU1BJX0lNWDJfM19DT05GSUcpOworCXdy aXRlbChjdHJsLCBzcGlfaW14LT5iYXNlICsgTVg1MV9FQ1NQSV9DVFJMKTsKKwl3cml0ZWwoY2Zn LCBzcGlfaW14LT5iYXNlICsgTVg1MV9FQ1NQSV9DT05GSUcpOwogCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc3BpX2lteDJfM19yeF9hdmFpbGFibGUoc3RydWN0 IHNwaV9pbXhfZGF0YSAqc3BpX2lteCkKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXg1MV9l Y3NwaV9yeF9hdmFpbGFibGUoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCkKIHsKLQlyZXR1 cm4gcmVhZGwoc3BpX2lteC0+YmFzZSArIFNQSV9JTVgyXzNfU1RBVCkgJiBTUElfSU1YMl8zX1NU QVRfUlI7CisJcmV0dXJuIHJlYWRsKHNwaV9pbXgtPmJhc2UgKyBNWDUxX0VDU1BJX1NUQVQpICYg TVg1MV9FQ1NQSV9TVEFUX1JSOwogfQogCi1zdGF0aWMgdm9pZCBfX21heWJlX3VudXNlZCBzcGlf aW14Ml8zX3Jlc2V0KHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCitzdGF0aWMgdm9pZCBf X21heWJlX3VudXNlZCBteDUxX2Vjc3BpX3Jlc2V0KHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9p bXgpCiB7CiAJLyogZHJhaW4gcmVjZWl2ZSBidWZmZXIgKi8KLQl3aGlsZSAoc3BpX2lteDJfM19y eF9hdmFpbGFibGUoc3BpX2lteCkpCisJd2hpbGUgKG14NTFfZWNzcGlfcnhfYXZhaWxhYmxlKHNw aV9pbXgpKQogCQlyZWFkbChzcGlfaW14LT5iYXNlICsgTVhDX0NTUElSWERBVEEpOwogfQogCkBA IC0zNDQsMzIgKzM1MSw3IEBAIHN0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkIG14MzFfdHJpZ2dl cihzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14KQogCXdyaXRlbChyZWcsIHNwaV9pbXgtPmJh c2UgKyBNWENfQ1NQSUNUUkwpOwogfQogCi1zdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIHNwaV9p bXgwXzRfY29uZmlnKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgsCi0JCXN0cnVjdCBzcGlf aW14X2NvbmZpZyAqY29uZmlnKQotewotCXVuc2lnbmVkIGludCByZWcgPSBNWDMxX0NTUElDVFJM X0VOQUJMRSB8IE1YMzFfQ1NQSUNUUkxfTUFTVEVSOwotCWludCBjcyA9IHNwaV9pbXgtPmNoaXBz ZWxlY3RbY29uZmlnLT5jc107Ci0KLQlyZWcgfD0gc3BpX2lteF9jbGtkaXZfMihzcGlfaW14LT5z cGlfY2xrLCBjb25maWctPnNwZWVkX2h6KSA8PAotCQlNWDMxX0NTUElDVFJMX0RSX1NISUZUOwot Ci0JcmVnIHw9IChjb25maWctPmJwdyAtIDEpIDw8IE1YMzFfQ1NQSUNUUkxfQkNfU0hJRlQ7Ci0K LQlpZiAoY29uZmlnLT5tb2RlICYgU1BJX0NQSEEpCi0JCXJlZyB8PSBNWDMxX0NTUElDVFJMX1BI QTsKLQlpZiAoY29uZmlnLT5tb2RlICYgU1BJX0NQT0wpCi0JCXJlZyB8PSBNWDMxX0NTUElDVFJM X1BPTDsKLQlpZiAoY29uZmlnLT5tb2RlICYgU1BJX0NTX0hJR0gpCi0JCXJlZyB8PSBNWDMxX0NT UElDVFJMX1NTUE9MOwotCWlmIChjcyA8IDApCi0JCXJlZyB8PSAoY3MgKyAzMikgPDwgTVgzMV9D U1BJQ1RSTF9DU19TSElGVDsKLQotCXdyaXRlbChyZWcsIHNwaV9pbXgtPmJhc2UgKyBNWENfQ1NQ SUNUUkwpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc3Bp X2lteDBfN19jb25maWcoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwKK3N0YXRpYyBpbnQg X19tYXliZV91bnVzZWQgbXgzMV9jb25maWcoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwK IAkJc3RydWN0IHNwaV9pbXhfY29uZmlnICpjb25maWcpCiB7CiAJdW5zaWduZWQgaW50IHJlZyA9 IE1YMzFfQ1NQSUNUUkxfRU5BQkxFIHwgTVgzMV9DU1BJQ1RSTF9NQVNURVI7CkBAIC0zNzgsOCAr MzYwLDEyIEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc3BpX2lteDBfN19jb25maWcoc3Ry dWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwKIAlyZWcgfD0gc3BpX2lteF9jbGtkaXZfMihzcGlf aW14LT5zcGlfY2xrLCBjb25maWctPnNwZWVkX2h6KSA8PAogCQlNWDMxX0NTUElDVFJMX0RSX1NI SUZUOwogCi0JcmVnIHw9IChjb25maWctPmJwdyAtIDEpIDw8IE1YMzVfQ1NQSUNUUkxfQkxfU0hJ RlQ7Ci0JcmVnIHw9IE1YMzFfQ1NQSUNUUkxfU1NDVEw7CisJaWYgKGlzX2lteDM1X2NzcGkoc3Bp X2lteCkpIHsKKwkJcmVnIHw9IChjb25maWctPmJwdyAtIDEpIDw8IE1YMzVfQ1NQSUNUUkxfQkxf U0hJRlQ7CisJCXJlZyB8PSBNWDMxX0NTUElDVFJMX1NTQ1RMOworCX0gZWxzZSB7CisJCXJlZyB8 PSAoY29uZmlnLT5icHcgLSAxKSA8PCBNWDMxX0NTUElDVFJMX0JDX1NISUZUOworCX0KIAogCWlm IChjb25maWctPm1vZGUgJiBTUElfQ1BIQSkKIAkJcmVnIHw9IE1YMzFfQ1NQSUNUUkxfUEhBOwpA QCAtMzg4LDcgKzM3NCw5IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc3BpX2lteDBfN19j b25maWcoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwKIAlpZiAoY29uZmlnLT5tb2RlICYg U1BJX0NTX0hJR0gpCiAJCXJlZyB8PSBNWDMxX0NTUElDVFJMX1NTUE9MOwogCWlmIChjcyA8IDAp Ci0JCXJlZyB8PSAoY3MgKyAzMikgPDwgTVgzNV9DU1BJQ1RSTF9DU19TSElGVDsKKwkJcmVnIHw9 IChjcyArIDMyKSA8PAorCQkJKGlzX2lteDM1X2NzcGkoc3BpX2lteCkgPyAgTVgzNV9DU1BJQ1RS TF9DU19TSElGVCA6CisJCQkJCQkgICBNWDMxX0NTUElDVFJMX0NTX1NISUZUKTsKIAogCXdyaXRl bChyZWcsIHNwaV9pbXgtPmJhc2UgKyBNWENfQ1NQSUNUUkwpOwogCkBAIC00MDAsNzcgKzM4OCw3 OSBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG14MzFfcnhfYXZhaWxhYmxlKHN0cnVjdCBz cGlfaW14X2RhdGEgKnNwaV9pbXgpCiAJcmV0dXJuIHJlYWRsKHNwaV9pbXgtPmJhc2UgKyBNWDMx X0NTUElTVEFUVVMpICYgTVgzMV9TVEFUVVNfUlI7CiB9CiAKLXN0YXRpYyB2b2lkIF9fbWF5YmVf dW51c2VkIHNwaV9pbXgwXzRfcmVzZXQoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCkKK3N0 YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkIG14MzFfcmVzZXQoc3RydWN0IHNwaV9pbXhfZGF0YSAq c3BpX2lteCkKIHsKIAkvKiBkcmFpbiByZWNlaXZlIGJ1ZmZlciAqLwotCXdoaWxlIChyZWFkbChz cGlfaW14LT5iYXNlICsgTVgzX0NTUElTVEFUKSAmIE1YM19DU1BJU1RBVF9SUikKKwl3aGlsZSAo cmVhZGwoc3BpX2lteC0+YmFzZSArIE1YMzFfQ1NQSVNUQVRVUykgJiBNWDMxX1NUQVRVU19SUikK IAkJcmVhZGwoc3BpX2lteC0+YmFzZSArIE1YQ19DU1BJUlhEQVRBKTsKIH0KIAotI2RlZmluZSBN WDI3X0lOVFJFR19SUgkJKDEgPDwgNCkKLSNkZWZpbmUgTVgyN19JTlRSRUdfVEVFTgkoMSA8PCA5 KQotI2RlZmluZSBNWDI3X0lOVFJFR19SUkVOCSgxIDw8IDEzKQorI2RlZmluZSBNWDIxX0lOVFJF R19SUgkJKDEgPDwgNCkKKyNkZWZpbmUgTVgyMV9JTlRSRUdfVEVFTgkoMSA8PCA5KQorI2RlZmlu ZSBNWDIxX0lOVFJFR19SUkVOCSgxIDw8IDEzKQogCi0jZGVmaW5lIE1YMjdfQ1NQSUNUUkxfUE9M CSgxIDw8IDUpCi0jZGVmaW5lIE1YMjdfQ1NQSUNUUkxfUEhBCSgxIDw8IDYpCi0jZGVmaW5lIE1Y MjdfQ1NQSUNUUkxfU1NQT0wJKDEgPDwgOCkKLSNkZWZpbmUgTVgyN19DU1BJQ1RSTF9YQ0gJKDEg PDwgOSkKLSNkZWZpbmUgTVgyN19DU1BJQ1RSTF9FTkFCTEUJKDEgPDwgMTApCi0jZGVmaW5lIE1Y MjdfQ1NQSUNUUkxfTUFTVEVSCSgxIDw8IDExKQotI2RlZmluZSBNWDI3X0NTUElDVFJMX0RSX1NI SUZUCTE0Ci0jZGVmaW5lIE1YMjdfQ1NQSUNUUkxfQ1NfU0hJRlQJMTkKKyNkZWZpbmUgTVgyMV9D U1BJQ1RSTF9QT0wJKDEgPDwgNSkKKyNkZWZpbmUgTVgyMV9DU1BJQ1RSTF9QSEEJKDEgPDwgNikK KyNkZWZpbmUgTVgyMV9DU1BJQ1RSTF9TU1BPTAkoMSA8PCA4KQorI2RlZmluZSBNWDIxX0NTUElD VFJMX1hDSAkoMSA8PCA5KQorI2RlZmluZSBNWDIxX0NTUElDVFJMX0VOQUJMRQkoMSA8PCAxMCkK KyNkZWZpbmUgTVgyMV9DU1BJQ1RSTF9NQVNURVIJKDEgPDwgMTEpCisjZGVmaW5lIE1YMjFfQ1NQ SUNUUkxfRFJfU0hJRlQJMTQKKyNkZWZpbmUgTVgyMV9DU1BJQ1RSTF9DU19TSElGVAkxOQogCi1z dGF0aWMgdm9pZCBfX21heWJlX3VudXNlZCBteDI3X2ludGN0cmwoc3RydWN0IHNwaV9pbXhfZGF0 YSAqc3BpX2lteCwgaW50IGVuYWJsZSkKK3N0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCitteDIx X2ludGN0cmwoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwgaW50IGVuYWJsZSkKIHsKIAl1 bnNpZ25lZCBpbnQgdmFsID0gMDsKIAogCWlmIChlbmFibGUgJiBNWENfSU5UX1RFKQotCQl2YWwg fD0gTVgyN19JTlRSRUdfVEVFTjsKKwkJdmFsIHw9IE1YMjFfSU5UUkVHX1RFRU47CiAJaWYgKGVu YWJsZSAmIE1YQ19JTlRfUlIpCi0JCXZhbCB8PSBNWDI3X0lOVFJFR19SUkVOOworCQl2YWwgfD0g TVgyMV9JTlRSRUdfUlJFTjsKIAogCXdyaXRlbCh2YWwsIHNwaV9pbXgtPmJhc2UgKyBNWENfQ1NQ SUlOVCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkIG14MjdfdHJpZ2dlcihzdHJ1 Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14KQorc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQgbXgy MV90cmlnZ2VyKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCiB7CiAJdW5zaWduZWQgaW50 IHJlZzsKIAogCXJlZyA9IHJlYWRsKHNwaV9pbXgtPmJhc2UgKyBNWENfQ1NQSUNUUkwpOwotCXJl ZyB8PSBNWDI3X0NTUElDVFJMX1hDSDsKKwlyZWcgfD0gTVgyMV9DU1BJQ1RSTF9YQ0g7CiAJd3Jp dGVsKHJlZywgc3BpX2lteC0+YmFzZSArIE1YQ19DU1BJQ1RSTCk7CiB9CiAKLXN0YXRpYyBpbnQg X19tYXliZV91bnVzZWQgbXgyN19jb25maWcoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwK K3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXgyMV9jb25maWcoc3RydWN0IHNwaV9pbXhfZGF0 YSAqc3BpX2lteCwKIAkJc3RydWN0IHNwaV9pbXhfY29uZmlnICpjb25maWcpCiB7Ci0JdW5zaWdu ZWQgaW50IHJlZyA9IE1YMjdfQ1NQSUNUUkxfRU5BQkxFIHwgTVgyN19DU1BJQ1RSTF9NQVNURVI7 CisJdW5zaWduZWQgaW50IHJlZyA9IE1YMjFfQ1NQSUNUUkxfRU5BQkxFIHwgTVgyMV9DU1BJQ1RS TF9NQVNURVI7CiAJaW50IGNzID0gc3BpX2lteC0+Y2hpcHNlbGVjdFtjb25maWctPmNzXTsKKwl1 bnNpZ25lZCBpbnQgbWF4ID0gaXNfaW14MjdfY3NwaShzcGlfaW14KSA/IDE2IDogMTg7CiAKLQly ZWcgfD0gc3BpX2lteF9jbGtkaXZfMShzcGlfaW14LT5zcGlfY2xrLCBjb25maWctPnNwZWVkX2h6 KSA8PAotCQlNWDI3X0NTUElDVFJMX0RSX1NISUZUOworCXJlZyB8PSBzcGlfaW14X2Nsa2Rpdl8x KHNwaV9pbXgtPnNwaV9jbGssIGNvbmZpZy0+c3BlZWRfaHosIG1heCkgPDwKKwkJTVgyMV9DU1BJ Q1RSTF9EUl9TSElGVDsKIAlyZWcgfD0gY29uZmlnLT5icHcgLSAxOwogCiAJaWYgKGNvbmZpZy0+ bW9kZSAmIFNQSV9DUEhBKQotCQlyZWcgfD0gTVgyN19DU1BJQ1RSTF9QSEE7CisJCXJlZyB8PSBN WDIxX0NTUElDVFJMX1BIQTsKIAlpZiAoY29uZmlnLT5tb2RlICYgU1BJX0NQT0wpCi0JCXJlZyB8 PSBNWDI3X0NTUElDVFJMX1BPTDsKKwkJcmVnIHw9IE1YMjFfQ1NQSUNUUkxfUE9MOwogCWlmIChj b25maWctPm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJcmVnIHw9IE1YMjdfQ1NQSUNUUkxfU1NQT0w7 CisJCXJlZyB8PSBNWDIxX0NTUElDVFJMX1NTUE9MOwogCWlmIChjcyA8IDApCi0JCXJlZyB8PSAo Y3MgKyAzMikgPDwgTVgyN19DU1BJQ1RSTF9DU19TSElGVDsKKwkJcmVnIHw9IChjcyArIDMyKSA8 PCBNWDIxX0NTUElDVFJMX0NTX1NISUZUOwogCiAJd3JpdGVsKHJlZywgc3BpX2lteC0+YmFzZSAr IE1YQ19DU1BJQ1RSTCk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfX21heWJlX3Vu dXNlZCBteDI3X3J4X2F2YWlsYWJsZShzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14KQorc3Rh dGljIGludCBfX21heWJlX3VudXNlZCBteDIxX3J4X2F2YWlsYWJsZShzdHJ1Y3Qgc3BpX2lteF9k YXRhICpzcGlfaW14KQogewotCXJldHVybiByZWFkbChzcGlfaW14LT5iYXNlICsgTVhDX0NTUElJ TlQpICYgTVgyN19JTlRSRUdfUlI7CisJcmV0dXJuIHJlYWRsKHNwaV9pbXgtPmJhc2UgKyBNWENf Q1NQSUlOVCkgJiBNWDIxX0lOVFJFR19SUjsKIH0KIAotc3RhdGljIHZvaWQgX19tYXliZV91bnVz ZWQgc3BpX2lteDBfMF9yZXNldChzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14KQorc3RhdGlj IHZvaWQgX19tYXliZV91bnVzZWQgbXgyMV9yZXNldChzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlf aW14KQogewogCXdyaXRlbCgxLCBzcGlfaW14LT5iYXNlICsgTVhDX1JFU0VUKTsKIH0KQEAgLTUz Niw2MSArNTI2LDg0IEBAIHN0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkIG14MV9yZXNldChzdHJ1 Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14KQogCXdyaXRlbCgxLCBzcGlfaW14LT5iYXNlICsgTVhD X1JFU0VUKTsKIH0KIAotLyoKLSAqIFRoZXNlIHZlcnNpb24gbnVtYmVycyBhcmUgdGFrZW4gZnJv bSB0aGUgRnJlZXNjYWxlIGRyaXZlci4gIFVuZm9ydHVuYXRlbHkgaXQKLSAqIGRvZXNuJ3Qgc3Vw cG9ydCBpLk1YMSwgc28gdGhpcyBlbnRyeSBkb2Vzbid0IG1hdGNoIHRoZSBzY2hlbWUuIDotKAot ICovCi1zdGF0aWMgc3RydWN0IHNwaV9pbXhfZGV2dHlwZV9kYXRhIHNwaV9pbXhfZGV2dHlwZV9k YXRhW10gX19kZXZpbml0ZGF0YSA9IHsKLSNpZmRlZiBDT05GSUdfU1BJX0lNWF9WRVJfSU1YMQot CVtTUElfSU1YX1ZFUl9JTVgxXSA9IHsKLQkJLmludGN0cmwgPSBteDFfaW50Y3RybCwKLQkJLmNv bmZpZyA9IG14MV9jb25maWcsCi0JCS50cmlnZ2VyID0gbXgxX3RyaWdnZXIsCi0JCS5yeF9hdmFp bGFibGUgPSBteDFfcnhfYXZhaWxhYmxlLAotCQkucmVzZXQgPSBteDFfcmVzZXQsCi0JCS5maWZv c2l6ZSA9IDgsCi0JfSwKLSNlbmRpZgotI2lmZGVmIENPTkZJR19TUElfSU1YX1ZFUl8wXzAKLQlb U1BJX0lNWF9WRVJfMF8wXSA9IHsKLQkJLmludGN0cmwgPSBteDI3X2ludGN0cmwsCi0JCS5jb25m aWcgPSBteDI3X2NvbmZpZywKLQkJLnRyaWdnZXIgPSBteDI3X3RyaWdnZXIsCi0JCS5yeF9hdmFp bGFibGUgPSBteDI3X3J4X2F2YWlsYWJsZSwKLQkJLnJlc2V0ID0gc3BpX2lteDBfMF9yZXNldCwK LQkJLmZpZm9zaXplID0gOCwKLQl9LAotI2VuZGlmCi0jaWZkZWYgQ09ORklHX1NQSV9JTVhfVkVS XzBfNAotCVtTUElfSU1YX1ZFUl8wXzRdID0gewotCQkuaW50Y3RybCA9IG14MzFfaW50Y3RybCwK LQkJLmNvbmZpZyA9IHNwaV9pbXgwXzRfY29uZmlnLAotCQkudHJpZ2dlciA9IG14MzFfdHJpZ2dl ciwKLQkJLnJ4X2F2YWlsYWJsZSA9IG14MzFfcnhfYXZhaWxhYmxlLAotCQkucmVzZXQgPSBzcGlf aW14MF80X3Jlc2V0LAotCQkuZmlmb3NpemUgPSA4LAotCX0sCi0jZW5kaWYKLSNpZmRlZiBDT05G SUdfU1BJX0lNWF9WRVJfMF83Ci0JW1NQSV9JTVhfVkVSXzBfN10gPSB7Ci0JCS5pbnRjdHJsID0g bXgzMV9pbnRjdHJsLAotCQkuY29uZmlnID0gc3BpX2lteDBfN19jb25maWcsCi0JCS50cmlnZ2Vy ID0gbXgzMV90cmlnZ2VyLAotCQkucnhfYXZhaWxhYmxlID0gbXgzMV9yeF9hdmFpbGFibGUsCi0J CS5yZXNldCA9IHNwaV9pbXgwXzRfcmVzZXQsCi0JCS5maWZvc2l6ZSA9IDgsCi0JfSwKLSNlbmRp ZgotI2lmZGVmIENPTkZJR19TUElfSU1YX1ZFUl8yXzMKLQlbU1BJX0lNWF9WRVJfMl8zXSA9IHsK LQkJLmludGN0cmwgPSBzcGlfaW14Ml8zX2ludGN0cmwsCi0JCS5jb25maWcgPSBzcGlfaW14Ml8z X2NvbmZpZywKLQkJLnRyaWdnZXIgPSBzcGlfaW14Ml8zX3RyaWdnZXIsCi0JCS5yeF9hdmFpbGFi bGUgPSBzcGlfaW14Ml8zX3J4X2F2YWlsYWJsZSwKLQkJLnJlc2V0ID0gc3BpX2lteDJfM19yZXNl dCwKLQkJLmZpZm9zaXplID0gNjQsCi0JfSwKLSNlbmRpZgorc3RhdGljIHN0cnVjdCBzcGlfaW14 X2RldnR5cGVfZGF0YSBpbXgxX2NzcGlfZGV2dHlwZV9kYXRhID0geworCS5pbnRjdHJsID0gbXgx X2ludGN0cmwsCisJLmNvbmZpZyA9IG14MV9jb25maWcsCisJLnRyaWdnZXIgPSBteDFfdHJpZ2dl ciwKKwkucnhfYXZhaWxhYmxlID0gbXgxX3J4X2F2YWlsYWJsZSwKKwkucmVzZXQgPSBteDFfcmVz ZXQsCisJLmRldnR5cGUgPSBJTVgxX0NTUEksCit9OworCitzdGF0aWMgc3RydWN0IHNwaV9pbXhf ZGV2dHlwZV9kYXRhIGlteDIxX2NzcGlfZGV2dHlwZV9kYXRhID0geworCS5pbnRjdHJsID0gbXgy MV9pbnRjdHJsLAorCS5jb25maWcgPSBteDIxX2NvbmZpZywKKwkudHJpZ2dlciA9IG14MjFfdHJp Z2dlciwKKwkucnhfYXZhaWxhYmxlID0gbXgyMV9yeF9hdmFpbGFibGUsCisJLnJlc2V0ID0gbXgy MV9yZXNldCwKKwkuZGV2dHlwZSA9IElNWDIxX0NTUEksCit9OworCitzdGF0aWMgc3RydWN0IHNw aV9pbXhfZGV2dHlwZV9kYXRhIGlteDI3X2NzcGlfZGV2dHlwZV9kYXRhID0geworCS8qIGkubXgy NyBjc3BpIHNoYXJlcyB0aGUgZnVuY3Rpb25zIHdpdGggaS5teDIxIG9uZSAqLworCS5pbnRjdHJs ID0gbXgyMV9pbnRjdHJsLAorCS5jb25maWcgPSBteDIxX2NvbmZpZywKKwkudHJpZ2dlciA9IG14 MjFfdHJpZ2dlciwKKwkucnhfYXZhaWxhYmxlID0gbXgyMV9yeF9hdmFpbGFibGUsCisJLnJlc2V0 ID0gbXgyMV9yZXNldCwKKwkuZGV2dHlwZSA9IElNWDI3X0NTUEksCit9OworCitzdGF0aWMgc3Ry dWN0IHNwaV9pbXhfZGV2dHlwZV9kYXRhIGlteDMxX2NzcGlfZGV2dHlwZV9kYXRhID0geworCS5p bnRjdHJsID0gbXgzMV9pbnRjdHJsLAorCS5jb25maWcgPSBteDMxX2NvbmZpZywKKwkudHJpZ2dl ciA9IG14MzFfdHJpZ2dlciwKKwkucnhfYXZhaWxhYmxlID0gbXgzMV9yeF9hdmFpbGFibGUsCisJ LnJlc2V0ID0gbXgzMV9yZXNldCwKKwkuZGV2dHlwZSA9IElNWDMxX0NTUEksCit9OworCitzdGF0 aWMgc3RydWN0IHNwaV9pbXhfZGV2dHlwZV9kYXRhIGlteDM1X2NzcGlfZGV2dHlwZV9kYXRhID0g eworCS8qIGkubXgzNSBhbmQgbGF0ZXIgY3NwaSBzaGFyZXMgdGhlIGZ1bmN0aW9ucyB3aXRoIGku bXgzMSBvbmUgKi8KKwkuaW50Y3RybCA9IG14MzFfaW50Y3RybCwKKwkuY29uZmlnID0gbXgzMV9j b25maWcsCisJLnRyaWdnZXIgPSBteDMxX3RyaWdnZXIsCisJLnJ4X2F2YWlsYWJsZSA9IG14MzFf cnhfYXZhaWxhYmxlLAorCS5yZXNldCA9IG14MzFfcmVzZXQsCisJLmRldnR5cGUgPSBJTVgzNV9D U1BJLAorfTsKKworc3RhdGljIHN0cnVjdCBzcGlfaW14X2RldnR5cGVfZGF0YSBpbXg1MV9lY3Nw aV9kZXZ0eXBlX2RhdGEgPSB7CisJLmludGN0cmwgPSBteDUxX2Vjc3BpX2ludGN0cmwsCisJLmNv bmZpZyA9IG14NTFfZWNzcGlfY29uZmlnLAorCS50cmlnZ2VyID0gbXg1MV9lY3NwaV90cmlnZ2Vy LAorCS5yeF9hdmFpbGFibGUgPSBteDUxX2Vjc3BpX3J4X2F2YWlsYWJsZSwKKwkucmVzZXQgPSBt eDUxX2Vjc3BpX3Jlc2V0LAorCS5kZXZ0eXBlID0gSU1YNTFfRUNTUEksCit9OworCitzdGF0aWMg c3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBzcGlfaW14X2RldnR5cGVbXSA9IHsKKwl7CisJCS5u YW1lID0gImlteDEtY3NwaSIsCisJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdCkgJmlt eDFfY3NwaV9kZXZ0eXBlX2RhdGEsCisJfSwgeworCQkubmFtZSA9ICJpbXgyMS1jc3BpIiwKKwkJ LmRyaXZlcl9kYXRhID0gKGtlcm5lbF91bG9uZ190KSAmaW14MjFfY3NwaV9kZXZ0eXBlX2RhdGEs CisJfSwgeworCQkubmFtZSA9ICJpbXgyNy1jc3BpIiwKKwkJLmRyaXZlcl9kYXRhID0gKGtlcm5l bF91bG9uZ190KSAmaW14MjdfY3NwaV9kZXZ0eXBlX2RhdGEsCisJfSwgeworCQkubmFtZSA9ICJp bXgzMS1jc3BpIiwKKwkJLmRyaXZlcl9kYXRhID0gKGtlcm5lbF91bG9uZ190KSAmaW14MzFfY3Nw aV9kZXZ0eXBlX2RhdGEsCisJfSwgeworCQkubmFtZSA9ICJpbXgzNS1jc3BpIiwKKwkJLmRyaXZl cl9kYXRhID0gKGtlcm5lbF91bG9uZ190KSAmaW14MzVfY3NwaV9kZXZ0eXBlX2RhdGEsCisJfSwg eworCQkubmFtZSA9ICJpbXg1MS1lY3NwaSIsCisJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxv bmdfdCkgJmlteDUxX2Vjc3BpX2RldnR5cGVfZGF0YSwKKwl9LCB7CisJCS8qIHNlbnRpbmVsICov CisJfQogfTsKIAogc3RhdGljIHZvaWQgc3BpX2lteF9jaGlwc2VsZWN0KHN0cnVjdCBzcGlfZGV2 aWNlICpzcGksIGludCBpc19hY3RpdmUpCkBAIC02MDgsMjEgKzYyMSwyMSBAQCBzdGF0aWMgdm9p ZCBzcGlfaW14X2NoaXBzZWxlY3Qoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgaW50IGlzX2FjdGl2 ZSkKIAogc3RhdGljIHZvaWQgc3BpX2lteF9wdXNoKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9p bXgpCiB7Ci0Jd2hpbGUgKHNwaV9pbXgtPnR4ZmlmbyA8IHNwaV9pbXgtPmRldnR5cGVfZGF0YS5m aWZvc2l6ZSkgeworCXdoaWxlIChzcGlfaW14LT50eGZpZm8gPCBzcGlfaW14X2dldF9maWZvc2l6 ZShzcGlfaW14KSkgewogCQlpZiAoIXNwaV9pbXgtPmNvdW50KQogCQkJYnJlYWs7CiAJCXNwaV9p bXgtPnR4KHNwaV9pbXgpOwogCQlzcGlfaW14LT50eGZpZm8rKzsKIAl9CiAKLQlzcGlfaW14LT5k ZXZ0eXBlX2RhdGEudHJpZ2dlcihzcGlfaW14KTsKKwlzcGlfaW14LT5kZXZ0eXBlX2RhdGEtPnRy aWdnZXIoc3BpX2lteCk7CiB9CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBzcGlfaW14X2lzcihpbnQg aXJxLCB2b2lkICpkZXZfaWQpCiB7CiAJc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCA9IGRl dl9pZDsKIAotCXdoaWxlIChzcGlfaW14LT5kZXZ0eXBlX2RhdGEucnhfYXZhaWxhYmxlKHNwaV9p bXgpKSB7CisJd2hpbGUgKHNwaV9pbXgtPmRldnR5cGVfZGF0YS0+cnhfYXZhaWxhYmxlKHNwaV9p bXgpKSB7CiAJCXNwaV9pbXgtPnJ4KHNwaV9pbXgpOwogCQlzcGlfaW14LT50eGZpZm8tLTsKIAl9 CkBAIC02MzYsMTIgKzY0OSwxMiBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgc3BpX2lteF9pc3IoaW50 IGlycSwgdm9pZCAqZGV2X2lkKQogCQkvKiBObyBkYXRhIGxlZnQgdG8gcHVzaCwgYnV0IHN0aWxs IHdhaXRpbmcgZm9yIHJ4IGRhdGEsCiAJCSAqIGVuYWJsZSByZWNlaXZlIGRhdGEgYXZhaWxhYmxl IGludGVycnVwdC4KIAkJICovCi0JCXNwaV9pbXgtPmRldnR5cGVfZGF0YS5pbnRjdHJsKAorCQlz cGlfaW14LT5kZXZ0eXBlX2RhdGEtPmludGN0cmwoCiAJCQkJc3BpX2lteCwgTVhDX0lOVF9SUik7 CiAJCXJldHVybiBJUlFfSEFORExFRDsKIAl9CiAKLQlzcGlfaW14LT5kZXZ0eXBlX2RhdGEuaW50 Y3RybChzcGlfaW14LCAwKTsKKwlzcGlfaW14LT5kZXZ0eXBlX2RhdGEtPmludGN0cmwoc3BpX2lt eCwgMCk7CiAJY29tcGxldGUoJnNwaV9pbXgtPnhmZXJfZG9uZSk7CiAKIAlyZXR1cm4gSVJRX0hB TkRMRUQ7CkBAIC02NzgsNyArNjkxLDcgQEAgc3RhdGljIGludCBzcGlfaW14X3NldHVweGZlcihz dHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCX0gZWxzZQogCQlCVUcoKTsKIAotCXNwaV9pbXgtPmRl dnR5cGVfZGF0YS5jb25maWcoc3BpX2lteCwgJmNvbmZpZyk7CisJc3BpX2lteC0+ZGV2dHlwZV9k YXRhLT5jb25maWcoc3BpX2lteCwgJmNvbmZpZyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTY5Nyw3 ICs3MTAsNyBAQCBzdGF0aWMgaW50IHNwaV9pbXhfdHJhbnNmZXIoc3RydWN0IHNwaV9kZXZpY2Ug KnNwaSwKIAogCXNwaV9pbXhfcHVzaChzcGlfaW14KTsKIAotCXNwaV9pbXgtPmRldnR5cGVfZGF0 YS5pbnRjdHJsKHNwaV9pbXgsIE1YQ19JTlRfVEUpOworCXNwaV9pbXgtPmRldnR5cGVfZGF0YS0+ aW50Y3RybChzcGlfaW14LCBNWENfSU5UX1RFKTsKIAogCXdhaXRfZm9yX2NvbXBsZXRpb24oJnNw aV9pbXgtPnhmZXJfZG9uZSk7CiAKQEAgLTcyNCw0MiArNzM3LDYgQEAgc3RhdGljIHZvaWQgc3Bp X2lteF9jbGVhbnVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CiB9CiAKLXN0YXRpYyBzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIHNwaV9pbXhfZGV2dHlwZVtdID0gewotCXsKLQkJLm5hbWUg PSAiaW14MS1jc3BpIiwKLQkJLmRyaXZlcl9kYXRhID0gU1BJX0lNWF9WRVJfSU1YMSwKLQl9LCB7 Ci0JCS5uYW1lID0gImlteDIxLWNzcGkiLAotCQkuZHJpdmVyX2RhdGEgPSBTUElfSU1YX1ZFUl8w XzAsCi0JfSwgewotCQkubmFtZSA9ICJpbXgyNS1jc3BpIiwKLQkJLmRyaXZlcl9kYXRhID0gU1BJ X0lNWF9WRVJfMF83LAotCX0sIHsKLQkJLm5hbWUgPSAiaW14MjctY3NwaSIsCi0JCS5kcml2ZXJf ZGF0YSA9IFNQSV9JTVhfVkVSXzBfMCwKLQl9LCB7Ci0JCS5uYW1lID0gImlteDMxLWNzcGkiLAot CQkuZHJpdmVyX2RhdGEgPSBTUElfSU1YX1ZFUl8wXzQsCi0JfSwgewotCQkubmFtZSA9ICJpbXgz NS1jc3BpIiwKLQkJLmRyaXZlcl9kYXRhID0gU1BJX0lNWF9WRVJfMF83LAotCX0sIHsKLQkJLm5h bWUgPSAiaW14NTEtY3NwaSIsCi0JCS5kcml2ZXJfZGF0YSA9IFNQSV9JTVhfVkVSXzBfNywKLQl9 LCB7Ci0JCS5uYW1lID0gImlteDUxLWVjc3BpIiwKLQkJLmRyaXZlcl9kYXRhID0gU1BJX0lNWF9W RVJfMl8zLAotCX0sIHsKLQkJLm5hbWUgPSAiaW14NTMtY3NwaSIsCi0JCS5kcml2ZXJfZGF0YSA9 IFNQSV9JTVhfVkVSXzBfNywKLQl9LCB7Ci0JCS5uYW1lID0gImlteDUzLWVjc3BpIiwKLQkJLmRy aXZlcl9kYXRhID0gU1BJX0lNWF9WRVJfMl8zLAotCX0sIHsKLQkJLyogc2VudGluZWwgKi8KLQl9 Ci19OwotCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBzcGlfaW14X3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IHNwaV9pbXhfbWFzdGVyICpteGNfcGxhdGZvcm1f aW5mbzsKQEAgLTgxMiw3ICs3ODksNyBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBzcGlfaW14X3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW5pdF9jb21wbGV0aW9uKCZzcGlf aW14LT54ZmVyX2RvbmUpOwogCiAJc3BpX2lteC0+ZGV2dHlwZV9kYXRhID0KLQkJc3BpX2lteF9k ZXZ0eXBlX2RhdGFbcGRldi0+aWRfZW50cnktPmRyaXZlcl9kYXRhXTsKKwkJKHN0cnVjdCBzcGlf aW14X2RldnR5cGVfZGF0YSAqKSBwZGV2LT5pZF9lbnRyeS0+ZHJpdmVyX2RhdGE7CiAKIAlyZXMg PSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwogCWlmICgh cmVzKSB7CkBAIC04NTUsOSArODMyLDkgQEAgc3RhdGljIGludCBfX2RldmluaXQgc3BpX2lteF9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWNsa19lbmFibGUoc3BpX2lteC0+ Y2xrKTsKIAlzcGlfaW14LT5zcGlfY2xrID0gY2xrX2dldF9yYXRlKHNwaV9pbXgtPmNsayk7CiAK LQlzcGlfaW14LT5kZXZ0eXBlX2RhdGEucmVzZXQoc3BpX2lteCk7CisJc3BpX2lteC0+ZGV2dHlw ZV9kYXRhLT5yZXNldChzcGlfaW14KTsKIAotCXNwaV9pbXgtPmRldnR5cGVfZGF0YS5pbnRjdHJs KHNwaV9pbXgsIDApOworCXNwaV9pbXgtPmRldnR5cGVfZGF0YS0+aW50Y3RybChzcGlfaW14LCAw KTsKIAogCXJldCA9IHNwaV9iaXRiYW5nX3N0YXJ0KCZzcGlfaW14LT5iaXRiYW5nKTsKIAlpZiAo cmV0KSB7Ci0tIAoxLjcuNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkZXZpY2V0cmVlLWRpc2N1c3MgbWFpbGluZyBsaXN0CmRldmljZXRyZWUtZGlz Y3Vzc0BsaXN0cy5vemxhYnMub3JnCmh0dHBzOi8vbGlzdHMub3psYWJzLm9yZy9saXN0aW5mby9k ZXZpY2V0cmVlLWRpc2N1c3MK