From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: [PATCH] input: touchscreen: Remove duplicate ft6236 driver Date: Mon, 1 Aug 2016 10:16:02 +0200 Message-ID: <1470039362-3271-2-git-send-email-hdegoede@redhat.com> References: <1470039362-3271-1-git-send-email-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470039362-3271-1-git-send-email-hdegoede@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Dmitry Torokhov Cc: devicetree , Hans de Goede , =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , linux-input@vger.kernel.org, Sean Cross , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org VGhlIG5ldyhpc2gpIGZ0NjIzNiBzaW1wbHkgcmUtaW1wbGVtZW50cyB0aGUgTTA5IHByb3RvY29s IG9mIHRoZQoobXVjaCkgb2xkZXIgZWR0LWZ0NXgwNi5jIGRyaXZlci4KClRoaXMgY29tbWl0IHJl bW92ZXMgdGhpcyBkdXBsaWNhdGUgZHJpdmVyIGFuZCBhZGRzIHRoZSBpMmMgaWRzIGFuZApkdCBj b21wYXRpYmxlIHN0cmluZyB0byB0aGUgZWR0LWZ0NXgwNi5jIGRyaXZlciB0byBrZWVwIGNvbXBh dGliaWxpdHkuCgpDYzogU2VhbiBDcm9zcyA8eG9ic0Brb3NhZ2kuY29tPgpDYzogTm9yYWxmIFRy w7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcj4KU2lnbmVkLW9mZi1ieTogSGFucyBkZSBHb2VkZSA8 aGRlZ29lZGVAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL0tjb25m aWcgICAgICB8ICAxMyAtLQogZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9NYWtlZmlsZSAgICAg fCAgIDEgLQogZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9lZHQtZnQ1eDA2LmMgfCAgIDggKwog ZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9mdDYyMzYuYyAgICAgfCAzMjYgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwg MzQwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaW5wdXQvdG91Y2hz Y3JlZW4vZnQ2MjM2LmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL0tj b25maWcgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL0tjb25maWcKaW5kZXggNjRlNzUwMS4u MTk4OTQ1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9LY29uZmlnCisr KyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vS2NvbmZpZwpAQCAtMzA1LDE5ICszMDUsNiBA QCBjb25maWcgVE9VQ0hTQ1JFRU5fRUdBTEFYX1NFUklBTAogCSAgVG8gY29tcGlsZSB0aGlzIGRy aXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCiAJICBtb2R1bGUgd2lsbCBiZSBj YWxsZWQgZWdhbGF4X3RzX3NlcmlhbC4KIAotY29uZmlnIFRPVUNIU0NSRUVOX0ZUNjIzNgotCXRy aXN0YXRlICJGVDYyMzYgSTJDIHRvdWNoc2NyZWVuIgotCWRlcGVuZHMgb24gSTJDCi0JZGVwZW5k cyBvbiBHUElPTElCIHx8IENPTVBJTEVfVEVTVAotCWhlbHAKLQkgIFNheSBZIGhlcmUgdG8gZW5h YmxlIHN1cHBvcnQgZm9yIHRoZSBJMkMgY29ubmVjdGVkIEZUNngwNiBhbmQKLQkgIEZUNngzNiBm YW1pbHkgb2YgY2FwYWNpdGl2ZSB0b3VjaHNjcmVlbiBkcml2ZXJzLgotCi0JICBJZiB1bnN1cmUs IHNheSBOLgotCi0JICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2Ug TSBoZXJlOiB0aGUKLQkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBmdDYyMzYuCi0KIGNvbmZpZyBU T1VDSFNDUkVFTl9GVUpJVFNVCiAJdHJpc3RhdGUgIkZ1aml0c3Ugc2VyaWFsIHRvdWNoc2NyZWVu IgogCXNlbGVjdCBTRVJJTwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9N YWtlZmlsZSBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vTWFrZWZpbGUKaW5kZXggYTRiMDBk MC4uYTE0NGM0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9NYWtlZmls ZQorKysgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL01ha2VmaWxlCkBAIC0zNiw3ICszNiw2 IEBAIG9iai0kKENPTkZJR19UT1VDSFNDUkVFTl9FTEFOKQkJKz0gZWxhbnRzX2kyYy5vCiBvYmot JChDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPKQkJKz0gZWxvLm8KIG9iai0kKENPTkZJR19UT1VDSFND UkVFTl9FR0FMQVgpCSs9IGVnYWxheF90cy5vCiBvYmotJChDT05GSUdfVE9VQ0hTQ1JFRU5fRUdB TEFYX1NFUklBTCkJKz0gZWdhbGF4X3RzX3NlcmlhbC5vCi1vYmotJChDT05GSUdfVE9VQ0hTQ1JF RU5fRlQ2MjM2KQkrPSBmdDYyMzYubwogb2JqLSQoQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1Up CSs9IGZ1aml0c3VfdHMubwogb2JqLSQoQ09ORklHX1RPVUNIU0NSRUVOX0dPT0RJWCkJKz0gZ29v ZGl4Lm8KIG9iai0kKENPTkZJR19UT1VDSFNDUkVFTl9JTEkyMTBYKQkrPSBpbGkyMTB4Lm8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vZWR0LWZ0NXgwNi5jIGIvZHJpdmVy cy9pbnB1dC90b3VjaHNjcmVlbi9lZHQtZnQ1eDA2LmMKaW5kZXggZDE5YmY0NS4uNDgxZDhiYSAx MDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9lZHQtZnQ1eDA2LmMKKysrIGIv ZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9lZHQtZnQ1eDA2LmMKQEAgLTEwNzEsOSArMTA3MSwx NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGVkdF9pMmNfY2hpcF9kYXRhIGVkdF9mdDU1MDZfZGF0 YSA9IHsKIAkubWF4X3N1cHBvcnRfcG9pbnRzID0gMTAsCiB9OwogCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGVkdF9pMmNfY2hpcF9kYXRhIGVkdF9mdDYyMzZfZGF0YSA9IHsKKwkubWF4X3N1cHBvcnRf cG9pbnRzID0gMiwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCBlZHRf ZnQ1eDA2X3RzX2lkW10gPSB7CiAJeyAubmFtZSA9ICJlZHQtZnQ1eDA2IiwgLmRyaXZlcl9kYXRh ID0gKGxvbmcpJmVkdF9mdDV4MDZfZGF0YSB9LAogCXsgLm5hbWUgPSAiZWR0LWZ0NTUwNiIsIC5k cml2ZXJfZGF0YSA9IChsb25nKSZlZHRfZnQ1NTA2X2RhdGEgfSwKKwkvKiBOb3RlIG5vIGVkdC0g cHJlZml4IGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGZ0NjIzNi5jIGRyaXZlciAqLworCXsg Lm5hbWUgPSAiZnQ2MjM2IiwgLmRyaXZlcl9kYXRhID0gKGxvbmcpJmVkdF9mdDYyMzZfZGF0YSB9 LAogCXsgLyogc2VudGluZWwgKi8gfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCBlZHRf ZnQ1eDA2X3RzX2lkKTsKQEAgLTEwODQsNiArMTA5MCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkIGVkdF9mdDV4MDZfb2ZfbWF0Y2hbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0g ImVkdCxlZHQtZnQ1MzA2IiwgLmRhdGEgPSAmZWR0X2Z0NXgwNl9kYXRhIH0sCiAJeyAuY29tcGF0 aWJsZSA9ICJlZHQsZWR0LWZ0NTQwNiIsIC5kYXRhID0gJmVkdF9mdDV4MDZfZGF0YSB9LAogCXsg LmNvbXBhdGlibGUgPSAiZWR0LGVkdC1mdDU1MDYiLCAuZGF0YSA9ICZlZHRfZnQ1NTA2X2RhdGEg fSwKKwkvKiBOb3RlIGZvY2FsdGVjaCB2ZW5kb3IgcHJlZml4IGZvciBjb21wYXRpYmlsaXR5IHdp dGggZnQ2MjM2LmMgKi8KKwl7IC5jb21wYXRpYmxlID0gImZvY2FsdGVjaCxmdDYyMzYiLCAuZGF0 YSA9ICZlZHRfZnQ2MjM2X2RhdGEgfSwKIAl7IC8qIHNlbnRpbmVsICovIH0KIH07CiBNT0RVTEVf REVWSUNFX1RBQkxFKG9mLCBlZHRfZnQ1eDA2X29mX21hdGNoKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvaW5wdXQvdG91Y2hzY3JlZW4vZnQ2MjM2LmMgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVu L2Z0NjIzNi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjQwZDJlLi4wMDAwMDAw Ci0tLSBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vZnQ2MjM2LmMKKysrIC9kZXYvbnVsbApA QCAtMSwzMjYgKzAsMCBAQAotLyoKLSAqIEZvY2FsVGVjaCBGVDYyMzYgVG91Y2hTY3JlZW4gZHJp dmVyLgotICoKLSAqIENvcHlyaWdodCAoYykgMjAxMCAgRm9jYWwgdGVjaCBMdGQuCi0gKgotICog VGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYwotICogTGljZW5zZSB2ZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBhbmQKLSAqIG1heSBiZSBjb3BpZWQsIGRpc3RyaWJ1dGVk LCBhbmQgbW9kaWZpZWQgdW5kZXIgdGhvc2UgdGVybXMuCi0gKgotICogVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9ncGlv L2NvbnN1bWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvaTJjLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5w dXQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnB1dC9tdC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVy cnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3Byb3Bl cnR5Lmg+Ci0KLSNkZWZpbmUgRlQ2MjM2X01BWF9UT1VDSF9QT0lOVFMJCTIKLQotI2RlZmluZSBG VDYyMzZfUkVHX1RIX0dST1VQCQkweDgwCi0jZGVmaW5lIEZUNjIzNl9SRUdfUEVSSU9EQUNUSVZF CQkweDg4Ci0jZGVmaW5lIEZUNjIzNl9SRUdfTElCX1ZFUl9ICQkweGExCi0jZGVmaW5lIEZUNjIz Nl9SRUdfTElCX1ZFUl9MCQkweGEyCi0jZGVmaW5lIEZUNjIzNl9SRUdfQ0lQSEVSCQkweGEzCi0j ZGVmaW5lIEZUNjIzNl9SRUdfRklSTUlECQkweGE2Ci0jZGVmaW5lIEZUNjIzNl9SRUdfRk9DQUxU RUNIX0lECQkweGE4Ci0jZGVmaW5lIEZUNjIzNl9SRUdfUkVMRUFTRV9DT0RFX0lECTB4YWYKLQot I2RlZmluZSBGVDYyMzZfRVZFTlRfUFJFU1NfRE9XTgkJMAotI2RlZmluZSBGVDYyMzZfRVZFTlRf TElGVF9VUAkJMQotI2RlZmluZSBGVDYyMzZfRVZFTlRfQ09OVEFDVAkJMgotI2RlZmluZSBGVDYy MzZfRVZFTlRfTk9fRVZFTlQJCTMKLQotc3RydWN0IGZ0NjIzNl9kYXRhIHsKLQlzdHJ1Y3QgaTJj X2NsaWVudCAqY2xpZW50OwotCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0OwotCXN0cnVjdCBncGlv X2Rlc2MgKnJlc2V0X2dwaW87Ci0JdTMyIG1heF94OwotCXUzMiBtYXhfeTsKLQlib29sIGludmVy dF94OwotCWJvb2wgaW52ZXJ0X3k7Ci0JYm9vbCBzd2FwX3h5OwotfTsKLQotLyoKLSAqIFRoaXMg c3RydWN0IGlzIGEgdG91Y2hwb2ludCBhcyBzdG9yZWQgaW4gaGFyZHdhcmUuICBOb3RlIHRoYXQg dGhlIGlkLAotICogYXMgd2VsbCBhcyB0aGUgZXZlbnQsIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVy IG55YmJsZSBvZiB0aGUgaGkgYnl0ZS4KLSAqLwotc3RydWN0IGZ0NjIzNl90b3VjaHBvaW50IHsK LQl1bmlvbiB7Ci0JCXU4IHhoaTsKLQkJdTggZXZlbnQ7Ci0JfTsKLQl1OCB4bG87Ci0JdW5pb24g ewotCQl1OCB5aGk7Ci0JCXU4IGlkOwotCX07Ci0JdTggeWxvOwotCXU4IHdlaWdodDsKLQl1OCBt aXNjOwotfSBfX3BhY2tlZDsKLQotLyogVGhpcyBwYWNrZXQgcmVwcmVzZW50cyB0aGUgcmVnaXN0 ZXIgbWFwIGFzIHJlYWQgZnJvbSBvZmZzZXQgMCAqLwotc3RydWN0IGZ0NjIzNl9wYWNrZXQgewot CXU4IGRldl9tb2RlOwotCXU4IGdlc3RfaWQ7Ci0JdTggdG91Y2hlczsKLQlzdHJ1Y3QgZnQ2MjM2 X3RvdWNocG9pbnQgcG9pbnRzW0ZUNjIzNl9NQVhfVE9VQ0hfUE9JTlRTXTsKLX0gX19wYWNrZWQ7 Ci0KLXN0YXRpYyBpbnQgZnQ2MjM2X3JlYWQoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTgg cmVnLCB1OCBsZW4sIHZvaWQgKmRhdGEpCi17Ci0JaW50IGVycm9yOwotCi0JZXJyb3IgPSBpMmNf c21idXNfcmVhZF9pMmNfYmxvY2tfZGF0YShjbGllbnQsIHJlZywgbGVuLCBkYXRhKTsKLQlpZiAo ZXJyb3IgPCAwKQotCQlyZXR1cm4gZXJyb3I7Ci0KLQlpZiAoZXJyb3IgIT0gbGVuKQotCQlyZXR1 cm4gLUVJTzsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaXJxcmV0dXJuX3QgZnQ2MjM2X2lu dGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCi17Ci0Jc3RydWN0IGZ0NjIzNl9kYXRhICpm dDYyMzYgPSBkZXZfaWQ7Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gJmZ0NjIzNi0+Y2xpZW50LT5k ZXY7Ci0Jc3RydWN0IGlucHV0X2RldiAqaW5wdXQgPSBmdDYyMzYtPmlucHV0OwotCXN0cnVjdCBm dDYyMzZfcGFja2V0IGJ1ZjsKLQl1OCB0b3VjaGVzOwotCWludCBpLCBlcnJvcjsKLQotCWVycm9y ID0gZnQ2MjM2X3JlYWQoZnQ2MjM2LT5jbGllbnQsIDAsIHNpemVvZihidWYpLCAmYnVmKTsKLQlp ZiAoZXJyb3IpIHsKLQkJZGV2X2VycihkZXYsICJyZWFkIHRvdWNoZGF0YSBmYWlsZWQgJWRcbiIs IGVycm9yKTsKLQkJcmV0dXJuIElSUV9IQU5ETEVEOwotCX0KLQotCXRvdWNoZXMgPSBidWYudG91 Y2hlcyAmIDB4ZjsKLQlpZiAodG91Y2hlcyA+IEZUNjIzNl9NQVhfVE9VQ0hfUE9JTlRTKSB7Ci0J CWRldl9kYmcoZGV2LAotCQkJIiVkIHRvdWNoIHBvaW50cyByZXBvcnRlZCwgb25seSAlZCBhcmUg c3VwcG9ydGVkXG4iLAotCQkJdG91Y2hlcywgRlQ2MjM2X01BWF9UT1VDSF9QT0lOVFMpOwotCQl0 b3VjaGVzID0gRlQ2MjM2X01BWF9UT1VDSF9QT0lOVFM7Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8 IHRvdWNoZXM7IGkrKykgewotCQlzdHJ1Y3QgZnQ2MjM2X3RvdWNocG9pbnQgKnBvaW50ID0gJmJ1 Zi5wb2ludHNbaV07Ci0JCXUxNiB4ID0gKChwb2ludC0+eGhpICYgMHhmKSA8PCA4KSB8IGJ1Zi5w b2ludHNbaV0ueGxvOwotCQl1MTYgeSA9ICgocG9pbnQtPnloaSAmIDB4ZikgPDwgOCkgfCBidWYu cG9pbnRzW2ldLnlsbzsKLQkJdTggZXZlbnQgPSBwb2ludC0+ZXZlbnQgPj4gNjsKLQkJdTggaWQg PSBwb2ludC0+aWQgPj4gNDsKLQkJYm9vbCBhY3QgPSAoZXZlbnQgPT0gRlQ2MjM2X0VWRU5UX1BS RVNTX0RPV04gfHwKLQkJCSAgICBldmVudCA9PSBGVDYyMzZfRVZFTlRfQ09OVEFDVCk7Ci0KLQkJ aW5wdXRfbXRfc2xvdChpbnB1dCwgaWQpOwotCQlpbnB1dF9tdF9yZXBvcnRfc2xvdF9zdGF0ZShp bnB1dCwgTVRfVE9PTF9GSU5HRVIsIGFjdCk7Ci0JCWlmICghYWN0KQotCQkJY29udGludWU7Ci0K LQkJaWYgKGZ0NjIzNi0+aW52ZXJ0X3gpCi0JCQl4ID0gZnQ2MjM2LT5tYXhfeCAtIHg7Ci0KLQkJ aWYgKGZ0NjIzNi0+aW52ZXJ0X3kpCi0JCQl5ID0gZnQ2MjM2LT5tYXhfeSAtIHk7Ci0KLQkJaWYg KGZ0NjIzNi0+c3dhcF94eSkgewotCQkJaW5wdXRfcmVwb3J0X2FicyhpbnB1dCwgQUJTX01UX1BP U0lUSU9OX1gsIHkpOwotCQkJaW5wdXRfcmVwb3J0X2FicyhpbnB1dCwgQUJTX01UX1BPU0lUSU9O X1ksIHgpOwotCQl9IGVsc2UgewotCQkJaW5wdXRfcmVwb3J0X2FicyhpbnB1dCwgQUJTX01UX1BP U0lUSU9OX1gsIHgpOwotCQkJaW5wdXRfcmVwb3J0X2FicyhpbnB1dCwgQUJTX01UX1BPU0lUSU9O X1ksIHkpOwotCQl9Ci0JfQotCi0JaW5wdXRfbXRfc3luY19mcmFtZShpbnB1dCk7Ci0JaW5wdXRf c3luYyhpbnB1dCk7Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyB1OCBmdDYy MzZfZGVidWdfcmVhZF9ieXRlKHN0cnVjdCBmdDYyMzZfZGF0YSAqZnQ2MjM2LCB1OCByZWcpCi17 Ci0Jc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IGZ0NjIzNi0+Y2xpZW50OwotCXU4IHZhbCA9 IDA7Ci0JaW50IGVycm9yOwotCi0JZXJyb3IgPSBmdDYyMzZfcmVhZChjbGllbnQsIHJlZywgMSwg JnZhbCk7Ci0JaWYgKGVycm9yKQotCQlkZXZfZGJnKCZjbGllbnQtPmRldiwKLQkJCSJlcnJvciBy ZWFkaW5nIHJlZ2lzdGVyIDB4JTAyeDogJWRcbiIsIHJlZywgZXJyb3IpOwotCi0JcmV0dXJuIHZh bDsKLX0KLQotc3RhdGljIHZvaWQgZnQ2MjM2X2RlYnVnX2luZm8oc3RydWN0IGZ0NjIzNl9kYXRh ICpmdDYyMzYpCi17Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gJmZ0NjIzNi0+Y2xpZW50LT5kZXY7 Ci0KLQlkZXZfZGJnKGRldiwgIlRvdWNoIHRocmVzaG9sZCBpcyAlZFxuIiwKLQkJZnQ2MjM2X2Rl YnVnX3JlYWRfYnl0ZShmdDYyMzYsIEZUNjIzNl9SRUdfVEhfR1JPVVApICogNCk7Ci0JZGV2X2Ri ZyhkZXYsICJSZXBvcnQgcmF0ZSBpcyAlZEh6XG4iLAotCQlmdDYyMzZfZGVidWdfcmVhZF9ieXRl KGZ0NjIzNiwgRlQ2MjM2X1JFR19QRVJJT0RBQ1RJVkUpICogMTApOwotCWRldl9kYmcoZGV2LCAi RmlybXdhcmUgbGlicmFyeSB2ZXJzaW9uIDB4JTAyeCUwMnhcbiIsCi0JCWZ0NjIzNl9kZWJ1Z19y ZWFkX2J5dGUoZnQ2MjM2LCBGVDYyMzZfUkVHX0xJQl9WRVJfSCksCi0JCWZ0NjIzNl9kZWJ1Z19y ZWFkX2J5dGUoZnQ2MjM2LCBGVDYyMzZfUkVHX0xJQl9WRVJfTCkpOwotCWRldl9kYmcoZGV2LCAi RmlybXdhcmUgdmVyc2lvbiAweCUwMnhcbiIsCi0JCWZ0NjIzNl9kZWJ1Z19yZWFkX2J5dGUoZnQ2 MjM2LCBGVDYyMzZfUkVHX0ZJUk1JRCkpOwotCWRldl9kYmcoZGV2LCAiQ2hpcCB2ZW5kb3IgSUQg MHglMDJ4XG4iLAotCQlmdDYyMzZfZGVidWdfcmVhZF9ieXRlKGZ0NjIzNiwgRlQ2MjM2X1JFR19D SVBIRVIpKTsKLQlkZXZfZGJnKGRldiwgIkNUUE0gdmVuZG9yIElEIDB4JTAyeFxuIiwKLQkJZnQ2 MjM2X2RlYnVnX3JlYWRfYnl0ZShmdDYyMzYsIEZUNjIzNl9SRUdfRk9DQUxURUNIX0lEKSk7Ci0J ZGV2X2RiZyhkZXYsICJSZWxlYXNlIGNvZGUgdmVyc2lvbiAweCUwMnhcbiIsCi0JCWZ0NjIzNl9k ZWJ1Z19yZWFkX2J5dGUoZnQ2MjM2LCBGVDYyMzZfUkVHX1JFTEVBU0VfQ09ERV9JRCkpOwotfQot Ci1zdGF0aWMgdm9pZCBmdDYyMzZfcmVzZXQoc3RydWN0IGZ0NjIzNl9kYXRhICpmdDYyMzYpCi17 Ci0JaWYgKCFmdDYyMzYtPnJlc2V0X2dwaW8pCi0JCXJldHVybjsKLQotCWdwaW9kX3NldF92YWx1 ZV9jYW5zbGVlcChmdDYyMzYtPnJlc2V0X2dwaW8sIDEpOwotCXVzbGVlcF9yYW5nZSg1MDAwLCAy MDAwMCk7Ci0JZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGZ0NjIzNi0+cmVzZXRfZ3BpbywgMCk7 Ci0JbXNsZWVwKDMwMCk7Ci19Ci0KLXN0YXRpYyBpbnQgZnQ2MjM2X3Byb2JlKHN0cnVjdCBpMmNf Y2xpZW50ICpjbGllbnQsCi0JCQljb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCi17Ci0J c3RydWN0IGRldmljZSAqZGV2ID0gJmNsaWVudC0+ZGV2OwotCXN0cnVjdCBmdDYyMzZfZGF0YSAq ZnQ2MjM2OwotCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0OwotCXUzMiBmdXp6X3ggPSAwLCBmdXp6 X3kgPSAwOwotCXU4IHZhbDsKLQlpbnQgZXJyb3I7Ci0KLQlpZiAoIWkyY19jaGVja19mdW5jdGlv bmFsaXR5KGNsaWVudC0+YWRhcHRlciwgSTJDX0ZVTkNfSTJDKSkKLQkJcmV0dXJuIC1FTlhJTzsK LQotCWlmICghY2xpZW50LT5pcnEpIHsKLQkJZGV2X2VycihkZXYsICJpcnEgaXMgbWlzc2luZ1xu Iik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWZ0NjIzNiA9IGRldm1fa3phbGxvYyhkZXYs IHNpemVvZigqZnQ2MjM2KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFmdDYyMzYpCi0JCXJldHVybiAt RU5PTUVNOwotCi0JZnQ2MjM2LT5jbGllbnQgPSBjbGllbnQ7Ci0JZnQ2MjM2LT5yZXNldF9ncGlv ID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoZGV2LCAicmVzZXQiLAotCQkJCQkJICAgICBHUElP RF9PVVRfTE9XKTsKLQlpZiAoSVNfRVJSKGZ0NjIzNi0+cmVzZXRfZ3BpbykpIHsKLQkJZXJyb3Ig PSBQVFJfRVJSKGZ0NjIzNi0+cmVzZXRfZ3Bpbyk7Ci0JCWlmIChlcnJvciAhPSAtRVBST0JFX0RF RkVSKQotCQkJZGV2X2VycihkZXYsICJlcnJvciBnZXR0aW5nIHJlc2V0IGdwaW86ICVkXG4iLCBl cnJvcik7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0KLQlmdDYyMzZfcmVzZXQoZnQ2MjM2KTsKLQot CS8qIHZlcmlmeSB0aGF0IHRoZSBjb250cm9sbGVyIGlzIHByZXNlbnQgKi8KLQllcnJvciA9IGZ0 NjIzNl9yZWFkKGNsaWVudCwgMHgwMCwgMSwgJnZhbCk7Ci0JaWYgKGVycm9yKSB7Ci0JCWRldl9l cnIoZGV2LCAiZmFpbGVkIHRvIHJlYWQgZnJvbSBjb250cm9sbGVyOiAlZFxuIiwgZXJyb3IpOwot CQlyZXR1cm4gZXJyb3I7Ci0JfQotCi0JZnQ2MjM2X2RlYnVnX2luZm8oZnQ2MjM2KTsKLQotCWlu cHV0ID0gZGV2bV9pbnB1dF9hbGxvY2F0ZV9kZXZpY2UoZGV2KTsKLQlpZiAoIWlucHV0KQotCQly ZXR1cm4gLUVOT01FTTsKLQotCWZ0NjIzNi0+aW5wdXQgPSBpbnB1dDsKLQlpbnB1dC0+bmFtZSA9 IGNsaWVudC0+bmFtZTsKLQlpbnB1dC0+aWQuYnVzdHlwZSA9IEJVU19JMkM7Ci0KLQlpZiAoZGV2 aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwgInRvdWNoc2NyZWVuLXNpemUteCIsCi0JCQkJICAg ICAmZnQ2MjM2LT5tYXhfeCkgfHwKLQkgICAgZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwg InRvdWNoc2NyZWVuLXNpemUteSIsCi0JCQkJICAgICAmZnQ2MjM2LT5tYXhfeSkpIHsKLQkJZGV2 X2VycihkZXYsICJ0b3VjaHNjcmVlbi1zaXplLXggYW5kL29yIC15IG1pc3NpbmdcbiIpOwotCQly ZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCAidG91 Y2hzY3JlZW4tZnV6ei14IiwgJmZ1enpfeCk7Ci0JZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRl diwgInRvdWNoc2NyZWVuLWZ1enoteSIsICZmdXp6X3kpOwotCWZ0NjIzNi0+aW52ZXJ0X3ggPSBk ZXZpY2VfcHJvcGVydHlfcmVhZF9ib29sKGRldiwKLQkJCQkJCSAgICAgInRvdWNoc2NyZWVuLWlu dmVydGVkLXgiKTsKLQlmdDYyMzYtPmludmVydF95ID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfYm9v bChkZXYsCi0JCQkJCQkgICAgICJ0b3VjaHNjcmVlbi1pbnZlcnRlZC15Iik7Ci0JZnQ2MjM2LT5z d2FwX3h5ID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYsCi0JCQkJCQkgICAgInRvdWNo c2NyZWVuLXN3YXBwZWQteC15Iik7Ci0KLQlpZiAoZnQ2MjM2LT5zd2FwX3h5KSB7Ci0JCWlucHV0 X3NldF9hYnNfcGFyYW1zKGlucHV0LCBBQlNfTVRfUE9TSVRJT05fWCwgMCwKLQkJCQkgICAgIGZ0 NjIzNi0+bWF4X3ksIGZ1enpfeSwgMCk7Ci0JCWlucHV0X3NldF9hYnNfcGFyYW1zKGlucHV0LCBB QlNfTVRfUE9TSVRJT05fWSwgMCwKLQkJCQkgICAgIGZ0NjIzNi0+bWF4X3gsIGZ1enpfeCwgMCk7 Ci0JfSBlbHNlIHsKLQkJaW5wdXRfc2V0X2Fic19wYXJhbXMoaW5wdXQsIEFCU19NVF9QT1NJVElP Tl9YLCAwLAotCQkJCSAgICAgZnQ2MjM2LT5tYXhfeCwgZnV6el94LCAwKTsKLQkJaW5wdXRfc2V0 X2Fic19wYXJhbXMoaW5wdXQsIEFCU19NVF9QT1NJVElPTl9ZLCAwLAotCQkJCSAgICAgZnQ2MjM2 LT5tYXhfeSwgZnV6el95LCAwKTsKLQl9Ci0KLQllcnJvciA9IGlucHV0X210X2luaXRfc2xvdHMo aW5wdXQsIEZUNjIzNl9NQVhfVE9VQ0hfUE9JTlRTLAotCQkJCSAgICBJTlBVVF9NVF9ESVJFQ1Qg fCBJTlBVVF9NVF9EUk9QX1VOVVNFRCk7Ci0JaWYgKGVycm9yKQotCQlyZXR1cm4gZXJyb3I7Ci0K LQllcnJvciA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoZGV2LCBjbGllbnQtPmlycSwgTlVM TCwKLQkJCQkJICBmdDYyMzZfaW50ZXJydXB0LCBJUlFGX09ORVNIT1QsCi0JCQkJCSAgY2xpZW50 LT5uYW1lLCBmdDYyMzYpOwotCWlmIChlcnJvcikgewotCQlkZXZfZXJyKGRldiwgInJlcXVlc3Qg aXJxICVkIGZhaWxlZDogJWRcbiIsIGNsaWVudC0+aXJxLCBlcnJvcik7Ci0JCXJldHVybiBlcnJv cjsKLQl9Ci0KLQllcnJvciA9IGlucHV0X3JlZ2lzdGVyX2RldmljZShpbnB1dCk7Ci0JaWYgKGVy cm9yKSB7Ci0JCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGlucHV0IGRldmljZTog JWRcbiIsIGVycm9yKTsKLQkJcmV0dXJuIGVycm9yOwotCX0KLQotCXJldHVybiAwOwotfQotCi0j aWZkZWYgQ09ORklHX09GCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBmdDYyMzZf b2ZfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gImZvY2FsdGVjaCxmdDYyMzYiLCB9LAot CXsgfQotfTsKLU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGZ0NjIzNl9vZl9tYXRjaCk7Ci0jZW5k aWYKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIGZ0NjIzNl9pZFtdID0gewot CXsgImZ0NjIzNiIsIH0sCi0JeyB9Ci19OwotTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIGZ0NjIz Nl9pZCk7Ci0KLXN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBmdDYyMzZfZHJpdmVyID0gewotCS5k cml2ZXIgPSB7Ci0JCS5uYW1lID0gImZ0NjIzNiIsCi0JCS5vZl9tYXRjaF90YWJsZSA9IG9mX21h dGNoX3B0cihmdDYyMzZfb2ZfbWF0Y2gpLAotCX0sCi0JLnByb2JlID0gZnQ2MjM2X3Byb2JlLAot CS5pZF90YWJsZSA9IGZ0NjIzNl9pZCwKLX07Ci1tb2R1bGVfaTJjX2RyaXZlcihmdDYyMzZfZHJp dmVyKTsKLQotTU9EVUxFX0FVVEhPUigiU2VhbiBDcm9zcyA8eG9ic0Brb3NhZ2kuY29tPiIpOwot TU9EVUxFX0FVVEhPUigiTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Iik7Ci1N T0RVTEVfREVTQ1JJUFRJT04oIkZvY2FsVGVjaCBGVDYyMzYgVG91Y2hTY3JlZW4gZHJpdmVyIik7 Ci1NT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK