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 1BEA0C43334 for ; Wed, 15 Jun 2022 22:50:34 +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=j/udXkoeZ0kjUapNanpyNOqqnASVDyRlvfAts7yFjrc=; b=Uwb5CFPyXTQU7c LbFzAa2KUNT1M1aXhaQWlzWC5YOlos48lCF2J8EAlq2IgHbGAznM/bpNYF7X44UDdIHSiM4zBHQVm PFGD3CFU4vcKX78Oay9fLvcSfGvWiPbuD8y4kboPiHZyVYz7XrO+H7THFiig4MtgV/weQoL3oC7P0 RLOKy3WOFnGvR3zb9Zo9k8fF6JhPHv51i7RYhFmX4a8H6Xgbcce6CbQpSsBQwi0/jgetFnHX6nSyz qpVYQRWYp9oc2V72HV+oMPOgE8oRB6LuA3z6LpX1B8FSbVZYE+CtVe3TCOXfMQgDmRTFG6+lARimO /ENYnnxApBc/RNSwFJ8Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o1bpJ-00Gjxi-QF; Wed, 15 Jun 2022 22:49:29 +0000 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o1bpG-00GjwE-AO for linux-arm-kernel@lists.infradead.org; Wed, 15 Jun 2022 22:49:28 +0000 Received: by mail-pf1-x432.google.com with SMTP id z17so12705356pff.7 for ; Wed, 15 Jun 2022 15:49:25 -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=BTgb0npZslGFqc9l4/B2gapx8GhMpIsy4i4EMeyyDr0=; b=WvQUh86qusE8PX1g7+NSCGy1cDhMQoQxF2jJKx6nYb2FRlplI+9h/aRuthtegCxFL0 ztLFvr3Y0bFc0Kmz2ph/kvL1SKumYDYqyrjTvVT3abIhD+cwsKPgbcNiqF+QrW0mFY6t ReO2vQkpTPt3BPjusfP146o55WN5YX/Fk3zMJacEILu1xw0o26oHX1xTjHKyThohZuU/ X4JwKH18igly2gUlYR06mSkoWN2fq5FikzlgsqyM7K9UF//YF+ysz6rUHkkFjRaKoaUZ Lb9MYuJulIP+BkpJyrGVkWAv3asYtMt5PYOr6L3nQ2yJ2pANC5UdRQd1P5yNzwNo+20I zPfg== 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=BTgb0npZslGFqc9l4/B2gapx8GhMpIsy4i4EMeyyDr0=; b=g1vW8olQ5jd05mnJiazwtPd+x7sAcZw3Pn1HY6NE2mUoSqx1jupzZHgWnGNoa78wob 1jyclBUJhfSqogjKxC5Fq7eGKXSMkAQSOk/kRSdgk4wBOALJ0aDlBmx3P68gdspFXfSB Vo/Bp6DIL28G6w3EuxudEhd6G4irHWwmodDdDnutBU+IW1Rfn4pkr6eOQk6hPFZxSi9M EFJI91Y6xQ4P/UOszCYgW6Ob4foXFZmgxomItWLrWT9kHJyZk4Ia6Tdh2FXKaqJCsU8T ++X3rzT1ZFqd6J2d65oCvOShQ9sepnu/TzwY66PCLwtzi0Lq1ZRvTYqDtRiSHnMlo5QA ohwA== X-Gm-Message-State: AJIora8SIIDPMbC6MnhEQ9RHi3G4FTHhQ3uq+hHa0g/XkFB5wsrIgomJ +dRCIgmB709Eop4Y1ee+UqScIg== X-Google-Smtp-Source: AGRyM1vJTWE74QAH+LAzbfgiQoQZEXpPZOfnHOlTu+phRnDTJoAfiQS6YkTfp6ogAdyvwLAJL0QVDg== X-Received: by 2002:a63:1408:0:b0:408:ab3d:9310 with SMTP id u8-20020a631408000000b00408ab3d9310mr1777949pgl.253.1655333365420; Wed, 15 Jun 2022 15:49:25 -0700 (PDT) Received: from google.com ([192.77.111.2]) by smtp.gmail.com with ESMTPSA id p24-20020aa78618000000b0051c7038bd52sm127995pfn.220.2022.06.15.15.49.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jun 2022 15:49:25 -0700 (PDT) Date: Wed, 15 Jun 2022 23:49:22 +0100 From: Lee Jones To: ChiaEn Wu Cc: jic23@kernel.org, lars@metafoo.de, matthias.bgg@gmail.com, daniel.thompson@linaro.org, jingoohan1@gmail.com, pavel@ucw.cz, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, linux-iio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-leds@vger.kernel.org, devicetree@vger.kernel.org, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org, szunichen@gmail.com, ChiYuan Huang Subject: Re: [PATCH v2 08/15] mfd: mt6370: Add Mediatek MT6370 support Message-ID: References: <20220613111146.25221-1-peterwu.pub@gmail.com> <20220613111146.25221-9-peterwu.pub@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220613111146.25221-9-peterwu.pub@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220615_154926_394436_C9B37F1C X-CRM114-Status: GOOD ( 25.86 ) 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 T24gTW9uLCAxMyBKdW4gMjAyMiwgQ2hpYUVuIFd1IHdyb3RlOgoKPiBGcm9tOiBDaGlZdWFuIEh1 YW5nIDxjeV9odWFuZ0ByaWNodGVrLmNvbT4KPiAKPiBBZGQgTWVkaWF0ZWsgTVQ2MzcwIE1GRCBz dXBwb3J0Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IENoaVl1YW4gSHVhbmcgPGN5X2h1YW5nQHJpY2h0 ZWsuY29tPgo+IC0tLQo+ICBkcml2ZXJzL21mZC9LY29uZmlnICB8ICAxMyArKwo+ICBkcml2ZXJz L21mZC9NYWtlZmlsZSB8ICAgMSArCj4gIGRyaXZlcnMvbWZkL210NjM3MC5jIHwgMzQ5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2Vk LCAzNjMgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZmQvbXQ2 MzcwLmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvS2NvbmZpZyBiL2RyaXZlcnMvbWZk L0tjb25maWcKPiBpbmRleCAzYjU5NDU2ZjU1NDUuLmQ5YTc1MjRhM2UwZSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL21mZC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9tZmQvS2NvbmZpZwo+IEBAIC05 MzcsNiArOTM3LDE5IEBAIGNvbmZpZyBNRkRfTVQ2MzYwCj4gIAkgIFBNSUMgcGFydCBpbmNsdWRl cyAyLWNoYW5uZWwgQlVDS3MgYW5kIDItY2hhbm5lbCBMRE9zCj4gIAkgIExETyBwYXJ0IGluY2x1 ZGVzIDQtY2hhbm5lbCBMRE9zCj4gIAo+ICtjb25maWcgTUZEX01UNjM3MAo+ICsJdHJpc3RhdGUg Ik1lZGlhdGVrIE1UNjM3MCBTdWJQTUlDIgo+ICsJc2VsZWN0IE1GRF9DT1JFCj4gKwlzZWxlY3Qg UkVHTUFQX0kyQwo+ICsJc2VsZWN0IFJFR01BUF9JUlEKPiArCWRlcGVuZHMgb24gSTJDCj4gKwlo ZWxwCj4gKwkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIE1UNjM3MCBTdWJQTUlDIGZ1bmN0aW9uYWwg c3VwcG9ydC4KPiArCSAgSXQgaW50ZWdyYXRlIHNpbmdsZSBjZWxsIGJhdHRlcnkgY2hhcmdlciB3 aXRoIGFkYyBtb25pdG9yaW5nLCBSR0IKCnMvaW50ZWdyYXRlcy9jb25zaXN0cyBvZiBhLwoKIkFE QyIKCj4gKwkgIExFRHMsIGR1YWwgY2hhbm5lbCBmbGFzaGxpZ2h0LCBXTEVEIGJhY2tsaWdodCBk cml2ZXIsIGRpc3BsYXkgYmlhcwoKPiArCSAgdm9sdGFnZSBzdXBwbHksIG9uZSBnZW5lcmFsIHB1 cnBvc2UgTERPLCBhbmQgY2MgbG9naWMKPiArCSAgY29udHJvbGxlciB3aXRoIFVTQlBEIGNvbW1t dW5pY2F0aW9uIGNhcGFibGUuCgpUaGUgbGFzdCBwYXJ0IG1ha2VzIG5vIHNlbnNlIC0gImFuZCBp cyBVU0JQRCI/Cgo+ICBjb25maWcgTUZEX01UNjM5Nwo+ICAJdHJpc3RhdGUgIk1lZGlhVGVrIE1U NjM5NyBQTUlDIFN1cHBvcnQiCj4gIAlzZWxlY3QgTUZEX0NPUkUKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZmQvTWFrZWZpbGUgYi9kcml2ZXJzL21mZC9NYWtlZmlsZQo+IGluZGV4IDg1OGNhY2Y2 NTlkNi4uNjJiMjcxMjU0MjBlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWZkL01ha2VmaWxlCj4g KysrIGIvZHJpdmVycy9tZmQvTWFrZWZpbGUKPiBAQCAtMjQyLDYgKzI0Miw3IEBAIG9iai0kKENP TkZJR19JTlRFTF9TT0NfUE1JQ19CWFRXQykJKz0gaW50ZWxfc29jX3BtaWNfYnh0d2Mubwo+ICBv YmotJChDT05GSUdfSU5URUxfU09DX1BNSUNfQ0hUV0MpCSs9IGludGVsX3NvY19wbWljX2NodHdj Lm8KPiAgb2JqLSQoQ09ORklHX0lOVEVMX1NPQ19QTUlDX0NIVERDX1RJKQkrPSBpbnRlbF9zb2Nf cG1pY19jaHRkY190aS5vCj4gIG9iai0kKENPTkZJR19NRkRfTVQ2MzYwKQkrPSBtdDYzNjAtY29y ZS5vCj4gK29iai0kKENPTkZJR19NRkRfTVQ2MzcwKQkrPSBtdDYzNzAubwo+ICBtdDYzOTctb2Jq cwkJCTo9IG10NjM5Ny1jb3JlLm8gbXQ2Mzk3LWlycS5vIG10NjM1OC1pcnEubwo+ICBvYmotJChD T05GSUdfTUZEX01UNjM5NykJKz0gbXQ2Mzk3Lm8KPiAgb2JqLSQoQ09ORklHX0lOVEVMX1NPQ19Q TUlDX01SRkxEKQkrPSBpbnRlbF9zb2NfcG1pY19tcmZsZC5vCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbWZkL210NjM3MC5jIGIvZHJpdmVycy9tZmQvbXQ2MzcwLmMKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNmFmOWY3M2M5YzBjCj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL2RyaXZlcnMvbWZkL210NjM3MC5jCj4gQEAgLTAsMCArMSwzNDkgQEAKPiArLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArCj4gKyNpbmNsdWRlIDxsaW51eC9iaXRz Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2ludGVycnVw dC5oPgo+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tZmQv Y29yZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9y ZWdtYXAuaD4KPiArCj4gK2VudW0gewo+ICsJTVQ2MzcwX1VTQkNfSTJDID0gMCwKPiArCU1UNjM3 MF9QTVVfSTJDLAo+ICsJTVQ2MzcwX01BWF9JMkMKPiArfTsKPiArCj4gKyNkZWZpbmUgTVQ2Mzcw X1JFR19ERVZfSU5GTwkweDEwMAo+ICsjZGVmaW5lIE1UNjM3MF9SRUdfQ0hHX0lSUTEJMHgxQzAK PiArI2RlZmluZSBNVDYzNzBfUkVHX0NIR19NQVNLMQkweDFFMAo+ICsKPiArI2RlZmluZSBNVDYz NzBfVkVOSURfTUFTSwlHRU5NQVNLKDcsIDQpCj4gKwo+ICsjZGVmaW5lIE1UNjM3MF9OVU1fSVJR UkVHUwkxNgo+ICsjZGVmaW5lIE1UNjM3MF9VU0JDX0kyQ0FERFIJMHg0RQo+ICsjZGVmaW5lIE1U NjM3MF9SRUdfQUREUkxFTgkyCj4gKyNkZWZpbmUgTVQ2MzcwX1JFR19NQVhBRERSCTB4MUZGCj4g Kwo+ICsvKiBJUlEgZGVmaW5pdGlvbnMgKi8KPiArI2RlZmluZSBNVDYzNzBfSVJRX0RJUkNIR09O CQkwCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9DSEdfVFJFRwkJNAo+ICsjZGVmaW5lIE1UNjM3MF9J UlFfQ0hHX0FJQ1IJCTUKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19NSVZSCQk2Cj4gKyNkZWZp bmUgTVQ2MzcwX0lSUV9QV1JfUkRZCQk3Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9GTF9DSEdfVklO T1ZQCTExCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9DSEdfVlNZU1VWCQkxMgo+ICsjZGVmaW5lIE1U NjM3MF9JUlFfQ0hHX1ZTWVNPVgkJMTMKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19WQkFUT1YJ CTE0Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9DSEdfVklOT1ZQQ0hHCTE1Cj4gKyNkZWZpbmUgTVQ2 MzcwX0lSUV9UU19CQVRfQ09MRAkJMjAKPiArI2RlZmluZSBNVDYzNzBfSVJRX1RTX0JBVF9DT09M CQkyMQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfVFNfQkFUX1dBUk0JCTIyCj4gKyNkZWZpbmUgTVQ2 MzcwX0lSUV9UU19CQVRfSE9UCQkyMwo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfVFNfU1RBVEMJCTI0 Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9DSEdfRkFVTFQJCTI1Cj4gKyNkZWZpbmUgTVQ2MzcwX0lS UV9DSEdfU1RBVEMJCTI2Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9DSEdfVE1SCQkyNwo+ICsjZGVm aW5lIE1UNjM3MF9JUlFfQ0hHX0JBVEFCUwkJMjgKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19B RFBCQUQJCTI5Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9DSEdfUlZQCQkzMAo+ICsjZGVmaW5lIE1U NjM3MF9JUlFfVFNIVVRET1dOCQkzMQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfQ0hHX0lJTk1FQVMJ CTMyCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9DSEdfSUNDTUVBUwkJMzMKPiArI2RlZmluZSBNVDYz NzBfSVJRX0NIR0RFVF9ET05FCQkzNAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfV0RUTVIJCTM1Cj4g KyNkZWZpbmUgTVQ2MzcwX0lSUV9TU0ZJTklTSAkJMzYKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NI R19SRUNIRwkJMzcKPiArI2RlZmluZSBNVDYzNzBfSVJRX0NIR19URVJNCQkzOAo+ICsjZGVmaW5l IE1UNjM3MF9JUlFfQ0hHX0lFT0MJCTM5Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9BRENfRE9ORQkJ NDAKPiArI2RlZmluZSBNVDYzNzBfSVJRX1BVTVBYX0RPTkUJCTQxCj4gKyNkZWZpbmUgTVQ2Mzcw X0lSUV9CU1RfQkFUVVYJCTQ1Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9CU1RfTUlET1YJCTQ2Cj4g KyNkZWZpbmUgTVQ2MzcwX0lSUV9CU1RfT0xQCQk0Nwo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfQVRU QUNICQk0OAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfREVUQUNICQk0OQo+ICsjZGVmaW5lIE1UNjM3 MF9JUlFfSFZEQ1BfU1RQRE9ORQk1MQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfSFZEQ1BfVkJVU0RF VF9ET05FCTUyCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9IVkRDUF9ERVQJCTUzCj4gKyNkZWZpbmUg TVQ2MzcwX0lSUV9DSEdERVQJCTU0Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9EQ0RUCQkJNTUKPiAr I2RlZmluZSBNVDYzNzBfSVJRX0RJUkNIR19WR09LCQk1OQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFf RElSQ0hHX1dEVE1SCQk2MAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRElSQ0hHX1VDCQk2MQo+ICsj ZGVmaW5lIE1UNjM3MF9JUlFfRElSQ0hHX09DCQk2Mgo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRElS Q0hHX09WCQk2Mwo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfT1ZQQ1RSTF9TV09OCQk2Nwo+ICsjZGVm aW5lIE1UNjM3MF9JUlFfT1ZQQ1RSTF9VVlBfRAk2OAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfT1ZQ Q1RSTF9VVlAJCTY5Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9PVlBDVFJMX09WUF9ECTcwCj4gKyNk ZWZpbmUgTVQ2MzcwX0lSUV9PVlBDVFJMX09WUAkJNzEKPiArI2RlZmluZSBNVDYzNzBfSVJRX0ZM RURfU1RSQlBJTgkJNzIKPiArI2RlZmluZSBNVDYzNzBfSVJRX0ZMRURfVE9SUElOCQk3Mwo+ICsj ZGVmaW5lIE1UNjM3MF9JUlFfRkxFRF9UWAkJNzQKPiArI2RlZmluZSBNVDYzNzBfSVJRX0ZMRURf TFZGCQk3NQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRkxFRDJfU0hPUlQJCTc4Cj4gKyNkZWZpbmUg TVQ2MzcwX0lSUV9GTEVEMV9TSE9SVAkJNzkKPiArI2RlZmluZSBNVDYzNzBfSVJRX0ZMRUQyX1NU UkIJCTgwCj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9GTEVEMV9TVFJCCQk4MQo+ICsjZGVmaW5lIG1U NjM3MF9JUlFfRkxFRDJfU1RSQl9UTwk4Mgo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRkxFRDFfU1RS Ql9UTwk4Mwo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfRkxFRDJfVE9SCQk4NAo+ICsjZGVmaW5lIE1U NjM3MF9JUlFfRkxFRDFfVE9SCQk4NQo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfT1RQCQkJOTMKPiAr I2RlZmluZSBNVDYzNzBfSVJRX1ZEREFfT1ZQCQk5NAo+ICsjZGVmaW5lIE1UNjM3MF9JUlFfVkRE QV9VVgkJOTUKPiArI2RlZmluZSBNVDYzNzBfSVJRX0xET19PQwkJMTAzCj4gKyNkZWZpbmUgTVQ2 MzcwX0lSUV9CTEVEX09DUAkJMTE4Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9CTEVEX09WUAkJMTE5 Cj4gKyNkZWZpbmUgTVQ2MzcwX0lSUV9EU1ZfVk5FR19PQ1AJCTEyMwo+ICsjZGVmaW5lIE1UNjM3 MF9JUlFfRFNWX1ZQT1NfT0NQCQkxMjQKPiArI2RlZmluZSBNVDYzNzBfSVJRX0RTVl9CU1RfT0NQ CQkxMjUKPiArI2RlZmluZSBNVDYzNzBfSVJRX0RTVl9WTkVHX1NDUAkJMTI2Cj4gKyNkZWZpbmUg TVQ2MzcwX0lSUV9EU1ZfVlBPU19TQ1AJCTEyNwo+ICsKPiArc3RydWN0IG10NjM3MF9pbmZvIHsK PiArCXN0cnVjdCBpMmNfY2xpZW50ICppMmNbTVQ2MzcwX01BWF9JMkNdOwo+ICsJc3RydWN0IGRl dmljZSAqZGV2Owo+ICsJc3RydWN0IHJlZ21hcCAqcmVnbWFwOwo+ICsJc3RydWN0IHJlZ21hcF9p cnFfY2hpcF9kYXRhICppcnFfZGF0YTsKPiArfTsKCkNhbiB3ZSBzaG92ZSBhbGwgb2YgdGhlIGFi b3ZlIGludG8gYSBoZWFkZXIgZmlsZT8KCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2ly cSBtdDYzNzBfaXJxc1tdID0gewo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RJ UkNIR09OLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9DSEdfVFJFRywg OCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfQ0hHX0FJQ1IsIDgpLAo+ICsJ UkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19NSVZSLCA4KSwKPiArCVJFR01BUF9J UlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9QV1JfUkRZLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJ TkUoTVQ2MzcwX0lSUV9GTF9DSEdfVklOT1ZQLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUo TVQ2MzcwX0lSUV9DSEdfVlNZU1VWLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2Mzcw X0lSUV9DSEdfVlNZU09WLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9D SEdfVkJBVE9WLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9DSEdfVklO T1ZQQ0hHLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9UU19CQVRfQ09M RCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfVFNfQkFUX0NPT0wsIDgp LAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX1RTX0JBVF9XQVJNLCA4KSwKPiAr CVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9UU19CQVRfSE9ULCA4KSwKPiArCVJFR01B UF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9UU19TVEFUQywgOCksCj4gKwlSRUdNQVBfSVJRX1JF R19MSU5FKE1UNjM3MF9JUlFfQ0hHX0ZBVUxULCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUo TVQ2MzcwX0lSUV9DSEdfU1RBVEMsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBf SVJRX0NIR19UTVIsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19C QVRBQlMsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19BRFBCQUQs IDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19SVlAsIDgpLAo+ICsJ UkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX1RTSFVURE9XTiwgOCksCj4gKwlSRUdNQVBf SVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfQ0hHX0lJTk1FQVMsIDgpLAo+ICsJUkVHTUFQX0lSUV9S RUdfTElORShNVDYzNzBfSVJRX0NIR19JQ0NNRUFTLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJ TkUoTVQ2MzcwX0lSUV9DSEdERVRfRE9ORSwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1U NjM3MF9JUlFfV0RUTVIsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX1NT RklOSVNILCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9DSEdfUkVDSEcs IDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0NIR19URVJNLCA4KSwKPiAr CVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9DSEdfSUVPQywgOCksCj4gKwlSRUdNQVBf SVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfQURDX0RPTkUsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdf TElORShNVDYzNzBfSVJRX1BVTVBYX0RPTkUsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShN VDYzNzBfSVJRX0JTVF9CQVRVViwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9J UlFfQlNUX01JRE9WLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9CU1Rf T0xQLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9BVFRBQ0gsIDgpLAo+ ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RFVEFDSCwgOCksCj4gKwlSRUdNQVBf SVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfSFZEQ1BfU1RQRE9ORSwgOCksCj4gKwlSRUdNQVBfSVJR X1JFR19MSU5FKE1UNjM3MF9JUlFfSFZEQ1BfVkJVU0RFVF9ET05FLCA4KSwKPiArCVJFR01BUF9J UlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9IVkRDUF9ERVQsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdf TElORShNVDYzNzBfSVJRX0NIR0RFVCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3 MF9JUlFfRENEVCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRElSQ0hH X1ZHT0ssIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RJUkNIR19XRFRN UiwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRElSQ0hHX1VDLCA4KSwK PiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9ESVJDSEdfT0MsIDgpLAo+ICsJUkVH TUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RJUkNIR19PViwgOCksCj4gKwlSRUdNQVBfSVJR X1JFR19MSU5FKE1UNjM3MF9JUlFfT1ZQQ1RSTF9TV09OLCA4KSwKPiArCVJFR01BUF9JUlFfUkVH X0xJTkUoTVQ2MzcwX0lSUV9PVlBDVFJMX1VWUF9ELCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJ TkUoTVQ2MzcwX0lSUV9PVlBDVFJMX1VWUCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1U NjM3MF9JUlFfT1ZQQ1RSTF9PVlBfRCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3 MF9JUlFfT1ZQQ1RSTF9PVlAsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJR X0ZMRURfU1RSQlBJTiwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRkxF RF9UT1JQSU4sIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0ZMRURfVFgs IDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0ZMRURfTFZGLCA4KSwKPiAr CVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9GTEVEMl9TSE9SVCwgOCksCj4gKwlSRUdN QVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRkxFRDFfU0hPUlQsIDgpLAo+ICsJUkVHTUFQX0lS UV9SRUdfTElORShNVDYzNzBfSVJRX0ZMRUQyX1NUUkIsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdf TElORShNVDYzNzBfSVJRX0ZMRUQxX1NUUkIsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORSht VDYzNzBfSVJRX0ZMRUQyX1NUUkJfVE8sIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYz NzBfSVJRX0ZMRUQxX1NUUkJfVE8sIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBf SVJRX0ZMRUQyX1RPUiwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRkxF RDFfVE9SLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9PVFAsIDgpLAo+ ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX1ZEREFfT1ZQLCA4KSwKPiArCVJFR01B UF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9WRERBX1VWLCA4KSwKPiArCVJFR01BUF9JUlFfUkVH X0xJTkUoTVQ2MzcwX0lSUV9MRE9fT0MsIDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYz NzBfSVJRX0JMRURfT0NQLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9C TEVEX09WUCwgOCksCj4gKwlSRUdNQVBfSVJRX1JFR19MSU5FKE1UNjM3MF9JUlFfRFNWX1ZORUdf T0NQLCA4KSwKPiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9EU1ZfVlBPU19PQ1As IDgpLAo+ICsJUkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RTVl9CU1RfT0NQLCA4KSwK PiArCVJFR01BUF9JUlFfUkVHX0xJTkUoTVQ2MzcwX0lSUV9EU1ZfVk5FR19TQ1AsIDgpLAo+ICsJ UkVHTUFQX0lSUV9SRUdfTElORShNVDYzNzBfSVJRX0RTVl9WUE9TX1NDUCwgOCkKPiArfTsKPiAr Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2lycV9jaGlwIG10NjM3MF9pcnFfY2hpcCA9 IHsKPiArCS5uYW1lCQk9ICJtdDYzNzAtaXJxcyIsCj4gKwkuc3RhdHVzX2Jhc2UJPSBNVDYzNzBf UkVHX0NIR19JUlExLAo+ICsJLm1hc2tfYmFzZQk9IE1UNjM3MF9SRUdfQ0hHX01BU0sxLAo+ICsJ Lm51bV9yZWdzCT0gTVQ2MzcwX05VTV9JUlFSRUdTLAo+ICsJLmlycXMJCT0gbXQ2MzcwX2lycXMs Cj4gKwkubnVtX2lycXMJPSBBUlJBWV9TSVpFKG10NjM3MF9pcnFzKSwKPiArfTsKPiArCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgbXQ2MzcwX3JlZ3VsYXRvcl9pcnFzW10gPSB7Cj4g KwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNzBfSVJRX0RTVl9WUE9TX1NDUCwgImRiX3Zwb3Nf c2NwIiksCj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNzBfSVJRX0RTVl9WTkVHX1NDUCwg ImRiX3ZuZWdfc2NwIiksCj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNzBfSVJRX0RTVl9C U1RfT0NQLCAiZGJfdmJzdF9vY3AiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM3MF9J UlFfRFNWX1ZQT1NfT0NQLCAiZGJfdnBvc19vY3AiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVE KE1UNjM3MF9JUlFfRFNWX1ZORUdfT0NQLCAiZGJfdm5lZ19vY3AiKSwKPiArCURFRklORV9SRVNf SVJRX05BTUVEKE1UNjM3MF9JUlFfTERPX09DLCAibGRvX29jIikKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgbXQ2MzcwX2RldmljZXNbXSA9IHsKPiArCU1GRF9DRUxM X09GKCJhZGMiLCBOVUxMLCBOVUxMLCAwLCAwLCAibWVkaWF0ZWssbXQ2MzcwLWFkYyIpLAo+ICsJ TUZEX0NFTExfT0YoImNoYXJnZXIiLCBOVUxMLCBOVUxMLCAwLCAwLCAibWVkaWF0ZWssbXQ2Mzcw LWNoYXJnZXIiKSwKPiArCU1GRF9DRUxMX09GKCJiYWNrbGlnaHQiLCBOVUxMLCBOVUxMLCAwLCAw LCAibWVkaWF0ZWssbXQ2MzcwLWJhY2tsaWdodCIpLAo+ICsJTUZEX0NFTExfT0YoImZsYXNobGln aHQiLCBOVUxMLCBOVUxMLCAwLCAwLCAibWVkaWF0ZWssbXQ2MzcwLWZsYXNobGlnaHQiKSwKPiAr CU1GRF9DRUxMX09GKCJpbmRpY2F0b3IiLCBOVUxMLCBOVUxMLCAwLCAwLCAibWVkaWF0ZWssbXQ2 MzcwLWluZGljYXRvciIpLAo+ICsJTUZEX0NFTExfT0YoInRjcGMiLCBOVUxMLCBOVUxMLCAwLCAw LCAibWVkaWF0ZWssbXQ2MzcwLXRjcGMiKSwKPiArCU1GRF9DRUxMX1JFUygicmVndWxhdG9yIiwg bXQ2MzcwX3JlZ3VsYXRvcl9pcnFzKQo+ICt9Owo+ICsKPiArc3RhdGljIGludCBtdDYzNzBfY2hl Y2tfdmVuZG9yX2luZm8oc3RydWN0IG10NjM3MF9pbmZvICppbmZvKQo+ICt7Cj4gKwl1bnNpZ25l ZCBpbnQgZGV2aW5mbzsKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gcmVnbWFwX3JlYWQoaW5m by0+cmVnbWFwLCBNVDYzNzBfUkVHX0RFVl9JTkZPLCAmZGV2aW5mbyk7Cj4gKwlpZiAocmV0KQo+ ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJc3dpdGNoIChGSUVMRF9HRVQoTVQ2MzcwX1ZFTklEX01B U0ssIGRldmluZm8pKSB7Cj4gKwljYXNlIDB4ODogLyogUlQ1MDgxICovCj4gKwljYXNlIDB4QTog LyogUlQ1MDgxQSAqLwo+ICsJY2FzZSAweEU6IC8qIE1UNjM3MCAqLwo+ICsJY2FzZSAweEY6IC8q IE1UNjM3MSAqLwo+ICsJY2FzZSAweDk6IC8qIE1UNjM3MlAgKi8KPiArCWNhc2UgMHhCOiAvKiBN VDYzNzJDUCAqLwoKUGxlYXNlIGRlZmluZSB0aGVzZSBhbmQgZHJvcCB0aGUgY29tbWVudHMuCgo+ ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlkZXZfZXJyKGluZm8tPmRldiwgIk5vdCBpbnZh bGlkIHZhbHVlIDB4JTAyeFxuIiwgZGV2aW5mbyk7Cj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXQ2MzcwX3JlZ21hcF9y ZWFkKHZvaWQgKmNvbnRleHQsIGNvbnN0IHZvaWQgKnJlZ19idWYsCj4gKwkJCSAgICAgIHNpemVf dCByZWdfc2l6ZSwgdm9pZCAqdmFsX2J1Ziwgc2l6ZV90IHZhbF9zaXplKQo+ICt7Cj4gKwlzdHJ1 Y3QgbXQ2MzcwX2luZm8gKmluZm8gPSBjb250ZXh0Owo+ICsJdTggYmFua19pZHggPSAqKHU4ICop cmVnX2J1ZiwgYmFua19hZGRyID0gKih1OCAqKShyZWdfYnVmICsgMSk7CgpMb29rcyBhIGxpdHRs ZSBzY3J1ZmZ5LiAgUGVyaGFwcyBhbGxvY2F0ZSB0aGUgdmFsdWVzIGJlbG93LgoKPiArCWludCBy ZXQ7Cj4gKwo+ICsJcmV0ID0gaTJjX3NtYnVzX3JlYWRfaTJjX2Jsb2NrX2RhdGEoaW5mby0+aTJj W2JhbmtfaWR4XSwgYmFua19hZGRyLAo+ICsJCQkJCSAgICB2YWxfc2l6ZSwgdmFsX2J1Zik7Cj4g KwlpZiAocmV0ICE9IHZhbF9zaXplKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0dXJuIDA7 Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXQ2MzcwX3JlZ21hcF93cml0ZSh2b2lkICpjb250ZXh0 LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgY291bnQpCj4gK3sKPiArCXN0cnVjdCBtdDYzNzBf aW5mbyAqaW5mbyA9IGNvbnRleHQ7Cj4gKwl1OCBiYW5rX2lkeCA9ICoodTggKilkYXRhLCBiYW5r X2FkZHIgPSAqKHU4ICopKGRhdGEgKyAxKTsKCkFzIGFib3ZlLgoKPiArCWludCBsZW4gPSBjb3Vu dCAtIE1UNjM3MF9SRUdfQUREUkxFTjsKPiArCj4gKwlyZXR1cm4gaTJjX3NtYnVzX3dyaXRlX2ky Y19ibG9ja19kYXRhKGluZm8tPmkyY1tiYW5rX2lkeF0sIGJhbmtfYWRkciwKPiArCQkJCQkgICAg ICBsZW4sIGRhdGEgKyBNVDYzNzBfUkVHX0FERFJMRU4pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29u c3Qgc3RydWN0IHJlZ21hcF9idXMgbXQ2MzcwX3JlZ21hcF9idXMgPSB7Cj4gKwkucmVhZAkJPSBt dDYzNzBfcmVnbWFwX3JlYWQsCj4gKwkud3JpdGUJCT0gbXQ2MzcwX3JlZ21hcF93cml0ZSwKPiAr fTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBtdDYzNzBfcmVnbWFw X2NvbmZpZyA9IHsKPiArCS5yZWdfYml0cwkJPSAxNiwKPiArCS52YWxfYml0cwkJPSA4LAo+ICsJ LnJlZ19mb3JtYXRfZW5kaWFuCT0gUkVHTUFQX0VORElBTl9CSUcsCj4gKwkubWF4X3JlZ2lzdGVy CQk9IE1UNjM3MF9SRUdfTUFYQUREUiwKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgbXQ2MzcwX3By b2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMpCj4gK3sKPiArCXN0cnVjdCBtdDYzNzBfaW5mbyAq aW5mbzsKPiArCXN0cnVjdCBpMmNfY2xpZW50ICp1c2JjX2kyYzsKPiArCWludCByZXQ7Cj4gKwo+ ICsJaW5mbyA9IGRldm1fa3phbGxvYygmaTJjLT5kZXYsIHNpemVvZigqaW5mbyksIEdGUF9LRVJO RUwpOwo+ICsJaWYgKCFpbmZvKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWluZm8tPmRl diA9ICZpMmMtPmRldjsKPiArCj4gKwl1c2JjX2kyYyA9IGRldm1faTJjX25ld19kdW1teV9kZXZp Y2UoJmkyYy0+ZGV2LCBpMmMtPmFkYXB0ZXIsCj4gKwkJCQkJICAgICBNVDYzNzBfVVNCQ19JMkNB RERSKTsKPiArCWlmIChJU19FUlIodXNiY19pMmMpKSB7Cj4gKwkJcmV0ID0gUFRSX0VSUih1c2Jj X2kyYyk7Cj4gKwkJZGV2X2VycigmaTJjLT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXNiYyBp MmMgY2xpZW50ICVkXG4iLCByZXQpOwoKIlVTQi1DIEkyQyI/Cgo+ICsJCXJldHVybiByZXQ7Cj4g Kwl9Cj4gKwo+ICsJLyogQXNzaWduIEkyQyBjbGllbnQgZm9yIFBNVSBhbmQgVHlwZUMgKi8KPiAr CWluZm8tPmkyY1tNVDYzNzBfUE1VX0kyQ10gPSBpMmM7Cj4gKwlpbmZvLT5pMmNbTVQ2MzcwX1VT QkNfSTJDXSA9IHVzYmNfaTJjOwo+ICsKPiArCWluZm8tPnJlZ21hcCA9IGRldm1fcmVnbWFwX2lu aXQoJmkyYy0+ZGV2LCAmbXQ2MzcwX3JlZ21hcF9idXMsIGluZm8sCj4gKwkJCQkJJm10NjM3MF9y ZWdtYXBfY29uZmlnKTsKPiArCWlmIChJU19FUlIoaW5mby0+cmVnbWFwKSkgewo+ICsJCXJldCA9 IFBUUl9FUlIoaW5mby0+cmVnbWFwKTsKPiArCQlkZXZfZXJyKCZpMmMtPmRldiwgIkZhaWxlZCB0 byByZWdpc3RlciByZWdtYXAgKCVkKVxuIiwgcmV0KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ ICsKPiArCXJldCA9IG10NjM3MF9jaGVja192ZW5kb3JfaW5mbyhpbmZvKTsKPiArCWlmIChyZXQp IHsKPiArCQlkZXZfZXJyKCZpMmMtPmRldiwgIkZhaWxlZCB0byBjaGVjayB2ZW5kb3IgaW5mbyAo JWQpXG4iLCByZXQpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gZGV2bV9y ZWdtYXBfYWRkX2lycV9jaGlwKCZpMmMtPmRldiwgaW5mby0+cmVnbWFwLCBpMmMtPmlycSwKPiAr CQkJCSAgICAgICBJUlFGX09ORVNIT1QsIC0xLCAmbXQ2MzcwX2lycV9jaGlwLAo+ICsJCQkJICAg ICAgICZpbmZvLT5pcnFfZGF0YSk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJZGV2X2VycigmaTJjLT5k ZXYsICJGYWlsZWQgdG8gYWRkIGlycSBjaGlwICglZClcbiIsIHJldCk7Cj4gKwkJcmV0dXJuIHJl dDsKPiArCX0KPiArCj4gKwlyZXR1cm4gZGV2bV9tZmRfYWRkX2RldmljZXMoJmkyYy0+ZGV2LCBQ TEFURk9STV9ERVZJRF9BVVRPLAo+ICsJCQkJICAgIG10NjM3MF9kZXZpY2VzLCBBUlJBWV9TSVpF KG10NjM3MF9kZXZpY2VzKSwKPiArCQkJCSAgICBOVUxMLCAwLAo+ICsJCQkJICAgIHJlZ21hcF9p cnFfZ2V0X2RvbWFpbihpbmZvLT5pcnFfZGF0YSkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qg c3RydWN0IG9mX2RldmljZV9pZCBtdDYzNzBfbWF0Y2hfdGFibGVbXSA9IHsKPiArCXsgLmNvbXBh dGlibGUgPSAibWVkaWF0ZWssbXQ2MzcwIiwgfSwKPiArCXt9Cj4gK307Cj4gK01PRFVMRV9ERVZJ Q0VfVEFCTEUob2YsIG10NjM3MF9tYXRjaF90YWJsZSk7Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGky Y19kcml2ZXIgbXQ2MzcwX2RyaXZlciA9IHsKPiArCS5kcml2ZXIgPSB7Cj4gKwkJLm5hbWUgPSAi bXQ2MzcwIiwKPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBtdDYzNzBfbWF0Y2hfdGFibGUsCj4gKwl9 LAo+ICsJLnByb2JlX25ldyA9IG10NjM3MF9wcm9iZSwKPiArfTsKPiArbW9kdWxlX2kyY19kcml2 ZXIobXQ2MzcwX2RyaXZlcik7Cj4gKwo+ICtNT0RVTEVfQVVUSE9SKCJDaGlZdWFuIEh1YW5nIDxj eV9odWFuZ0ByaWNodGVrLmNvbT4iKTsKPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJNVDYzNzAgSTJD IE1GRCBEcml2ZXIiKTsKCkRyb3AgYWxsIHJlZmVyZW5jZXMgdG8gIk1GRCIgcGxlYXNlLgoKPiAr TU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwoKLS0gCkxlZSBKb25lcyBb5p2O55C85pavXQpQcmlu Y2lwYWwgVGVjaG5pY2FsIExlYWQgLSBEZXZlbG9wZXIgU2VydmljZXMKTGluYXJvLm9yZyDilIIg T3BlbiBzb3VyY2Ugc29mdHdhcmUgZm9yIEFybSBTb0NzCkZvbGxvdyBMaW5hcm86IEZhY2Vib29r IHwgVHdpdHRlciB8IEJsb2cKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK