From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jyri Sarha Subject: [PATCH v9 6/7] drm/i2c: tda998x: Register ASoC hdmi-codec and add audio DT binding Date: Thu, 31 Mar 2016 16:36:03 +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 Cc: peter.ujfalusi@ti.com, tony@atomide.com, broonie@kernel.org, arnaud.pouliquen@st.com, Jyri Sarha , liam.r.girdwood@linux.intel.com, tomi.valkeinen@ti.com, rmk+kernel@arm.linux.org.uk List-Id: alsa-devel@alsa-project.org UmVnaXN0ZXIgQVNvQyBIRE1JIGNvZGVjIGZvciBhdWRpbyBmdW5jdGlvbmFsaXR5IGFuZCBhZGRz IGRldmljZSB0cmVlCmJpbmRpbmcgZm9yIGF1ZGlvIGNvbmZpZ3VyYXRpb24uCgpXaXRoIHRoZSBy ZWdpc3RlcmVkIEhETUkgY29kZWMgdGhlIHRkYTk5OHggbm9kZSBjYW4gYmUgdXNlZCBsaWtlIGEK cmVndWxhciBjb2RlYyBub2RlIGluIEFTb0MgY2FyZCBjb25maWd1cmF0aW9ucy4gSERNSSBhdWRp byBpbmZvLWZyYW1lCmFuZCBhdWRpbyBzdHJlYW0gaGVhZGVyIGlzIGdlbmVyYXRlZCBieSB0aGUg QVNvQyBIRE1JIGNvZGVjLiBUaGUgY29kZWMKYWxzbyBhcHBsaWVzIGNvbnN0cmFpbnRzIGZvciBh dmFpbGFibGUgc2FtcGxlLXJhdGVzIGJhc2VkIG9uIEVkaWQgTGlrZQpEYXRhIGZyb20gdGhlIGRp c3BsYXkuIFRoZSBkZXZpY2UgdHJlZSBiaW5kaW5nIGRvY3VtZW50IGhhcyBiZWVuCnVwZGF0ZWQg WzFdLgoKUGFydCBvZiB0aGlzIHBhdGNoIGhhcyBiZWVuIGluc3BpcmVkIGJ5IEplYW4gRnJhbmNv aXNlJ3MgImRybS9pMmM6IHRkYTk5OHg6CkFkZCBzdXBwb3J0IG9mIGEgRFQgZ3JhcGggb2YgcG9y dHMiLXBhdGNoIFsyXS4gVGhlcmUgbWF5IHN0aWxsIGJlIHNvbWUKaWRlbnRpY2FsIGxpbmVzIGxl ZnQgZnJvbSB0aGUgb3JpZ2luYWwgcGF0Y2ggYW5kIHNvbWUgb2YgdGhlIGlkZWFzCmhhdmUgY29t ZSBmcm9tIHRoZXJlLgoKWzFdIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNw bGF5L2JyaWRnZS90ZGE5OTh4LnR4dApbMl0gaHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9y Zy9waXBlcm1haWwvYWxzYS1kZXZlbC8yMDE1LUp1bHkvMDk1MjU1Lmh0bWwKClNpZ25lZC1vZmYt Ynk6IEp5cmkgU2FyaGEgPGpzYXJoYUB0aS5jb20+Ci0tLQogLi4uL2RldmljZXRyZWUvYmluZGlu Z3MvZGlzcGxheS9icmlkZ2UvdGRhOTk4eC50eHQgfCAgMTggKysKIGRyaXZlcnMvZ3B1L2RybS9p MmMvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2Ry bS9pMmMvdGRhOTk4eF9kcnYuYyAgICAgICAgICAgICAgICAgIHwgMTk4ICsrKysrKysrKysrKysr KysrKysrLQogaW5jbHVkZS9kcm0vaTJjL3RkYTk5OHguaCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDQgKy0KIGluY2x1ZGUvZHQtYmluZGluZ3MvZGlzcGxheS90ZGE5OTh4LmggICAgICAg ICAgICAgIHwgICA3ICsKIDUgZmlsZXMgY2hhbmdlZCwgMjIzIGluc2VydGlvbnMoKyksIDUgZGVs 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 ZHJtL2kyYy9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2kyYy9LY29uZmlnCmluZGV4IDIyYzdl ZDYuLjA4OGYyNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvS2NvbmZpZworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTJjL0tjb25maWcKQEAgLTI4LDYgKzI4LDcgQEAgY29uZmlnIERS TV9JMkNfU0lMMTY0CiBjb25maWcgRFJNX0kyQ19OWFBfVERBOTk4WAogCXRyaXN0YXRlICJOWFAg U2VtaWNvbmR1Y3RvcnMgVERBOTk4WCBIRE1JIGVuY29kZXIiCiAJZGVmYXVsdCBtIGlmIERSTV9U SUxDREMKKwlzZWxlY3QgU05EX1NPQ19IRE1JX0NPREVDIGlmIFNORF9TT0MKIAloZWxwCiAJICBT dXBwb3J0IGZvciBOWFAgU2VtaWNvbmR1Y3RvcnMgVERBOTk4WCBIRE1JIGVuY29kZXJzLgogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMKaW5kZXggZjk3Yjc0OC4uOWQzNzQ5MyAxMDA2NDQKLS0t 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 KHByaXYtPmhkbWktPmlycSwgcHJpdik7CiAKQEAgLTExOTAsOCArMTIwNSwxNzkgQEAgc3RhdGlj IHZvaWQgdGRhOTk4eF9kZXN0cm95KHN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYpCiAJaTJjX3Vu cmVnaXN0ZXJfZGV2aWNlKHByaXYtPmNlYyk7CiB9CiAKK3N0YXRpYyBpbnQgdGRhOTk4eF9hdWRp b19od19wYXJhbXMoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCBoZG1pX2NvZGVj X2RhaWZtdCAqZGFpZm10LAorCQkJCSAgIHN0cnVjdCBoZG1pX2NvZGVjX3BhcmFtcyAqcGFyYW1z KQoreworCXN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsK KwlpbnQgaSwgcmV0OworCXN0cnVjdCB0ZGE5OTh4X2F1ZGlvX3BhcmFtcyBhdWRpbyA9IHsKKwkJ LnNhbXBsZV93aWR0aCA9IHBhcmFtcy0+c2FtcGxlX3dpZHRoLAorCQkuc2FtcGxlX3JhdGUgPSBw YXJhbXMtPnNhbXBsZV9yYXRlLAorCQkuY2VhID0gcGFyYW1zLT5jZWEsCisJfTsKKworCWlmICgh cHJpdi0+ZW5jb2Rlci5jcnRjKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCW1lbWNweShhdWRpby5z dGF0dXMsIHBhcmFtcy0+aWVjLnN0YXR1cywKKwkgICAgICAgbWluKHNpemVvZihhdWRpby5zdGF0 dXMpLCBzaXplb2YocGFyYW1zLT5pZWMuc3RhdHVzKSkpOworCisJc3dpdGNoIChkYWlmbXQtPmZt dCkgeworCWNhc2UgSERNSV9JMlM6CisJCWlmIChkYWlmbXQtPmJpdF9jbGtfaW52IHx8IGRhaWZt dC0+ZnJhbWVfY2xrX2ludiB8fAorCQkgICAgZGFpZm10LT5iaXRfY2xrX21hc3RlciB8fCBkYWlm bXQtPmZyYW1lX2Nsa19tYXN0ZXIpIHsKKwkJCWRldl9lcnIoZGV2LCAiJXM6IEJhZCBmbGFncyAl ZCAlZCAlZCAlZFxuIiwgX19mdW5jX18sCisJCQkJZGFpZm10LT5iaXRfY2xrX2ludiwgZGFpZm10 LT5mcmFtZV9jbGtfaW52LAorCQkJCWRhaWZtdC0+Yml0X2Nsa19tYXN0ZXIsCisJCQkJZGFpZm10 LT5mcmFtZV9jbGtfbWFzdGVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKHByaXYtPmF1ZGlvX3BvcnQpOyBpKyspCisJCQlpZiAocHJpdi0+ YXVkaW9fcG9ydFtpXS5mb3JtYXQgPT0gQUZNVF9JMlMpCisJCQkJYXVkaW8uY29uZmlnID0gcHJp di0+YXVkaW9fcG9ydFtpXS5jb25maWc7CisJCWF1ZGlvLmZvcm1hdCA9IEFGTVRfSTJTOworCQli cmVhazsKKwljYXNlIEhETUlfU1BESUY6CisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBy aXYtPmF1ZGlvX3BvcnQpOyBpKyspCisJCQlpZiAocHJpdi0+YXVkaW9fcG9ydFtpXS5mb3JtYXQg PT0gQUZNVF9TUERJRikKKwkJCQlhdWRpby5jb25maWcgPSBwcml2LT5hdWRpb19wb3J0W2ldLmNv bmZpZzsKKwkJYXVkaW8uZm9ybWF0ID0gQUZNVF9TUERJRjsKKwkJYnJlYWs7CisJZGVmYXVsdDoK KwkJZGV2X2VycihkZXYsICIlczogSW52YWxpZCBmb3JtYXQgJWRcbiIsIF9fZnVuY19fLCBkYWlm bXQtPmZtdCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChhdWRpby5jb25maWcgPT0g MCkgeworCQlkZXZfZXJyKGRldiwgIiVzOiBObyBhdWRpbyBjb25maWd1dGF0aW9uIGZvdW5kXG4i LCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldCA9IHRkYTk5OHhfY29u ZmlndXJlX2F1ZGlvKHByaXYsCisJCQkJICAgICAgJmF1ZGlvLAorCQkJCSAgICAgIHByaXYtPmVu Y29kZXIuY3J0Yy0+aHdtb2RlLmNsb2NrKTsKKworCWlmIChyZXQgPT0gMCkKKwkJcHJpdi0+YXVk aW9fcGFyYW1zID0gYXVkaW87CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCB0ZGE5 OTh4X2F1ZGlvX3NodXRkb3duKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdGRhOTk4 eF9wcml2ICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlyZWdfd3JpdGUocHJpdiwg UkVHX0VOQV9BUCwgMCk7CisKKwlwcml2LT5hdWRpb19wYXJhbXMuZm9ybWF0ID0gQUZNVF9VTlVT RUQ7Cit9CisKK2ludCB0ZGE5OTh4X2F1ZGlvX2RpZ2l0YWxfbXV0ZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIGJvb2wgZW5hYmxlKQoreworCXN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsKKworCXRkYTk5OHhfYXVkaW9fbXV0ZShwcml2LCBlbmFibGUpOworCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdGRhOTk4eF9hdWRpb19nZXRfZWxkKHN0cnVjdCBk ZXZpY2UgKmRldiwgdWludDhfdCAqYnVmLCBzaXplX3QgbGVuKQoreworCXN0cnVjdCB0ZGE5OTh4 X3ByaXYgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlzdHJ1Y3QgZHJtX21vZGVfY29u ZmlnICpjb25maWcgPSAmcHJpdi0+ZW5jb2Rlci5kZXYtPm1vZGVfY29uZmlnOworCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJaW50IHJldCA9IC1FTk9ERVY7CisKKwltdXRleF9s b2NrKCZjb25maWctPm11dGV4KTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmNv bmZpZy0+Y29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwkJaWYgKCZwcml2LT5lbmNvZGVyID09IGNv bm5lY3Rvci0+ZW5jb2RlcikgeworCQkJbWVtY3B5KGJ1ZiwgY29ubmVjdG9yLT5lbGQsCisJCQkg ICAgICAgbWluKHNpemVvZihjb25uZWN0b3ItPmVsZCksIGxlbikpOworCQkJcmV0ID0gMDsKKwkJ fQorCX0KKwltdXRleF91bmxvY2soJmNvbmZpZy0+bXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBoZG1pX2NvZGVjX29wcyBhdWRpb19jb2RlY19vcHMgPSB7 CisJLmh3X3BhcmFtcyA9IHRkYTk5OHhfYXVkaW9faHdfcGFyYW1zLAorCS5hdWRpb19zaHV0ZG93 biA9IHRkYTk5OHhfYXVkaW9fc2h1dGRvd24sCisJLmRpZ2l0YWxfbXV0ZSA9IHRkYTk5OHhfYXVk aW9fZGlnaXRhbF9tdXRlLAorCS5nZXRfZWxkID0gdGRhOTk4eF9hdWRpb19nZXRfZWxkLAorfTsK Kworc3RhdGljIGludCB0ZGE5OTh4X2F1ZGlvX2NvZGVjX2luaXQoc3RydWN0IHRkYTk5OHhfcHJp diAqcHJpdiwKKwkJCQkgICAgc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBoZG1pX2Nv ZGVjX3BkYXRhIGNvZGVjX2RhdGEgPSB7CisJCS5vcHMgPSAmYXVkaW9fY29kZWNfb3BzLAorCQku bWF4X2kyc19jaGFubmVscyA9IDIsCisJfTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBB UlJBWV9TSVpFKHByaXYtPmF1ZGlvX3BvcnQpOyBpKyspIHsKKwkJaWYgKHByaXYtPmF1ZGlvX3Bv cnRbaV0uZm9ybWF0ID09IEFGTVRfSTJTICYmCisJCSAgICBwcml2LT5hdWRpb19wb3J0W2ldLmNv bmZpZyAhPSAwKQorCQkJY29kZWNfZGF0YS5pMnMgPSAxOworCQlpZiAocHJpdi0+YXVkaW9fcG9y dFtpXS5mb3JtYXQgPT0gQUZNVF9TUERJRiAmJgorCQkgICAgcHJpdi0+YXVkaW9fcG9ydFtpXS5j b25maWcgIT0gMCkKKwkJCWNvZGVjX2RhdGEuc3BkaWYgPSAxOworCX0KKworCXByaXYtPmF1ZGlv X3BkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZGF0YSgKKwkJZGV2LCBIRE1JX0NPREVD X0RSVl9OQU1FLCBQTEFURk9STV9ERVZJRF9BVVRPLAorCQkmY29kZWNfZGF0YSwgc2l6ZW9mKGNv ZGVjX2RhdGEpKTsKKworCXJldHVybiBQVFJfRVJSX09SX1pFUk8ocHJpdi0+YXVkaW9fcGRldik7 Cit9CisKIC8qIEkyQyBkcml2ZXIgZnVuY3Rpb25zICovCiAKK3N0YXRpYyBpbnQgdGRhOTk4eF9n ZXRfYXVkaW9fcG9ydHMoc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdiwKKwkJCQkgICBzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wKQoreworCWNvbnN0IHUzMiAqcG9ydF9kYXRhOworCXUzMiBzaXplOwor CWludCBpOworCisJcG9ydF9kYXRhID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiYXVkaW8tcG9ydHMi LCAmc2l6ZSk7CisJaWYgKCFwb3J0X2RhdGEpCisJCXJldHVybiAwOworCisJc2l6ZSAvPSBzaXpl b2YodTMyKTsKKwlpZiAoc2l6ZSA+IDIgKiBBUlJBWV9TSVpFKHByaXYtPmF1ZGlvX3BvcnQpIHx8 IHNpemUgJSAyICE9IDApIHsKKwkJZGV2X2VycigmcHJpdi0+aGRtaS0+ZGV2LAorCQkJIkJhZCBu dW1iZXIgb2YgZWxlbWVudHMgaW4gYXVkaW8tcG9ydHMgZHQtcHJvcGVydHlcbiIpOworCQlyZXR1 cm4gLUVJTlZBTDsKKwl9CisKKwlzaXplIC89IDI7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsg aSsrKSB7CisJCXU4IGFmbXQgPSBiZTMyX3RvX2NwdXAoJnBvcnRfZGF0YVsyKmldKTsKKwkJdTgg ZW5hX2FwID0gYmUzMl90b19jcHVwKCZwb3J0X2RhdGFbMippKzFdKTsKKworCQlpZiAoYWZtdCAh PSBBRk1UX1NQRElGICYmIGFmbXQgIT0gQUZNVF9JMlMpIHsKKwkJCWRldl9lcnIoJnByaXYtPmhk bWktPmRldiwKKwkJCQkiQmFkIGF1ZGlvIGZvcm1hdCAldVxuIiwgYWZtdCk7CisJCQlyZXR1cm4g LUVJTlZBTDsKKwkJfQorCisJCXByaXYtPmF1ZGlvX3BvcnRbaV0uZm9ybWF0ID0gYWZtdDsKKwkJ cHJpdi0+YXVkaW9fcG9ydFtpXS5jb25maWcgPSBlbmFfYXA7CisJfQorCisJaWYgKHByaXYtPmF1 ZGlvX3BvcnRbMF0uZm9ybWF0ID09IHByaXYtPmF1ZGlvX3BvcnRbMV0uZm9ybWF0KSB7CisJCWRl dl9lcnIoJnByaXYtPmhkbWktPmRldiwKKwkJCSJUaGVyZSBjYW4gb25seSBiZSBvbiBJMlMgcG9y dCBhbmQgb25lIFNQRElGIHBvcnRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJcmV0dXJu IDA7Cit9CisKIHN0YXRpYyBpbnQgdGRhOTk4eF9jcmVhdGUoc3RydWN0IGkyY19jbGllbnQgKmNs aWVudCwgc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdikKIHsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUg Km5wID0gY2xpZW50LT5kZXYub2Zfbm9kZTsKQEAgLTEzMDUsNyArMTQ5MSw3IEBAIHN0YXRpYyBp bnQgdGRhOTk4eF9jcmVhdGUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgc3RydWN0IHRkYTk5 OHhfcHJpdiAqcHJpdikKIAlpZiAoIW5wKQogCQlyZXR1cm4gMDsJCS8qIG5vbi1EVCAqLwogCi0J LyogZ2V0IHRoZSBvcHRpb25hbCB2aWRlbyBwcm9wZXJ0aWVzICovCisJLyogZ2V0IHRoZSBkZXZp Y2UgdHJlZSBwYXJhbWV0ZXJzICovCiAJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJ2 aWRlby1wb3J0cyIsICZ2aWRlbyk7CiAJaWYgKHJldCA9PSAwKSB7CiAJCXByaXYtPnZpcF9jbnRy bF8wID0gdmlkZW8gPj4gMTY7CkBAIC0xMzEzLDggKzE0OTksMTQgQEAgc3RhdGljIGludCB0ZGE5 OTh4X2NyZWF0ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBzdHJ1Y3QgdGRhOTk4eF9wcml2 ICpwcml2KQogCQlwcml2LT52aXBfY250cmxfMiA9IHZpZGVvOwogCX0KIAotCXJldHVybiAwOwor CXJldCA9IHRkYTk5OHhfZ2V0X2F1ZGlvX3BvcnRzKHByaXYsIG5wKTsKKwlpZiAocmV0KQorCQln b3RvIGZhaWw7CiAKKwlpZiAocHJpdi0+YXVkaW9fcG9ydFswXS5mb3JtYXQgIT0gQUZNVF9VTlVT RUQpCisJCXRkYTk5OHhfYXVkaW9fY29kZWNfaW5pdChwcml2LCAmY2xpZW50LT5kZXYpOworCisJ cmV0dXJuIDA7CiBmYWlsOgogCS8qIGlmIGVuY29kZXJfaW5pdCBmYWlscywgdGhlIGVuY29kZXIg c2xhdmUgaXMgbmV2ZXIgcmVnaXN0ZXJlZCwKIAkgKiBzbyBjbGVhbnVwIGhlcmU6CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9pMmMvdGRhOTk4eC5oIGIvaW5jbHVkZS9kcm0vaTJjL3RkYTk5OHgu aAppbmRleCAyNGJlN2FhLi5iNTc1MzMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9pMmMvdGRh OTk4eC5oCisrKyBiL2luY2x1ZGUvZHJtL2kyYy90ZGE5OTh4LmgKQEAgLTEsOSArMSw5IEBACiAj aWZuZGVmIF9fRFJNX0kyQ19UREE5OThYX0hfXwogI2RlZmluZSBfX0RSTV9JMkNfVERBOTk4WF9I X18KIAorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Rpc3BsYXkvdGRhOTk4eC5oPgorCiAjZGVmaW5l IEFGTVRfVU5VU0VECTAKLSNkZWZpbmUgQUZNVF9TUERJRgkxCi0jZGVmaW5lIEFGTVRfSTJTCTIK IAogc3RydWN0IHRkYTk5OHhfYXVkaW9fcGFyYW1zIHsKIAl1OCBjb25maWc7CmRpZmYgLS1naXQg YS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Rpc3BsYXkvdGRhOTk4eC5oIGIvaW5jbHVkZS9kdC1iaW5k aW5ncy9kaXNwbGF5L3RkYTk5OHguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4zOGVmNzQxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9kaXNwbGF5 L3RkYTk5OHguaApAQCAtMCwwICsxLDcgQEAKKyNpZm5kZWYgX0RUX0JJTkRJTkdTX1REQTk5OFhf SAorI2RlZmluZSBfRFRfQklORElOR1NfVERBOTk4WF9ICisKKyNkZWZpbmUgQUZNVF9TUERJRgkx CisjZGVmaW5lIEFGTVRfSTJTCTIKKworI2VuZGlmIC8qX0RUX0JJTkRJTkdTX1REQTk5OFhfSCAq LwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=