From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kamil Debski Subject: [RFC 4/6] adv7511: add cec support. Date: Tue, 23 Dec 2014 15:32:20 +0100 Message-ID: <1419345142-3364-5-git-send-email-k.debski@samsung.com> References: <1419345142-3364-1-git-send-email-k.debski@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by gabe.freedesktop.org (Postfix) with ESMTP id 344F66E4A3 for ; Tue, 23 Dec 2014 06:33:13 -0800 (PST) Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NH1006BHHRCYAB0@mailout4.samsung.com> for dri-devel@lists.freedesktop.org; Tue, 23 Dec 2014 23:33:12 +0900 (KST) In-reply-to: <1419345142-3364-1-git-send-email-k.debski@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org Cc: Hans Verkuil , mchehab@osg.samsung.com, kyungmin.park@samsung.com, m.szyprowski@samsung.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogSGFucyBWZXJrdWlsIDxoYW5zdmVya0BjaXNjby5jb20+CgpBZGQgQ0VDIHN1cHBvcnQg dG8gdGhlIGFkdjc1MTEgZHJpdmVyLgoKU2lnbmVkLW9mZi1ieTogSGFucyBWZXJrdWlsIDxoYW5z dmVya0BjaXNjby5jb20+CltrLmRlYnNraUBzYW1zdW5nLmNvbTogTWVyZ2VkIGNoYW5nZXMgZnJv bSBDRUMgVXBkYXRlcyBjb21taXQgYnkgSGFucyBWZXJrdWlsXQpTaWduZWQtb2ZmLWJ5OiBLYW1p bCBEZWJza2kgPGsuZGVic2tpQHNhbXN1bmcuY29tPgotLS0KIGRyaXZlcnMvbWVkaWEvaTJjL2Fk djc1MTEuYyB8ICAzMjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogaW5jbHVkZS9tZWRpYS9hZHY3NTExLmggICAgIHwgICAgNiArLQogMiBmaWxlcyBjaGFuZ2Vk LCAzMjMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L21lZGlhL2kyYy9hZHY3NTExLmMgYi9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NTExLmMKaW5kZXgg ODE3MzZhYS4uNjNlYzZjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvYWR2NzUxMS5j CisrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL2Fkdjc1MTEuYwpAQCAtMzMsNiArMzMsNyBAQAogI2lu Y2x1ZGUgPG1lZGlhL3Y0bDItY3RybHMuaD4KICNpbmNsdWRlIDxtZWRpYS92NGwyLWR2LXRpbWlu Z3MuaD4KICNpbmNsdWRlIDxtZWRpYS9hZHY3NTExLmg+CisjaW5jbHVkZSA8bWVkaWEvY2VjLmg+ CiAKIHN0YXRpYyBpbnQgZGVidWc7CiBtb2R1bGVfcGFyYW0oZGVidWcsIGludCwgMDY0NCk7CkBA IC05MSw2ICs5MiwxMiBAQCBzdHJ1Y3QgYWR2NzUxMV9zdGF0ZSB7CiAJaW50IGNoaXBfcmV2aXNp b247CiAJdWludDhfdCBpMmNfZWRpZF9hZGRyOwogCXVpbnQ4X3QgaTJjX2NlY19hZGRyOworCisJ c3RydWN0IGkyY19jbGllbnQgKmkyY19jZWM7CisJdTggICBjZWNfYWRkclszXTsKKwl1OCAgIGNl Y192YWxpZF9hZGRyczsKKwlib29sIGNlY19lbmFibGVkX2FkYXA7CisKIAkvKiBJcyB0aGUgYWR2 NzUxMSBwb3dlcmVkIG9uPyAqLwogCWJvb2wgcG93ZXJfb247CiAJLyogRGlkIHdlIHJlY2VpdmUg aG90cGx1ZyBhbmQgcngtc2Vuc2Ugc2lnbmFscz8gKi8KQEAgLTIyMiw3ICsyMjksNyBAQCBzdGF0 aWMgaW50IGFkdl9zbWJ1c19yZWFkX2kyY19ibG9ja19kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICpj bGllbnQsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGFkdjc1MTFfZWRp ZF9yZChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCB1aW50MTZfdCBsZW4sIHVpbnQ4X3QgKmJ1ZikK K3N0YXRpYyB2b2lkIGFkdjc1MTFfZWRpZF9yZChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCB1aW50 MTZfdCBsZW4sIHVpbnQ4X3QgKmJ1ZikKIHsKIAlzdHJ1Y3QgYWR2NzUxMV9zdGF0ZSAqc3RhdGUg PSBnZXRfYWR2NzUxMV9zdGF0ZShzZCk7CiAJaW50IGk7CkBAIC0yMzcsNiArMjQ0LDMzIEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBhZHY3NTExX2VkaWRfcmQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwg dWludDE2X3QgbGVuLCB1aW50OF90CiAJCXY0bDJfZXJyKHNkLCAiJXM6IGkyYyByZWFkIGVycm9y XG4iLCBfX2Z1bmNfXyk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGNlY19yZWFkKHN0cnVjdCB2 NGwyX3N1YmRldiAqc2QsIHU4IHJlZykKK3sKKwlzdHJ1Y3QgYWR2NzUxMV9zdGF0ZSAqc3RhdGUg PSBnZXRfYWR2NzUxMV9zdGF0ZShzZCk7CisKKwlyZXR1cm4gaTJjX3NtYnVzX3JlYWRfYnl0ZV9k YXRhKHN0YXRlLT5pMmNfY2VjLCByZWcpOworfQorCitzdGF0aWMgaW50IGNlY193cml0ZShzdHJ1 Y3QgdjRsMl9zdWJkZXYgKnNkLCB1OCByZWcsIHU4IHZhbCkKK3sKKwlzdHJ1Y3QgYWR2NzUxMV9z dGF0ZSAqc3RhdGUgPSBnZXRfYWR2NzUxMV9zdGF0ZShzZCk7CisJaW50IHJldDsKKwlpbnQgaTsK KworCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKwkJcmV0ID0gaTJjX3NtYnVzX3dyaXRlX2J5 dGVfZGF0YShzdGF0ZS0+aTJjX2NlYywgcmVnLCB2YWwpOworCQlpZiAocmV0ID09IDApCisJCQly ZXR1cm4gMDsKKwl9CisJdjRsMl9lcnIoc2QsICIlczogSTJDIFdyaXRlIFByb2JsZW1cbiIsIF9f ZnVuY19fKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW5saW5lIGludCBjZWNfd3JpdGVf YW5kX29yKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsIHU4IHJlZywgdTggbWFzaywgdTggdmFsKQor eworCXJldHVybiBjZWNfd3JpdGUoc2QsIHJlZywgKGNlY19yZWFkKHNkLCByZWcpICYgbWFzaykg fCB2YWwpOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgYWR2NzUxMV9oYXZlX2hvdHBsdWcoc3Ry dWN0IHY0bDJfc3ViZGV2ICpzZCkKIHsKIAlyZXR1cm4gYWR2NzUxMV9yZChzZCwgMHg0MikgJiBN QVNLX0FEVjc1MTFfSFBEX0RFVEVDVDsKQEAgLTM4MSwxNiArNDE1LDI4IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdjRsMl9jdHJsX29wcyBhZHY3NTExX2N0cmxfb3BzID0gewogI2lmZGVmIENPTkZJ R19WSURFT19BRFZfREVCVUcKIHN0YXRpYyB2b2lkIGFkdjc1MTFfaW52X3JlZ2lzdGVyKHN0cnVj dCB2NGwyX3N1YmRldiAqc2QpCiB7CisJc3RydWN0IGFkdjc1MTFfc3RhdGUgKnN0YXRlID0gZ2V0 X2Fkdjc1MTFfc3RhdGUoc2QpOworCiAJdjRsMl9pbmZvKHNkLCAiMHgwMDAtMHgwZmY6IE1haW4g TWFwXG4iKTsKKwlpZiAoc3RhdGUtPmkyY19jZWMpCisJCXY0bDJfaW5mbyhzZCwgIjB4MTAwLTB4 MWZmOiBDRUMgTWFwXG4iKTsKIH0KIAogc3RhdGljIGludCBhZHY3NTExX2dfcmVnaXN0ZXIoc3Ry dWN0IHY0bDJfc3ViZGV2ICpzZCwgc3RydWN0IHY0bDJfZGJnX3JlZ2lzdGVyICpyZWcpCiB7CisJ c3RydWN0IGFkdjc1MTFfc3RhdGUgKnN0YXRlID0gZ2V0X2Fkdjc1MTFfc3RhdGUoc2QpOworCiAJ cmVnLT5zaXplID0gMTsKIAlzd2l0Y2ggKHJlZy0+cmVnID4+IDgpIHsKIAljYXNlIDA6CiAJCXJl Zy0+dmFsID0gYWR2NzUxMV9yZChzZCwgcmVnLT5yZWcgJiAweGZmKTsKIAkJYnJlYWs7CisJY2Fz ZSAxOgorCQlpZiAoc3RhdGUtPmkyY19jZWMpIHsKKwkJCXJlZy0+dmFsID0gY2VjX3JlYWQoc2Qs IHJlZy0+cmVnICYgMHhmZik7CisJCQlicmVhazsKKwkJfQorCQkvKiBmYWxsIHRocm91Z2ggKi8K IAlkZWZhdWx0OgogCQl2NGwyX2luZm8oc2QsICJSZWdpc3RlciAlMDNsbHggbm90IHN1cHBvcnRl ZFxuIiwgcmVnLT5yZWcpOwogCQlhZHY3NTExX2ludl9yZWdpc3RlcihzZCk7CkBAIC00MDEsMTAg KzQ0NywxOCBAQCBzdGF0aWMgaW50IGFkdjc1MTFfZ19yZWdpc3RlcihzdHJ1Y3QgdjRsMl9zdWJk ZXYgKnNkLCBzdHJ1Y3QgdjRsMl9kYmdfcmVnaXN0ZXIgKgogCiBzdGF0aWMgaW50IGFkdjc1MTFf c19yZWdpc3RlcihzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCBjb25zdCBzdHJ1Y3QgdjRsMl9kYmdf cmVnaXN0ZXIgKnJlZykKIHsKKwlzdHJ1Y3QgYWR2NzUxMV9zdGF0ZSAqc3RhdGUgPSBnZXRfYWR2 NzUxMV9zdGF0ZShzZCk7CisKIAlzd2l0Y2ggKHJlZy0+cmVnID4+IDgpIHsKIAljYXNlIDA6CiAJ CWFkdjc1MTFfd3Ioc2QsIHJlZy0+cmVnICYgMHhmZiwgcmVnLT52YWwgJiAweGZmKTsKIAkJYnJl YWs7CisJY2FzZSAxOgorCQlpZiAoc3RhdGUtPmkyY19jZWMpIHsKKwkJCWNlY193cml0ZShzZCwg cmVnLT5yZWcgJiAweGZmLCByZWctPnZhbCAmIDB4ZmYpOworCQkJYnJlYWs7CisJCX0KKwkJLyog ZmFsbCB0aHJvdWdoICovCiAJZGVmYXVsdDoKIAkJdjRsMl9pbmZvKHNkLCAiUmVnaXN0ZXIgJTAz bGx4IG5vdCBzdXBwb3J0ZWRcbiIsIHJlZy0+cmVnKTsKIAkJYWR2NzUxMV9pbnZfcmVnaXN0ZXIo c2QpOwpAQCAtNDE4LDYgKzQ3Miw3IEBAIHN0YXRpYyBpbnQgYWR2NzUxMV9sb2dfc3RhdHVzKHN0 cnVjdCB2NGwyX3N1YmRldiAqc2QpCiB7CiAJc3RydWN0IGFkdjc1MTFfc3RhdGUgKnN0YXRlID0g Z2V0X2Fkdjc1MTFfc3RhdGUoc2QpOwogCXN0cnVjdCBhZHY3NTExX3N0YXRlX2VkaWQgKmVkaWQg PSAmc3RhdGUtPmVkaWQ7CisJaW50IGk7CiAKIAlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHN0 YXRlc1tdID0gewogCQkiaW4gcmVzZXQiLApAQCAtNDg2LDcgKzU0MSwyMCBAQCBzdGF0aWMgaW50 IGFkdjc1MTFfbG9nX3N0YXR1cyhzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkKQogCWVsc2UKIAkJdjRs Ml9pbmZvKHNkLCAibm8gdGltaW5ncyBzZXRcbiIpOwogCXY0bDJfaW5mbyhzZCwgImkyYyBlZGlk IGFkZHI6IDB4JXhcbiIsIHN0YXRlLT5pMmNfZWRpZF9hZGRyKTsKKworCWlmIChzdGF0ZS0+aTJj X2NlYyA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKwogCXY0bDJfaW5mbyhzZCwgImkyYyBjZWMgYWRk cjogMHgleFxuIiwgc3RhdGUtPmkyY19jZWNfYWRkcik7CisKKwlpZiAoY2VjX3JlYWQoc2QsIDB4 NGUpICYgMHgwMSkgeworCQl2NGwyX2luZm8oc2QsICJjZWM6IGVuYWJsZWRcbiIpOworCQlmb3Ig KGkgPSAwOyBpIDwgMzsgaSsrKQorCQkJaWYgKHN0YXRlLT5jZWNfdmFsaWRfYWRkcnMgJiAoMSA8 PCBpKSkKKwkJCQl2NGwyX2luZm8oc2QsICJjZWMgZGV2aWNlICVkOiBhZGRyICVkXG4iLCBpLCBz dGF0ZS0+Y2VjX2FkZHJbaV0pOworCX0gZWxzZSB7CisJCXY0bDJfaW5mbyhzZCwgImNlYzogZGlz YWJsZWRcbiIpOworCX0KIAlyZXR1cm4gMDsKIH0KIApAQCAtNTQyLDE1ICs2MTAsMTMyIEBAIHN0 YXRpYyBpbnQgYWR2NzUxMV9zX3Bvd2VyKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsIGludCBvbikK IAlyZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGludCBhZHY3NTExX2NlY19lbmFibGUoc3RydWN0 IHY0bDJfc3ViZGV2ICpzZCwgYm9vbCBlbmFibGUpCit7CisJc3RydWN0IGFkdjc1MTFfc3RhdGUg KnN0YXRlID0gZ2V0X2Fkdjc1MTFfc3RhdGUoc2QpOworCQorCWlmICghc3RhdGUtPmNlY19lbmFi bGVkX2FkYXAgJiYgZW5hYmxlKSB7CisJCWNlY193cml0ZV9hbmRfb3Ioc2QsIDB4NGUsIDB4ZmMs IDB4MDEpOyAvKiBwb3dlciB1cCBjZWMgc2VjdGlvbiAqLworCQljZWNfd3JpdGUoc2QsIDB4NGEs IDB4MDcpOyAvKiBsZWdhY3kgbW9kZSBhbmQgY2xlYXIgYWxsIHJ4IGJ1ZmZlcnMgKi8KKwkJY2Vj X3dyaXRlKHNkLCAweDRhLCAwKTsKKwkJY2VjX3dyaXRlX2FuZF9vcihzZCwgMHgxMSwgMHhmZSwg MCk7IC8qIGluaXRpYWxseSBkaXNhYmxlIHR4ICovCisJCS8qIGVuYWJsZWQgaXJxczogKi8KKwkJ LyogdHg6IHJlYWR5ICovCisJCS8qIHR4OiBhcmJpdHJhdGlvbiBsb3N0ICovCisJCS8qIHR4OiBy ZXRyeSB0aW1lb3V0ICovCisJCS8qIHJ4OiByZWFkeSAxICovCisJCWFkdjc1MTFfd3JfYW5kX29y KHNkLCAweDk1LCAweGMwLCAweDM5KTsKKwl9IGVsc2UgaWYgKHN0YXRlLT5jZWNfZW5hYmxlZF9h ZGFwICYmICFlbmFibGUpIHsKKwkJYWR2NzUxMV93cl9hbmRfb3Ioc2QsIDB4OTUsIDB4YzAsIDB4 MDApOworCQljZWNfd3JpdGVfYW5kX29yKHNkLCAweDRiLCAweDhmLCAweDAwKTsgLyogZGlzYWJs ZSBhZGRyZXNzIG1hc2sgMS0zICovCisJCWNlY193cml0ZV9hbmRfb3Ioc2QsIDB4NGUsIDB4ZmMs IDB4MDApOyAvKiBwb3dlciBkb3duIGNlYyBzZWN0aW9uICovCisJCXN0YXRlLT5jZWNfdmFsaWRf YWRkcnMgPSAwOworCX0KKwlzdGF0ZS0+Y2VjX2VuYWJsZWRfYWRhcCA9IGVuYWJsZTsKKwlyZXR1 cm4gMDsKK30KKworI2RlZmluZSBBRFY3NTExX01BWF9BRERSUyAoMykKKworc3RhdGljIGludCBh ZHY3NTExX2NlY19sb2dfYWRkcihzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCB1OCBhZGRyKQorewor CXN0cnVjdCBhZHY3NTExX3N0YXRlICpzdGF0ZSA9IGdldF9hZHY3NTExX3N0YXRlKHNkKTsKKwl1 bnNpZ25lZCBpLCBmcmVlX2lkeCA9IEFEVjc1MTFfTUFYX0FERFJTOworCQorCWlmICghc3RhdGUt PmNlY19lbmFibGVkX2FkYXApCisJCXJldHVybiAtRUlPOworCisJZm9yIChpID0gMDsgaSA8IEFE Vjc1MTFfTUFYX0FERFJTOyBpKyspIHsKKwkJYm9vbCBpc192YWxpZCA9IHN0YXRlLT5jZWNfdmFs aWRfYWRkcnMgJiAoMSA8PCBpKTsKKworCQlpZiAoZnJlZV9pZHggPT0gQURWNzUxMV9NQVhfQURE UlMgJiYgIWlzX3ZhbGlkKQorCQkJZnJlZV9pZHggPSBpOworCQlpZiAoaXNfdmFsaWQgJiYgc3Rh dGUtPmNlY19hZGRyW2ldID09IGFkZHIpCisJCQlyZXR1cm4gMDsKKwl9CisJaWYgKGkgPT0gQURW NzUxMV9NQVhfQUREUlMpIHsKKwkJaSA9IGZyZWVfaWR4OworCQlpZiAoaSA9PSBBRFY3NTExX01B WF9BRERSUykKKwkJCXJldHVybiAtRU5YSU87CisJfQorCXN0YXRlLT5jZWNfYWRkcltpXSA9IGFk ZHI7CisJc3RhdGUtPmNlY192YWxpZF9hZGRycyB8PSAxIDw8IGk7CisKKwlzd2l0Y2ggKGkpIHsK KwljYXNlIDA6CisJCS8qIGVuYWJsZSBhZGRyZXNzIG1hc2sgMCAqLworCQljZWNfd3JpdGVfYW5k X29yKHNkLCAweDRiLCAweGVmLCAweDEwKTsKKwkJLyogc2V0IGFkZHJlc3MgZm9yIG1hc2sgMCAq LworCQljZWNfd3JpdGVfYW5kX29yKHNkLCAweDRjLCAweGYwLCBhZGRyKTsKKwkJYnJlYWs7CisJ Y2FzZSAxOgorCQkvKiBlbmFibGUgYWRkcmVzcyBtYXNrIDEgKi8KKwkJY2VjX3dyaXRlX2FuZF9v cihzZCwgMHg0YiwgMHhkZiwgMHgyMCk7CisJCS8qIHNldCBhZGRyZXNzIGZvciBtYXNrIDEgKi8K KwkJY2VjX3dyaXRlX2FuZF9vcihzZCwgMHg0YywgMHgwZiwgYWRkciA8PCA0KTsKKwkJYnJlYWs7 CisJY2FzZSAyOgorCQkvKiBlbmFibGUgYWRkcmVzcyBtYXNrIDIgKi8KKwkJY2VjX3dyaXRlX2Fu ZF9vcihzZCwgMHg0YiwgMHhiZiwgMHg0MCk7CisJCS8qIHNldCBhZGRyZXNzIGZvciBtYXNrIDEg Ki8KKwkJY2VjX3dyaXRlX2FuZF9vcihzZCwgMHg0ZCwgMHhmMCwgYWRkcik7CisJCWJyZWFrOwor CX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhZHY3NTExX2NlY190cmFuc21pdChzdHJ1 Y3QgdjRsMl9zdWJkZXYgKnNkLCBzdHJ1Y3QgY2VjX21zZyAqbXNnKQoreworCXU4IGxlbiA9IG1z Zy0+bGVuOworCXVuc2lnbmVkIGk7CisJCisJdjRsMl9kYmcoMSwgZGVidWcsIHNkLCAiJXM6IGxl biAlZFxuIiwgX19mdW5jX18sIGxlbik7CisKKwlpZiAobGVuID4gMTYpIHsKKwkJdjRsMl9lcnIo c2QsICIlczogbGVuIGV4Y2VlZGVkIDE2ICglZClcbiIsIF9fZnVuY19fLCBsZW4pOworCQlyZXR1 cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBibG9ja2luZywgY2xlYXIgY2VjIHR4IGlycSBzdGF0dXMg Ki8KKwlhZHY3NTExX3dyX2FuZF9vcihzZCwgMHg5NywgMHhjNywgMHgzOCk7CisKKwkvKiB3cml0 ZSBkYXRhICovCisJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQorCQljZWNfd3JpdGUoc2QsIGks IG1zZy0+bXNnW2ldKTsKKworCS8qIHNldCBsZW5ndGggKGRhdGEgKyBoZWFkZXIpICovCisJY2Vj X3dyaXRlKHNkLCAweDEwLCBsZW4pOworCS8qIHN0YXJ0IHRyYW5zbWl0LCBlbmFibGUgdHggKi8K KwljZWNfd3JpdGUoc2QsIDB4MTEsIDB4MDEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9p ZCBhZHY3NTExX2NlY190cmFuc21pdF90aW1lZF9vdXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCkK K3sKKwljZWNfd3JpdGVfYW5kX29yKHNkLCAweDExLCAweGZlLCAwKTsgLyogZGlzYWJsZSB0eCAq LworfQorCiAvKiBFbmFibGUgaW50ZXJydXB0cyAqLwogc3RhdGljIHZvaWQgYWR2NzUxMV9zZXRf aXNyKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsIGJvb2wgZW5hYmxlKQogeworCXN0cnVjdCBhZHY3 NTExX3N0YXRlICpzdGF0ZSA9IGdldF9hZHY3NTExX3N0YXRlKHNkKTsKIAl1aW50OF90IGlycXMg PSBNQVNLX0FEVjc1MTFfSFBEX0lOVCB8IE1BU0tfQURWNzUxMV9NU0VOX0lOVDsKIAl1aW50OF90 IGlycXNfcmQ7CiAJaW50IHJldHJpZXMgPSAxMDA7CiAKIAl2NGwyX2RiZygyLCBkZWJ1Zywgc2Qs ICIlczogJXNcbiIsIF9fZnVuY19fLCBlbmFibGUgPyAiZW5hYmxlIiA6ICJkaXNhYmxlIik7CiAK KwlpZiAoc3RhdGUtPmkyY19jZWMpIHsKKwkJLyoKKwkJICogRW5hYmxlZCBDRUMgaXJxczoKKwkJ ICogdHg6IHJlYWR5CisJCSAqIHR4OiBhcmJpdHJhdGlvbiBsb3N0CisJCSAqIHR4OiByZXRyeSB0 aW1lb3V0CisJCSAqIHJ4OiByZWFkeSAxCisJCSAqLworCQlhZHY3NTExX3dyX2FuZF9vcihzZCwg MHg5NSwgMHhjMCwgZW5hYmxlID8gMHgzOSA6IDApOworCX0KKwogCS8qIFRoZSBkYXRhc2hlZXQg c2F5cyB0aGF0IHRoZSBFRElEIHJlYWR5IGludGVycnVwdCBzaG91bGQgYmUKIAkgICBkaXNhYmxl ZCBpZiB0aGVyZSBpcyBubyBob3RwbHVnLiAqLwogCWlmICghZW5hYmxlKQpAQCAtNTc2LDI0ICs3 NjEsNzYgQEAgc3RhdGljIHZvaWQgYWR2NzUxMV9zZXRfaXNyKHN0cnVjdCB2NGwyX3N1YmRldiAq c2QsIGJvb2wgZW5hYmxlKQogCXY0bDJfZXJyKHNkLCAiQ291bGQgbm90IHNldCBpbnRlcnJ1cHRz OiBodyBmYWlsdXJlP1xuIik7CiB9CiAKK3N0YXRpYyB2b2lkIGFkdl9jZWNfdHhfcmF3X3N0YXR1 cyhzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCB1OCB0eF9yYXdfc3RhdHVzKQoreworCWlmICgoY2Vj X3JlYWQoc2QsIDB4MTEpICYgMHgwMSkgPT0gMCkgeworCQl2NGwyX2RiZygxLCBkZWJ1Zywgc2Qs ICIlczogdHggcmF3OiB0eCBkaXNhYmxlZFxuIiwgX19mdW5jX18pOworCQlyZXR1cm47CisJfQor CisJaWYgKHR4X3Jhd19zdGF0dXMgJiAweDEwKSB7CisJCXY0bDJfZGJnKDEsIGRlYnVnLCBzZCwg IiVzOiB0eCByYXc6IGFyYml0cmF0aW9uIGxvc3RcbiIsIF9fZnVuY19fKTsKKwkJdjRsMl9zdWJk ZXZfbm90aWZ5KHNkLCBWNEwyX1NVQkRFVl9DRUNfVFhfRE9ORSwgKHZvaWQgKilDRUNfVFhfU1RB VFVTX0FSQl9MT1NUKTsKKwkJcmV0dXJuOworCX0KKwlpZiAodHhfcmF3X3N0YXR1cyAmIDB4MDgp IHsKKwkJdjRsMl9kYmcoMSwgZGVidWcsIHNkLCAiJXM6IHR4IHJhdzogcmV0cnkgZmFpbGVkXG4i LCBfX2Z1bmNfXyk7CisJCXY0bDJfc3ViZGV2X25vdGlmeShzZCwgVjRMMl9TVUJERVZfQ0VDX1RY X0RPTkUsICh2b2lkICopQ0VDX1RYX1NUQVRVU19SRVRSWV9USU1FT1VUKTsKKwkJcmV0dXJuOwor CX0KKwlpZiAodHhfcmF3X3N0YXR1cyAmIDB4MjApIHsKKwkJdjRsMl9kYmcoMSwgZGVidWcsIHNk LCAiJXM6IHR4IHJhdzogcmVhZHkgb2tcbiIsIF9fZnVuY19fKTsKKwkJdjRsMl9zdWJkZXZfbm90 aWZ5KHNkLCBWNEwyX1NVQkRFVl9DRUNfVFhfRE9ORSwgKHZvaWQgKilDRUNfVFhfU1RBVFVTX09L KTsKKwkJcmV0dXJuOworCX0KK30KKwogLyogSW50ZXJydXB0IGhhbmRsZXIgKi8KIHN0YXRpYyBp bnQgYWR2NzUxMV9pc3Ioc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwgdTMyIHN0YXR1cywgYm9vbCAq aGFuZGxlZCkKIHsKIAl1aW50OF90IGlycV9zdGF0dXM7CisJdWludDhfdCBjZWNfaXJxOwogCiAJ LyogZGlzYWJsZSBpbnRlcnJ1cHRzIHRvIHByZXZlbnQgYSByYWNlIGNvbmRpdGlvbiAqLwogCWFk djc1MTFfc2V0X2lzcihzZCwgZmFsc2UpOwogCWlycV9zdGF0dXMgPSBhZHY3NTExX3JkKHNkLCAw eDk2KTsKKwljZWNfaXJxID0gYWR2NzUxMV9yZChzZCwgMHg5Nyk7CiAJLyogY2xlYXIgZGV0ZWN0 ZWQgaW50ZXJydXB0cyAqLwogCWFkdjc1MTFfd3Ioc2QsIDB4OTYsIGlycV9zdGF0dXMpOworCWFk djc1MTFfd3Ioc2QsIDB4OTcsIGNlY19pcnEpOwogCi0JdjRsMl9kYmcoMSwgZGVidWcsIHNkLCAi JXM6IGlycSAweCV4XG4iLCBfX2Z1bmNfXywgaXJxX3N0YXR1cyk7CisJdjRsMl9kYmcoMSwgZGVi dWcsIHNkLCAiJXM6IGlycSAweCV4LCBjZWMtaXJxIDB4JXhcbiIsIF9fZnVuY19fLCBpcnFfc3Rh dHVzLCBjZWNfaXJxKTsKIAogCWlmIChpcnFfc3RhdHVzICYgKE1BU0tfQURWNzUxMV9IUERfSU5U IHwgTUFTS19BRFY3NTExX01TRU5fSU5UKSkKIAkJYWR2NzUxMV9jaGVja19tb25pdG9yX3ByZXNl bnRfc3RhdHVzKHNkKTsKIAlpZiAoaXJxX3N0YXR1cyAmIE1BU0tfQURWNzUxMV9FRElEX1JEWV9J TlQpCiAJCWFkdjc1MTFfY2hlY2tfZWRpZF9zdGF0dXMoc2QpOwogCisJaWYgKGNlY19pcnEgJiAw eDM4KQorCQlhZHZfY2VjX3R4X3Jhd19zdGF0dXMoc2QsIGNlY19pcnEpOworCisJaWYgKGNlY19p cnEgJiAxKSB7CisJCXN0cnVjdCBjZWNfbXNnIG1zZzsKKworCQltc2cubGVuID0gY2VjX3JlYWQo c2QsIDB4MjUpICYgMHgxZjsKKworCQl2NGwyX2RiZygxLCBkZWJ1Zywgc2QsICIlczogY2VjIG1z ZyBsZW4gJWRcbiIsIF9fZnVuY19fLCBtc2cubGVuKTsKKworCQlpZiAobXNnLmxlbiA+IDE2KQor CQkJbXNnLmxlbiA9IDE2OworCisJCWlmIChtc2cubGVuKSB7CisJCQl1OCBpOworCisJCQlmb3Ig KGkgPSAwOyBpIDwgbXNnLmxlbjsgaSsrKQorCQkJCW1zZy5tc2dbaV0gPSBjZWNfcmVhZChzZCwg aSArIDB4MTUpOworCisJCQljZWNfd3JpdGUoc2QsIDB4NGEsIDEpOyAvKiB0b2dnbGUgdG8gcmUt ZW5hYmxlIHJ4IDEgKi8KKwkJCWNlY193cml0ZShzZCwgMHg0YSwgMCk7CisJCQl2NGwyX3N1YmRl dl9ub3RpZnkoc2QsIFY0TDJfU1VCREVWX0NFQ19SWF9NU0csICZtc2cpOworCQl9CisJfQorCiAJ LyogZW5hYmxlIGludGVycnVwdHMgKi8KIAlhZHY3NTExX3NldF9pc3Ioc2QsIHRydWUpOwogCkBA IC02OTcsNiArOTM0LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfdmlkZW9f b3BzIGFkdjc1MTFfdmlkZW9fb3BzID0gewogCS5zX3N0cmVhbSA9IGFkdjc1MTFfc19zdHJlYW0s CiAJLnNfZHZfdGltaW5ncyA9IGFkdjc1MTFfc19kdl90aW1pbmdzLAogCS5nX2R2X3RpbWluZ3Mg PSBhZHY3NTExX2dfZHZfdGltaW5ncywKKwkuY2VjX2VuYWJsZSA9IGFkdjc1MTFfY2VjX2VuYWJs ZSwKKwkuY2VjX2xvZ19hZGRyID0gYWR2NzUxMV9jZWNfbG9nX2FkZHIsCisJLmNlY190cmFuc21p dCA9IGFkdjc1MTFfY2VjX3RyYW5zbWl0LAorCS5jZWNfdHJhbnNtaXRfdGltZWRfb3V0ID0gYWR2 NzUxMV9jZWNfdHJhbnNtaXRfdGltZWRfb3V0LAogfTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIEFVRElPIE9QUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K QEAgLTEwNzgsNiArMTMxOSw3IEBAIHN0YXRpYyB2b2lkIGFkdjc1MTFfZWRpZF9oYW5kbGVyKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkvKiBXZSBmYWlsZWQgdG8gcmVhZCB0aGUgRURJRCwg c28gc2VuZCBhbiBldmVudCBmb3IgdGhpcy4gKi8KIAllZC5wcmVzZW50ID0gZmFsc2U7CiAJZWQu c2VnbWVudCA9IGFkdjc1MTFfcmQoc2QsIDB4YzQpOworCWVkLnBoeXNfYWRkciA9IDB4ZmZmZjsK IAl2NGwyX3N1YmRldl9ub3RpZnkoc2QsIEFEVjc1MTFfRURJRF9ERVRFQ1QsICh2b2lkICopJmVk KTsKIAl2NGwyX2RiZygxLCBkZWJ1Zywgc2QsICIlczogbm8gZWRpZCBmb3VuZFxuIiwgX19mdW5j X18pOwogfQpAQCAtMTIxOCwxMCArMTQ2MCwzOCBAQCBzdGF0aWMgYm9vbCBlZGlkX3ZlcmlmeV9o ZWFkZXIoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwgdTMyIHNlZ21lbnQpCiAJcmV0dXJuICFtZW1j bXAoZGF0YSwgaGRtaV9oZWFkZXIsIHNpemVvZihoZG1pX2hlYWRlcikpOwogfQogCitzdGF0aWMg aW50IGdldF9lZGlkX3NwYV9sb2NhdGlvbihjb25zdCB1OCAqZWRpZCkKK3sKKwl1OCBkOworCisJ aWYgKChlZGlkWzB4N2VdICE9IDEpIHx8CisJCQkoZWRpZFsweDgwXSAhPSAweDAyKSB8fAorCQkJ KGVkaWRbMHg4MV0gIT0gMHgwMykpIHsKKwkJcmV0dXJuIC0xOworCX0KKworCS8qIHNlYXJjaCBW ZW5kb3IgU3BlY2lmaWMgRGF0YSBCbG9jayAodGFnIDMpICovCisJZCA9IGVkaWRbMHg4Ml0gJiAw eDdmOworCWlmIChkID4gNCkgeworCQlpbnQgaSA9IDB4ODQ7CisJCWludCBlbmQgPSAweDgwICsg ZDsKKwkJZG8geworCQkJdTggdGFnID0gZWRpZFtpXSA+PiA1OworCQkJdTggbGVuID0gZWRpZFtp XSAmIDB4MWY7CisKKwkJCWlmICgodGFnID09IDMpICYmIChsZW4gPj0gNSkpCisJCQkJcmV0dXJu IGkgKyA0OworCQkJaSArPSBsZW4gKyAxOworCQl9IHdoaWxlIChpIDwgZW5kKTsKKwl9CisJcmV0 dXJuIC0xOworfQorCiBzdGF0aWMgYm9vbCBhZHY3NTExX2NoZWNrX2VkaWRfc3RhdHVzKHN0cnVj dCB2NGwyX3N1YmRldiAqc2QpCiB7CiAJc3RydWN0IGFkdjc1MTFfc3RhdGUgKnN0YXRlID0gZ2V0 X2Fkdjc1MTFfc3RhdGUoc2QpOwogCXVpbnQ4X3QgZWRpZFJkeSA9IGFkdjc1MTFfcmQoc2QsIDB4 YzUpOworCWludCBvZmZzZXQ7CiAKIAl2NGwyX2RiZygxLCBkZWJ1Zywgc2QsICIlczogZWRpZCBy ZWFkeSAocmV0cmllczogJWQpXG4iLAogCQkJIF9fZnVuY19fLCBFRElEX01BWF9SRVRSSUVTIC0g c3RhdGUtPmVkaWQucmVhZF9yZXRyaWVzKTsKQEAgLTEyNjcsNiArMTUzNywxMiBAQCBzdGF0aWMg Ym9vbCBhZHY3NTExX2NoZWNrX2VkaWRfc3RhdHVzKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QpCiAK IAkJdjRsMl9kYmcoMSwgZGVidWcsIHNkLCAiJXM6IGVkaWQgY29tcGxldGUgd2l0aCAlZCBzZWdt ZW50KHMpXG4iLCBfX2Z1bmNfXywgc3RhdGUtPmVkaWQuc2VnbWVudHMpOwogCQlzdGF0ZS0+ZWRp ZC5jb21wbGV0ZSA9IHRydWU7CisJCW9mZnNldCA9IGdldF9lZGlkX3NwYV9sb2NhdGlvbihzdGF0 ZS0+ZWRpZC5kYXRhKTsKKwkJaWYgKG9mZnNldCA+IDApCisJCQllZC5waHlzX2FkZHIgPSAoc3Rh dGUtPmVkaWQuZGF0YVtvZmZzZXRdIDw8IDgpIHwKKwkJCQkJc3RhdGUtPmVkaWQuZGF0YVtvZmZz ZXQgKyAxXTsKKwkJZWxzZQorCQkJZWQucGh5c19hZGRyID0gMHhmZmZmOwogCiAJCS8qIHJlcG9y dCB3aGVuIHdlIGhhdmUgYWxsIHNlZ21lbnRzCiAJCSAgIGJ1dCByZXBvcnQgb25seSBmb3Igc2Vn bWVudCAwCkBAIC0xMjg4LDExICsxNTY0LDE0IEBAIHN0YXRpYyB2b2lkIGFkdjc1MTFfaW5pdF9z ZXR1cChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkKQogewogCXN0cnVjdCBhZHY3NTExX3N0YXRlICpz dGF0ZSA9IGdldF9hZHY3NTExX3N0YXRlKHNkKTsKIAlzdHJ1Y3QgYWR2NzUxMV9zdGF0ZV9lZGlk ICplZGlkID0gJnN0YXRlLT5lZGlkOworCXUzMiBjZWNfY2xrID0gc3RhdGUtPnBkYXRhLmNlY19j bGs7CisJdTggcmF0aW87CiAKIAl2NGwyX2RiZygxLCBkZWJ1Zywgc2QsICIlc1xuIiwgX19mdW5j X18pOwogCiAJLyogY2xlYXIgYWxsIGludGVycnVwdHMgKi8KIAlhZHY3NTExX3dyKHNkLCAweDk2 LCAweGZmKTsKKwlhZHY3NTExX3dyKHNkLCAweDk3LCAweGZmKTsKIAkvKgogCSAqIFN0b3AgSFBE IGZyb20gcmVzZXR0aW5nIGEgbG90IG9mIHJlZ2lzdGVycy4KIAkgKiBJdCBtaWdodCBsZWF2ZSB0 aGUgY2hpcCBpbiBhIHBhcnRseSB1bi1pbml0aWFsaXplZCBzdGF0ZSwKQEAgLTEzMDQsNiArMTU4 MywyNCBAQCBzdGF0aWMgdm9pZCBhZHY3NTExX2luaXRfc2V0dXAoc3RydWN0IHY0bDJfc3ViZGV2 ICpzZCkKIAlhZHY3NTExX3NldF9pc3Ioc2QsIGZhbHNlKTsKIAlhZHY3NTExX3Nfc3RyZWFtKHNk LCBmYWxzZSk7CiAJYWR2NzUxMV9zX2F1ZGlvX3N0cmVhbShzZCwgZmFsc2UpOworCisJaWYgKHN0 YXRlLT5pMmNfY2VjID09IE5VTEwpCisJCXJldHVybjsKKworCXY0bDJfZGJnKDEsIGRlYnVnLCBz ZCwgIiVzOiBjZWNfY2xrICVkXG4iLCBfX2Z1bmNfXywgY2VjX2Nsayk7CisKKwkvKiBjZWMgc29m dCByZXNldCAqLworCWNlY193cml0ZShzZCwgMHg1MCwgMHgwMSk7CisJY2VjX3dyaXRlKHNkLCAw eDUwLCAweDAwKTsKKworCS8qIGxlZ2FjeSBtb2RlICovCisJY2VjX3dyaXRlKHNkLCAweDRhLCAw eDAwKTsKKworCWlmIChjZWNfY2xrICUgNzUwMDAwICE9IDApCisJCXY0bDJfZXJyKHNkLCAiJXM6 IGNlY19jbGsgJWQsIG5vdCBtdWx0aXBsZSBvZiA3NTAgS2h6XG4iLCBfX2Z1bmNfXywgY2VjX2Ns ayk7CisKKwlyYXRpbyA9IChjZWNfY2xrIC8gNzUwMDAwKSAtIDE7CisJY2VjX3dyaXRlKHNkLCAw eDRlLCByYXRpbyA8PCAyKTsKIH0KIAogc3RhdGljIGludCBhZHY3NTExX3Byb2JlKHN0cnVjdCBp MmNfY2xpZW50ICpjbGllbnQsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKQEAgLTEz OTEsNyArMTY4OCwyNCBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcHJvYmUoc3RydWN0IGkyY19jbGll bnQgKmNsaWVudCwgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKgogCQlnb3RvIGVycl9lbnRp dHk7CiAJfQogCi0JYWR2NzUxMV93cihzZCwgMHhlMiwgMHgwMSk7IC8qIHBvd2VyIGRvd24gY2Vj IHNlY3Rpb24gKi8KKwlhZHY3NTExX3dyKHNkLCAweGUxLCBzdGF0ZS0+aTJjX2NlY19hZGRyKTsK KwlpZiAoc3RhdGUtPnBkYXRhLmNlY19jbGsgPCAzMDAwMDAwIHx8IHN0YXRlLT5wZGF0YS5jZWNf Y2xrID4gMTAwMDAwMDAwKSB7CisJCXY0bDJfZXJyKHNkLCAiJXM6IGNlY19jbGsgJXUgb3V0c2lk ZSByYW5nZSwgZGlzYWJsaW5nIGNlY1xuIiwKKwkJCQlfX2Z1bmNfXywgc3RhdGUtPnBkYXRhLmNl Y19jbGspOworCQlzdGF0ZS0+cGRhdGEuY2VjX2NsayA9IDA7CisJfQorCisJaWYgKHN0YXRlLT5w ZGF0YS5jZWNfY2xrKSB7CisJCXN0YXRlLT5pMmNfY2VjID0gaTJjX25ld19kdW1teShjbGllbnQt PmFkYXB0ZXIsIChzdGF0ZS0+aTJjX2NlY19hZGRyPj4xKSk7CisJCWlmIChzdGF0ZS0+aTJjX2Nl YyA9PSBOVUxMKSB7CisJCQl2NGwyX2VycihzZCwgImZhaWxlZCB0byByZWdpc3RlciBjZWMgaTJj IGNsaWVudFxuIik7CisJCQlnb3RvIGVycl91bnJlZ19lZGlkOworCQl9CisJCWFkdjc1MTFfd3Io c2QsIDB4ZTIsIDB4MDApOyAvKiBwb3dlciB1cCBjZWMgc2VjdGlvbiAqLworCX0gZWxzZSB7CisJ CWFkdjc1MTFfd3Ioc2QsIDB4ZTIsIDB4MDEpOyAvKiBwb3dlciBkb3duIGNlYyBzZWN0aW9uICov CisJfQorCiAJc3RhdGUtPndvcmtfcXVldWUgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1 ZShzZC0+bmFtZSk7CiAJaWYgKHN0YXRlLT53b3JrX3F1ZXVlID09IE5VTEwpIHsKIAkJdjRsMl9l cnIoc2QsICJjb3VsZCBub3QgY3JlYXRlIHdvcmtxdWV1ZVxuIik7CkBAIC0xNDEwLDYgKzE3MjQs OSBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwg Y29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKgogCXJldHVybiAwOwogCiBlcnJfdW5yZWdfY2Vj OgorCWlmIChzdGF0ZS0+aTJjX2NlYykKKwkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKHN0YXRlLT5p MmNfY2VjKTsKK2Vycl91bnJlZ19lZGlkOgogCWkyY191bnJlZ2lzdGVyX2RldmljZShzdGF0ZS0+ aTJjX2VkaWQpOwogZXJyX2VudGl0eToKIAltZWRpYV9lbnRpdHlfY2xlYW51cCgmc2QtPmVudGl0 eSk7CkBAIC0xNDMzLDYgKzE3NTAsOCBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcmVtb3ZlKHN0cnVj dCBpMmNfY2xpZW50ICpjbGllbnQpCiAJYWR2NzUxMV9pbml0X3NldHVwKHNkKTsKIAljYW5jZWxf ZGVsYXllZF93b3JrKCZzdGF0ZS0+ZWRpZF9oYW5kbGVyKTsKIAlpMmNfdW5yZWdpc3Rlcl9kZXZp Y2Uoc3RhdGUtPmkyY19lZGlkKTsKKwlpZiAoc3RhdGUtPmkyY19jZWMpCisJCWkyY191bnJlZ2lz dGVyX2RldmljZShzdGF0ZS0+aTJjX2NlYyk7CiAJZGVzdHJveV93b3JrcXVldWUoc3RhdGUtPndv cmtfcXVldWUpOwogCXY0bDJfZGV2aWNlX3VucmVnaXN0ZXJfc3ViZGV2KHNkKTsKIAltZWRpYV9l bnRpdHlfY2xlYW51cCgmc2QtPmVudGl0eSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL2Fk djc1MTEuaCBiL2luY2x1ZGUvbWVkaWEvYWR2NzUxMS5oCmluZGV4IGJiNzhiZWQuLmM5NzFiNTIg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbWVkaWEvYWR2NzUxMS5oCisrKyBiL2luY2x1ZGUvbWVkaWEv YWR2NzUxMS5oCkBAIC0zMiwxMSArMzIsNyBAQCBzdHJ1Y3QgYWR2NzUxMV9tb25pdG9yX2RldGVj dCB7CiBzdHJ1Y3QgYWR2NzUxMV9lZGlkX2RldGVjdCB7CiAJaW50IHByZXNlbnQ7CiAJaW50IHNl Z21lbnQ7Ci19OwotCi1zdHJ1Y3QgYWR2NzUxMV9jZWNfYXJnIHsKLQl2b2lkICphcmc7Ci0JdTMy IGZfZmxhZ3M7CisJdWludDE2X3QgcGh5c19hZGRyOwogfTsKIAogc3RydWN0IGFkdjc1MTFfcGxh dGZvcm1fZGF0YSB7Ci0tIAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=