From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jyri Sarha Subject: [PATCH 2/3] drm/i2c: tda998x: Register ASoC hdmi-codec and add audio DT binding Date: Tue, 2 Aug 2016 15:05:08 +0300 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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, airlied@linux.ie, linux-omap@vger.kernel.org, devicetree@vger.kernel.org, bcousson@baylibre.com, alsa-devel@alsa-project.org, rmk+kernel@arm.linux.org.uk Cc: peter.ujfalusi@ti.com, tony@atomide.com, broonie@kernel.org, Jyri Sarha , liam.r.girdwood@linux.intel.com, tomi.valkeinen@ti.com List-Id: devicetree@vger.kernel.org UmVnaXN0ZXIgQVNvQyBIRE1JIGNvZGVjIGZvciBhdWRpbyBmdW5jdGlvbmFsaXR5IGFuZCBhZGRz IGRldmljZSB0cmVlCmJpbmRpbmcgZm9yIGF1ZGlvIGNvbmZpZ3VyYXRpb24uCgpXaXRoIHRoZSBy ZWdpc3RlcmVkIEhETUkgY29kZWMgdGhlIHRkYTk5OHggbm9kZSBjYW4gYmUgdXNlZCBsaWtlIGEK cmVndWxhciBjb2RlYyBub2RlIGluIEFTb0MgY2FyZCBjb25maWd1cmF0aW9ucy4gSERNSSBhdWRp byBpbmZvLWZyYW1lCmFuZCBhdWRpbyBzdHJlYW0gaGVhZGVyIGlzIGdlbmVyYXRlZCBieSB0aGUg QVNvQyBIRE1JIGNvZGVjLiBUaGUgY29kZWMKYWxzbyBhcHBsaWVzIGNvbnN0cmFpbnRzIGZvciBh dmFpbGFibGUgc2FtcGxlLXJhdGVzIGJhc2VkIG9uIEVkaWQgTGlrZQpEYXRhIGZyb20gdGhlIGRp c3BsYXkuIFRoZSBkZXZpY2UgdHJlZSBiaW5kaW5nIGRvY3VtZW50IGhhcyBiZWVuCnVwZGF0ZWQg WzFdLgoKUGFydCBvZiB0aGlzIHBhdGNoIGhhcyBiZWVuIGluc3BpcmVkIGJ5IEplYW4gRnJhbmNv aXNlJ3MgImRybS9pMmM6IHRkYTk5OHg6CkFkZCBzdXBwb3J0IG9mIGEgRFQgZ3JhcGggb2YgcG9y dHMiLXBhdGNoIFsyXS4gVGhlcmUgbWF5IHN0aWxsIGJlIHNvbWUKaWRlbnRpY2FsIGxpbmVzIGxl ZnQgZnJvbSB0aGUgb3JpZ2luYWwgcGF0Y2ggYW5kIHNvbWUgb2YgdGhlIGlkZWFzCmhhdmUgY29t ZSBmcm9tIHRoZXJlLgoKWzFdIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNw bGF5L2JyaWRnZS90ZGE5OTh4LnR4dApbMl0gaHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9y Zy9waXBlcm1haWwvYWxzYS1kZXZlbC8yMDE1LUp1bHkvMDk1MjU1Lmh0bWwKClNpZ25lZC1vZmYt Ynk6IEp5cmkgU2FyaGEgPGpzYXJoYUB0aS5jb20+Ci0tLQogLi4uL2RldmljZXRyZWUvYmluZGlu Z3MvZGlzcGxheS9icmlkZ2UvdGRhOTk4eC50eHQgfCAgMTggKysKIGRyaXZlcnMvZ3B1L2RybS9p MmMvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2Ry bS9pMmMvdGRhOTk4eF9kcnYuYyAgICAgICAgICAgICAgICAgIHwgMTk5ICsrKysrKysrKysrKysr KysrKysrLQogaW5jbHVkZS9kcm0vaTJjL3RkYTk5OHguaCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDQgKy0KIGluY2x1ZGUvZHQtYmluZGluZ3MvZGlzcGxheS90ZGE5OTh4LmggICAgICAg ICAgICAgIHwgICA3ICsKIDUgZmlsZXMgY2hhbmdlZCwgMjI0IGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kdC1iaW5kaW5ncy9kaXNwbGF5 L3RkYTk5OHguaAoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9kaXNwbGF5L2JyaWRnZS90ZGE5OTh4LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9kaXNwbGF5L2JyaWRnZS90ZGE5OTh4LnR4dAppbmRleCBlMTc4ZTZiLi4yNGNjMjQ2 IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9i cmlkZ2UvdGRhOTk4eC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L2Rpc3BsYXkvYnJpZGdlL3RkYTk5OHgudHh0CkBAIC0yMSw4ICsyMSwxOSBAQCBPcHRpb25hbCBw cm9wZXJ0aWVzOgogICAtIHZpZGVvLXBvcnRzOiAyNCBiaXRzIHZhbHVlIHdoaWNoIGRlZmluZXMg aG93IHRoZSB2aWRlbyBjb250cm9sbGVyCiAJb3V0cHV0IGlzIHdpcmVkIHRvIHRoZSBUREE5OTh4 IGlucHV0IC0gZGVmYXVsdDogPDB4MjMwMTQ1PgogCisgIC0gYXVkaW8tcG9ydHM6IGFycmF5IG9m IDgtYml0IHZhbHVlcywgMiB2YWx1ZXMgcGVyIG9uZSBEQUlbMV0uCisJVGhlIGZpcnN0IHZhbHVl IGRlZmluZXMgdGhlIERBSSB0eXBlOiBUREE5OTh4X1NQRElGIG9yIFREQTk5OHhfSTJTWzJdLgor CVRoZSBzZWNvbmQgdmFsdWUgZGVmaW5lcyB0aGUgdGRhOTk4eCBBUF9FTkEgcmVnIGNvbnRlbnQg d2hlbiB0aGUgREFJCisJaW4gcXVlc3Rpb24gaXMgdXNlZC4gVGhlIGltcGxlbWVudGF0aW9uIGFs bG93cyBvbmUgb3IgdHdvIERBSXMuIElmIHR3bworCURBSXMgYXJlIGRlZmluZWQsIHRoZXkgbXVz dCBiZSBvZiBkaWZmZXJlbnQgdHlwZS4KKworWzFdIERvY3VtZW50YXRpb24vc291bmQvYWxzYS9z b2MvREFJLnR4dAorWzJdIGluY2x1ZGUvZHQtYmluZGluZ3MvZGlzcGxheS90ZGE5OTh4LmgKKwog RXhhbXBsZToKIAorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Rpc3BsYXkvdGRhOTk4eC5oPgorCiAJ dGRhOTk4eDogaGRtaS1lbmNvZGVyIHsKIAkJY29tcGF0aWJsZSA9ICJueHAsdGRhOTk4eCI7CiAJ CXJlZyA9IDwweDcwPjsKQEAgLTMwLDQgKzQxLDExIEBAIEV4YW1wbGU6CiAJCWludGVycnVwdHMg PSA8MjcgMj47CQkvKiBmYWxsaW5nIGVkZ2UgKi8KIAkJcGluY3RybC0wID0gPCZwbXhfY2FtZXJh PjsKIAkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwkJdmlkZW8tcG9ydHMgPSA8MHgyMzAx NDU+OworCisJCSNzb3VuZC1kYWktY2VsbHMgPSA8Mj47CisJCQkgICAgIC8qCURBSS1mb3JtYXQJ QVBfRU5BIHJlZyB2YWx1ZSAqLworCQlhdWRpby1wb3J0cyA9IDwJVERBOTk4eF9TUERJRgkweDA0 CisJCQkJVERBOTk4eF9JMlMJMHgwMz47CisKIAl9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2kyYy9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2kyYy9LY29uZmlnCmluZGV4IDRkMzQx ZGIuLmE2YzkyYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvS2NvbmZpZworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTJjL0tjb25maWcKQEAgLTIyLDYgKzIyLDcgQEAgY29uZmlnIERS TV9JMkNfU0lMMTY0CiBjb25maWcgRFJNX0kyQ19OWFBfVERBOTk4WAogCXRyaXN0YXRlICJOWFAg U2VtaWNvbmR1Y3RvcnMgVERBOTk4WCBIRE1JIGVuY29kZXIiCiAJZGVmYXVsdCBtIGlmIERSTV9U SUxDREMKKwlzZWxlY3QgU05EX1NPQ19IRE1JX0NPREVDIGlmIFNORF9TT0MKIAloZWxwCiAJICBT dXBwb3J0IGZvciBOWFAgU2VtaWNvbmR1Y3RvcnMgVERBOTk4WCBIRE1JIGVuY29kZXJzLgogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMKaW5kZXggZjk3Yjc0OC4uYmQ3MjBjYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pMmMvdGRhOTk4eF9kcnYuYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21v ZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgogI2luY2x1ZGUgPHNvdW5kL2Fzb3VuZGVm Lmg+CisjaW5jbHVkZSA8c291bmQvaGRtaS1jb2RlYy5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybVAu aD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KQEAgLTMwLDYgKzMxLDExIEBA CiAKICNkZWZpbmUgREJHKGZtdCwgLi4uKSBEUk1fREVCVUcoZm10IlxuIiwgIyNfX1ZBX0FSR1Nf XykKIAorc3RydWN0IHRkYTk5OHhfYXVkaW9fcG9ydCB7CisJdTggZm9ybWF0OwkJLyogQUZNVF94 eHggKi8KKwl1OCBjb25maWc7CQkvKiBBUCB2YWx1ZSAqLworfTsKKwogc3RydWN0IHRkYTk5OHhf cHJpdiB7CiAJc3RydWN0IGkyY19jbGllbnQgKmNlYzsKIAlzdHJ1Y3QgaTJjX2NsaWVudCAqaGRt aTsKQEAgLTQzLDYgKzQ5LDggQEAgc3RydWN0IHRkYTk5OHhfcHJpdiB7CiAJdTggdmlwX2NudHJs XzI7CiAJc3RydWN0IHRkYTk5OHhfYXVkaW9fcGFyYW1zIGF1ZGlvX3BhcmFtczsKIAorCXN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKmF1ZGlvX3BkZXY7CisKIAl3YWl0X3F1ZXVlX2hlYWRfdCB3cV9l ZGlkOwogCXZvbGF0aWxlIGludCB3cV9lZGlkX3dhaXQ7CiAKQEAgLTUzLDYgKzYxLDggQEAgc3Ry dWN0IHRkYTk5OHhfcHJpdiB7CiAKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgZW5jb2RlcjsKIAlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7CisKKwlzdHJ1Y3QgdGRhOTk4eF9hdWRpb19wb3J0 IGF1ZGlvX3BvcnRbMl07CiB9OwogCiAjZGVmaW5lIGNvbm5fdG9fdGRhOTk4eF9wcml2KHgpIFwK QEAgLTc0Myw3ICs3NTMsNyBAQCB0ZGE5OTh4X2NvbmZpZ3VyZV9hdWRpbyhzdHJ1Y3QgdGRhOTk4 eF9wcml2ICpwcml2LAogCQlicmVhazsKIAogCWRlZmF1bHQ6Ci0JCUJVRygpOworCQlkZXZfZXJy KCZwcml2LT5oZG1pLT5kZXYsICJVbnN1cHBvcnRlZCBJMlMgZm9ybWF0XG4iKTsKIAkJcmV0dXJu IC1FSU5WQUw7CiAJfQogCkBAIC0xMTYwLDYgKzExNzAsOCBAQCBzdGF0aWMgaW50IHRkYTk5OHhf Y29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCWRy bV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwog CW4gPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKIAlwcml2LT5pc19oZG1p X3NpbmsgPSBkcm1fZGV0ZWN0X2hkbWlfbW9uaXRvcihlZGlkKTsKKwlkcm1fZWRpZF90b19lbGQo Y29ubmVjdG9yLCBlZGlkKTsKKwogCWtmcmVlKGVkaWQpOwogCiAJcmV0dXJuIG47CkBAIC0xMTgx LDYgKzExOTMsOSBAQCBzdGF0aWMgdm9pZCB0ZGE5OTh4X2Rlc3Ryb3koc3RydWN0IHRkYTk5OHhf cHJpdiAqcHJpdikKIAljZWNfd3JpdGUocHJpdiwgUkVHX0NFQ19SWFNIUERJTlRFTkEsIDApOwog CXJlZ19jbGVhcihwcml2LCBSRUdfSU5UX0ZMQUdTXzIsIElOVF9GTEFHU18yX0VESURfQkxLX1JE KTsKIAorCWlmIChwcml2LT5hdWRpb19wZGV2KQorCQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3Rl cihwcml2LT5hdWRpb19wZGV2KTsKKwogCWlmIChwcml2LT5oZG1pLT5pcnEpCiAJCWZyZWVfaXJx KHByaXYtPmhkbWktPmlycSwgcHJpdik7CiAKQEAgLTExOTAsOCArMTIwNSwxODAgQEAgc3RhdGlj IHZvaWQgdGRhOTk4eF9kZXN0cm95KHN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYpCiAJaTJjX3Vu cmVnaXN0ZXJfZGV2aWNlKHByaXYtPmNlYyk7CiB9CiAKK3N0YXRpYyBpbnQgdGRhOTk4eF9hdWRp b19od19wYXJhbXMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAgIHN0cnVj dCBoZG1pX2NvZGVjX2RhaWZtdCAqZGFpZm10LAorCQkJCSAgIHN0cnVjdCBoZG1pX2NvZGVjX3Bh cmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsKKwlpbnQgaSwgcmV0OworCXN0cnVjdCB0ZGE5OTh4X2F1ZGlvX3BhcmFtcyBh dWRpbyA9IHsKKwkJLnNhbXBsZV93aWR0aCA9IHBhcmFtcy0+c2FtcGxlX3dpZHRoLAorCQkuc2Ft cGxlX3JhdGUgPSBwYXJhbXMtPnNhbXBsZV9yYXRlLAorCQkuY2VhID0gcGFyYW1zLT5jZWEsCisJ fTsKKworCWlmICghcHJpdi0+ZW5jb2Rlci5jcnRjKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCW1l bWNweShhdWRpby5zdGF0dXMsIHBhcmFtcy0+aWVjLnN0YXR1cywKKwkgICAgICAgbWluKHNpemVv ZihhdWRpby5zdGF0dXMpLCBzaXplb2YocGFyYW1zLT5pZWMuc3RhdHVzKSkpOworCisJc3dpdGNo IChkYWlmbXQtPmZtdCkgeworCWNhc2UgSERNSV9JMlM6CisJCWlmIChkYWlmbXQtPmJpdF9jbGtf aW52IHx8IGRhaWZtdC0+ZnJhbWVfY2xrX2ludiB8fAorCQkgICAgZGFpZm10LT5iaXRfY2xrX21h c3RlciB8fCBkYWlmbXQtPmZyYW1lX2Nsa19tYXN0ZXIpIHsKKwkJCWRldl9lcnIoZGV2LCAiJXM6 IEJhZCBmbGFncyAlZCAlZCAlZCAlZFxuIiwgX19mdW5jX18sCisJCQkJZGFpZm10LT5iaXRfY2xr X2ludiwgZGFpZm10LT5mcmFtZV9jbGtfaW52LAorCQkJCWRhaWZtdC0+Yml0X2Nsa19tYXN0ZXIs CisJCQkJZGFpZm10LT5mcmFtZV9jbGtfbWFzdGVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9 CisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHByaXYtPmF1ZGlvX3BvcnQpOyBpKyspCisJ CQlpZiAocHJpdi0+YXVkaW9fcG9ydFtpXS5mb3JtYXQgPT0gQUZNVF9JMlMpCisJCQkJYXVkaW8u Y29uZmlnID0gcHJpdi0+YXVkaW9fcG9ydFtpXS5jb25maWc7CisJCWF1ZGlvLmZvcm1hdCA9IEFG TVRfSTJTOworCQlicmVhazsKKwljYXNlIEhETUlfU1BESUY6CisJCWZvciAoaSA9IDA7IGkgPCBB UlJBWV9TSVpFKHByaXYtPmF1ZGlvX3BvcnQpOyBpKyspCisJCQlpZiAocHJpdi0+YXVkaW9fcG9y dFtpXS5mb3JtYXQgPT0gQUZNVF9TUERJRikKKwkJCQlhdWRpby5jb25maWcgPSBwcml2LT5hdWRp b19wb3J0W2ldLmNvbmZpZzsKKwkJYXVkaW8uZm9ybWF0ID0gQUZNVF9TUERJRjsKKwkJYnJlYWs7 CisJZGVmYXVsdDoKKwkJZGV2X2VycihkZXYsICIlczogSW52YWxpZCBmb3JtYXQgJWRcbiIsIF9f ZnVuY19fLCBkYWlmbXQtPmZtdCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChhdWRp by5jb25maWcgPT0gMCkgeworCQlkZXZfZXJyKGRldiwgIiVzOiBObyBhdWRpbyBjb25maWd1dGF0 aW9uIGZvdW5kXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldCA9 IHRkYTk5OHhfY29uZmlndXJlX2F1ZGlvKHByaXYsCisJCQkJICAgICAgJmF1ZGlvLAorCQkJCSAg ICAgIHByaXYtPmVuY29kZXIuY3J0Yy0+aHdtb2RlLmNsb2NrKTsKKworCWlmIChyZXQgPT0gMCkK KwkJcHJpdi0+YXVkaW9fcGFyYW1zID0gYXVkaW87CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0 aWMgdm9pZCB0ZGE5OTh4X2F1ZGlvX3NodXRkb3duKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSkKK3sKKwlzdHJ1Y3QgdGRhOTk4eF9wcml2ICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRl dik7CisKKwlyZWdfd3JpdGUocHJpdiwgUkVHX0VOQV9BUCwgMCk7CisKKwlwcml2LT5hdWRpb19w YXJhbXMuZm9ybWF0ID0gQUZNVF9VTlVTRUQ7Cit9CisKK2ludCB0ZGE5OTh4X2F1ZGlvX2RpZ2l0 YWxfbXV0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIGJvb2wgZW5hYmxlKQorewor CXN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCXRk YTk5OHhfYXVkaW9fbXV0ZShwcml2LCBlbmFibGUpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQgdGRhOTk4eF9hdWRpb19nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwgCisJCQkJIHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlzdHJ1Y3QgdGRhOTk4eF9w cml2ICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IGRybV9tb2RlX2NvbmZp ZyAqY29uZmlnID0gJnByaXYtPmVuY29kZXIuZGV2LT5tb2RlX2NvbmZpZzsKKwlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yOworCWludCByZXQgPSAtRU5PREVWOworCisJbXV0ZXhfbG9j aygmY29uZmlnLT5tdXRleCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZjb25m aWctPmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJCWlmICgmcHJpdi0+ZW5jb2RlciA9PSBjb25u ZWN0b3ItPmVuY29kZXIpIHsKKwkJCW1lbWNweShidWYsIGNvbm5lY3Rvci0+ZWxkLAorCQkJICAg ICAgIG1pbihzaXplb2YoY29ubmVjdG9yLT5lbGQpLCBsZW4pKTsKKwkJCXJldCA9IDA7CisJCX0K Kwl9CisJbXV0ZXhfdW5sb2NrKCZjb25maWctPm11dGV4KTsKKworCXJldHVybiByZXQ7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaGRtaV9jb2RlY19vcHMgYXVkaW9fY29kZWNfb3BzID0gewor CS5od19wYXJhbXMgPSB0ZGE5OTh4X2F1ZGlvX2h3X3BhcmFtcywKKwkuYXVkaW9fc2h1dGRvd24g PSB0ZGE5OTh4X2F1ZGlvX3NodXRkb3duLAorCS5kaWdpdGFsX211dGUgPSB0ZGE5OTh4X2F1ZGlv X2RpZ2l0YWxfbXV0ZSwKKwkuZ2V0X2VsZCA9IHRkYTk5OHhfYXVkaW9fZ2V0X2VsZCwKK307CisK K3N0YXRpYyBpbnQgdGRhOTk4eF9hdWRpb19jb2RlY19pbml0KHN0cnVjdCB0ZGE5OTh4X3ByaXYg KnByaXYsCisJCQkJICAgIHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgaGRtaV9jb2Rl Y19wZGF0YSBjb2RlY19kYXRhID0geworCQkub3BzID0gJmF1ZGlvX2NvZGVjX29wcywKKwkJLm1h eF9pMnNfY2hhbm5lbHMgPSAyLAorCX07CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShwcml2LT5hdWRpb19wb3J0KTsgaSsrKSB7CisJCWlmIChwcml2LT5hdWRpb19wb3J0 W2ldLmZvcm1hdCA9PSBBRk1UX0kyUyAmJgorCQkgICAgcHJpdi0+YXVkaW9fcG9ydFtpXS5jb25m aWcgIT0gMCkKKwkJCWNvZGVjX2RhdGEuaTJzID0gMTsKKwkJaWYgKHByaXYtPmF1ZGlvX3BvcnRb aV0uZm9ybWF0ID09IEFGTVRfU1BESUYgJiYKKwkJICAgIHByaXYtPmF1ZGlvX3BvcnRbaV0uY29u ZmlnICE9IDApCisJCQljb2RlY19kYXRhLnNwZGlmID0gMTsKKwl9CisKKwlwcml2LT5hdWRpb19w ZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2RhdGEoCisJCWRldiwgSERNSV9DT0RFQ19E UlZfTkFNRSwgUExBVEZPUk1fREVWSURfQVVUTywKKwkJJmNvZGVjX2RhdGEsIHNpemVvZihjb2Rl Y19kYXRhKSk7CisKKwlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKHByaXYtPmF1ZGlvX3BkZXYpOwor fQorCiAvKiBJMkMgZHJpdmVyIGZ1bmN0aW9ucyAqLwogCitzdGF0aWMgaW50IHRkYTk5OHhfZ2V0 X2F1ZGlvX3BvcnRzKHN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYsCisJCQkJICAgc3RydWN0IGRl dmljZV9ub2RlICpucCkKK3sKKwljb25zdCB1MzIgKnBvcnRfZGF0YTsKKwl1MzIgc2l6ZTsKKwlp bnQgaTsKKworCXBvcnRfZGF0YSA9IG9mX2dldF9wcm9wZXJ0eShucCwgImF1ZGlvLXBvcnRzIiwg JnNpemUpOworCWlmICghcG9ydF9kYXRhKQorCQlyZXR1cm4gMDsKKworCXNpemUgLz0gc2l6ZW9m KHUzMik7CisJaWYgKHNpemUgPiAyICogQVJSQVlfU0laRShwcml2LT5hdWRpb19wb3J0KSB8fCBz aXplICUgMiAhPSAwKSB7CisJCWRldl9lcnIoJnByaXYtPmhkbWktPmRldiwKKwkJCSJCYWQgbnVt YmVyIG9mIGVsZW1lbnRzIGluIGF1ZGlvLXBvcnRzIGR0LXByb3BlcnR5XG4iKTsKKwkJcmV0dXJu IC1FSU5WQUw7CisJfQorCisJc2l6ZSAvPSAyOworCisJZm9yIChpID0gMDsgaSA8IHNpemU7IGkr KykgeworCQl1OCBhZm10ID0gYmUzMl90b19jcHVwKCZwb3J0X2RhdGFbMippXSk7CisJCXU4IGVu YV9hcCA9IGJlMzJfdG9fY3B1cCgmcG9ydF9kYXRhWzIqaSsxXSk7CisKKwkJaWYgKGFmbXQgIT0g QUZNVF9TUERJRiAmJiBhZm10ICE9IEFGTVRfSTJTKSB7CisJCQlkZXZfZXJyKCZwcml2LT5oZG1p LT5kZXYsCisJCQkJIkJhZCBhdWRpbyBmb3JtYXQgJXVcbiIsIGFmbXQpOworCQkJcmV0dXJuIC1F SU5WQUw7CisJCX0KKworCQlwcml2LT5hdWRpb19wb3J0W2ldLmZvcm1hdCA9IGFmbXQ7CisJCXBy aXYtPmF1ZGlvX3BvcnRbaV0uY29uZmlnID0gZW5hX2FwOworCX0KKworCWlmIChwcml2LT5hdWRp b19wb3J0WzBdLmZvcm1hdCA9PSBwcml2LT5hdWRpb19wb3J0WzFdLmZvcm1hdCkgeworCQlkZXZf ZXJyKCZwcml2LT5oZG1pLT5kZXYsCisJCQkiVGhlcmUgY2FuIG9ubHkgYmUgb24gSTJTIHBvcnQg YW5kIG9uZSBTUERJRiBwb3J0XG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAw OworfQorCiBzdGF0aWMgaW50IHRkYTk5OHhfY3JlYXRlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGll bnQsIHN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICpu cCA9IGNsaWVudC0+ZGV2Lm9mX25vZGU7CkBAIC0xMzA1LDcgKzE0OTIsNyBAQCBzdGF0aWMgaW50 IHRkYTk5OHhfY3JlYXRlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHN0cnVjdCB0ZGE5OTh4 X3ByaXYgKnByaXYpCiAJaWYgKCFucCkKIAkJcmV0dXJuIDA7CQkvKiBub24tRFQgKi8KIAotCS8q IGdldCB0aGUgb3B0aW9uYWwgdmlkZW8gcHJvcGVydGllcyAqLworCS8qIGdldCB0aGUgZGV2aWNl IHRyZWUgcGFyYW1ldGVycyAqLwogCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAidmlk ZW8tcG9ydHMiLCAmdmlkZW8pOwogCWlmIChyZXQgPT0gMCkgewogCQlwcml2LT52aXBfY250cmxf MCA9IHZpZGVvID4+IDE2OwpAQCAtMTMxMyw4ICsxNTAwLDE0IEBAIHN0YXRpYyBpbnQgdGRhOTk4 eF9jcmVhdGUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgc3RydWN0IHRkYTk5OHhfcHJpdiAq cHJpdikKIAkJcHJpdi0+dmlwX2NudHJsXzIgPSB2aWRlbzsKIAl9CiAKLQlyZXR1cm4gMDsKKwly ZXQgPSB0ZGE5OTh4X2dldF9hdWRpb19wb3J0cyhwcml2LCBucCk7CisJaWYgKHJldCkKKwkJZ290 byBmYWlsOwogCisJaWYgKHByaXYtPmF1ZGlvX3BvcnRbMF0uZm9ybWF0ICE9IEFGTVRfVU5VU0VE KQorCQl0ZGE5OTh4X2F1ZGlvX2NvZGVjX2luaXQocHJpdiwgJmNsaWVudC0+ZGV2KTsKKworCXJl dHVybiAwOwogZmFpbDoKIAkvKiBpZiBlbmNvZGVyX2luaXQgZmFpbHMsIHRoZSBlbmNvZGVyIHNs YXZlIGlzIG5ldmVyIHJlZ2lzdGVyZWQsCiAJICogc28gY2xlYW51cCBoZXJlOgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vaTJjL3RkYTk5OHguaCBiL2luY2x1ZGUvZHJtL2kyYy90ZGE5OTh4LmgK aW5kZXggMjRiZTdhYS4uYjU3NTMzMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vaTJjL3RkYTk5 OHguaAorKysgYi9pbmNsdWRlL2RybS9pMmMvdGRhOTk4eC5oCkBAIC0xLDkgKzEsOSBAQAogI2lm bmRlZiBfX0RSTV9JMkNfVERBOTk4WF9IX18KICNkZWZpbmUgX19EUk1fSTJDX1REQTk5OFhfSF9f CiAKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9kaXNwbGF5L3RkYTk5OHguaD4KKwogI2RlZmluZSBB Rk1UX1VOVVNFRAkwCi0jZGVmaW5lIEFGTVRfU1BESUYJMQotI2RlZmluZSBBRk1UX0kyUwkyCiAK IHN0cnVjdCB0ZGE5OTh4X2F1ZGlvX3BhcmFtcyB7CiAJdTggY29uZmlnOwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kdC1iaW5kaW5ncy9kaXNwbGF5L3RkYTk5OHguaCBiL2luY2x1ZGUvZHQtYmluZGlu Z3MvZGlzcGxheS90ZGE5OTh4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MzhlZjc0MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvZGlzcGxheS90 ZGE5OTh4LmgKQEAgLTAsMCArMSw3IEBACisjaWZuZGVmIF9EVF9CSU5ESU5HU19UREE5OThYX0gK KyNkZWZpbmUgX0RUX0JJTkRJTkdTX1REQTk5OFhfSAorCisjZGVmaW5lIEFGTVRfU1BESUYJMQor I2RlZmluZSBBRk1UX0kyUwkyCisKKyNlbmRpZiAvKl9EVF9CSU5ESU5HU19UREE5OThYX0ggKi8K LS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK