From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from ey-out-2122.google.com ([74.125.78.27]:61003 "EHLO ey-out-2122.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758199Ab0BXVm7 (ORCPT ); Wed, 24 Feb 2010 16:42:59 -0500 Received: by ey-out-2122.google.com with SMTP id 25so44143eya.19 for ; Wed, 24 Feb 2010 13:42:57 -0800 (PST) MIME-Version: 1.0 From: Bert Massop Date: Wed, 24 Feb 2010 22:42:37 +0100 Message-ID: <41ef408f1002241342v423d728cwf9bc4957f35dabed@mail.gmail.com> Subject: Re: af9015: tuner id:179 not supported, please report! To: linux-media@vger.kernel.org Content-Type: multipart/mixed; boundary=001636025f84abc30404805f8c5d Sender: linux-media-owner@vger.kernel.org List-ID: --001636025f84abc30404805f8c5d Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable This is a forward of the original email from Nikola Pajkovsky. Just for the records, so it is on the list. This solves the problem of the tuner id:179 not supported error, when loading the AF9015 driver. Thank you, Nikola! Regards, Bert Massop ---------- Forwarded message ---------- From: Nikola Pajkovsky Date: Wed, Feb 24, 2010 at 11:54 Subject: Re: af901x: NXP TDA18218 To: Antti Palosaari Cc: jan.sundman@aland.net, bert.massop@gmail.com, mkrufky@kernellabs.com, dheitmueller@kernellabs.com Hello, =A0 =A0here is my solution, I can watch Vancouver right now :). I don't look at the patch if there is some mistake(no time watch Vancouver), but I will when I will have some free time. Attached patch apply against this souce (hg clone http://linuxtv.org/hg/~anttip/af9015/). Firmware: wget http://jusst.de/manu/fw/AFA/dvb-usb-af9015.fw_a-link sudo mv dvb-usb-af9015.fw_a-link /lib/firmware/dvb-usb-af9015.fw Have a nice day ;) On 23.2.2010 14:02, Antti Palosaari wrote: > > Hello, > I just got info from one user about this driver, looks like Terratec have= driver. > http://forum.ubuntuusers.de/topic/probleme-beim-installieren-terratec-cin= ergy-t/3/?highlight=3Dterratec+cinergy+t+stick > > Antti > > Nikola Pajkovsky wrote: >> >> Hello, >> >> =A0 =A0is any chance that will be support for TDA182118? >> >> Regards, >> > -- Nikola --001636025f84abc30404805f8c5d Content-Type: text/x-patch; charset=US-ASCII; name="af9013_tuner_tda18218.patch" Content-Disposition: attachment; filename="af9013_tuner_tda18218.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 0.1 ZGlmZiAtciAwZjQxZmQ3ZGY4NWQgbGludXgvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL0tj b25maWcKLS0tIGEvbGludXgvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL0tjb25maWcJVGh1 IEZlYiAxMSAwMjozMzoxMiAyMDEwICswMjAwCisrKyBiL2xpbnV4L2RyaXZlcnMvbWVkaWEvY29t bW9uL3R1bmVycy9LY29uZmlnCVdlZCBGZWIgMjQgMTE6NDc6MTQgMjAxMCArMDEwMApAQCAtMTc5 LDQgKzE3OSwxMSBAQAogCWhlbHAKIAkgIEEgZHJpdmVyIGZvciB0aGUgc2lsaWNvbiB0dW5lciBN QVgyMTY1IGZyb20gTWF4aW0uCiAKK2NvbmZpZyBNRURJQV9UVU5FUl9UREExODIxOAorCXRyaXN0 YXRlICJOWFAgVERBMTgyMTggc2lsaWNvbiB0dW5lciIKKwlkZXBlbmRzIG9uIFZJREVPX01FRElB ICYmIEkyQworCWRlZmF1bHQgbSBpZiBNRURJQV9UVU5FUl9DVVNUT01JU0UKKwloZWxwCisJICBB IGRyaXZlciBmb3IgdGhlIHNpbGljb24gdHVuZXIgVERBMTgyMTggZnJvbSBOWFAuCisKIGVuZGlm ICMgTUVESUFfVFVORVJfQ1VTVE9NSVNFCmRpZmYgLXIgMGY0MWZkN2RmODVkIGxpbnV4L2RyaXZl cnMvbWVkaWEvY29tbW9uL3R1bmVycy9NYWtlZmlsZQotLS0gYS9saW51eC9kcml2ZXJzL21lZGlh L2NvbW1vbi90dW5lcnMvTWFrZWZpbGUJVGh1IEZlYiAxMSAwMjozMzoxMiAyMDEwICswMjAwCisr KyBiL2xpbnV4L2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy9NYWtlZmlsZQlXZWQgRmViIDI0 IDExOjQ3OjE0IDIwMTAgKzAxMDAKQEAgLTI0LDYgKzI0LDcgQEAKIG9iai0kKENPTkZJR19NRURJ QV9UVU5FUl9NWEw1MDA3VCkgKz0gbXhsNTAwN3Qubwogb2JqLSQoQ09ORklHX01FRElBX1RVTkVS X01DNDRTODAzKSArPSBtYzQ0czgwMy5vCiBvYmotJChDT05GSUdfTUVESUFfVFVORVJfTUFYMjE2 NSkgKz0gbWF4MjE2NS5vCitvYmotJChDT05GSUdfTUVESUFfVFVORVJfVERBMTgyMTgpICs9IHRk YTE4MjE4Lm8KIAogRVhUUkFfQ0ZMQUdTICs9IC1JZHJpdmVycy9tZWRpYS9kdmIvZHZiLWNvcmUK IEVYVFJBX0NGTEFHUyArPSAtSWRyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcwpkaWZmIC1yIDBm NDFmZDdkZjg1ZCBsaW51eC9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2FmOTAxNS5jCi0tLSBh L2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvYWY5MDE1LmMJVGh1IEZlYiAxMSAwMjoz MzoxMiAyMDEwICswMjAwCisrKyBiL2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvYWY5 MDE1LmMJV2VkIEZlYiAyNCAxMTo0NzoxNCAyMDEwICswMTAwCkBAIC0yMCwxMSArMjAsNyBAQAog ICogICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5 LCBVU0EuCiAgKgogICovCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O KDIsIDYsIDI1KQogCi0jaW5jbHVkZSA8bGludXgvaGFzaC5oPgotCi0jZW5kaWYKICNpbmNsdWRl ICJhZjkwMTUuaCIKICNpbmNsdWRlICJhZjkwMTMuaCIKICNpbmNsdWRlICJtdDIwNjAuaCIKQEAg LTMyLDYgKzI4LDcgQEAKICNpbmNsdWRlICJ0ZGExODI3MS5oIgogI2luY2x1ZGUgIm14bDUwMDVz LmgiCiAjaW5jbHVkZSAibWM0NHM4MDMuaCIKKyNpbmNsdWRlICJ0ZGExODIxOC5oIgogCiBzdGF0 aWMgaW50IGR2Yl91c2JfYWY5MDE1X2RlYnVnOwogbW9kdWxlX3BhcmFtX25hbWVkKGRlYnVnLCBk dmJfdXNiX2FmOTAxNV9kZWJ1ZywgaW50LCAwNjQ0KTsKQEAgLTI3Myw3ICsyNzAsOCBAQAogCiAJ d2hpbGUgKGkgPCBudW0pIHsKIAkJaWYgKG1zZ1tpXS5hZGRyID09IGFmOTAxNV9hZjkwMTNfY29u ZmlnWzBdLmRlbW9kX2FkZHJlc3MgfHwKLQkJICAgIG1zZ1tpXS5hZGRyID09IGFmOTAxNV9hZjkw MTNfY29uZmlnWzFdLmRlbW9kX2FkZHJlc3MpIHsKKwkJICAgIG1zZ1tpXS5hZGRyID09IGFmOTAx NV9hZjkwMTNfY29uZmlnWzFdLmRlbW9kX2FkZHJlc3MgIHx8CisJCSAgICBtc2dbaV0uYWRkciA9 PSAweDNhKSB7CiAJCQlhZGRyID0gbXNnW2ldLmJ1ZlswXSA8PCA4OwogCQkJYWRkciArPSBtc2db aV0uYnVmWzFdOwogCQkJbWJveCA9IG1zZ1tpXS5idWZbMl07CkBAIC0yODYsNyArMjg0LDggQEAK IAogCQlpZiAobnVtID4gaSArIDEgJiYgKG1zZ1tpKzFdLmZsYWdzICYgSTJDX01fUkQpKSB7CiAJ CQlpZiAobXNnW2ldLmFkZHIgPT0KLQkJCQlhZjkwMTVfYWY5MDEzX2NvbmZpZ1swXS5kZW1vZF9h ZGRyZXNzKQorCQkJCWFmOTAxNV9hZjkwMTNfY29uZmlnWzBdLmRlbW9kX2FkZHJlc3MgfHwKKwkJ CSAgICBtc2dbaV0uYWRkciA9PSAweDNhKQogCQkJCXJlcS5jbWQgPSBSRUFEX01FTU9SWTsKIAkJ CWVsc2UKIAkJCQlyZXEuY21kID0gUkVBRF9JMkM7CkBAIC0zMDEsNyArMzAwLDggQEAKIAkJfSBl bHNlIGlmIChtc2dbaV0uZmxhZ3MgJiBJMkNfTV9SRCkgewogCQkJcmV0ID0gLUVJTlZBTDsKIAkJ CWlmIChtc2dbaV0uYWRkciA9PQotCQkJCWFmOTAxNV9hZjkwMTNfY29uZmlnWzBdLmRlbW9kX2Fk ZHJlc3MpCisJCQkJYWY5MDE1X2FmOTAxM19jb25maWdbMF0uZGVtb2RfYWRkcmVzcyB8fAorCQkJ ICAgIG1zZ1tpXS5hZGRyID09IDB4M2EpCiAJCQkJZ290byBlcnJvcjsKIAkJCWVsc2UKIAkJCQly ZXEuY21kID0gUkVBRF9JMkM7CkBAIC0zMTUsNyArMzE1LDggQEAKIAkJCWkgKz0gMTsKIAkJfSBl bHNlIHsKIAkJCWlmIChtc2dbaV0uYWRkciA9PQotCQkJCWFmOTAxNV9hZjkwMTNfY29uZmlnWzBd LmRlbW9kX2FkZHJlc3MpCisJCQkJYWY5MDE1X2FmOTAxM19jb25maWdbMF0uZGVtb2RfYWRkcmVz cyB8fAorCQkJICAgIG1zZ1tpXS5hZGRyID09IDB4M2EpCiAJCQkJcmVxLmNtZCA9IFdSSVRFX01F TU9SWTsKIAkJCWVsc2UKIAkJCQlyZXEuY21kID0gV1JJVEVfSTJDOwpAQCAtNTYwLDI0ICs1NjEs MTEgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiwgNiwgMjUpCisvKiBkdW1wIGVlcHJvbSAqLwogc3RhdGljIGludCBhZjkwMTVf ZWVwcm9tX2R1bXAoc3RydWN0IGR2Yl91c2JfZGV2aWNlICpkKQotI2Vsc2UKLS8qIGhhc2ggKGFu ZCBkdW1wKSBlZXByb20gKi8KLXN0YXRpYyBpbnQgYWY5MDE1X2VlcHJvbV9oYXNoKHN0cnVjdCB1 c2JfZGV2aWNlICp1ZGV2KQotI2VuZGlmCiB7Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMiwgNiwgMjUpCiAJdTggcmVnLCB2YWw7Ci0jZWxzZQotCXN0YXRpYyBjb25z dCB1bnNpZ25lZCBpbnQgZWVwcm9tX3NpemUgPSAyNTY7Ci0JdW5zaWduZWQgaW50IHJlZzsKLQlp bnQgcmV0OwotCXU4IHZhbCwgKmVlcHJvbTsKLQlzdHJ1Y3QgcmVxX3QgcmVxID0ge1JFQURfSTJD LCBBRjkwMTVfSTJDX0VFUFJPTSwgMCwgMCwgMSwgMSwgJnZhbH07Ci0jZW5kaWYKIAotI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDI1KQogCWZvciAocmVnID0g MDsgOyByZWcrKykgewogCQlpZiAocmVnICUgMTYgPT0gMCkgewogCQkJaWYgKHJlZykKQEAgLTU5 MCw0MyArNTc4LDkgQEAKIAkJCWRlYl9pbmZvKEtFUk5fQ09OVCAiIC0tIik7CiAJCWlmIChyZWcg PT0gMHhmZikKIAkJCWJyZWFrOwotI2Vsc2UKLQllZXByb20gPSBrbWFsbG9jKGVlcHJvbV9zaXpl LCBHRlBfS0VSTkVMKTsKLQlpZiAoZWVwcm9tID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwot Ci0JZm9yIChyZWcgPSAwOyByZWcgPCBlZXByb21fc2l6ZTsgcmVnKyspIHsKLQkJcmVxLmFkZHIg PSByZWc7Ci0JCXJldCA9IGFmOTAxNV9yd191ZGV2KHVkZXYsICZyZXEpOwotCQlpZiAocmV0KQot CQkJZ290byBmcmVlOwotCQllZXByb21bcmVnXSA9IHZhbDsKLSNlbmRpZgogCX0KLQotI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDI1KQogCWRlYl9pbmZvKEtF Uk5fQ09OVCAiXG4iKTsKIAlyZXR1cm4gMDsKLSNlbHNlCi0JaWYgKGR2Yl91c2JfYWY5MDE1X2Rl YnVnICYgMHgwMSkKLQkJcHJpbnRfaGV4X2R1bXBfYnl0ZXMoIiIsIERVTVBfUFJFRklYX09GRlNF VCwgZWVwcm9tLAotCQkJCWVlcHJvbV9zaXplKTsKLQotCUJVR19PTihlZXByb21fc2l6ZSAlIDQp OwotCi0JYWY5MDE1X2NvbmZpZy5lZXByb21fc3VtID0gMDsKLQlmb3IgKHJlZyA9IDA7IHJlZyA8 IGVlcHJvbV9zaXplIC8gc2l6ZW9mKHUzMik7IHJlZysrKSB7Ci0JCWFmOTAxNV9jb25maWcuZWVw cm9tX3N1bSAqPSBHT0xERU5fUkFUSU9fUFJJTUVfMzI7Ci0JCWFmOTAxNV9jb25maWcuZWVwcm9t X3N1bSArPSBsZTMyX3RvX2NwdSgoKHUzMiAqKWVlcHJvbSlbcmVnXSk7Ci0JfQotCi0JZGViX2lu Zm8oIiVzOiBlZXByb20gc3VtPSUuOHhcbiIsIF9fZnVuY19fLCBhZjkwMTVfY29uZmlnLmVlcHJv bV9zdW0pOwotCi0JcmV0ID0gMDsKLWZyZWU6Ci0Ja2ZyZWUoZWVwcm9tKTsKLQlyZXR1cm4gcmV0 OwotI2VuZGlmCiB9CiAKIHN0YXRpYyBpbnQgYWY5MDE1X2Rvd25sb2FkX2lyX3RhYmxlKHN0cnVj dCBkdmJfdXNiX2RldmljZSAqZCkKQEAgLTc2NSwxMzIgKzcxOSwxMiBAQAogCXJldHVybiByZXQ7 CiB9CiAKLXN0cnVjdCBhZjkwMTVfc2V0dXAgewotCXVuc2lnbmVkIGludCBpZDsKLQlzdHJ1Y3Qg ZHZiX3VzYl9yY19rZXkgKnJjX2tleV9tYXA7Ci0JdW5zaWduZWQgaW50IHJjX2tleV9tYXBfc2l6 ZTsKLQl1OCAqaXJfdGFibGU7Ci0JdW5zaWduZWQgaW50IGlyX3RhYmxlX3NpemU7Ci19OwotCi1z dGF0aWMgY29uc3Qgc3RydWN0IGFmOTAxNV9zZXR1cCAqYWY5MDE1X3NldHVwX21hdGNoKHVuc2ln bmVkIGludCBpZCwKLQkJY29uc3Qgc3RydWN0IGFmOTAxNV9zZXR1cCAqdGFibGUpCi17Ci0JZm9y ICg7IHRhYmxlLT5yY19rZXlfbWFwOyB0YWJsZSsrKQotCQlpZiAodGFibGUtPmlkID09IGlkKQot CQkJcmV0dXJuIHRhYmxlOwotCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0 IGFmOTAxNV9zZXR1cCBhZjkwMTVfc2V0dXBfbW9kcGFyYW1bXSA9IHsKLQl7IEFGOTAxNV9SRU1P VEVfQV9MSU5LX0RUVV9NLAotCQlhZjkwMTVfcmNfa2V5c19hX2xpbmssIEFSUkFZX1NJWkUoYWY5 MDE1X3JjX2tleXNfYV9saW5rKSwKLQkJYWY5MDE1X2lyX3RhYmxlX2FfbGluaywgQVJSQVlfU0la RShhZjkwMTVfaXJfdGFibGVfYV9saW5rKSB9LAotCXsgQUY5MDE1X1JFTU9URV9NU0lfRElHSVZP WF9NSU5JX0lJX1YzLAotCQlhZjkwMTVfcmNfa2V5c19tc2ksIEFSUkFZX1NJWkUoYWY5MDE1X3Jj X2tleXNfbXNpKSwKLQkJYWY5MDE1X2lyX3RhYmxlX21zaSwgQVJSQVlfU0laRShhZjkwMTVfaXJf dGFibGVfbXNpKSB9LAotCXsgQUY5MDE1X1JFTU9URV9NWUdJQ1RWX1U3MTgsCi0JCWFmOTAxNV9y Y19rZXlzX215Z2ljdHYsIEFSUkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfbXlnaWN0diksCi0JCWFm OTAxNV9pcl90YWJsZV9teWdpY3R2LCBBUlJBWV9TSVpFKGFmOTAxNV9pcl90YWJsZV9teWdpY3R2 KSB9LAotCXsgQUY5MDE1X1JFTU9URV9ESUdJVFRSQURFX0RWQl9ULAotCQlhZjkwMTVfcmNfa2V5 c19kaWdpdHRyYWRlLCBBUlJBWV9TSVpFKGFmOTAxNV9yY19rZXlzX2RpZ2l0dHJhZGUpLAotCQlh ZjkwMTVfaXJfdGFibGVfZGlnaXR0cmFkZSwgQVJSQVlfU0laRShhZjkwMTVfaXJfdGFibGVfZGln aXR0cmFkZSkgfSwKLQl7IEFGOTAxNV9SRU1PVEVfQVZFUk1FRElBX0tTLAotCQlhZjkwMTVfcmNf a2V5c19hdmVybWVkaWEsIEFSUkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfYXZlcm1lZGlhKSwKLQkJ YWY5MDE1X2lyX3RhYmxlX2F2ZXJtZWRpYV9rcywgQVJSQVlfU0laRShhZjkwMTVfaXJfdGFibGVf YXZlcm1lZGlhX2tzKSB9LAotCXsgfQotfTsKLQotLyogZG9uJ3QgYWRkIG5ldyBlbnRyaWVzIGhl cmUgYW55bW9yZSwgdXNlIGhhc2hlcyBpbnN0ZWFkICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IGFm OTAxNV9zZXR1cCBhZjkwMTVfc2V0dXBfdXNiaWRzW10gPSB7Ci0JeyBVU0JfVklEX0xFQURURUss Ci0JCWFmOTAxNV9yY19rZXlzX2xlYWR0ZWssIEFSUkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfbGVh ZHRlayksCi0JCWFmOTAxNV9pcl90YWJsZV9sZWFkdGVrLCBBUlJBWV9TSVpFKGFmOTAxNV9pcl90 YWJsZV9sZWFkdGVrKSB9LAotCXsgVVNCX1ZJRF9WSVNJT05QTFVTLAotCQlhZjkwMTVfcmNfa2V5 c190d2luaGFuLCBBUlJBWV9TSVpFKGFmOTAxNV9yY19rZXlzX3R3aW5oYW4pLAotCQlhZjkwMTVf aXJfdGFibGVfdHdpbmhhbiwgQVJSQVlfU0laRShhZjkwMTVfaXJfdGFibGVfdHdpbmhhbikgfSwK LQl7IFVTQl9WSURfS1dPUkxEXzIsIC8qIFRPRE86IHVzZSBjb3JyZWN0IHJjIGtleXMgKi8KLQkJ YWY5MDE1X3JjX2tleXNfdHdpbmhhbiwgQVJSQVlfU0laRShhZjkwMTVfcmNfa2V5c190d2luaGFu KSwKLQkJYWY5MDE1X2lyX3RhYmxlX2t3b3JsZCwgQVJSQVlfU0laRShhZjkwMTVfaXJfdGFibGVf a3dvcmxkKSB9LAotCXsgVVNCX1ZJRF9BVkVSTUVESUEsCi0JCWFmOTAxNV9yY19rZXlzX2F2ZXJt ZWRpYSwgQVJSQVlfU0laRShhZjkwMTVfcmNfa2V5c19hdmVybWVkaWEpLAotCQlhZjkwMTVfaXJf dGFibGVfYXZlcm1lZGlhLCBBUlJBWV9TSVpFKGFmOTAxNV9pcl90YWJsZV9hdmVybWVkaWEpIH0s Ci0JeyBVU0JfVklEX01TSV8yLAotCQlhZjkwMTVfcmNfa2V5c19tc2lfZGlnaXZveF9paWksIEFS UkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfbXNpX2RpZ2l2b3hfaWlpKSwKLQkJYWY5MDE1X2lyX3Rh YmxlX21zaV9kaWdpdm94X2lpaSwgQVJSQVlfU0laRShhZjkwMTVfaXJfdGFibGVfbXNpX2RpZ2l2 b3hfaWlpKSB9LAotCXsgfQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBhZjkwMTVfc2V0dXAg YWY5MDE1X3NldHVwX2hhc2hlc1tdID0gewotCXsgMHhiOGZlYjcwOCwKLQkJYWY5MDE1X3JjX2tl eXNfbXNpLCBBUlJBWV9TSVpFKGFmOTAxNV9yY19rZXlzX21zaSksCi0JCWFmOTAxNV9pcl90YWJs ZV9tc2ksIEFSUkFZX1NJWkUoYWY5MDE1X2lyX3RhYmxlX21zaSkgfSwKLQl7IDB4YTM3MDNkMDAs Ci0JCWFmOTAxNV9yY19rZXlzX2FfbGluaywgQVJSQVlfU0laRShhZjkwMTVfcmNfa2V5c19hX2xp bmspLAotCQlhZjkwMTVfaXJfdGFibGVfYV9saW5rLCBBUlJBWV9TSVpFKGFmOTAxNV9pcl90YWJs ZV9hX2xpbmspIH0sCi0JeyAweDliN2RjNjRlLAotCQlhZjkwMTVfcmNfa2V5c19teWdpY3R2LCBB UlJBWV9TSVpFKGFmOTAxNV9yY19rZXlzX215Z2ljdHYpLAotCQlhZjkwMTVfaXJfdGFibGVfbXln aWN0diwgQVJSQVlfU0laRShhZjkwMTVfaXJfdGFibGVfbXlnaWN0dikgfSwKLQl7IH0KLX07Ci0K LXN0YXRpYyB2b2lkIGFmOTAxNV9zZXRfcmVtb3RlX2NvbmZpZyhzdHJ1Y3QgdXNiX2RldmljZSAq dWRldiwKLQkJc3RydWN0IGR2Yl91c2JfZGV2aWNlX3Byb3BlcnRpZXMgKnByb3BzKQotewotCWNv bnN0IHN0cnVjdCBhZjkwMTVfc2V0dXAgKnRhYmxlID0gTlVMTDsKLQotCWlmIChkdmJfdXNiX2Fm OTAxNV9yZW1vdGUpIHsKLQkJLyogbG9hZCByZW1vdGUgZGVmaW5lZCBhcyBtb2R1bGUgcGFyYW0g Ki8KLQkJdGFibGUgPSBhZjkwMTVfc2V0dXBfbWF0Y2goZHZiX3VzYl9hZjkwMTVfcmVtb3RlLAot CQkJCWFmOTAxNV9zZXR1cF9tb2RwYXJhbSk7Ci0JfSBlbHNlIHsKLQkJdTE2IHZlbmRvciA9IGxl MTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpOwotCi0JCXRhYmxlID0gYWY5MDE1 X3NldHVwX21hdGNoKGFmOTAxNV9jb25maWcuZWVwcm9tX3N1bSwKLQkJCQlhZjkwMTVfc2V0dXBf aGFzaGVzKTsKLQotCQlpZiAoIXRhYmxlICYmIHZlbmRvciA9PSBVU0JfVklEX0FGQVRFQ0gpIHsK LQkJCS8qIENoZWNrIFVTQiBtYW51ZmFjdHVyZXIgYW5kIHByb2R1Y3Qgc3RyaW5ncyBhbmQgdHJ5 Ci0JCQkgICB0byBkZXRlcm1pbmUgY29ycmVjdCByZW1vdGUgaW4gY2FzZSBvZiBjaGlwIHZlbmRv cgotCQkJICAgcmVmZXJlbmNlIElEcyBhcmUgdXNlZC4KLQkJCSAgIERPIE5PVCBBREQgQU5ZVEhJ TkcgTkVXIEhFUkUuIFVzZSBoYXNoZXMgaW5zdGVhZC4KLQkJCSAqLwotCQkJY2hhciBtYW51ZmFj dHVyZXJbMTBdOwotCQkJbWVtc2V0KG1hbnVmYWN0dXJlciwgMCwgc2l6ZW9mKG1hbnVmYWN0dXJl cikpOwotCQkJdXNiX3N0cmluZyh1ZGV2LCB1ZGV2LT5kZXNjcmlwdG9yLmlNYW51ZmFjdHVyZXIs Ci0JCQkJbWFudWZhY3R1cmVyLCBzaXplb2YobWFudWZhY3R1cmVyKSk7Ci0JCQlpZiAoIXN0cmNt cCgiTVNJIiwgbWFudWZhY3R1cmVyKSkgewotCQkJCS8qIGlNYW51ZmFjdHVyZXIgMSBNU0kKLQkJ CQkgICBpUHJvZHVjdCAgICAgIDIgTVNJIEstVk9YICovCi0JCQkJdGFibGUgPSBhZjkwMTVfc2V0 dXBfbWF0Y2goCi0JCQkJCUFGOTAxNV9SRU1PVEVfTVNJX0RJR0lWT1hfTUlOSV9JSV9WMywKLQkJ CQkJYWY5MDE1X3NldHVwX21vZHBhcmFtKTsKLQkJCX0gZWxzZSBpZiAodWRldi0+ZGVzY3JpcHRv ci5pZFByb2R1Y3QgPT0KLQkJCQljcHVfdG9fbGUxNihVU0JfUElEX1RSRUtTVE9SX0RWQlQpKSB7 Ci0JCQkJdGFibGUgPSAmKGNvbnN0IHN0cnVjdCBhZjkwMTVfc2V0dXApeyAwLAotCQkJCQlhZjkw MTVfcmNfa2V5c190cmVrc3RvciwKLQkJCQkJQVJSQVlfU0laRShhZjkwMTVfcmNfa2V5c190cmVr c3RvciksCi0JCQkJCWFmOTAxNV9pcl90YWJsZV90cmVrc3RvciwKLQkJCQkJQVJSQVlfU0laRShh ZjkwMTVfaXJfdGFibGVfdHJla3N0b3IpCi0JCQkJfTsKLQkJCX0KLQkJfSBlbHNlIGlmICghdGFi bGUpCi0JCQl0YWJsZSA9IGFmOTAxNV9zZXR1cF9tYXRjaCh2ZW5kb3IsIGFmOTAxNV9zZXR1cF91 c2JpZHMpOwotCX0KLQotCWlmICh0YWJsZSkgewotCQlwcm9wcy0+cmNfa2V5X21hcCA9IHRhYmxl LT5yY19rZXlfbWFwOwotCQlwcm9wcy0+cmNfa2V5X21hcF9zaXplID0gdGFibGUtPnJjX2tleV9t YXBfc2l6ZTsKLQkJYWY5MDE1X2NvbmZpZy5pcl90YWJsZSA9IHRhYmxlLT5pcl90YWJsZTsKLQkJ YWY5MDE1X2NvbmZpZy5pcl90YWJsZV9zaXplID0gdGFibGUtPmlyX3RhYmxlX3NpemU7Ci0JfQot fQotCiBzdGF0aWMgaW50IGFmOTAxNV9yZWFkX2NvbmZpZyhzdHJ1Y3QgdXNiX2RldmljZSAqdWRl dikKIHsKIAlpbnQgcmV0OwogCXU4IHZhbCwgaSwgb2Zmc2V0ID0gMDsKIAlzdHJ1Y3QgcmVxX3Qg cmVxID0ge1JFQURfSTJDLCBBRjkwMTVfSTJDX0VFUFJPTSwgMCwgMCwgMSwgMSwgJnZhbH07CisJ Y2hhciBtYW51ZmFjdHVyZXJbMTBdOwogCiAJLyogSVIgcmVtb3RlIGNvbnRyb2xsZXIgKi8KIAly ZXEuYWRkciA9IEFGOTAxNV9FRVBST01fSVJfTU9ERTsKQEAgLTkwMiwyMCArNzM2LDE1OCBAQAog CX0KIAlpZiAocmV0KQogCQlnb3RvIGVycm9yOwotCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49 IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDI1KQotCXJldCA9IGFmOTAxNV9lZXByb21faGFzaCh1ZGV2 KTsKLQlpZiAocmV0KQotCQlnb3RvIGVycm9yOwotCi0jZW5kaWYKIAlkZWJfaW5mbygiJXM6IElS IG1vZGU6JWRcbiIsIF9fZnVuY19fLCB2YWwpOwogCWZvciAoaSA9IDA7IGkgPCBhZjkwMTVfcHJv cGVydGllc19jb3VudDsgaSsrKSB7CiAJCWlmICh2YWwgPT0gQUY5MDE1X0lSX01PREVfRElTQUJM RUQpIHsKIAkJCWFmOTAxNV9wcm9wZXJ0aWVzW2ldLnJjX2tleV9tYXAgPSBOVUxMOwogCQkJYWY5 MDE1X3Byb3BlcnRpZXNbaV0ucmNfa2V5X21hcF9zaXplICA9IDA7Ci0JCX0gZWxzZQotCQkJYWY5 MDE1X3NldF9yZW1vdGVfY29uZmlnKHVkZXYsICZhZjkwMTVfcHJvcGVydGllc1tpXSk7CisJCX0g ZWxzZSBpZiAoZHZiX3VzYl9hZjkwMTVfcmVtb3RlKSB7CisJCQkvKiBsb2FkIHJlbW90ZSBkZWZp bmVkIGFzIG1vZHVsZSBwYXJhbSAqLworCQkJc3dpdGNoIChkdmJfdXNiX2FmOTAxNV9yZW1vdGUp IHsKKwkJCWNhc2UgQUY5MDE1X1JFTU9URV9BX0xJTktfRFRVX006CisJCQkJYWY5MDE1X3Byb3Bl cnRpZXNbaV0ucmNfa2V5X21hcCA9CisJCQkJICBhZjkwMTVfcmNfa2V5c19hX2xpbms7CisJCQkJ YWY5MDE1X3Byb3BlcnRpZXNbaV0ucmNfa2V5X21hcF9zaXplID0KKwkJCQkgIEFSUkFZX1NJWkUo YWY5MDE1X3JjX2tleXNfYV9saW5rKTsKKwkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlID0gYWY5 MDE1X2lyX3RhYmxlX2FfbGluazsKKwkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlX3NpemUgPQor CQkJCSAgQVJSQVlfU0laRShhZjkwMTVfaXJfdGFibGVfYV9saW5rKTsKKwkJCQlicmVhazsKKwkJ CWNhc2UgQUY5MDE1X1JFTU9URV9NU0lfRElHSVZPWF9NSU5JX0lJX1YzOgorCQkJCWFmOTAxNV9w cm9wZXJ0aWVzW2ldLnJjX2tleV9tYXAgPQorCQkJCSAgYWY5MDE1X3JjX2tleXNfbXNpOworCQkJ CWFmOTAxNV9wcm9wZXJ0aWVzW2ldLnJjX2tleV9tYXBfc2l6ZSA9CisJCQkJICBBUlJBWV9TSVpF KGFmOTAxNV9yY19rZXlzX21zaSk7CisJCQkJYWY5MDE1X2NvbmZpZy5pcl90YWJsZSA9IGFmOTAx NV9pcl90YWJsZV9tc2k7CisJCQkJYWY5MDE1X2NvbmZpZy5pcl90YWJsZV9zaXplID0KKwkJCQkg IEFSUkFZX1NJWkUoYWY5MDE1X2lyX3RhYmxlX21zaSk7CisJCQkJYnJlYWs7CisJCQljYXNlIEFG OTAxNV9SRU1PVEVfTVlHSUNUVl9VNzE4OgorCQkJCWFmOTAxNV9wcm9wZXJ0aWVzW2ldLnJjX2tl eV9tYXAgPQorCQkJCSAgYWY5MDE1X3JjX2tleXNfbXlnaWN0djsKKwkJCQlhZjkwMTVfcHJvcGVy dGllc1tpXS5yY19rZXlfbWFwX3NpemUgPQorCQkJCSAgQVJSQVlfU0laRShhZjkwMTVfcmNfa2V5 c19teWdpY3R2KTsKKwkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlID0KKwkJCQkgIGFmOTAxNV9p cl90YWJsZV9teWdpY3R2OworCQkJCWFmOTAxNV9jb25maWcuaXJfdGFibGVfc2l6ZSA9CisJCQkJ ICBBUlJBWV9TSVpFKGFmOTAxNV9pcl90YWJsZV9teWdpY3R2KTsKKwkJCQlicmVhazsKKwkJCWNh c2UgQUY5MDE1X1JFTU9URV9ESUdJVFRSQURFX0RWQl9UOgorCQkJCWFmOTAxNV9wcm9wZXJ0aWVz W2ldLnJjX2tleV9tYXAgPQorCQkJCSAgYWY5MDE1X3JjX2tleXNfZGlnaXR0cmFkZTsKKwkJCQlh ZjkwMTVfcHJvcGVydGllc1tpXS5yY19rZXlfbWFwX3NpemUgPQorCQkJCSAgQVJSQVlfU0laRShh ZjkwMTVfcmNfa2V5c19kaWdpdHRyYWRlKTsKKwkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlID0K KwkJCQkgIGFmOTAxNV9pcl90YWJsZV9kaWdpdHRyYWRlOworCQkJCWFmOTAxNV9jb25maWcuaXJf dGFibGVfc2l6ZSA9CisJCQkJICBBUlJBWV9TSVpFKGFmOTAxNV9pcl90YWJsZV9kaWdpdHRyYWRl KTsKKwkJCQlicmVhazsKKwkJCWNhc2UgQUY5MDE1X1JFTU9URV9BVkVSTUVESUFfS1M6CisJCQkJ YWY5MDE1X3Byb3BlcnRpZXNbaV0ucmNfa2V5X21hcCA9CisJCQkJICBhZjkwMTVfcmNfa2V5c19h dmVybWVkaWE7CisJCQkJYWY5MDE1X3Byb3BlcnRpZXNbaV0ucmNfa2V5X21hcF9zaXplID0KKwkJ CQkgIEFSUkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfYXZlcm1lZGlhKTsKKwkJCQlhZjkwMTVfY29u ZmlnLmlyX3RhYmxlID0KKwkJCQkgIGFmOTAxNV9pcl90YWJsZV9hdmVybWVkaWFfa3M7CisJCQkJ YWY5MDE1X2NvbmZpZy5pcl90YWJsZV9zaXplID0KKwkJCQkgIEFSUkFZX1NJWkUoYWY5MDE1X2ly X3RhYmxlX2F2ZXJtZWRpYV9rcyk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0gZWxzZSB7CisJCQlz d2l0Y2ggKGxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpKSB7CisJCQljYXNl IFVTQl9WSURfTEVBRFRFSzoKKwkJCQlhZjkwMTVfcHJvcGVydGllc1tpXS5yY19rZXlfbWFwID0K KwkJCQkgIGFmOTAxNV9yY19rZXlzX2xlYWR0ZWs7CisJCQkJYWY5MDE1X3Byb3BlcnRpZXNbaV0u cmNfa2V5X21hcF9zaXplID0KKwkJCQkgIEFSUkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfbGVhZHRl ayk7CisJCQkJYWY5MDE1X2NvbmZpZy5pcl90YWJsZSA9CisJCQkJICBhZjkwMTVfaXJfdGFibGVf bGVhZHRlazsKKwkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlX3NpemUgPQorCQkJCSAgQVJSQVlf U0laRShhZjkwMTVfaXJfdGFibGVfbGVhZHRlayk7CisJCQkJYnJlYWs7CisJCQljYXNlIFVTQl9W SURfVklTSU9OUExVUzoKKwkJCQlhZjkwMTVfcHJvcGVydGllc1tpXS5yY19rZXlfbWFwID0KKwkJ CQkgIGFmOTAxNV9yY19rZXlzX3R3aW5oYW47CisJCQkJYWY5MDE1X3Byb3BlcnRpZXNbaV0ucmNf a2V5X21hcF9zaXplID0KKwkJCQkgIEFSUkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfdHdpbmhhbik7 CisJCQkJYWY5MDE1X2NvbmZpZy5pcl90YWJsZSA9CisJCQkJICBhZjkwMTVfaXJfdGFibGVfdHdp bmhhbjsKKwkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlX3NpemUgPQorCQkJCSAgQVJSQVlfU0la RShhZjkwMTVfaXJfdGFibGVfdHdpbmhhbik7CisJCQkJYnJlYWs7CisJCQljYXNlIFVTQl9WSURf S1dPUkxEXzI6CisJCQkJLyogVE9ETzogdXNlIGNvcnJlY3QgcmMga2V5cyAqLworCQkJCWFmOTAx NV9wcm9wZXJ0aWVzW2ldLnJjX2tleV9tYXAgPQorCQkJCSAgYWY5MDE1X3JjX2tleXNfdHdpbmhh bjsKKwkJCQlhZjkwMTVfcHJvcGVydGllc1tpXS5yY19rZXlfbWFwX3NpemUgPQorCQkJCSAgQVJS QVlfU0laRShhZjkwMTVfcmNfa2V5c190d2luaGFuKTsKKwkJCQlhZjkwMTVfY29uZmlnLmlyX3Rh YmxlID0gYWY5MDE1X2lyX3RhYmxlX2t3b3JsZDsKKwkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxl X3NpemUgPQorCQkJCSAgQVJSQVlfU0laRShhZjkwMTVfaXJfdGFibGVfa3dvcmxkKTsKKwkJCQli cmVhazsKKwkJCS8qIENoZWNrIFVTQiBtYW51ZmFjdHVyZXIgYW5kIHByb2R1Y3Qgc3RyaW5ncyBh bmQgdHJ5CisJCQkgICB0byBkZXRlcm1pbmUgY29ycmVjdCByZW1vdGUgaW4gY2FzZSBvZiBjaGlw IHZlbmRvcgorCQkJICAgcmVmZXJlbmNlIElEcyBhcmUgdXNlZC4gKi8KKwkJCWNhc2UgVVNCX1ZJ RF9BRkFURUNIOgorCQkJCW1lbXNldChtYW51ZmFjdHVyZXIsIDAsIHNpemVvZihtYW51ZmFjdHVy ZXIpKTsKKwkJCQl1c2Jfc3RyaW5nKHVkZXYsIHVkZXYtPmRlc2NyaXB0b3IuaU1hbnVmYWN0dXJl ciwKKwkJCQkJbWFudWZhY3R1cmVyLCBzaXplb2YobWFudWZhY3R1cmVyKSk7CisJCQkJaWYgKCFz dHJjbXAoIkdlbmlhdGVjaCIsIG1hbnVmYWN0dXJlcikpIHsKKwkJCQkJLyogaU1hbnVmYWN0dXJl ciAxIEdlbmlhdGVjaAorCQkJCQkgICBpUHJvZHVjdCAgICAgIDIgQUY5MDE1ICovCisJCQkJCWFm OTAxNV9wcm9wZXJ0aWVzW2ldLnJjX2tleV9tYXAgPQorCQkJCQkgIGFmOTAxNV9yY19rZXlzX215 Z2ljdHY7CisJCQkJCWFmOTAxNV9wcm9wZXJ0aWVzW2ldLnJjX2tleV9tYXBfc2l6ZSA9CisJCQkJ CSAgQVJSQVlfU0laRShhZjkwMTVfcmNfa2V5c19teWdpY3R2KTsKKwkJCQkJYWY5MDE1X2NvbmZp Zy5pcl90YWJsZSA9CisJCQkJCSAgYWY5MDE1X2lyX3RhYmxlX215Z2ljdHY7CisJCQkJCWFmOTAx NV9jb25maWcuaXJfdGFibGVfc2l6ZSA9CisJCQkJCSAgQVJSQVlfU0laRShhZjkwMTVfaXJfdGFi bGVfbXlnaWN0dik7CisJCQkJfSBlbHNlIGlmICghc3RyY21wKCJNU0kiLCBtYW51ZmFjdHVyZXIp KSB7CisJCQkJCS8qIGlNYW51ZmFjdHVyZXIgMSBNU0kKKwkJCQkJICAgaVByb2R1Y3QgICAgICAy IE1TSSBLLVZPWCAqLworCQkJCQlhZjkwMTVfcHJvcGVydGllc1tpXS5yY19rZXlfbWFwID0KKwkJ CQkJICBhZjkwMTVfcmNfa2V5c19tc2k7CisJCQkJCWFmOTAxNV9wcm9wZXJ0aWVzW2ldLnJjX2tl eV9tYXBfc2l6ZSA9CisJCQkJCSAgQVJSQVlfU0laRShhZjkwMTVfcmNfa2V5c19tc2kpOworCQkJ CQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlID0KKwkJCQkJICBhZjkwMTVfaXJfdGFibGVfbXNpOwor CQkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlX3NpemUgPQorCQkJCQkgIEFSUkFZX1NJWkUoYWY5 MDE1X2lyX3RhYmxlX21zaSk7CisJCQkJfSBlbHNlIGlmICh1ZGV2LT5kZXNjcmlwdG9yLmlkUHJv ZHVjdCA9PQorCQkJCQljcHVfdG9fbGUxNihVU0JfUElEX1RSRUtTVE9SX0RWQlQpKSB7CisJCQkJ CWFmOTAxNV9wcm9wZXJ0aWVzW2ldLnJjX2tleV9tYXAgPQorCQkJCQkgIGFmOTAxNV9yY19rZXlz X3RyZWtzdG9yOworCQkJCQlhZjkwMTVfcHJvcGVydGllc1tpXS5yY19rZXlfbWFwX3NpemUgPQor CQkJCQkgIEFSUkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfdHJla3N0b3IpOworCQkJCQlhZjkwMTVf Y29uZmlnLmlyX3RhYmxlID0KKwkJCQkJICBhZjkwMTVfaXJfdGFibGVfdHJla3N0b3I7CisJCQkJ CWFmOTAxNV9jb25maWcuaXJfdGFibGVfc2l6ZSA9CisJCQkJCSAgQVJSQVlfU0laRShhZjkwMTVf aXJfdGFibGVfdHJla3N0b3IpOworCQkJCX0KKwkJCQlicmVhazsKKwkJCWNhc2UgVVNCX1ZJRF9B VkVSTUVESUE6CisJCQkJYWY5MDE1X3Byb3BlcnRpZXNbaV0ucmNfa2V5X21hcCA9CisJCQkJICBh ZjkwMTVfcmNfa2V5c19hdmVybWVkaWE7CisJCQkJYWY5MDE1X3Byb3BlcnRpZXNbaV0ucmNfa2V5 X21hcF9zaXplID0KKwkJCQkgIEFSUkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfYXZlcm1lZGlhKTsK KwkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlID0KKwkJCQkgIGFmOTAxNV9pcl90YWJsZV9hdmVy bWVkaWE7CisJCQkJYWY5MDE1X2NvbmZpZy5pcl90YWJsZV9zaXplID0KKwkJCQkgIEFSUkFZX1NJ WkUoYWY5MDE1X2lyX3RhYmxlX2F2ZXJtZWRpYSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFVTQl9W SURfTVNJXzI6CisJCQkJYWY5MDE1X3Byb3BlcnRpZXNbaV0ucmNfa2V5X21hcCA9CisJCQkJICBh ZjkwMTVfcmNfa2V5c19tc2lfZGlnaXZveF9paWk7CisJCQkJYWY5MDE1X3Byb3BlcnRpZXNbaV0u cmNfa2V5X21hcF9zaXplID0KKwkJCQkgIEFSUkFZX1NJWkUoYWY5MDE1X3JjX2tleXNfbXNpX2Rp Z2l2b3hfaWlpKTsKKwkJCQlhZjkwMTVfY29uZmlnLmlyX3RhYmxlID0KKwkJCQkgIGFmOTAxNV9p cl90YWJsZV9tc2lfZGlnaXZveF9paWk7CisJCQkJYWY5MDE1X2NvbmZpZy5pcl90YWJsZV9zaXpl ID0KKwkJCQkgIEFSUkFZX1NJWkUoYWY5MDE1X2lyX3RhYmxlX21zaV9kaWdpdm94X2lpaSk7CisJ CQkJYnJlYWs7CisJCQl9CisJCX0KIAl9CiAKIAkvKiBUUyBtb2RlIC0gb25lIG9yIHR3byByZWNl aXZlcnMgKi8KQEAgLTEwMjYsNiArOTk4LDcgQEAKIAkJY2FzZSBBRjkwMTNfVFVORVJfTVQyMDYw XzI6CiAJCWNhc2UgQUY5MDEzX1RVTkVSX1REQTE4MjcxOgogCQljYXNlIEFGOTAxM19UVU5FUl9R VDEwMTBBOgorCQljYXNlIEFGOTAxM19UVU5FUl9UREExODIxODoKIAkJCWFmOTAxNV9hZjkwMTNf Y29uZmlnW2ldLnJmX3NwZWNfaW52ID0gMTsKIAkJCWJyZWFrOwogCQljYXNlIEFGOTAxM19UVU5F Ul9NWEw1MDAzRDoKQEAgLTEwMzcsOSArMTAxMCw2IEBACiAJCQlhZjkwMTVfYWY5MDEzX2NvbmZp Z1tpXS5ncGlvWzFdID0gQUY5MDEzX0dQSU9fTE87CiAJCQlhZjkwMTVfYWY5MDEzX2NvbmZpZ1tp XS5yZl9zcGVjX2ludiA9IDE7CiAJCQlicmVhazsKLQkJY2FzZSBBRjkwMTNfVFVORVJfVERBMTgy MTg6Ci0JCQl3YXJuKCJ0dW5lciBOWFAgVERBMTgyMTggbm90IHN1cHBvcnRlZCB5ZXQiKTsKLQkJ CXJldHVybiAtRU5PREVWOwogCQlkZWZhdWx0OgogCQkJd2FybigidHVuZXIgaWQ6JWQgbm90IHN1 cHBvcnRlZCwgcGxlYXNlIHJlcG9ydCEiLCB2YWwpOwogCQkJcmV0dXJuIC1FTk9ERVY7CkBAIC0x MTY0LDExICsxMTM0LDExIEBACiAKIAkJZGViX2luZm8oIiVzOiBpbml0IEkyQ1xuIiwgX19mdW5j X18pOwogCQlyZXQgPSBhZjkwMTVfaTJjX2luaXQoYWRhcC0+ZGV2KTsKLSNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLCA2LCAyNSkKKworCQkvKiBkdW1wIGVlcHJvbSAo ZGVidWcpICovCiAJCXJldCA9IGFmOTAxNV9lZXByb21fZHVtcChhZGFwLT5kZXYpOwogCQlpZiAo cmV0KQogCQkJcmV0dXJuIHJldDsKLSNlbmRpZgogCX0gZWxzZSB7CiAJCS8qIHNlbGVjdCBJMkMg YWRhcHRlciAqLwogCQlpMmNfYWRhcCA9ICZzdGF0ZS0+aTJjX2FkYXA7CkBAIC0xMjQ3LDYgKzEy MTcsMTAgQEAKIAkuZGlnX291dCA9IDEsCiB9OwogCitzdGF0aWMgc3RydWN0IHRkYTE4MjE4X2Nv bmZpZyBhZjkwMTVfdGRhMTgyMThfY29uZmlnID0geworCS5pMmNfYWRkcmVzcyA9IDB4YzAsCit9 OworCiBzdGF0aWMgaW50IGFmOTAxNV90dW5lcl9hdHRhY2goc3RydWN0IGR2Yl91c2JfYWRhcHRl ciAqYWRhcCkKIHsKIAlzdHJ1Y3QgYWY5MDE1X3N0YXRlICpzdGF0ZSA9IGFkYXAtPmRldi0+cHJp djsKQEAgLTEyOTQsNiArMTI2OCwxMCBAQAogCQlyZXQgPSBkdmJfYXR0YWNoKG1jNDRzODAzX2F0 dGFjaCwgYWRhcC0+ZmUsIGkyY19hZGFwLAogCQkJJmFmOTAxNV9tYzQ0czgwM19jb25maWcpID09 IE5VTEwgPyAtRU5PREVWIDogMDsKIAkJYnJlYWs7CisJY2FzZSBBRjkwMTNfVFVORVJfVERBMTgy MTg6CisJCXJldCA9IGR2Yl9hdHRhY2godGRhMTgyMThfYXR0YWNoLCBhZGFwLT5mZSwgaTJjX2Fk YXAsCisJCQkmYWY5MDE1X3RkYTE4MjE4X2NvbmZpZykgPT0gTlVMTCA/IC1FTk9ERVYgOiAwOwor CQlicmVhazsKIAljYXNlIEFGOTAxM19UVU5FUl9VTktOT1dOOgogCWRlZmF1bHQ6CiAJCXJldCA9 IC1FTk9ERVY7CkBAIC0xMzM0LDggKzEzMTIsNyBAQAogLyogMjUgKi97VVNCX0RFVklDRShVU0Jf VklEX0tXT1JMRF8yLCAgVVNCX1BJRF9LV09STERfMzk5VV8yKX0sCiAJe1VTQl9ERVZJQ0UoVVNC X1ZJRF9LV09STERfMiwgIFVTQl9QSURfS1dPUkxEX1BDMTYwX1QpfSwKIAl7VVNCX0RFVklDRShV U0JfVklEX0tXT1JMRF8yLCAgVVNCX1BJRF9TVkVPTl9TVFYyMCl9LAotCXtVU0JfREVWSUNFKFVT Ql9WSURfS1dPUkxEXzIsICBVU0JfUElEX1RJTllUV0lOXzIpfSwKLQl7VVNCX0RFVklDRShVU0Jf VklEX0xFQURURUssICAgVVNCX1BJRF9XSU5GQVNUX0RUVjIwMDBEUyl9LAorCXtVU0JfREVWSUNF KFVTQl9WSURfVEVSUkFURUMsIFVTQl9QSURfVEVSUkFURUNfQ0lORVJHWV9UX1NUSUNLX1JDKX0s CiAJezB9LAogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBhZjkwMTVfdXNiX3RhYmxlKTsK QEAgLTE0MjIsOCArMTM5OSw3IEBACiAJCQl9LAogCQkJewogCQkJCS5uYW1lID0gIkRpZ2l0YWxO b3cgVGlueVR3aW4gRFZCLVQgUmVjZWl2ZXIiLAotCQkJCS5jb2xkX2lkcyA9IHsmYWY5MDE1X3Vz Yl90YWJsZVs1XSwKLQkJCQkJICAgICAmYWY5MDE1X3VzYl90YWJsZVsyOF0sIE5VTEx9LAorCQkJ CS5jb2xkX2lkcyA9IHsmYWY5MDE1X3VzYl90YWJsZVs1XSwgTlVMTH0sCiAJCQkJLndhcm1faWRz ID0ge05VTEx9LAogCQkJfSwKIAkJCXsKQEAgLTE2NDMsOCArMTYxOSw4IEBACiAJCQkJLndhcm1f aWRzID0ge05VTEx9LAogCQkJfSwKIAkJCXsKLQkJCQkubmFtZSA9ICJMZWFkdGVrIFdpbkZhc3Qg RFRWMjAwMERTIiwKLQkJCQkuY29sZF9pZHMgPSB7JmFmOTAxNV91c2JfdGFibGVbMjldLCBOVUxM fSwKKwkJCQkubmFtZSA9ICJUZXJyYVRlYyBDaW5lcmd5IFQgU3RpY2sgUkMiLAorCQkJCS5jb2xk X2lkcyA9IHsmYWY5MDE1X3VzYl90YWJsZVsyOF0sIE5VTEx9LAogCQkJCS53YXJtX2lkcyA9IHtO VUxMfSwKIAkJCX0sCiAJCX0KZGlmZiAtciAwZjQxZmQ3ZGY4NWQgbGludXgvZHJpdmVycy9tZWRp YS9kdmIvZHZiLXVzYi9kdmItdXNiLWlkcy5oCi0tLSBhL2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZi L2R2Yi11c2IvZHZiLXVzYi1pZHMuaAlUaHUgRmViIDExIDAyOjMzOjEyIDIwMTAgKzAyMDAKKysr IGIvbGludXgvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9kdmItdXNiLWlkcy5oCVdlZCBGZWIg MjQgMTE6NDc6MTQgMjAxMCArMDEwMApAQCAtMTI5LDYgKzEyOSw3IEBACiAjZGVmaW5lIFVTQl9Q SURfS1dPUkxEX1ZTVFJFQU1fV0FSTQkJCTB4MTdkZgogI2RlZmluZSBVU0JfUElEX1RFUlJBVEVD X0NJTkVSR1lfVF9VU0JfWEUJCTB4MDA1NQogI2RlZmluZSBVU0JfUElEX1RFUlJBVEVDX0NJTkVS R1lfVF9VU0JfWEVfUkVWMgkJMHgwMDY5CisjZGVmaW5lIFVTQl9QSURfVEVSUkFURUNfQ0lORVJH WV9UX1NUSUNLX1JDICAgICAgICAweDAwOTcKICNkZWZpbmUgVVNCX1BJRF9UV0lOSEFOX1ZQNzA0 MV9DT0xECQkJMHgzMjAxCiAjZGVmaW5lIFVTQl9QSURfVFdJTkhBTl9WUDcwNDFfV0FSTQkJCTB4 MzIwMgogI2RlZmluZSBVU0JfUElEX1RXSU5IQU5fVlA3MDIwX0NPTEQJCQkweDMyMDMKZGlmZiAt ciAwZjQxZmQ3ZGY4NWQgbGludXgvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2FmOTAxMy5j Ci0tLSBhL2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9hZjkwMTMuYwlUaHUgRmVi IDExIDAyOjMzOjEyIDIwMTAgKzAyMDAKKysrIGIvbGludXgvZHJpdmVycy9tZWRpYS9kdmIvZnJv bnRlbmRzL2FmOTAxMy5jCVdlZCBGZWIgMjQgMTE6NDc6MTQgMjAxMCArMDEwMApAQCAtNDg4LDYg KzQ4OCwyMCBAQAogCQkJCWJyZWFrOwogCQkJfQogCQl9CisJCWVsc2UgaWYoc3RhdGUtPmNvbmZp Zy50dW5lciA9PSBBRjkwMTNfVFVORVJfVERBMTgyMTgpIHsKKwkJCXN3aXRjaCAoYncpIHsKKwkJ CWNhc2UgQkFORFdJRFRIXzZfTUhaOgorCQkJCWlmX3NhbXBsZV9mcmVxID0gMzAwMDAwMDsgLyog MyBNSHogKi8KKwkJCQlicmVhazsKKwkJCWNhc2UgQkFORFdJRFRIXzdfTUhaOgorCQkJCWlmX3Nh bXBsZV9mcmVxID0gMzUwMDAwMDsgLyogMy41IE1IeiAqLworCQkJCWJyZWFrOworCQkJY2FzZSBC QU5EV0lEVEhfOF9NSFo6CisJCQlkZWZhdWx0OgorCQkJCWlmX3NhbXBsZV9mcmVxID0gNDAwMDAw MDsgLyogNCBNSHogKi8KKwkJCQlicmVhazsKKwkJCX0KKwkJfQogCiAJCXdoaWxlIChpZl9zYW1w bGVfZnJlcSA+IChhZGNfZnJlcSAvIDIpKQogCQkJaWZfc2FtcGxlX2ZyZXEgPSBpZl9zYW1wbGVf ZnJlcSAtIGFkY19mcmVxOwpAQCAtMTM5MCw2ICsxNDA0LDcgQEAKIAkJaW5pdCA9IHR1bmVyX2lu aXRfbXQyMDYwXzI7CiAJCWJyZWFrOwogCWNhc2UgQUY5MDEzX1RVTkVSX1REQTE4MjcxOgorCWNh c2UgQUY5MDEzX1RVTkVSX1REQTE4MjE4OgogCQlsZW4gPSBBUlJBWV9TSVpFKHR1bmVyX2luaXRf dGRhMTgyNzEpOwogCQlpbml0ID0gdHVuZXJfaW5pdF90ZGExODI3MTsKIAkJYnJlYWs7CmRpZmYg LXIgMGY0MWZkN2RmODVkIGxpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9hZjkwMTMu aAotLS0gYS9saW51eC9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvYWY5MDEzLmgJVGh1IEZl YiAxMSAwMjozMzoxMiAyMDEwICswMjAwCisrKyBiL2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL2Zy b250ZW5kcy9hZjkwMTMuaAlXZWQgRmViIDI0IDExOjQ3OjE0IDIwMTAgKzAxMDAKQEAgLTQ0LDcg KzQ0LDcgQEAKIAlBRjkwMTNfVFVORVJfTVQyMDYwXzIgICA9IDE0NywgLyogTWljcm90dW5lICov CiAJQUY5MDEzX1RVTkVSX1REQTE4MjcxICAgPSAxNTYsIC8qIE5YUCAqLwogCUFGOTAxM19UVU5F Ul9RVDEwMTBBICAgID0gMTYyLCAvKiBRdWFudGVrICovCi0JQUY5MDEzX1RVTkVSX1REQTE4MjE4 ICAgPSAxNzksIC8qIE5YUCAqLworCUFGOTAxM19UVU5FUl9UREExODIxOCAgICA9IDE3OSwgLyog TlhQICovCiB9OwogCiAvKiBBRjkwMTMvNSBHUElPcyAobW9zdGx5IGd1ZXNzZWQpCmRpZmYgLXIg MGY0MWZkN2RmODVkIGxpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9hZjkwMTNfcHJp di5oCi0tLSBhL2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9hZjkwMTNfcHJpdi5o CVRodSBGZWIgMTEgMDI6MzM6MTIgMjAxMCArMDIwMAorKysgYi9saW51eC9kcml2ZXJzL21lZGlh L2R2Yi9mcm9udGVuZHMvYWY5MDEzX3ByaXYuaAlXZWQgRmViIDI0IDExOjQ3OjE0IDIwMTAgKzAx MDAKQEAgLTc4OSw4ICs3ODksOSBAQAogCXsgMHg5YmQ5LCAwLCA4LCAweDA4IH0sCiB9OwogCi0v KiBOWFAgVERBMTgyNzEgdHVuZXIgaW5pdAotICAgQUY5MDEzX1RVTkVSX1REQTE4MjcxICAgPSAx NTYgKi8KKy8qIE5YUCBUREExODI3MSAmIFREQTE4MjE4IHR1bmVyIGluaXQKKyAgIEFGOTAxM19U VU5FUl9UREExODI3MSAgID0gMTU2CisgICBBRjkwMTNfVFVORVJfVERBMTgyMTggICA9IDE3OSAq Lwogc3RhdGljIHN0cnVjdCByZWdkZXNjIHR1bmVyX2luaXRfdGRhMTgyNzFbXSA9IHsKIAl7IDB4 OWJkNSwgMCwgOCwgMHgwMSB9LAogCXsgMHg5YmQ2LCAwLCA4LCAweDA0IH0sCg== --001636025f84abc30404805f8c5d--