From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 23516C43334 for ; Tue, 12 Jul 2022 15:30:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5o9hGxen67Ts7ErvDUaAU7OH6SU1CG1JMS/KiVvTnSw=; b=z9hug6s6owvGbX OUc6hH+hUIuVS60S3qWZVwzpj83Krd2NnmF4eBxkNOMoNG4WuW5MgMnvSNzp4l3WLIJknkK7nKPav NJlJK07oG/215Od4Xf3Ljmm5C141mJ8vM/pdqKMeqb4AQw7nbgGJpfe8x8Jzs42/Lc+0cOQIFbF4R Odey5p0jWh9RwyjDNFI24/APG91jiq8J/QSz42WkAIwt/8gRe54Xv1NuN9JsB8V7uN/P06W4U1fdn FKLYqxt+qpttYN3Z4Oaxa0/tN0OtbkbrCQ+y55JEzxUS4hg2pVRUusPdyfw2EV/5Gh5uuM5zbVCZ3 ghW61cDmoNqWWNOnU9qg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oBHpO-00C8WO-AE; Tue, 12 Jul 2022 15:29:34 +0000 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oBHpI-00C8Is-KS for linux-arm-kernel@lists.infradead.org; Tue, 12 Jul 2022 15:29:31 +0000 Received: by mail-wr1-x435.google.com with SMTP id bu1so10498426wrb.9 for ; Tue, 12 Jul 2022 08:29:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=Q+JH/qWaiP2eJjuYW7C2uW3S0RkJ71Ub5nbWi6ekYbU=; b=OczFGqywfdpy/mS2TpodOJOjuQVYsPEbYTpYSvI59PBCT2BHt/vguhiU3Z+P/25Xy1 NX12SAQIPHWI4v65pWrdKecJzJ1ZGNsVrm4p4CkSKIuywvfuizpOzZ9Wqb5Jt0s0UHBp T5PS8SW072ViH7TP9Q1PP6fDrZJHGcvg2WmV6fg5I4zrNV3XGkuRlHjgoLdrxTGYU28w Z87I9ucdUZ9RkKjmGgpr804KkfSTtYBOnSa8OCgcdq8A7jMi3r48eOJ1/nJefL8+oJ9R cLWhrGedBVWmNXkrHud8KRNz7PKK4gOV5vdbwVuBC3Im5EaXVYsYxBfTlWzC718rBE5u DBkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Q+JH/qWaiP2eJjuYW7C2uW3S0RkJ71Ub5nbWi6ekYbU=; b=DDUVpQcgcu3d79MRCc4UOkkuLC2SRnbAQNB+eq7yAxzirb7LXr/aKnhdpsURvp2yTM Z0bXSDazu8KlZ3etf1+upDu0O6Z6bUzrKJdKQtPbF33Oq5PgPoJSua998dHBxyPPZI08 13YCaNHQDeB9GRL/113FWplWZrUp+tJIsR3WbaDwat9yRj4hjiii6uq8w3QXw02fkQGR J9I4c8vR+Kk7Sal4EMYZcLkqw+kXsjcfYiw3PHyAu2109KTdpZ2bcQoonN3nNdjDJ2DS n54b6BwA44SoXQZ+6madFMzZ9RpamKUjiSs1SuLyyoe+2XX4tZnScCSp/0GvTViKPM4O 9R0Q== X-Gm-Message-State: AJIora+N//XcFU/If0hzFDGGbLfCUwJoYVJpsDAbJDxpR0IC2hqPgqu0 SRGtNiTwCmJOa6BwT+nrA14pBQ== X-Google-Smtp-Source: AGRyM1uSLPcm2Pav8BPF3Jx+Guud3701li2mH9y8hYpZuHdD2WZOCC/W4swCDeXJTVRAPp66ckDPSg== X-Received: by 2002:a5d:414a:0:b0:21d:6be5:1765 with SMTP id c10-20020a5d414a000000b0021d6be51765mr22980167wrq.419.1657639761463; Tue, 12 Jul 2022 08:29:21 -0700 (PDT) Received: from google.com (cpc155339-bagu17-2-0-cust87.1-3.cable.virginm.net. [86.27.177.88]) by smtp.gmail.com with ESMTPSA id ay26-20020a05600c1e1a00b003a2e89d1fb5sm5149242wmb.42.2022.07.12.08.29.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Jul 2022 08:29:20 -0700 (PDT) Date: Tue, 12 Jul 2022 16:29:18 +0100 From: Lee Jones To: ChiaEn Wu Cc: daniel.thompson@linaro.org, jingoohan1@gmail.com, pavel@ucw.cz, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, matthias.bgg@gmail.com, sre@kernel.org, chunfeng.yun@mediatek.com, gregkh@linuxfoundation.org, jic23@kernel.org, lars@metafoo.de, lgirdwood@gmail.com, broonie@kernel.org, linux@roeck-us.net, heikki.krogerus@linux.intel.com, deller@gmx.de, chiaen_wu@richtek.com, alice_chen@richtek.com, cy_huang@richtek.com, dri-devel@lists.freedesktop.org, linux-leds@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, linux-iio@vger.kernel.org, linux-fbdev@vger.kernel.org, szunichen@gmail.com Subject: Re: [PATCH v3 07/14] mfd: mt6370: Add Mediatek MT6370 support Message-ID: References: <20220623115631.22209-1-peterwu.pub@gmail.com> <20220623115631.22209-8-peterwu.pub@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220623115631.22209-8-peterwu.pub@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220712_082928_690036_E94A865F X-CRM114-Status: GOOD ( 27.15 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCAyMyBKdW4gMjAyMiwgQ2hpYUVuIFd1IHdyb3RlOgoKPiBGcm9tOiBDaGlZdWFuIEh1 YW5nIDxjeV9odWFuZ0ByaWNodGVrLmNvbT4KPiAKPiBBZGQgTWVkaWF0ZWsgTVQ2MzcwIE1GRCBz dXBwb3J0LgoKTm8gc3VjaCB0aGluZyBhcyAiTUZEIHN1cHBvcnQiLgoKQW5kIHlvdSdyZSBub3Qg Z2V0dGluZyBhd2F5IHdpdGggc3VibWl0dGluZyBhIDM3MCBsaW5lIHBhdGNoIHdpdGggYSA1Cndv cmQgY2hhbmdlIGxvZyBlaXRoZXIuIDopCgpQbGVhc2UgYXQgbGVhc3QgdGVsbCB1cyB3aGF0IHRo ZSBkZXZpY2UgaXMgYW5kIHdoYXQgaXQncyB1c2VkIGZvci4KCj4gU2lnbmVkLW9mZi1ieTogQ2hp WXVhbiBIdWFuZyA8Y3lfaHVhbmdAcmljaHRlay5jb20+Cj4gLS0tCj4gCj4gdjMKPiAtIFJlZmlu ZSBLY29uZmlnIGhlbHAgdGV4dAo+IC0gUmVmaW5lIGVycm9yIG1lc3NhZ2Ugb2YgdW5rbm93biB2 ZW5kb3IgSUQgaW4KPiAgIG10NjM3MF9jaGVja192ZW5kb3JfaW5mbygpCj4gLSBSZWZpbmUgcmV0 dXJuIHZhbHVlIGhhbmRsaW5nIG9mIG10NjM3MF9yZWdtYXBfcmVhZCgpCj4gLSBSZWZpbmUgYWxs IHByb2JlIGVycm9yIGJ5IHVzaW5nIGRldl9lcnJfcHJvYmUoKQo+IC0gUmVmaW5lICJiYW5rX2lk eCIgYW5kICJiYW5rX2FkZHIiIGluIG10NjM3MF9yZWdtYXBfcmVhZCgpIGFuZAo+ICAgbXQ2Mzcw X3JlZ21hcF93cml0ZSgpCj4gLSBBZGQgIiNkZWZpbmUgVkVOSUQqIiBhbmQgZHJvcCB0aGUgY29t bWVudHMgaW4KPiAgIG10NjM3MF9jaGVja192ZW5kb3JfaW5mbygpCj4gLSBEcm9wICJNRkQiIGlu IE1PRFVMRV9ERVNDUklQVElPTigpCj4gLS0tCj4gIGRyaXZlcnMvbWZkL0tjb25maWcgIHwgIDEz ICsrCj4gIGRyaXZlcnMvbWZkL01ha2VmaWxlIHwgICAxICsKPiAgZHJpdmVycy9tZmQvbXQ2Mzcw LmMgfCAzNTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMzcyIGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvbWZkL210NjM3MC5jCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZk L0tjb25maWcgYi9kcml2ZXJzL21mZC9LY29uZmlnCj4gaW5kZXggM2I1OTQ1Ni4uNGM5MDBjNCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL21mZC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9tZmQvS2Nv bmZpZwo+IEBAIC05MzcsNiArOTM3LDE5IEBAIGNvbmZpZyBNRkRfTVQ2MzYwCj4gIAkgIFBNSUMg cGFydCBpbmNsdWRlcyAyLWNoYW5uZWwgQlVDS3MgYW5kIDItY2hhbm5lbCBMRE9zCj4gIAkgIExE TyBwYXJ0IGluY2x1ZGVzIDQtY2hhbm5lbCBMRE9zCj4gIAo+ICtjb25maWcgTUZEX01UNjM3MAo+ ICsJdHJpc3RhdGUgIk1lZGlhdGVrIE1UNjM3MCBTdWJQTUlDIgo+ICsJc2VsZWN0IE1GRF9DT1JF Cj4gKwlzZWxlY3QgUkVHTUFQX0kyQwo+ICsJc2VsZWN0IFJFR01BUF9JUlEKPiArCWRlcGVuZHMg b24gSTJDCj4gKwloZWxwCj4gKwkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIE1UNjM3MCBTdWJQTUlD IGZ1bmN0aW9uYWwgc3VwcG9ydC4KPiArCSAgSXQgY29uc2lzdHMgb2YgYSBzaW5nbGUgY2VsbCBi YXR0ZXJ5IGNoYXJnZXIgd2l0aCBBREMgbW9uaXRvcmluZywgUkdCCj4gKwkgIExFRHMsIGR1YWwg Y2hhbm5lbCBmbGFzaGxpZ2h0LCBXTEVEIGJhY2tsaWdodCBkcml2ZXIsIGRpc3BsYXkgYmlhcwo+ ICsJICB2b2x0YWdlIHN1cHBseSwgb25lIGdlbmVyYWwgcHVycG9zZSBMRE8sIGFuZCB0aGUgVVNC IFR5cGUtQyAmIFBECj4gKwkgIGNvbnRyb2xsZXIgY29tcGxpZXMgd2l0aCB0aGUgbGF0ZXN0IFVT QiBUeXBlLUMgYW5kIFBEIHN0YW5kYXJkcy4KPiArCj4gIGNvbmZpZyBNRkRfTVQ2Mzk3Cj4gIAl0 cmlzdGF0ZSAiTWVkaWFUZWsgTVQ2Mzk3IFBNSUMgU3VwcG9ydCIKPiAgCXNlbGVjdCBNRkRfQ09S RQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9NYWtlZmlsZSBiL2RyaXZlcnMvbWZkL01ha2Vm aWxlCj4gaW5kZXggODU4Y2FjZi4uNjJiMjcxMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21mZC9N YWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvbWZkL01ha2VmaWxlCj4gQEAgLTI0Miw2ICsyNDIsNyBA QCBvYmotJChDT05GSUdfSU5URUxfU09DX1BNSUNfQlhUV0MpCSs9IGludGVsX3NvY19wbWljX2J4 dHdjLm8KPiAgb2JqLSQoQ09ORklHX0lOVEVMX1NPQ19QTUlDX0NIVFdDKQkrPSBpbnRlbF9zb2Nf cG1pY19jaHR3Yy5vCj4gIG9iai0kKENPTkZJR19JTlRFTF9TT0NfUE1JQ19DSFREQ19USSkJKz0g aW50ZWxfc29jX3BtaWNfY2h0ZGNfdGkubwo+ICBvYmotJChDT05GSUdfTUZEX01UNjM2MCkJKz0g bXQ2MzYwLWNvcmUubwo+ICtvYmotJChDT05GSUdfTUZEX01UNjM3MCkJKz0gbXQ2MzcwLm8KPiAg bXQ2Mzk3LW9ianMJCQk6PSBtdDYzOTctY29yZS5vIG10NjM5Ny1pcnEubyBtdDYzNTgtaXJxLm8K PiAgb2JqLSQoQ09ORklHX01GRF9NVDYzOTcpCSs9IG10NjM5Ny5vCj4gIG9iai0kKENPTkZJR19J TlRFTF9TT0NfUE1JQ19NUkZMRCkJKz0gaW50ZWxfc29jX3BtaWNfbXJmbGQubwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL21mZC9tdDYzNzAuYyBiL2RyaXZlcnMvbWZkL210NjM3MC5jCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi40OWYwMmIxCj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL2RyaXZlcnMvbWZkL210NjM3MC5jCj4gQEAgLTAsMCArMSwzNTggQEAKPiArLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKCk5vIENvcHlyaWdodD8KCj4gKyNpbmNsdWRl IDxsaW51eC9iaXRzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KPiArI2luY2x1ZGUgPGxp bnV4L2ludGVycnVwdC5oPgo+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gKyNpbmNsdWRl IDxsaW51eC9tZmQvY29yZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9yZWdtYXAuaD4KPiArCj4gK2VudW0gewo+ICsJTVQ2MzcwX1VTQkNfSTJDID0g MCwKPiArCU1UNjM3MF9QTVVfSTJDLAo+ICsJTVQ2MzcwX01BWF9JMkMKPiArfTsKPiArCj4gKyNk ZWZpbmUgTVQ2MzcwX1JFR19ERVZfSU5GTwkweDEwMAo+ICsjZGVmaW5lIE1UNjM3MF9SRUdfQ0hH X0lSUTEJMHgxQzAKPiArI2RlZmluZSBNVDYzNzBfUkVHX0NIR19NQVNLMQkweDFFMAo+ICsKPiAr I2RlZmluZSBNVDYzNzBfVkVOSURfTUFTSwlHRU5NQVNLKDcsIDQpCj4gKwo+ICsjZGVmaW5lIE1U NjM3MF9OVU1fSVJRUkVHUwkxNgo+ICsjZGVmaW5lIE1UNjM3MF9VU0JDX0kyQ0FERFIJMHg0RQo+ ICsjZGVmaW5lIE1UNjM3MF9SRUdfQUREUkxFTgkyCj4gKyNkZWZpbmUgTVQ2MzcwX1JFR19NQVhB RERSCTB4MUZGCj4gKwo+ICsjZGVmaW5lIE1UNjM3MF9WRU5JRF9SVDUwODEJMHg4Cj4gKyNkZWZp bmUgTVQ2MzcwX1ZFTklEX1JUNTA4MUEJMHhBCj4gKyNkZWZpbmUgTVQ2MzcwX1ZFTklEX01UNjM3 MAkweEUKPiArI2RlZmluZSBNVDYzNzBfVkVOSURfTVQ2MzcxCTB4Rgo+ICsjZGVmaW5lIE1UNjM3 MF9WRU5JRF9NVDYzNzJQCTB4OQo+ICsjZGVmaW5lIE1UNjM3MF9WRU5JRF9NVDYzNzJDUAkweEIK PiArCj4gKy8qIElSUSBkZWZpbml0aW9ucyAqLwo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRElSQ0hH T04JCTAKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19UUkVHCQk0Cj4gKyNkZWZpbmUgTVQ2Mzcw X0lSUV9DSEdfQUlDUgkJNQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfQ0hHX01JVlIJCTYKPiArI2Rl ZmluZSBNVDYzNzBfSVJRX1BXUl9SRFkJCTcKPiArI2RlZmluZSBNVDYzNzBfSVJRX0ZMX0NIR19W SU5PVlAJMTEKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19WU1lTVVYJCTEyCj4gKyNkZWZpbmUg TVQ2MzcwX0lSUV9DSEdfVlNZU09WCQkxMwo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfQ0hHX1ZCQVRP VgkJMTQKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19WSU5PVlBDSEcJMTUKPiArI2RlZmluZSBN VDYzNzBfSVJRX1RTX0JBVF9DT0xECQkyMAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfVFNfQkFUX0NP T0wJCTIxCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9UU19CQVRfV0FSTQkJMjIKPiArI2RlZmluZSBN VDYzNzBfSVJRX1RTX0JBVF9IT1QJCTIzCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9UU19TVEFUQwkJ MjQKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19GQVVMVAkJMjUKPiArI2RlZmluZSBNVDYzNzBf SVJRX0NIR19TVEFUQwkJMjYKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19UTVIJCTI3Cj4gKyNk ZWZpbmUgTVQ2MzcwX0lSUV9DSEdfQkFUQUJTCQkyOAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfQ0hH X0FEUEJBRAkJMjkKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19SVlAJCTMwCj4gKyNkZWZpbmUg TVQ2MzcwX0lSUV9UU0hVVERPV04JCTMxCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9DSEdfSUlOTUVB UwkJMzIKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19JQ0NNRUFTCQkzMwo+ICsjZGVmaW5lIE1U NjM3MF9JUlFfQ0hHREVUX0RPTkUJCTM0Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9XRFRNUgkJMzUK PiArI2RlZmluZSBNVDYzNzBfSVJRX1NTRklOSVNICQkzNgo+ICsjZGVmaW5lIE1UNjM3MF9JUlFf Q0hHX1JFQ0hHCQkzNwo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfQ0hHX1RFUk0JCTM4Cj4gKyNkZWZp bmUgTVQ2MzcwX0lSUV9DSEdfSUVPQwkJMzkKPiArI2RlZmluZSBNVDYzNzBfSVJRX0FEQ19ET05F CQk0MAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfUFVNUFhfRE9ORQkJNDEKPiArI2RlZmluZSBNVDYz NzBfSVJRX0JTVF9CQVRVVgkJNDUKPiArI2RlZmluZSBNVDYzNzBfSVJRX0JTVF9NSURPVgkJNDYK PiArI2RlZmluZSBNVDYzNzBfSVJRX0JTVF9PTFAJCTQ3Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9B VFRBQ0gJCTQ4Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9ERVRBQ0gJCTQ5Cj4gKyNkZWZpbmUgTVQ2 MzcwX0lSUV9IVkRDUF9TVFBET05FCTUxCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9IVkRDUF9WQlVT REVUX0RPTkUJNTIKPiArI2RlZmluZSBNVDYzNzBfSVJRX0hWRENQX0RFVAkJNTMKPiArI2RlZmlu ZSBNVDYzNzBfSVJRX0NIR0RFVAkJNTQKPiArI2RlZmluZSBNVDYzNzBfSVJRX0RDRFQJCQk1NQo+ ICsjZGVmaW5lIE1UNjM3MF9JUlFfRElSQ0hHX1ZHT0sJCTU5Cj4gKyNkZWZpbmUgTVQ2MzcwX0lS UV9ESVJDSEdfV0RUTVIJCTYwCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9ESVJDSEdfVUMJCTYxCj4g KyNkZWZpbmUgTVQ2MzcwX0lSUV9ESVJDSEdfT0MJCTYyCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9E SVJDSEdfT1YJCTYzCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9PVlBDVFJMX1NXT04JCTY3Cj4gKyNk ZWZpbmUgTVQ2MzcwX0lSUV9PVlBDVFJMX1VWUF9ECTY4Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9P VlBDVFJMX1VWUAkJNjkKPiArI2RlZmluZSBNVDYzNzBfSVJRX09WUENUUkxfT1ZQX0QJNzAKPiAr I2RlZmluZSBNVDYzNzBfSVJRX09WUENUUkxfT1ZQCQk3MQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFf RkxFRF9TVFJCUElOCQk3Mgo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRkxFRF9UT1JQSU4JCTczCj4g KyNkZWZpbmUgTVQ2MzcwX0lSUV9GTEVEX1RYCQk3NAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRkxF RF9MVkYJCTc1Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9GTEVEMl9TSE9SVAkJNzgKPiArI2RlZmlu ZSBNVDYzNzBfSVJRX0ZMRUQxX1NIT1JUCQk3OQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRkxFRDJf U1RSQgkJODAKPiArI2RlZmluZSBNVDYzNzBfSVJRX0ZMRUQxX1NUUkIJCTgxCj4gKyNkZWZpbmUg bVQ2MzcwX0lSUV9GTEVEMl9TVFJCX1RPCTgyCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9GTEVEMV9T VFJCX1RPCTgzCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9GTEVEMl9UT1IJCTg0Cj4gKyNkZWZpbmUg TVQ2MzcwX0lSUV9GTEVEMV9UT1IJCTg1Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9PVFAJCQk5Mwo+ ICsjZGVmaW5lIE1UNjM3MF9JUlFfVkREQV9PVlAJCTk0Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9W RERBX1VWCQk5NQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfTERPX09DCQkxMDMKPiArI2RlZmluZSBN VDYzNzBfSVJRX0JMRURfT0NQCQkxMTgKPiArI2RlZmluZSBNVDYzNzBfSVJRX0JMRURfT1ZQCQkx MTkKPiArI2RlZmluZSBNVDYzNzBfSVJRX0RTVl9WTkVHX09DUAkJMTIzCj4gKyNkZWZpbmUgTVQ2 MzcwX0lSUV9EU1ZfVlBPU19PQ1AJCTEyNAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRFNWX0JTVF9P Q1AJCTEyNQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRFNWX1ZORUdfU0NQCQkxMjYKPiArI2RlZmlu ZSBNVDYzNzBfSVJRX0RTVl9WUE9TX1NDUAkJMTI3CgpDYW4geW91IHBvcCB0aGVzZSBpbnRvIGEg aGVhZGVyIGZpbGUgcGxlYXNlPwoKPiArc3RydWN0IG10NjM3MF9pbmZvIHsKPiArCXN0cnVjdCBp MmNfY2xpZW50ICppMmNbTVQ2MzcwX01BWF9JMkNdOwo+ICsJc3RydWN0IGRldmljZSAqZGV2OwoK WW91IGRvbid0IG5lZWQgYm90aCAnaTJjJyBhbmQgJ2RldicuCgpZb3UgY2FuIGRlcml2ZSBvbmUg ZnJvbSB0aGUgb3RoZXIuCgo+ICsJc3RydWN0IHJlZ21hcCAqcmVnbWFwOwo+ICsJc3RydWN0IHJl Z21hcF9pcnFfY2hpcF9kYXRhICppcnFfZGF0YTsKPiArfTsKClRoaXMgY2FuIGRvIGludG8gdGhl IGhlYWRlciBmaWxlIHRvby4KCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2lycSBtdDYz NzBfaXJxc1tdID0gewo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RJUkNIR09O LCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9DSEdfVFJFRywgOCksCj4g KwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfQ0hHX0FJQ1IsIDgpLAo+ICsJUkVHTUFQ X0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19NSVZSLCA4KSwKPiArCVJFR01BUF9JUlFfUkVH X0xJTkUoTVQ2MzcwX0lSUV9QV1JfUkRZLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2 MzcwX0lSUV9GTF9DSEdfVklOT1ZQLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2Mzcw X0lSUV9DSEdfVlNZU1VWLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9D SEdfVlNZU09WLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9DSEdfVkJB VE9WLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9DSEdfVklOT1ZQQ0hH LCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9UU19CQVRfQ09MRCwgOCks Cj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfVFNfQkFUX0NPT0wsIDgpLAo+ICsJ UkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX1RTX0JBVF9XQVJNLCA4KSwKPiArCVJFR01B UF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9UU19CQVRfSE9ULCA4KSwKPiArCVJFR01BUF9JUlFf UkVHX0xJTkUoTVQ2MzcwX0lSUV9UU19TVEFUQywgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5F KE1UNjM3MF9JUlFfQ0hHX0ZBVUxULCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2Mzcw X0lSUV9DSEdfU1RBVEMsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NI R19UTVIsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19CQVRBQlMs IDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19BRFBCQUQsIDgpLAo+ ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19SVlAsIDgpLAo+ICsJUkVHTUFQ X0lSUV9SRUdfTElORShNVDYzNzBfSVJRX1RTSFVURE9XTiwgOCksCj4gKwlSRUdNQVBfSVJRX1JF R19MSU5FKE1UNjM3MF9JUlFfQ0hHX0lJTk1FQVMsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElO RShNVDYzNzBfSVJRX0NIR19JQ0NNRUFTLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2 MzcwX0lSUV9DSEdERVRfRE9ORSwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9J UlFfV0RUTVIsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX1NTRklOSVNI LCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9DSEdfUkVDSEcsIDgpLAo+ ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19URVJNLCA4KSwKPiArCVJFR01B UF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9DSEdfSUVPQywgOCksCj4gKwlSRUdNQVBfSVJRX1JF R19MSU5FKE1UNjM3MF9JUlFfQURDX0RPTkUsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShN VDYzNzBfSVJRX1BVTVBYX0RPTkUsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBf SVJRX0JTVF9CQVRVViwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfQlNU X01JRE9WLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9CU1RfT0xQLCA4 KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9BVFRBQ0gsIDgpLAo+ICsJUkVH TUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RFVEFDSCwgOCksCj4gKwlSRUdNQVBfSVJRX1JF R19MSU5FKE1UNjM3MF9JUlFfSFZEQ1BfU1RQRE9ORSwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19M SU5FKE1UNjM3MF9JUlFfSFZEQ1BfVkJVU0RFVF9ET05FLCA4KSwKPiArCVJFR01BUF9JUlFfUkVH X0xJTkUoTVQ2MzcwX0lSUV9IVkRDUF9ERVQsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShN VDYzNzBfSVJRX0NIR0RFVCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFf RENEVCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRElSQ0hHX1ZHT0ss IDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RJUkNIR19XRFRNUiwgOCks Cj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRElSQ0hHX1VDLCA4KSwKPiArCVJF R01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9ESVJDSEdfT0MsIDgpLAo+ICsJUkVHTUFQX0lS UV9SRUdfTElORShNVDYzNzBfSVJRX0RJUkNIR19PViwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19M SU5FKE1UNjM3MF9JUlFfT1ZQQ1RSTF9TV09OLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUo TVQ2MzcwX0lSUV9PVlBDVFJMX1VWUF9ELCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2 MzcwX0lSUV9PVlBDVFJMX1VWUCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9J UlFfT1ZQQ1RSTF9PVlBfRCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFf T1ZQQ1RSTF9PVlAsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0ZMRURf U1RSQlBJTiwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRkxFRF9UT1JQ SU4sIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0ZMRURfVFgsIDgpLAo+ ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0ZMRURfTFZGLCA4KSwKPiArCVJFR01B UF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9GTEVEMl9TSE9SVCwgOCksCj4gKwlSRUdNQVBfSVJR X1JFR19MSU5FKE1UNjM3MF9JUlFfRkxFRDFfU0hPUlQsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdf TElORShNVDYzNzBfSVJRX0ZMRUQyX1NUUkIsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShN VDYzNzBfSVJRX0ZMRUQxX1NUUkIsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShtVDYzNzBf SVJRX0ZMRUQyX1NUUkJfVE8sIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJR X0ZMRUQxX1NUUkJfVE8sIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0ZM RUQyX1RPUiwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRkxFRDFfVE9S LCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9PVFAsIDgpLAo+ICsJUkVH TUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX1ZEREFfT1ZQLCA4KSwKPiArCVJFR01BUF9JUlFf UkVHX0xJTkUoTVQ2MzcwX0lSUV9WRERBX1VWLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUo TVQ2MzcwX0lSUV9MRE9fT0MsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJR X0JMRURfT0NQLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9CTEVEX09W UCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRFNWX1ZORUdfT0NQLCA4 KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9EU1ZfVlBPU19PQ1AsIDgpLAo+ ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RTVl9CU1RfT0NQLCA4KSwKPiArCVJF R01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9EU1ZfVk5FR19TQ1AsIDgpLAo+ICsJUkVHTUFQ X0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RTVl9WUE9TX1NDUCwgOCkKPiArfTsKPiArCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2lycV9jaGlwIG10NjM3MF9pcnFfY2hpcCA9IHsKPiAr CS5uYW1lCQk9ICJtdDYzNzAtaXJxcyIsCj4gKwkuc3RhdHVzX2Jhc2UJPSBNVDYzNzBfUkVHX0NI R19JUlExLAo+ICsJLm1hc2tfYmFzZQk9IE1UNjM3MF9SRUdfQ0hHX01BU0sxLAo+ICsJLm51bV9y ZWdzCT0gTVQ2MzcwX05VTV9JUlFSRUdTLAo+ICsJLmlycXMJCT0gbXQ2MzcwX2lycXMsCj4gKwku bnVtX2lycXMJPSBBUlJBWV9TSVpFKG10NjM3MF9pcnFzKSwKPiArfTsKPiArCj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgcmVzb3VyY2UgbXQ2MzcwX3JlZ3VsYXRvcl9pcnFzW10gPSB7Cj4gKwlERUZJ TkVfUkVTX0lSUV9OQU1FRChNVDYzNzBfSVJRX0RTVl9WUE9TX1NDUCwgImRiX3Zwb3Nfc2NwIiks Cj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNzBfSVJRX0RTVl9WTkVHX1NDUCwgImRiX3Zu ZWdfc2NwIiksCj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNzBfSVJRX0RTVl9CU1RfT0NQ LCAiZGJfdmJzdF9vY3AiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM3MF9JUlFfRFNW X1ZQT1NfT0NQLCAiZGJfdnBvc19vY3AiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM3 MF9JUlFfRFNWX1ZORUdfT0NQLCAiZGJfdm5lZ19vY3AiKSwKPiArCURFRklORV9SRVNfSVJRX05B TUVEKE1UNjM3MF9JUlFfTERPX09DLCAibGRvX29jIikKPiArfTsKPiArCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgbWZkX2NlbGwgbXQ2MzcwX2RldmljZXNbXSA9IHsKPiArCU1GRF9DRUxMX09GKCJh ZGMiLCBOVUxMLCBOVUxMLCAwLCAwLCAibWVkaWF0ZWssbXQ2MzcwLWFkYyIpLAo+ICsJTUZEX0NF TExfT0YoImNoYXJnZXIiLCBOVUxMLCBOVUxMLCAwLCAwLCAibWVkaWF0ZWssbXQ2MzcwLWNoYXJn ZXIiKSwKPiArCU1GRF9DRUxMX09GKCJiYWNrbGlnaHQiLCBOVUxMLCBOVUxMLCAwLCAwLCAibWVk aWF0ZWssbXQ2MzcwLWJhY2tsaWdodCIpLAo+ICsJTUZEX0NFTExfT0YoImZsYXNobGlnaHQiLCBO VUxMLCBOVUxMLCAwLCAwLCAibWVkaWF0ZWssbXQ2MzcwLWZsYXNobGlnaHQiKSwKPiArCU1GRF9D RUxMX09GKCJpbmRpY2F0b3IiLCBOVUxMLCBOVUxMLCAwLCAwLCAibWVkaWF0ZWssbXQ2MzcwLWlu ZGljYXRvciIpLAo+ICsJTUZEX0NFTExfT0YoInRjcGMiLCBOVUxMLCBOVUxMLCAwLCAwLCAibWVk aWF0ZWssbXQ2MzcwLXRjcGMiKSwKPiArCU1GRF9DRUxMX1JFUygicmVndWxhdG9yIiwgbXQ2Mzcw X3JlZ3VsYXRvcl9pcnFzKQoKVGhlIGZpcnN0IHBhcmFtZXRlcnMgaGVyZSBzaG91bGQgYmUgcHJl cGVuZGVkIHdpdGggc29tZXRoaW5nLCBwZXJoYXBzCiJtdDYzNzBfIj8KCj4gK307Cj4gKwo+ICtz dGF0aWMgaW50IG10NjM3MF9jaGVja192ZW5kb3JfaW5mbyhzdHJ1Y3QgbXQ2MzcwX2luZm8gKmlu Zm8pCj4gK3sKPiArCXVuc2lnbmVkIGludCBkZXZpbmZvOwo+ICsJaW50IHJldDsKPiArCj4gKwly ZXQgPSByZWdtYXBfcmVhZChpbmZvLT5yZWdtYXAsIE1UNjM3MF9SRUdfREVWX0lORk8sICZkZXZp bmZvKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlzd2l0Y2ggKEZJRUxE X0dFVChNVDYzNzBfVkVOSURfTUFTSywgZGV2aW5mbykpIHsKPiArCWNhc2UgTVQ2MzcwX1ZFTklE X1JUNTA4MToKPiArCWNhc2UgTVQ2MzcwX1ZFTklEX1JUNTA4MUE6Cj4gKwljYXNlIE1UNjM3MF9W RU5JRF9NVDYzNzA6Cj4gKwljYXNlIE1UNjM3MF9WRU5JRF9NVDYzNzE6Cj4gKwljYXNlIE1UNjM3 MF9WRU5JRF9NVDYzNzJQOgo+ICsJY2FzZSBNVDYzNzBfVkVOSURfTVQ2MzcyQ1A6Cj4gKwkJYnJl YWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCWRldl9lcnIoaW5mby0+ZGV2LCAiVW5rbm93biBWZW5kb3Ig SUQgMHglMDJ4XG4iLCBkZXZpbmZvKTsKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCX0KPiArCj4g KwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBtdDYzNzBfcmVnbWFwX3JlYWQodm9p ZCAqY29udGV4dCwgY29uc3Qgdm9pZCAqcmVnX2J1ZiwKPiArCQkJICAgICAgc2l6ZV90IHJlZ19z aXplLCB2b2lkICp2YWxfYnVmLCBzaXplX3QgdmFsX3NpemUpCj4gK3sKPiArCXN0cnVjdCBtdDYz NzBfaW5mbyAqaW5mbyA9IGNvbnRleHQ7Cj4gKwl1OCBiYW5rX2lkeCwgYmFua19hZGRyOwo+ICsJ aW50IHJldDsKPiArCj4gKwliYW5rX2lkeCA9ICoodTggKilyZWdfYnVmOwo+ICsJYmFua19hZGRy ID0gKih1OCAqKShyZWdfYnVmICsgMSk7Cj4gKwo+ICsJcmV0ID0gaTJjX3NtYnVzX3JlYWRfaTJj X2Jsb2NrX2RhdGEoaW5mby0+aTJjW2JhbmtfaWR4XSwgYmFua19hZGRyLAo+ICsJCQkJCSAgICB2 YWxfc2l6ZSwgdmFsX2J1Zik7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsJ ZWxzZSBpZiAocmV0ICE9IHZhbF9zaXplKQo+ICsJCXJldHVybiAtRUlPOwo+ICsKPiArCXJldHVy biAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG10NjM3MF9yZWdtYXBfd3JpdGUodm9pZCAqY29u dGV4dCwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGNvdW50KQo+ICt7Cj4gKwlzdHJ1Y3QgbXQ2 MzcwX2luZm8gKmluZm8gPSBjb250ZXh0Owo+ICsJdTggYmFua19pZHgsIGJhbmtfYWRkcjsKPiAr CWludCBsZW4gPSBjb3VudCAtIE1UNjM3MF9SRUdfQUREUkxFTjsKPiArCj4gKwliYW5rX2lkeCA9 ICoodTggKilkYXRhOwo+ICsJYmFua19hZGRyID0gKih1OCAqKShkYXRhICsgMSk7Cj4gKwo+ICsJ cmV0dXJuIGkyY19zbWJ1c193cml0ZV9pMmNfYmxvY2tfZGF0YShpbmZvLT5pMmNbYmFua19pZHhd LCBiYW5rX2FkZHIsCj4gKwkJCQkJICAgICAgbGVuLCBkYXRhICsgTVQ2MzcwX1JFR19BRERSTEVO KTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfYnVzIG10NjM3MF9yZWdt YXBfYnVzID0gewo+ICsJLnJlYWQJCT0gbXQ2MzcwX3JlZ21hcF9yZWFkLAo+ICsJLndyaXRlCQk9 IG10NjM3MF9yZWdtYXBfd3JpdGUsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJl Z21hcF9jb25maWcgbXQ2MzcwX3JlZ21hcF9jb25maWcgPSB7Cj4gKwkucmVnX2JpdHMJCT0gMTYs Cj4gKwkudmFsX2JpdHMJCT0gOCwKPiArCS5yZWdfZm9ybWF0X2VuZGlhbgk9IFJFR01BUF9FTkRJ QU5fQklHLAo+ICsJLm1heF9yZWdpc3RlcgkJPSBNVDYzNzBfUkVHX01BWEFERFIsCj4gK307Cj4g Kwo+ICtzdGF0aWMgaW50IG10NjM3MF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjKQo+ICt7 Cj4gKwlzdHJ1Y3QgbXQ2MzcwX2luZm8gKmluZm87Cj4gKwlzdHJ1Y3QgaTJjX2NsaWVudCAqdXNi Y19pMmM7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWluZm8gPSBkZXZtX2t6YWxsb2MoJmkyYy0+ZGV2 LCBzaXplb2YoKmluZm8pLCBHRlBfS0VSTkVMKTsKPiArCWlmICghaW5mbykKPiArCQlyZXR1cm4g LUVOT01FTTsKPiArCj4gKwlpbmZvLT5kZXYgPSAmaTJjLT5kZXY7Cj4gKwo+ICsJdXNiY19pMmMg PSBkZXZtX2kyY19uZXdfZHVtbXlfZGV2aWNlKCZpMmMtPmRldiwgaTJjLT5hZGFwdGVyLAo+ICsJ CQkJCSAgICAgTVQ2MzcwX1VTQkNfSTJDQUREUik7Cj4gKwlpZiAoSVNfRVJSKHVzYmNfaTJjKSkK PiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmaTJjLT5kZXYsIFBUUl9FUlIodXNiY19pMmMpLAo+ ICsJCQkJICAgICAiRmFpbGVkIHRvIHJlZ2lzdGVyIFVTQkMgSTJDIGNsaWVudFxuIik7Cj4gKwo+ ICsJLyogQXNzaWduIEkyQyBjbGllbnQgZm9yIFBNVSBhbmQgVHlwZUMgKi8KPiArCWluZm8tPmky Y1tNVDYzNzBfUE1VX0kyQ10gPSBpMmM7Cj4gKwlpbmZvLT5pMmNbTVQ2MzcwX1VTQkNfSTJDXSA9 IHVzYmNfaTJjOwo+ICsKPiArCWluZm8tPnJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoJmkyYy0+ ZGV2LCAmbXQ2MzcwX3JlZ21hcF9idXMsIGluZm8sCj4gKwkJCQkJJm10NjM3MF9yZWdtYXBfY29u ZmlnKTsKCkFwYXJ0IGZyb20gaW4gbXQ2MzcwX2NoZWNrX3ZlbmRvcl9pbmZvKCkgd2hlcmUgaXMg dGhpcyBhY3R1YWxseSB1c2VkPwoKPiArCWlmIChJU19FUlIoaW5mby0+cmVnbWFwKSkKPiArCQly ZXR1cm4gZGV2X2Vycl9wcm9iZSgmaTJjLT5kZXYsIFBUUl9FUlIoaW5mby0+cmVnbWFwKSwKPiAr CQkJCSAgICAgIkZhaWxlZCB0byByZWdpc3RlciByZWdtYXBcbiIpOwo+ICsKPiArCXJldCA9IG10 NjM3MF9jaGVja192ZW5kb3JfaW5mbyhpbmZvKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIGRl dl9lcnJfcHJvYmUoJmkyYy0+ZGV2LCByZXQsCj4gKwkJCQkgICAgICJGYWlsZWQgdG8gY2hlY2sg dmVuZG9yIGluZm9cbiIpOwo+ICsKPiArCXJldCA9IGRldm1fcmVnbWFwX2FkZF9pcnFfY2hpcCgm aTJjLT5kZXYsIGluZm8tPnJlZ21hcCwgaTJjLT5pcnEsCj4gKwkJCQkgICAgICAgSVJRRl9PTkVT SE9ULCAtMSwgJm10NjM3MF9pcnFfY2hpcCwKPiArCQkJCSAgICAgICAmaW5mby0+aXJxX2RhdGEp Owo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmaTJjLT5kZXYsIHJldCwK PiArCQkJCSAgICAgIkZhaWxlZCB0byBhZGQgaXJxIGNoaXBcbiIpOwo+ICsKPiArCXJldHVybiBk ZXZtX21mZF9hZGRfZGV2aWNlcygmaTJjLT5kZXYsIFBMQVRGT1JNX0RFVklEX0FVVE8sCj4gKwkJ CQkgICAgbXQ2MzcwX2RldmljZXMsIEFSUkFZX1NJWkUobXQ2MzcwX2RldmljZXMpLAo+ICsJCQkJ ICAgIE5VTEwsIDAsCj4gKwkJCQkgICAgcmVnbWFwX2lycV9nZXRfZG9tYWluKGluZm8tPmlycV9k YXRhKSk7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NjM3 MF9tYXRjaF90YWJsZVtdID0gewo+ICsJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDYzNzAi LCB9LAo+ICsJe30KPiArfTsKPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXQ2MzcwX21hdGNo X3RhYmxlKTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBtdDYzNzBfZHJpdmVyID0g ewo+ICsJLmRyaXZlciA9IHsKPiArCQkubmFtZSA9ICJtdDYzNzAiLAo+ICsJCS5vZl9tYXRjaF90 YWJsZSA9IG10NjM3MF9tYXRjaF90YWJsZSwKPiArCX0sCj4gKwkucHJvYmVfbmV3ID0gbXQ2Mzcw X3Byb2JlLAo+ICt9Owo+ICttb2R1bGVfaTJjX2RyaXZlcihtdDYzNzBfZHJpdmVyKTsKPiArCj4g K01PRFVMRV9BVVRIT1IoIkNoaVl1YW4gSHVhbmcgPGN5X2h1YW5nQHJpY2h0ZWsuY29tPiIpOwo+ ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1UNjM3MCBJMkMgRHJpdmVyIik7CgpUaGlzIGlzIG5vdCBh biBJMkMgZHJpdmVyLgoKPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwoKLS0gCkxlZSBKb25l cyBb5p2O55C85pavXQpQcmluY2lwYWwgVGVjaG5pY2FsIExlYWQgLSBEZXZlbG9wZXIgU2Vydmlj ZXMKTGluYXJvLm9yZyDilIIgT3BlbiBzb3VyY2Ugc29mdHdhcmUgZm9yIEFybSBTb0NzCkZvbGxv dyBMaW5hcm86IEZhY2Vib29rIHwgVHdpdHRlciB8IEJsb2cKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0 CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK