From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jyri Sarha Subject: [PATCH v6 5/6] drm/i2c: tda998x: Register ASoC hdmi-codec and add audio DT binding Date: Tue, 8 Mar 2016 22:14:29 +0200 Message-ID: <7e2cd007e1ea3217c817fb4e7782b0bfe11ea56c.1457465383.git.jsarha@ti.com> 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: devicetree@vger.kernel.org UmVnaXN0ZXIgQVNvQyBIRE1JIGNvZGVjIGZvciBhdWRpbyBmdW5jdGlvbmFsaXR5IGFuZCBhZGRz IGRldmljZSB0cmVlCmJpbmRpbmcgZm9yIGF1ZGlvIGNvbmZpZ3VyYXRpb24uCgpXaXRoIHRoZSBy ZWdpc3RlcmVkIEhETUkgY29kZWMgdGhlIHRkYTk5OHggbm9kZSBjYW4gYmUgdXNlZCBsaWtlIGEK cmVndWxhciBjb2RlYyBub2RlIGluIEFTb0MgY2FyZCBjb25maWd1cmF0aW9ucy4gSERNSSBhdWRp byBpbmZvLWZyYW1lCmFuZCBhdWRpbyBzdHJlYW0gaGVhZGVyIGlzIGdlbmVyYXRlZCBieSB0aGUg QVNvQyBIRE1JIGNvZGVjLiBUaGUgY29kZWMKYWxzbyBhcHBsaWVzIGNvbnN0cmFpbnRzIGZvciBh dmFpbGFibGUgc2FtcGxlLXJhdGVzIGJhc2VkIG9uIEVkaWQgTGlrZQpEYXRhIGZyb20gdGhlIGRp c3BsYXkuIFRoZSBkZXZpY2UgdHJlZSBiaW5kaW5nIGRvY3VtZW50IGhhcyBiZWVuCnVwZGF0ZWQg WzFdLgoKUGFydCBvZiB0aGlzIHBhdGNoIGhhcyBiZWVuIGluc3BpcmVkIGJ5IEplYW4gRnJhbmNv aXNlJ3MgImRybS9pMmM6IHRkYTk5OHg6CkFkZCBzdXBwb3J0IG9mIGEgRFQgZ3JhcGggb2YgcG9y dHMiLXBhdGNoIFsyXS4gVGhlcmUgbWF5IHN0aWxsIGJlIHNvbWUKaWRlbnRpY2FsIGxpbmVzIGxl ZnQgZnJvbSB0aGUgb3JpZ2luYWwgcGF0Y2ggYW5kIHNvbWUgb2YgdGhlIGlkZWFzCmhhdmUgY29t ZSBmcm9tIHRoZXJlLgoKWzFdIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNw bGF5L2JyaWRnZS90ZGE5OTh4LnR4dApbMl0gaHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9y Zy9waXBlcm1haWwvYWxzYS1kZXZlbC8yMDE1LUp1bHkvMDk1MjU1Lmh0bWwKClNpZ25lZC1vZmYt Ynk6IEp5cmkgU2FyaGEgPGpzYXJoYUB0aS5jb20+Ci0tLQogLi4uL2RldmljZXRyZWUvYmluZGlu Z3MvZGlzcGxheS9icmlkZ2UvdGRhOTk4eC50eHQgfCAgMTggKysKIGRyaXZlcnMvZ3B1L2RybS9p MmMvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2Ry bS9pMmMvdGRhOTk4eF9kcnYuYyAgICAgICAgICAgICAgICAgIHwgMTk0ICsrKysrKysrKysrKysr KysrKysrLQogaW5jbHVkZS9kcm0vaTJjL3RkYTk5OHguaCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDQgKy0KIGluY2x1ZGUvZHQtYmluZGluZ3MvZGlzcGxheS90ZGE5OTh4LmggICAgICAg ICAgICAgIHwgICA3ICsKIDUgZmlsZXMgY2hhbmdlZCwgMjE5IGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kdC1iaW5kaW5ncy9kaXNwbGF5 L3RkYTk5OHguaAoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9kaXNwbGF5L2JyaWRnZS90ZGE5OTh4LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9kaXNwbGF5L2JyaWRnZS90ZGE5OTh4LnR4dAppbmRleCBlMTc4ZTZiLi44MTZmNmI1 IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9i cmlkZ2UvdGRhOTk4eC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L2Rpc3BsYXkvYnJpZGdlL3RkYTk5OHgudHh0CkBAIC0yMSw4ICsyMSwxOSBAQCBPcHRpb25hbCBw cm9wZXJ0aWVzOgogICAtIHZpZGVvLXBvcnRzOiAyNCBiaXRzIHZhbHVlIHdoaWNoIGRlZmluZXMg aG93IHRoZSB2aWRlbyBjb250cm9sbGVyCiAJb3V0cHV0IGlzIHdpcmVkIHRvIHRoZSBUREE5OTh4 IGlucHV0IC0gZGVmYXVsdDogPDB4MjMwMTQ1PgogCisgIC0gYXVkaW8tcG9ydHM6IGFycmF5IG9m IDgtYml0IHZhbHVlcywgMiB2YWx1ZXMgcGVyIG9uZSBEQUlbMV0uIAorCVRoZSBmaXJzdCB2YWx1 ZSBkZWZpbmVzIHRoZSBEQUkgdHlwZTogVERBOTk4eF9TUERJRiBvciBUREE5OTh4X0kyU1syXS4K KwlUaGUgc2Vjb25kIHZhbHVlIGRlZmluZXMgdGhlIHRkYTk5OHggQVBfRU5BIHJlZyBjb250ZW50 IHdoZW4gdGhlIERBSQorCWluIHF1ZXN0aW9uIGlzIHVzZWQuIFRoZSBpbXBsZW1lbnRhdGlvbiBh bGxvd3Mgb25lIG9yIHR3byBEQUlzLiBJZiB0d28KKwlEQUlzIGFyZSBkZWZpbmVkLCB0aGV5IG11 c3QgYmUgb2YgZGlmZmVyZW50IHR5cGUuCisKK1sxXSBEb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2Ev c29jL0RBSS50eHQKK1syXSBpbmNsdWRlL2R0LWJpbmRpbmdzL2Rpc3BsYXkvdGRhOTk4eC5oCisK IEV4YW1wbGU6CiAKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9kaXNwbGF5L3RkYTk5OHguaD4KKwog CXRkYTk5OHg6IGhkbWktZW5jb2RlciB7CiAJCWNvbXBhdGlibGUgPSAibnhwLHRkYTk5OHgiOwog CQlyZWcgPSA8MHg3MD47CkBAIC0zMCw0ICs0MSwxMSBAQCBFeGFtcGxlOgogCQlpbnRlcnJ1cHRz ID0gPDI3IDI+OwkJLyogZmFsbGluZyBlZGdlICovCiAJCXBpbmN0cmwtMCA9IDwmcG14X2NhbWVy YT47CiAJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJCXZpZGVvLXBvcnRzID0gPDB4MjMw MTQ1PjsKKworCQkjc291bmQtZGFpLWNlbGxzID0gPDI+OworCQkJICAgICAvKglEQUktZm9ybWF0 CUFQX0VOQSByZWcgdmFsdWUgKi8KKwkJYXVkaW8tcG9ydHMgPSA8CVREQTk5OHhfU1BESUYJMHgw NAorCQkJCVREQTk5OHhfSTJTCTB4MDM+OworCiAJfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pMmMvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9pMmMvS2NvbmZpZwppbmRleCAyMmM3 ZWQ2Li4wODhmMjc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTJjL0tjb25maWcKKysr IGIvZHJpdmVycy9ncHUvZHJtL2kyYy9LY29uZmlnCkBAIC0yOCw2ICsyOCw3IEBAIGNvbmZpZyBE Uk1fSTJDX1NJTDE2NAogY29uZmlnIERSTV9JMkNfTlhQX1REQTk5OFgKIAl0cmlzdGF0ZSAiTlhQ IFNlbWljb25kdWN0b3JzIFREQTk5OFggSERNSSBlbmNvZGVyIgogCWRlZmF1bHQgbSBpZiBEUk1f VElMQ0RDCisJc2VsZWN0IFNORF9TT0NfSERNSV9DT0RFQyBpZiBTTkRfU09DCiAJaGVscAogCSAg U3VwcG9ydCBmb3IgTlhQIFNlbWljb25kdWN0b3JzIFREQTk5OFggSERNSSBlbmNvZGVycy4KIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jCmluZGV4IDIwNmRmMGIuLmQ1NzMzNDM2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2kyYy90ZGE5OTh4X2Rydi5jCkBAIC0yMCw2ICsyMCw3IEBACiAjaW5jbHVkZSA8bGludXgv bW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAjaW5jbHVkZSA8c291bmQvYXNvdW5k ZWYuaD4KKyNpbmNsdWRlIDxzb3VuZC9oZG1pLWNvZGVjLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJt UC5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgpAQCAtMzAsNiArMzEsMTEg QEAKIAogI2RlZmluZSBEQkcoZm10LCAuLi4pIERSTV9ERUJVRyhmbXQiXG4iLCAjI19fVkFfQVJH U19fKQogCitzdHJ1Y3QgdGRhOTk4eF9hdWRpb19wb3J0IHsKKwl1OCBmb3JtYXQ7CQkvKiBBRk1U X3h4eCAqLworCXU4IGNvbmZpZzsJCS8qIEFQIHZhbHVlICovCit9OworCiBzdHJ1Y3QgdGRhOTk4 eF9wcml2IHsKIAlzdHJ1Y3QgaTJjX2NsaWVudCAqY2VjOwogCXN0cnVjdCBpMmNfY2xpZW50ICpo ZG1pOwpAQCAtNDMsNiArNDksOCBAQCBzdHJ1Y3QgdGRhOTk4eF9wcml2IHsKIAl1OCB2aXBfY250 cmxfMjsKIAlzdHJ1Y3QgdGRhOTk4eF9hdWRpb19wYXJhbXMgYXVkaW9fcGFyYW1zOwogCisJc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqYXVkaW9fcGRldjsKKwogCXdhaXRfcXVldWVfaGVhZF90IHdx X2VkaWQ7CiAJdm9sYXRpbGUgaW50IHdxX2VkaWRfd2FpdDsKIApAQCAtNTMsNiArNjEsOCBAQCBz dHJ1Y3QgdGRhOTk4eF9wcml2IHsKIAogCXN0cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOwogCXN0 cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsKKworCXN0cnVjdCB0ZGE5OTh4X2F1ZGlvX3Bv cnQgYXVkaW9fcG9ydFsyXTsKIH07CiAKICNkZWZpbmUgY29ubl90b190ZGE5OTh4X3ByaXYoeCkg XApAQCAtNzQzLDcgKzc1Myw3IEBAIHRkYTk5OHhfY29uZmlndXJlX2F1ZGlvKHN0cnVjdCB0ZGE5 OTh4X3ByaXYgKnByaXYsCiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKLQkJQlVHKCk7CisJCWRldl9l cnIoJnByaXYtPmhkbWktPmRldiwgIlVuc3VwcG9ydGVkIEkyUyBmb3JtYXRcbiIpOwogCQlyZXR1 cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTExNjAsNiArMTE3MCw4IEBAIHN0YXRpYyBpbnQgdGRhOTk4 eF9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAJ ZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7 CiAJbiA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwogCXByaXYtPmlzX2hk bWlfc2luayA9IGRybV9kZXRlY3RfaGRtaV9tb25pdG9yKGVkaWQpOworCWRybV9lZGlkX3RvX2Vs ZChjb25uZWN0b3IsIGVkaWQpOworCiAJa2ZyZWUoZWRpZCk7CiAKIAlyZXR1cm4gbjsKQEAgLTEx ODEsNiArMTE5Myw5IEBAIHN0YXRpYyB2b2lkIHRkYTk5OHhfZGVzdHJveShzdHJ1Y3QgdGRhOTk4 eF9wcml2ICpwcml2KQogCWNlY193cml0ZShwcml2LCBSRUdfQ0VDX1JYU0hQRElOVEVOQSwgMCk7 CiAJcmVnX2NsZWFyKHByaXYsIFJFR19JTlRfRkxBR1NfMiwgSU5UX0ZMQUdTXzJfRURJRF9CTEtf UkQpOwogCisJaWYgKHByaXYtPmF1ZGlvX3BkZXYpCisJCXBsYXRmb3JtX2RldmljZV91bnJlZ2lz dGVyKHByaXYtPmF1ZGlvX3BkZXYpOworCiAJaWYgKHByaXYtPmhkbWktPmlycSkKIAkJZnJlZV9p cnEocHJpdi0+aGRtaS0+aXJxLCBwcml2KTsKIApAQCAtMTE5MCw4ICsxMjA1LDE3NSBAQCBzdGF0 aWMgdm9pZCB0ZGE5OTh4X2Rlc3Ryb3koc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdikKIAlpMmNf dW5yZWdpc3Rlcl9kZXZpY2UocHJpdi0+Y2VjKTsKIH0KIAorc3RhdGljIGludCB0ZGE5OTh4X2F1 ZGlvX2h3X3BhcmFtcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgc3RydWN0IGhkbWlfY29k ZWNfZGFpZm10ICpkYWlmbXQsCisJCQkJICAgc3RydWN0IGhkbWlfY29kZWNfcGFyYW1zICpwYXJh bXMpCit7CisJc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp OworCWludCBpLCByZXQ7CisJc3RydWN0IHRkYTk5OHhfYXVkaW9fcGFyYW1zIGF1ZGlvID0gewor CQkuc2FtcGxlX3dpZHRoID0gcGFyYW1zLT5zYW1wbGVfd2lkdGgsCisJCS5zYW1wbGVfcmF0ZSA9 IHBhcmFtcy0+c2FtcGxlX3JhdGUsCisJCS5jZWEgPSBwYXJhbXMtPmNlYSwKKwl9OworCisJaWYg KCFwcml2LT5lbmNvZGVyLmNydGMpCisJCXJldHVybiAtRU5PREVWOworCisJbWVtY3B5KGF1ZGlv LnN0YXR1cywgcGFyYW1zLT5pZWMuc3RhdHVzLAorCSAgICAgICBtaW4oc2l6ZW9mKGF1ZGlvLnN0 YXR1cyksIHNpemVvZihwYXJhbXMtPmllYy5zdGF0dXMpKSk7CisKKwlzd2l0Y2ggKGRhaWZtdC0+ Zm10KSB7CisJY2FzZSBIRE1JX0kyUzoKKwkJaWYgKGRhaWZtdC0+Yml0X2Nsa19pbnYgfHwgZGFp Zm10LT5mcmFtZV9jbGtfaW52IHx8CisJCSAgICBkYWlmbXQtPmJpdF9jbGtfbWFzdGVyIHx8IGRh aWZtdC0+ZnJhbWVfY2xrX21hc3RlcikgeworCQkJZGV2X2VycihkZXYsICIlczogQmFkIGZsYWdz ICVkICVkICVkICVkXG4iLCBfX2Z1bmNfXywKKwkJCQlkYWlmbXQtPmJpdF9jbGtfaW52LCBkYWlm bXQtPmZyYW1lX2Nsa19pbnYsCisJCQkJZGFpZm10LT5iaXRfY2xrX21hc3RlciwKKwkJCQlkYWlm bXQtPmZyYW1lX2Nsa19tYXN0ZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwkJZm9yIChp ID0gMDsgaSA8IEFSUkFZX1NJWkUocHJpdi0+YXVkaW9fcG9ydCk7IGkrKykKKwkJCWlmIChwcml2 LT5hdWRpb19wb3J0W2ldLmZvcm1hdCA9PSBBRk1UX0kyUykKKwkJCQlhdWRpby5jb25maWcgPSBw cml2LT5hdWRpb19wb3J0W2ldLmNvbmZpZzsKKwkJYXVkaW8uZm9ybWF0ID0gQUZNVF9JMlM7CisJ CWJyZWFrOworCWNhc2UgSERNSV9TUERJRjoKKwkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUo cHJpdi0+YXVkaW9fcG9ydCk7IGkrKykKKwkJCWlmIChwcml2LT5hdWRpb19wb3J0W2ldLmZvcm1h dCA9PSBBRk1UX1NQRElGKQorCQkJCWF1ZGlvLmNvbmZpZyA9IHByaXYtPmF1ZGlvX3BvcnRbaV0u Y29uZmlnOworCQlhdWRpby5mb3JtYXQgPSBBRk1UX1NQRElGOworCQlicmVhazsKKwlkZWZhdWx0 OgorCQlkZXZfZXJyKGRldiwgIiVzOiBJbnZhbGlkIGZvcm1hdCAlZFxuIiwgX19mdW5jX18sIGRh aWZtdC0+Zm10KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGF1ZGlvLmNvbmZpZyA9 PSAwKSB7CisJCWRldl9lcnIoZGV2LCAiJXM6IE5vIGF1ZGlvIGNvbmZpZ3V0YXRpb24gZm91bmRc biIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gdGRhOTk4eF9j b25maWd1cmVfYXVkaW8ocHJpdiwKKwkJCQkgICAgICAmYXVkaW8sCisJCQkJICAgICAgcHJpdi0+ ZW5jb2Rlci5jcnRjLT5od21vZGUuY2xvY2spOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGlj IHZvaWQgdGRhOTk4eF9hdWRpb19zaHV0ZG93bihzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3Ry dWN0IHRkYTk5OHhfcHJpdiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJcmVnX3dy aXRlKHByaXYsIFJFR19FTkFfQVAsIDApOworfQorCitpbnQgdGRhOTk4eF9hdWRpb19kaWdpdGFs X211dGUoc3RydWN0IGRldmljZSAqZGV2LCBib29sIGVuYWJsZSkKK3sKKwlzdHJ1Y3QgdGRhOTk4 eF9wcml2ICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwl0ZGE5OTh4X2F1ZGlvX211 dGUocHJpdiwgZW5hYmxlKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRkYTk5OHhf YXVkaW9fZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IGxl bikKK3sKKwlzdHJ1Y3QgdGRhOTk4eF9wcml2ICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7 CisJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJnByaXYtPmVuY29kZXIuZGV2LT5t b2RlX2NvbmZpZzsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCWludCByZXQg PSAtRU5PREVWOworCisJbXV0ZXhfbG9jaygmY29uZmlnLT5tdXRleCk7CisJbGlzdF9mb3JfZWFj aF9lbnRyeShjb25uZWN0b3IsICZjb25maWctPmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJCWlm ICgmcHJpdi0+ZW5jb2RlciA9PSBjb25uZWN0b3ItPmVuY29kZXIpIHsKKwkJCW1lbWNweShidWYs IGNvbm5lY3Rvci0+ZWxkLAorCQkJICAgICAgIG1pbihzaXplb2YoY29ubmVjdG9yLT5lbGQpLCBs ZW4pKTsKKwkJCXJldCA9IDA7CisJCX0KKwl9CisJbXV0ZXhfdW5sb2NrKCZjb25maWctPm11dGV4 KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaGRtaV9jb2RlY19v cHMgYXVkaW9fY29kZWNfb3BzID0geworCS5od19wYXJhbXMgPSB0ZGE5OTh4X2F1ZGlvX2h3X3Bh cmFtcywKKwkuYXVkaW9fc2h1dGRvd24gPSB0ZGE5OTh4X2F1ZGlvX3NodXRkb3duLAorCS5kaWdp dGFsX211dGUgPSB0ZGE5OTh4X2F1ZGlvX2RpZ2l0YWxfbXV0ZSwKKwkuZ2V0X2VsZCA9IHRkYTk5 OHhfYXVkaW9fZ2V0X2VsZCwKK307CisKK3N0YXRpYyBpbnQgdGRhOTk4eF9hdWRpb19jb2RlY19p bml0KHN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYsCisJCQkJICAgIHN0cnVjdCBkZXZpY2UgKmRl dikKK3sKKwlzdHJ1Y3QgaGRtaV9jb2RlY19wZGF0YSBjb2RlY19kYXRhID0geworCQkub3BzID0g JmF1ZGlvX2NvZGVjX29wcywKKwkJLm1heF9pMnNfY2hhbm5lbHMgPSAyLAorCX07CisJaW50IGk7 CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwcml2LT5hdWRpb19wb3J0KTsgaSsrKSB7 CisJCWlmIChwcml2LT5hdWRpb19wb3J0W2ldLmZvcm1hdCA9PSBBRk1UX0kyUyAmJgorCQkgICAg cHJpdi0+YXVkaW9fcG9ydFtpXS5jb25maWcgIT0gMCkKKwkJCWNvZGVjX2RhdGEuaTJzID0gMTsK KwkJaWYgKHByaXYtPmF1ZGlvX3BvcnRbaV0uZm9ybWF0ID09IEFGTVRfU1BESUYgJiYKKwkJICAg IHByaXYtPmF1ZGlvX3BvcnRbaV0uY29uZmlnICE9IDApCisJCQljb2RlY19kYXRhLnNwZGlmID0g MTsKKwl9CisKKwlwcml2LT5hdWRpb19wZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2Rh dGEoCisJCWRldiwgSERNSV9DT0RFQ19EUlZfTkFNRSwgUExBVEZPUk1fREVWSURfQVVUTywKKwkJ JmNvZGVjX2RhdGEsIHNpemVvZihjb2RlY19kYXRhKSk7CisKKwlpZiAoSVNfRVJSKHByaXYtPmF1 ZGlvX3BkZXYpKQorCQlyZXR1cm4gUFRSX0VSUihwcml2LT5hdWRpb19wZGV2KTsKKworCXJldHVy biAwOworfQorCiAvKiBJMkMgZHJpdmVyIGZ1bmN0aW9ucyAqLwogCitzdGF0aWMgaW50IHRkYTk5 OHhfZ2V0X2F1ZGlvX3BvcnRzKHN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYsCisJCQkJICAgc3Ry dWN0IGRldmljZV9ub2RlICpucCkKK3sKKwljb25zdCB1MzIgKnBvcnRfZGF0YTsKKwl1MzIgc2l6 ZTsKKwlpbnQgaTsKKworCXBvcnRfZGF0YSA9IG9mX2dldF9wcm9wZXJ0eShucCwgImF1ZGlvLXBv cnRzIiwgJnNpemUpOworCXNpemUgLz0gc2l6ZW9mKHUzMik7CisKKwlpZiAoc2l6ZSA+IDIgKiBB UlJBWV9TSVpFKHByaXYtPmF1ZGlvX3BvcnQpIHx8IHNpemUgJSAyICE9IDApIHsKKwkJZGV2X2Vy cigmcHJpdi0+aGRtaS0+ZGV2LAorCQkJIkJhZCBudW1iZXIgb2YgZWxlbWVudHMgaW4gYXVkaW8t cG9ydHMgZHQtcHJvcGVydHlcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzaXplIC89 IDI7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisJCXU4IGFmbXQgPSBiZTMyX3Rv X2NwdXAoJnBvcnRfZGF0YVsyKmldKTsKKwkJdTggYXBfZW5hID0gYmUzMl90b19jcHVwKCZwb3J0 X2RhdGFbMippKzFdKTsKKworCQlpZiAoYWZtdCAhPSBBRk1UX1NQRElGICYmIGFmbXQgIT0gQUZN VF9JMlMpIHsKKwkJCWRldl9lcnIoJnByaXYtPmhkbWktPmRldiwKKwkJCQkiQmFkIGF1ZGlvIGZv cm1hdCAldVxuIiwgYWZtdCk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXByaXYtPmF1 ZGlvX3BvcnRbaV0uZm9ybWF0ID0gYWZtdDsKKwkJcHJpdi0+YXVkaW9fcG9ydFtpXS5jb25maWcg PSBhcF9lbmE7CisJfQorCisJaWYgKHByaXYtPmF1ZGlvX3BvcnRbMF0uZm9ybWF0ID09IHByaXYt PmF1ZGlvX3BvcnRbMV0uZm9ybWF0KSB7CisJCWRldl9lcnIoJnByaXYtPmhkbWktPmRldiwKKwkJ CSJUaGVyZSBjYW4gb25seSBiZSBvbiBJMlMgcG9ydCBhbmQgb25lIFNQRElGIHBvcnRcbiIpOwor CQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgdGRhOTk4 eF9jcmVhdGUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgc3RydWN0IHRkYTk5OHhfcHJpdiAq cHJpdikKIHsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gY2xpZW50LT5kZXYub2Zfbm9kZTsK QEAgLTEzMDUsNyArMTQ4Nyw3IEBAIHN0YXRpYyBpbnQgdGRhOTk4eF9jcmVhdGUoc3RydWN0IGky Y19jbGllbnQgKmNsaWVudCwgc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdikKIAlpZiAoIW5wKQog CQlyZXR1cm4gMDsJCS8qIG5vbi1EVCAqLwogCi0JLyogZ2V0IHRoZSBvcHRpb25hbCB2aWRlbyBw cm9wZXJ0aWVzICovCisJLyogZ2V0IHRoZSBkZXZpY2UgdHJlZSBwYXJhbWV0ZXJzICovCiAJcmV0 ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJ2aWRlby1wb3J0cyIsICZ2aWRlbyk7CiAJaWYg KHJldCA9PSAwKSB7CiAJCXByaXYtPnZpcF9jbnRybF8wID0gdmlkZW8gPj4gMTY7CkBAIC0xMzEz LDggKzE0OTUsMTQgQEAgc3RhdGljIGludCB0ZGE5OTh4X2NyZWF0ZShzdHJ1Y3QgaTJjX2NsaWVu dCAqY2xpZW50LCBzdHJ1Y3QgdGRhOTk4eF9wcml2ICpwcml2KQogCQlwcml2LT52aXBfY250cmxf MiA9IHZpZGVvOwogCX0KIAotCXJldHVybiAwOworCXJldCA9IHRkYTk5OHhfZ2V0X2F1ZGlvX3Bv cnRzKHByaXYsIG5wKTsKKwlpZiAocmV0KQorCQlnb3RvIGZhaWw7CiAKKwlpZiAocHJpdi0+YXVk aW9fcG9ydFswXS5mb3JtYXQgIT0gMCkKKwkJdGRhOTk4eF9hdWRpb19jb2RlY19pbml0KHByaXYs ICZjbGllbnQtPmRldik7CisKKwlyZXR1cm4gMDsKIGZhaWw6CiAJLyogaWYgZW5jb2Rlcl9pbml0 IGZhaWxzLCB0aGUgZW5jb2RlciBzbGF2ZSBpcyBuZXZlciByZWdpc3RlcmVkLAogCSAqIHNvIGNs ZWFudXAgaGVyZToKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2kyYy90ZGE5OTh4LmggYi9pbmNs dWRlL2RybS9pMmMvdGRhOTk4eC5oCmluZGV4IDI0YmU3YWEuLmI1NzUzMzIgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZHJtL2kyYy90ZGE5OTh4LmgKKysrIGIvaW5jbHVkZS9kcm0vaTJjL3RkYTk5OHgu aApAQCAtMSw5ICsxLDkgQEAKICNpZm5kZWYgX19EUk1fSTJDX1REQTk5OFhfSF9fCiAjZGVmaW5l IF9fRFJNX0kyQ19UREE5OThYX0hfXwogCisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvZGlzcGxheS90 ZGE5OTh4Lmg+CisKICNkZWZpbmUgQUZNVF9VTlVTRUQJMAotI2RlZmluZSBBRk1UX1NQRElGCTEK LSNkZWZpbmUgQUZNVF9JMlMJMgogCiBzdHJ1Y3QgdGRhOTk4eF9hdWRpb19wYXJhbXMgewogCXU4 IGNvbmZpZzsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvZGlzcGxheS90ZGE5OTh4 LmggYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Rpc3BsYXkvdGRhOTk4eC5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZWY3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRl L2R0LWJpbmRpbmdzL2Rpc3BsYXkvdGRhOTk4eC5oCkBAIC0wLDAgKzEsNyBAQAorI2lmbmRlZiBf RFRfQklORElOR1NfVERBOTk4WF9ICisjZGVmaW5lIF9EVF9CSU5ESU5HU19UREE5OThYX0gKKwor I2RlZmluZSBBRk1UX1NQRElGCTEKKyNkZWZpbmUgQUZNVF9JMlMJMgorCisjZW5kaWYgLypfRFRf QklORElOR1NfVERBOTk4WF9IICovCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==