From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp3-g21.free.fr ([2a01:e0c:1:1599::12]) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1RiBLK-0007MW-3I for barebox@lists.infradead.org; Tue, 03 Jan 2012 20:52:24 +0000 Received: from localhost.localdomain (unknown [82.233.81.124]) by smtp3-g21.free.fr (Postfix) with ESMTP id 500ADA622E for ; Tue, 3 Jan 2012 21:52:13 +0100 (CET) From: =?UTF-8?q?Eric=20B=C3=A9nard?= Date: Tue, 3 Jan 2012 21:52:11 +0100 Message-Id: <1325623931-28780-1-git-send-email-eric@eukrea.com> In-Reply-To: <1325609969-21471-3-git-send-email-eric@eukrea.com> References: <1325609969-21471-3-git-send-email-eric@eukrea.com> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH v2 3/4] serial gadget: enable/disable on request To: barebox@lists.infradead.org LSBhZGQgYSB1c2JzZXJpYWwgY29tbWFuZCB0byBlbmFibGUvZGlzYWJsZSB0aGUgc2VyaWFsIGdh ZGdldAotIGFsbG93IGRmdSBhbmQgdXNic2VyaWFsIHRvIGNvaGV4aXN0IGluIHRoZSBzYW1lIGJh cmVib3gKLSBhZGQgYSB0aW1lb3V0IGluIHVfc2VyaWFsIHNvIHRoYXQgd2UgZG9uJ3QgZ2V0IGxv Y2tlZCBpZiB0aGUgdXNlcgplbmFibGUgdXNic2VyaWFsIGZyb20gYSBVQVJUIGNvbnNvbGUgYnV0 IGRvZXNuJ3QgY29uc3VtZSB0aGUgZGF0YQpvbiB0aGUgdXNic2VyaWFsIHBvcnQgY3JlYXRlZCBv biB0aGUgUEMKLSByZW1vdmUgZGVidWcgb3IgdmVyYm9zZSBwcmludGYKLSB0ZXN0ZWQgb24gaS5N WDI1ICYgaS5NWDM1CgpTaWduZWQtb2ZmLWJ5OiBFcmljIELDqW5hcmQgPGVyaWNAZXVrcmVhLmNv bT4KLS0tCnYyIDogYWx3YXlzIHJlY29tcGlsZSBhZnRlciBmaXhpbmcgY2hlY2twYXRjaCBub3Rl cyAuLi4KCiBjb21tYW5kcy9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgIDEgKwogY29tbWFuZHMv dXNic2VyaWFsLmMgICAgICAgICAgfCAgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiBkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZyAgICB8ICAgIDUgKy0tCiBk cml2ZXJzL3VzYi9nYWRnZXQvZl9hY20uYyAgICB8ICAgIDQgKy0KIGRyaXZlcnMvdXNiL2dhZGdl dC9zZXJpYWwuYyAgIHwgICA0MCArKysrKysrKysrKysrLS0tCiBkcml2ZXJzL3VzYi9nYWRnZXQv dV9zZXJpYWwuYyB8ICAgMjIgKysrKysrLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRp b25zKCspLCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21tYW5kcy91c2Jz ZXJpYWwuYwoKZGlmZiAtLWdpdCBhL2NvbW1hbmRzL01ha2VmaWxlIGIvY29tbWFuZHMvTWFrZWZp bGUKaW5kZXggMjQ3NTNiZS4uNDM2MzBlMSAxMDA2NDQKLS0tIGEvY29tbWFuZHMvTWFrZWZpbGUK KysrIGIvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTQ3LDYgKzQ3LDcgQEAgb2JqLSQoQ09ORklHX0NN RF9MU01PRCkJCSs9IGxzbW9kLm8KIG9iai0kKENPTkZJR19DTURfSU5TTU9EKQkrPSBpbnNtb2Qu bwogb2JqLSQoQ09ORklHX0NNRF9CTVApCQkrPSBibXAubwogb2JqLSQoQ09ORklHX1VTQl9HQURH RVRfREZVKQkrPSBkZnUubworb2JqLSQoQ09ORklHX1VTQl9HQURHRVRfU0VSSUFMKQkrPSB1c2Jz ZXJpYWwubwogb2JqLSQoQ09ORklHX0NNRF9HUElPKQkJKz0gZ3Bpby5vCiBvYmotJChDT05GSUdf Q01EX1VOQ09NUFJFU1MpCSs9IHVuY29tcHJlc3Mubwogb2JqLSQoQ09ORklHX0NNRF9JMkMpCQkr PSBpMmMubwpkaWZmIC0tZ2l0IGEvY29tbWFuZHMvdXNic2VyaWFsLmMgYi9jb21tYW5kcy91c2Jz ZXJpYWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGZjMTAyCi0tLSAv ZGV2L251bGwKKysrIGIvY29tbWFuZHMvdXNic2VyaWFsLmMKQEAgLTAsMCArMSwxMDIgQEAKKy8q CisgKiBkZnUuYyAtIGRldmljZSBmaXJtd2FyZSB1cGRhdGUgY29tbWFuZAorICoKKyAqIENvcHly aWdodCAoYykgMjAwOSBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+LCBQZW5n dXRyb25peAorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBj b250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNp b24gMgorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisg KgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5k YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjEx MS0xMzA3ICBVU0EKKyAqLworI2luY2x1ZGUgPGNvbW1vbi5oPgorI2luY2x1ZGUgPGNvbW1hbmQu aD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPG1hbGxvYy5oPgorI2luY2x1ZGUgPGdl dG9wdC5oPgorI2luY2x1ZGUgPGZzLmg+CisjaW5jbHVkZSA8eGZ1bmNzLmg+CisjaW5jbHVkZSA8 dXNiL3VzYnNlcmlhbC5oPgorCitzdGF0aWMgaW50IGRvX3VzYnNlcmlhbChzdHJ1Y3QgY29tbWFu ZCAqY21kdHAsIGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJaW50IG9wdDsKKwlzdHJ1Y3Qg dXNiX3NlcmlhbF9wZGF0YSBwZGF0YTsKKwljaGFyICphcmdzdHI7CisJY2hhciAqbWFudWZhY3R1 cmVyID0gImJhcmVib3giOworCWNoYXIgKnByb2R1Y3RuYW1lID0gQ09ORklHX0JPQVJESU5GTzsK Kwl1MTYgaWRWZW5kb3IgPSAwLCBpZFByb2R1Y3QgPSAwOworCWludCBtb2RlID0gMDsKKworCXdo aWxlICgob3B0ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJtOnA6VjpQOmFzZCIpKSA+IDApIHsKKwkJ c3dpdGNoIChvcHQpIHsKKwkJY2FzZSAnbSc6CisJCQltYW51ZmFjdHVyZXIgPSBvcHRhcmc7CisJ CQlicmVhazsKKwkJY2FzZSAncCc6CisJCQlwcm9kdWN0bmFtZSA9IG9wdGFyZzsKKwkJCWJyZWFr OworCQljYXNlICdWJzoKKwkJCWlkVmVuZG9yID0gc2ltcGxlX3N0cnRvdWwob3B0YXJnLCBOVUxM LCAwKTsKKwkJCWJyZWFrOworCQljYXNlICdQJzoKKwkJCWlkUHJvZHVjdCA9IHNpbXBsZV9zdHJ0 b3VsKG9wdGFyZywgTlVMTCwgMCk7CisJCQlicmVhazsKKwkJY2FzZSAnYSc6CisJCQltb2RlID0g MDsKKwkJCWJyZWFrOworLyoJCWNhc2UgJ28nOgorCQkJbW9kZSA9IDE7CisJCQlicmVhazsqLwor CQljYXNlICdzJzoKKwkJCW1vZGUgPSAyOworCQkJYnJlYWs7CisJCWNhc2UgJ2QnOgorCQkJdXNi X3NlcmlhbF91bnJlZ2lzdGVyKCk7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCWFyZ3N0ciA9 IGFyZ3Zbb3B0aW5kXTsKKworCXBkYXRhLm1hbnVmYWN0dXJlciA9IG1hbnVmYWN0dXJlcjsKKwlw ZGF0YS5wcm9kdWN0bmFtZSA9IHByb2R1Y3RuYW1lOworCXBkYXRhLmlkVmVuZG9yID0gaWRWZW5k b3I7CisJcGRhdGEuaWRQcm9kdWN0ID0gaWRQcm9kdWN0OworCXBkYXRhLm1vZGUgPSBtb2RlOwor CisJcmV0dXJuIHVzYl9zZXJpYWxfcmVnaXN0ZXIoJnBkYXRhKTsKK30KKworQkFSRUJPWF9DTURf SEVMUF9TVEFSVCh1c2JzZXJpYWwpCitCQVJFQk9YX0NNRF9IRUxQX1VTQUdFKCJ1c2JzZXJpYWwg W09QVElPTlNdIDxkZXNjcmlwdGlvbj5cbiIpCitCQVJFQk9YX0NNRF9IRUxQX1NIT1JUKCJFbmFi bGUvZGlzYWJsZSBhIHNlcmlhbCBnYWRnZXQgb24gdGhlIFVTQiBkZXZpY2UgaW50ZXJmYWNlLlxu IikKK0JBUkVCT1hfQ01EX0hFTFBfT1BUICAoIi1tIDxzdHI+IiwgICJNYW51ZmFjdHVyZXIgc3Ry aW5nIChiYXJlYm94KVxuIikKK0JBUkVCT1hfQ01EX0hFTFBfT1BUICAoIi1wIDxzdHI+IiwgICJw cm9kdWN0IHN0cmluZyAoIiBDT05GSUdfQk9BUkRJTkZPICIpXG4iKQorQkFSRUJPWF9DTURfSEVM UF9PUFQgICgiLVYgPGlkPiIsICAgInZlbmRvciBpZFxuIikKK0JBUkVCT1hfQ01EX0hFTFBfT1BU ICAoIi1QIDxpZD4iLCAgICJwcm9kdWN0IGlkXG4iKQorQkFSRUJPWF9DTURfSEVMUF9PUFQgICgi LWEiLCAgICJDREMgQUNNIChkZWZhdWx0KVxuIikKKy8qQkFSRUJPWF9DTURfSEVMUF9PUFQgICgi LW8iLCAgICJDREMgT0JFWFxuIikqLworQkFSRUJPWF9DTURfSEVMUF9PUFQgICgiLXMiLCAgICJH ZW5lcmljIFNlcmlhbFxuIikKK0JBUkVCT1hfQ01EX0hFTFBfT1BUICAoIi1kIiwgICAiRGlzYWJs ZSB0aGUgc2VyaWFsIGdhZGdldFxuIikKK0JBUkVCT1hfQ01EX0hFTFBfRU5ECisKKy8qKgorICog QHBhZ2UgdXNic2VyaWFsX2NvbW1hbmQKKyAqLworCitCQVJFQk9YX0NNRF9TVEFSVCh1c2JzZXJp YWwpCisJLmNtZAkJPSBkb191c2JzZXJpYWwsCisJLnVzYWdlCQk9ICJTZXJpYWwgZ2FkZ2V0IGVu YWJsZS9kaXNhYmxlIiwKKwlCQVJFQk9YX0NNRF9IRUxQKGNtZF91c2JzZXJpYWxfaGVscCkKK0JB UkVCT1hfQ01EX0VORApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcgYi9k cml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZwppbmRleCBmZDQ3MWMwLi43OTdkMTlmIDEwMDY0NAot LS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQv S2NvbmZpZwpAQCAtMzAsOCArMzAsNyBAQCBjb25maWcgVVNCX0dBREdFVF9EUklWRVJfUFhBMjdY CiAJc2VsZWN0IFBPTExFUgogZW5kY2hvaWNlCiAKLWNob2ljZQotCXByb21wdCAiVVNCIEdhZGdl dCBkcml2ZXJzIgorY29tbWVudCAiVVNCIEdhZGdldCBkcml2ZXJzIgogCiBjb25maWcgVVNCX0dB REdFVF9ERlUKIAlib29sCkBAIC00Miw3ICs0MSw1IEBAIGNvbmZpZyBVU0JfR0FER0VUX1NFUklB TAogCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMCiAJcHJvbXB0ICJTZXJpYWwgR2FkZ2V0IgogCi1l bmRjaG9pY2UKLQogZW5kaWYKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2ZfYWNt LmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZl9hY20uYwppbmRleCA0M2I0OTkyLi4yMThhZWQyIDEw MDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvZl9hY20uYworKysgYi9kcml2ZXJzL3VzYi9n YWRnZXQvZl9hY20uYwpAQCAtNDA3LDcgKzQwNyw3IEBAIHN0YXRpYyB2b2lkIGFjbV9kaXNhYmxl KHN0cnVjdCB1c2JfZnVuY3Rpb24gKmYpCiB7CiAJc3RydWN0IGZfYWNtCSphY20gPSBmdW5jX3Rv X2FjbShmKTsKIAotCXByaW50ZigiYWNtIHR0eUdTJWQgZGVhY3RpdmF0ZWRcbiIsIGFjbS0+cG9y dF9udW0pOworCVZEQkcoY2RldiwgImFjbSB0dHlHUyVkIGRlYWN0aXZhdGVkXG4iLCBhY20tPnBv cnRfbnVtKTsKIAlnc2VyaWFsX2Rpc2Nvbm5lY3QoJmFjbS0+cG9ydCk7CiAJdXNiX2VwX2Rpc2Fi bGUoYWNtLT5ub3RpZnkpOwogCWFjbS0+bm90aWZ5LT5kcml2ZXJfZGF0YSA9IE5VTEw7CkBAIC00 NzMsNyArNDczLDcgQEAgc3RhdGljIGludCBhY21fbm90aWZ5X3NlcmlhbF9zdGF0ZShzdHJ1Y3Qg Zl9hY20gKmFjbSkKIAlpbnQJCQlzdGF0dXM7CiAKIAlpZiAoYWNtLT5ub3RpZnlfcmVxKSB7Ci0J CXByaW50ZigiYWNtIHR0eUdTJWQgc2VyaWFsIHN0YXRlICUwNHhcbiIsCisJCVZEQkcoY2Rldiwg ImFjbSB0dHlHUyVkIHNlcmlhbCBzdGF0ZSAlMDR4XG4iLAogCQkJCWFjbS0+cG9ydF9udW0sIGFj bS0+c2VyaWFsX3N0YXRlKTsKIAkJc3RhdHVzID0gYWNtX2NkY19ub3RpZnkoYWNtLCBVU0JfQ0RD X05PVElGWV9TRVJJQUxfU1RBVEUsCiAJCQkJMCwgJmFjbS0+c2VyaWFsX3N0YXRlLCBzaXplb2Yo YWNtLT5zZXJpYWxfc3RhdGUpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9zZXJp YWwuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9zZXJpYWwuYwppbmRleCA4YmE5YWI1Li4yZTY0ZmJh IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvc2VyaWFsLmMKKysrIGIvZHJpdmVycy91 c2IvZ2FkZ2V0L3NlcmlhbC5jCkBAIC00LDYgKzQsNyBAQAogI2luY2x1ZGUgPHVzYi9jaDkuaD4K ICNpbmNsdWRlIDx1c2IvZ2FkZ2V0Lmg+CiAjaW5jbHVkZSA8dXNiL2NvbXBvc2l0ZS5oPgorI2lu Y2x1ZGUgPHVzYi91c2JzZXJpYWwuaD4KICNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CiAKICNp bmNsdWRlICJ1X3NlcmlhbC5oIgpAQCAtNTIsNyArNTMsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9n YWRnZXRfc3RyaW5ncyAqZGV2X3N0cmluZ3NbXSA9IHsKIH07CiAKIHN0YXRpYyBpbnQgdXNlX2Fj bSA9IDE7Ci1zdGF0aWMgaW50IHVzZV9vYmV4ID0gMDsKKy8qc3RhdGljIGludCB1c2Vfb2JleCA9 IDA7Ki8KIHN0YXRpYyB1bnNpZ25lZCBuX3BvcnRzID0gMTsKIAogc3RhdGljIGludCBzZXJpYWxf YmluZF9jb25maWcoc3RydWN0IHVzYl9jb25maWd1cmF0aW9uICpjKQpAQCAtNjMsOCArNjQsOCBA QCBzdGF0aWMgaW50IHNlcmlhbF9iaW5kX2NvbmZpZyhzdHJ1Y3QgdXNiX2NvbmZpZ3VyYXRpb24g KmMpCiAJZm9yIChpID0gMDsgaSA8IG5fcG9ydHMgJiYgc3RhdHVzID09IDA7IGkrKykgewogCQlp ZiAodXNlX2FjbSkKIAkJCXN0YXR1cyA9IGFjbV9iaW5kX2NvbmZpZyhjLCBpKTsKLQkJZWxzZSBp ZiAodXNlX29iZXgpCi0JCQlzdGF0dXMgPSBvYmV4X2JpbmRfY29uZmlnKGMsIGkpOworLyoJCWVs c2UgaWYgKHVzZV9vYmV4KQorCQkJc3RhdHVzID0gb2JleF9iaW5kX2NvbmZpZyhjLCBpKTsqLwog CQllbHNlCiAJCQlzdGF0dXMgPSBnc2VyX2JpbmRfY29uZmlnKGMsIGkpOwogCX0KQEAgLTEwMCw3 ICsxMDEsNyBAQCBzdGF0aWMgaW50IGdzX2JpbmQoc3RydWN0IHVzYl9jb21wb3NpdGVfZGV2ICpj ZGV2KQogCWludAkJCWdjbnVtOwogCXN0cnVjdCB1c2JfZ2FkZ2V0CSpnYWRnZXQgPSBjZGV2LT5n YWRnZXQ7CiAJaW50CQkJc3RhdHVzOwotcHJpbnRmKCIlc1xuIiwgX19mdW5jX18pOworCiAJc3Rh dHVzID0gZ3NlcmlhbF9zZXR1cChjZGV2LT5nYWRnZXQsIG5fcG9ydHMpOwogCWlmIChzdGF0dXMg PCAwKQogCQlyZXR1cm4gc3RhdHVzOwpAQCAtMTc0LDcgKzE3NSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg dXNiX2NvbXBvc2l0ZV9kcml2ZXIgZ3NlcmlhbF9kcml2ZXIgPSB7CiAJLmJpbmQJCT0gZ3NfYmlu ZCwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGdzZXJpYWxfaW5pdCh2b2lkKQoraW50IHVzYl9z ZXJpYWxfcmVnaXN0ZXIoc3RydWN0IHVzYl9zZXJpYWxfcGRhdGEgKnBkYXRhKQogewogCS8qIFdl ICpjb3VsZCogZXhwb3J0IHR3byBjb25maWdzOyB0aGF0J2QgYmUgbXVjaCBjbGVhbmVyLi4uCiAJ ICogYnV0IG5laXRoZXIgb2YgdGhlc2UgcHJvZHVjdCBJRHMgd2FzIGRlZmluZWQgdGhhdCB3YXku CkBAIC0xODcsMTkgKzE4OCwzMyBAQCBzdGF0aWMgaW50IF9faW5pdCBnc2VyaWFsX2luaXQodm9p ZCkKICNpZmRlZiBDT05GSUdfQVJDSF9QWEEyWFgKIAl1c2VfYWNtID0gMDsKICNlbmRpZgorCXN3 aXRjaCAocGRhdGEtPm1vZGUpIHsKKwljYXNlIDE6CisJCS8qdXNlX29iZXggPSAxOyovCisJCXVz ZV9hY20gPSAwOworCQlicmVhazsKKwljYXNlIDI6CisJCS8qdXNlX29iZXggPSAxOyovCisJCXVz ZV9hY20gPSAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkvKnVzZV9vYmV4ID0gMDsqLworCQl1 c2VfYWNtID0gMTsKKwl9CisKIAlpZiAodXNlX2FjbSkgewogCQlzZXJpYWxfY29uZmlnX2RyaXZl ci5sYWJlbCA9ICJDREMgQUNNIGNvbmZpZyI7CiAJCXNlcmlhbF9jb25maWdfZHJpdmVyLmJDb25m aWd1cmF0aW9uVmFsdWUgPSAyOwogCQlkZXZpY2VfZGVzYy5iRGV2aWNlQ2xhc3MgPSBVU0JfQ0xB U1NfQ09NTTsKIAkJZGV2aWNlX2Rlc2MuaWRQcm9kdWN0ID0KIAkJCQljcHVfdG9fbGUxNihHU19D RENfUFJPRFVDVF9JRCk7Ci0JfSBlbHNlIGlmICh1c2Vfb2JleCkgeworCX0gLyogZWxzZSBpZiAo dXNlX29iZXgpIHsKIAkJc2VyaWFsX2NvbmZpZ19kcml2ZXIubGFiZWwgPSAiQ0RDIE9CRVggY29u ZmlnIjsKIAkJc2VyaWFsX2NvbmZpZ19kcml2ZXIuYkNvbmZpZ3VyYXRpb25WYWx1ZSA9IDM7CiAJ CWRldmljZV9kZXNjLmJEZXZpY2VDbGFzcyA9IFVTQl9DTEFTU19DT01NOwogCQlkZXZpY2VfZGVz Yy5pZFByb2R1Y3QgPQogCQkJY3B1X3RvX2xlMTYoR1NfQ0RDX09CRVhfUFJPRFVDVF9JRCk7Ci0J fSBlbHNlIHsKKwl9Ki8gZWxzZSB7CiAJCXNlcmlhbF9jb25maWdfZHJpdmVyLmxhYmVsID0gIkdl bmVyaWMgU2VyaWFsIGNvbmZpZyI7CiAJCXNlcmlhbF9jb25maWdfZHJpdmVyLmJDb25maWd1cmF0 aW9uVmFsdWUgPSAxOwogCQlkZXZpY2VfZGVzYy5iRGV2aWNlQ2xhc3MgPSBVU0JfQ0xBU1NfVkVO RE9SX1NQRUM7CkBAIC0yMDcsOCArMjIyLDE3IEBAIHN0YXRpYyBpbnQgX19pbml0IGdzZXJpYWxf aW5pdCh2b2lkKQogCQkJCWNwdV90b19sZTE2KEdTX1BST0RVQ1RfSUQpOwogCX0KIAlzdHJpbmdz X2RldltTVFJJTkdfREVTQ1JJUFRJT05fSURYXS5zID0gc2VyaWFsX2NvbmZpZ19kcml2ZXIubGFi ZWw7CisJaWYgKHBkYXRhLT5pZFZlbmRvcikKKwkJZGV2aWNlX2Rlc2MuaWRWZW5kb3IgPSBwZGF0 YS0+aWRWZW5kb3I7CisJaWYgKHBkYXRhLT5pZFByb2R1Y3QpCisJCWRldmljZV9kZXNjLmlkUHJv ZHVjdCA9IHBkYXRhLT5pZFByb2R1Y3Q7CisJc3RyaW5nc19kZXZbU1RSSU5HX01BTlVGQUNUVVJF Ul9JRFhdLnMgPSBwZGF0YS0+bWFudWZhY3R1cmVyOworCXN0cmluZ3NfZGV2W1NUUklOR19QUk9E VUNUX0lEWF0ucyA9IHBkYXRhLT5wcm9kdWN0bmFtZTsKIAogCXJldHVybiB1c2JfY29tcG9zaXRl X3JlZ2lzdGVyKCZnc2VyaWFsX2RyaXZlcik7CiB9CiAKLWxhdGVfaW5pdGNhbGwoZ3NlcmlhbF9p bml0KTsKK3ZvaWQgdXNiX3NlcmlhbF91bnJlZ2lzdGVyKHZvaWQpCit7CisJdXNiX2NvbXBvc2l0 ZV91bnJlZ2lzdGVyKCZnc2VyaWFsX2RyaXZlcik7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Vz Yi9nYWRnZXQvdV9zZXJpYWwuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC91X3NlcmlhbC5jCmluZGV4 IDQ5YWVkYzIuLjNjODcwNmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC91X3Nlcmlh bC5jCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC91X3NlcmlhbC5jCkBAIC0yMCw2ICsyMCw3IEBA CiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8dXNiL2NkYy5oPgogI2luY2x1ZGUgPGtm aWZvLmg+CisjaW5jbHVkZSA8Y2xvY2suaD4KIAogI2luY2x1ZGUgInVfc2VyaWFsLmgiCiAKQEAg LTEwNyw4ICsxMDgsNiBAQCBzdGF0aWMgdW5zaWduZWQJbl9wb3J0czsKIAogI2RlZmluZSBHU19D TE9TRV9USU1FT1VUCQkxNQkJLyogc2Vjb25kcyAqLwogCi0KLQogI2lmZGVmIFZFUkJPU0VfREVC VUcKICNkZWZpbmUgcHJfdmRlYnVnKGZtdCwgYXJnLi4uKSBcCiAJcHJfZGVidWcoZm10LCAjI2Fy ZykKQEAgLTM3MCw2ICszNjksNyBAQCBzdGF0aWMgdm9pZCBzZXJpYWxfcHV0YyhzdHJ1Y3QgY29u c29sZV9kZXZpY2UgKmNkZXYsIGNoYXIgYykKIAlzdHJ1Y3QgdXNiX2VwCQkqaW47CiAJc3RydWN0 IHVzYl9yZXF1ZXN0CSpyZXE7CiAJaW50IHN0YXR1czsKKwl1aW50NjRfdCB0bzsKIAogCWlmIChs aXN0X2VtcHR5KHBvb2wpKQogCQlyZXR1cm47CkBAIC0zODIsOCArMzgyLDEyIEBAIHN0YXRpYyB2 b2lkIHNlcmlhbF9wdXRjKHN0cnVjdCBjb25zb2xlX2RldmljZSAqY2RldiwgY2hhciBjKQogCSoo dW5zaWduZWQgY2hhciAqKXJlcS0+YnVmID0gYzsKIAlzdGF0dXMgPSB1c2JfZXBfcXVldWUoaW4s IHJlcSk7CiAKLQl3aGlsZSAoc3RhdHVzID49IDAgJiYgbGlzdF9lbXB0eShwb29sKSkKKwl0byA9 IGdldF90aW1lX25zKCk7CisJd2hpbGUgKHN0YXR1cyA+PSAwICYmIGxpc3RfZW1wdHkocG9vbCkp IHsKIAkJc3RhdHVzID0gdXNiX2dhZGdldF9wb2xsKCk7CisJCWlmIChpc190aW1lb3V0KHRvLCAz MDAgKiBNU0VDT05EKSkKKwkJCWJyZWFrOworCX0KIH0KIAogc3RhdGljIGludCBzZXJpYWxfdHN0 YyhzdHJ1Y3QgY29uc29sZV9kZXZpY2UgKmNkZXYpCkBAIC0zOTksMTEgKzQwMywxNiBAQCBzdGF0 aWMgaW50IHNlcmlhbF9nZXRjKHN0cnVjdCBjb25zb2xlX2RldmljZSAqY2RldikKIAlzdHJ1Y3Qg Z3NfcG9ydAkqcG9ydCA9IGNvbnRhaW5lcl9vZihjZGV2LAogCQkJCQlzdHJ1Y3QgZ3NfcG9ydCwg Y2Rldik7CiAJdW5zaWduZWQgY2hhciBjaDsKKwl1aW50NjRfdCB0bzsKIAogCWlmICghcG9ydC0+ cG9ydF91c2IpCiAJCXJldHVybiAtRUlPOwotCXdoaWxlIChrZmlmb19nZXRjKHBvcnQtPnJlY3Zf ZmlmbywgJmNoKSkKKwl0byA9IGdldF90aW1lX25zKCk7CisJd2hpbGUgKGtmaWZvX2dldGMocG9y dC0+cmVjdl9maWZvLCAmY2gpKSB7CiAJCXVzYl9nYWRnZXRfcG9sbCgpOworCQlpZiAoaXNfdGlt ZW91dCh0bywgMzAwICogTVNFQ09ORCkpCisJCQlicmVhazsKKwl9CiAKIAlyZXR1cm4gY2g7CiB9 CkBAIC00MjAsOCArNDI5LDYgQEAgaW50IGdzZXJpYWxfY29ubmVjdChzdHJ1Y3QgZ3NlcmlhbCAq Z3NlciwgdTggcG9ydF9udW0pCiAJaW50CQlzdGF0dXM7CiAJc3RydWN0IGNvbnNvbGVfZGV2aWNl ICpjZGV2OwogCi0JcHJpbnRmKCIlcyAlcCAlZFxuIiwgX19mdW5jX18sIGdzZXIsIHBvcnRfbnVt KTsKLQogCS8qIHdlICJrbm93IiBnc2VyaWFsX2NsZWFudXAoKSBoYXNuJ3QgYmVlbiBjYWxsZWQg Ki8KIAlwb3J0ID0gcG9ydHNbcG9ydF9udW1dLnBvcnQ7CiAKQEAgLTQ1MSw3ICs0NTgsNyBAQCBp bnQgZ3NlcmlhbF9jb25uZWN0KHN0cnVjdCBnc2VyaWFsICpnc2VyLCB1OCBwb3J0X251bSkKIAog CXBvcnQtPnJlY3ZfZmlmbyA9IGtmaWZvX2FsbG9jKDEwMjQpOwogCi0JcHJpbnRmKCJnc2VyaWFs X2Nvbm5lY3Q6IHN0YXJ0IHR0eUdTJWRcbiIsIHBvcnQtPnBvcnRfbnVtKTsKKwkvKnByaW50Zigi Z3NlcmlhbF9jb25uZWN0OiBzdGFydCB0dHlHUyVkXG4iLCBwb3J0LT5wb3J0X251bSk7Ki8KIAln c19zdGFydF9pbyhwb3J0KTsKIAlpZiAoZ3Nlci0+Y29ubmVjdCkKIAkJZ3Nlci0+Y29ubmVjdChn c2VyKTsKQEAgLTUwOCw3ICs1MTUsNiBAQCB2b2lkIGdzZXJpYWxfZGlzY29ubmVjdChzdHJ1Y3Qg Z3NlcmlhbCAqZ3NlcikKIAlzdHJ1Y3QgZ3NfcG9ydAkqcG9ydCA9IGdzZXItPmlvcG9ydDsKIAlz dHJ1Y3QgY29uc29sZV9kZXZpY2UgKmNkZXY7CiAKLQlwcmludGYoIiVzXG4iLCBfX2Z1bmNfXyk7 CiAJaWYgKCFwb3J0KQogCQlyZXR1cm47CiAKLS0gCjEuNy43LjQKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpiYXJlYm94IG1haWxpbmcgbGlzdApiYXJl Ym94QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9iYXJlYm94Cg==