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 6E4B7C27C43 for ; Thu, 30 May 2024 12:48:55 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=sOXwLXLw/I5JSLAx5ZqyYN1qwM/R4urUsq2WlESa5IE=; b=gqptVUxucJyQiR f/61GXzobkfmzanBNh/TkuN2co/YzqxAAVAThP1lIRhmchKUrCZ9MpGDDMnRSMDzoxylQw0lQgMge Az5huNnZKFQ9FS45OHNLMWdRi3FFTxL7VnHvQZsv+PVzdMhuN6uVbQ/N2jQLdZEYtUhtmGaDeoItq 5JLS6h3/7tjCU9Vs/xG4DcDIlJxemn0JFEVVWa4VPhz9LuTsZRfBvuPX3u4FnAU8B3Fn5j7ztf27c mSijv7w1VsxFSXrbjkSE3C+rWFKZ4d5zm0oQYu287FPVXmozDu9gTLH8Ak/m8qSCjMx4z2NcJPJ+X YsOMw/DGpcMB9BnFHoZg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sCfCx-00000007HJG-4B3V; Thu, 30 May 2024 12:48:40 +0000 Received: from madrid.collaboradmins.com ([46.235.227.194]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sCfCu-00000007HFw-1MjT; Thu, 30 May 2024 12:48:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1717073309; bh=OP6XRog4cE88wYyTXoF/8qzQ5XybwFBKMvY44sDP6tg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=0lOOhjDCGvhvKpRBJ/3tS866RbqNldDgB/AdLjHOSplmEAD1NddLepyromD58JEIm aIiut8ql2U2I69qnJROphoaKZptWc8+FSmBmxs/f/qGcyrQutRkt8on0N4KInkJ6ET JCkbum2LsZ3iFtmAVPJA6UNrB3Oi7ZxDqeMEVdK3EUOE3JvSrEWbjE06DbDXF07MdE sFH662HcsxZcimCVFbQtb1cKeVH+/RpZX5rlV7OgT2WLPLoe7lQ7fMPL79KsUq+iD/ /vVsWPX/lEjEGxOd0y2tOjl1mZWTarVn1E/Qafprk5Ty8fmeAHeJ4FStntJ8538Oox 6VJSqIKHdisKg== Received: from [100.113.186.2] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madrid.collaboradmins.com (Postfix) with ESMTPSA id 9DEF637821AD; Thu, 30 May 2024 12:48:28 +0000 (UTC) Message-ID: <0e5a5b36-6969-416d-9a16-6c71d7986c73@collabora.com> Date: Thu, 30 May 2024 14:48:28 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/6] clk: mediatek: Add mt8173-mfgtop driver To: Chen-Yu Tsai Cc: Frank Binns , Matt Coster , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org References: <20240530083513.4135052-1-wenst@chromium.org> <20240530083513.4135052-3-wenst@chromium.org> <5a5842d7-adad-410b-bac2-9e5cb03ae18c@collabora.com> From: AngeloGioacchino Del Regno Content-Language: en-US In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240530_054836_762443_83CB4D72 X-CRM114-Status: GOOD ( 36.03 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SWwgMzAvMDUvMjQgMTI6MTYsIENoZW4tWXUgVHNhaSBoYSBzY3JpdHRvOgo+IE9uIFRodSwgTWF5 IDMwLCAyMDI0IGF0IDU6NTnigK9QTSBBbmdlbG9HaW9hY2NoaW5vIERlbCBSZWdubwo+IDxhbmdl bG9naW9hY2NoaW5vLmRlbHJlZ25vQGNvbGxhYm9yYS5jb20+IHdyb3RlOgo+Pgo+PiBJbCAzMC8w NS8yNCAxMDozNSwgQ2hlbi1ZdSBUc2FpIGhhIHNjcml0dG86Cj4+PiBUaGUgTUZHIChHUFUpIGJs b2NrIG9uIHRoZSBNVDgxNzMgaGFzIGEgc21hbGwgZ2x1ZSBsYXllciwgbmFtZWQgTUZHX1RPUAo+ Pj4gaW4gdGhlIGRhdGFzaGVldCwgdGhhdCBjb250YWlucyBjbG9jayBnYXRlcywgc29tZSBwb3dl ciBzZXF1ZW5jZSBzaWduYWwKPj4+IGRlbGF5cywgYW5kIG90aGVyIHVua25vd24gcmVnaXN0ZXJz IHRoYXQgZ2V0IHRvZ2dsZWQgd2hlbiB0aGUgR1BVIGlzCj4+PiBwb3dlcmVkIG9uLgo+Pj4KPj4+ IFRoZSBjbG9jayBnYXRlcyBhcmUgZXhwb3NlZCBhcyBjbG9ja3MgcHJvdmlkZWQgYnkgYSBjbG9j ayBjb250cm9sbGVyLAo+Pj4gd2hpbGUgdGhlIHBvd2VyIHNlcXVlbmNpbmcgYml0cyBhcmUgZXhw b3NlZCBhcyBvbmUgc2luZ3VsYXIgcG93ZXIgZG9tYWluLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6 IENoZW4tWXUgVHNhaSA8d2Vuc3RAY2hyb21pdW0ub3JnPgo+Pj4gLS0tCj4+PiAgICBkcml2ZXJz L2Nsay9tZWRpYXRlay9LY29uZmlnICAgICAgICAgICAgIHwgICA5ICsKPj4+ICAgIGRyaXZlcnMv Y2xrL21lZGlhdGVrL01ha2VmaWxlICAgICAgICAgICAgfCAgIDEgKwo+Pj4gICAgZHJpdmVycy9j bGsvbWVkaWF0ZWsvY2xrLW10ODE3My1tZmd0b3AuYyB8IDI0MCArKysrKysrKysrKysrKysrKysr KysrKwo+Pj4gICAgMyBmaWxlcyBjaGFuZ2VkLCAyNTAgaW5zZXJ0aW9ucygrKQo+Pj4gICAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDgxNzMtbWZndG9wLmMK Pj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvS2NvbmZpZyBiL2RyaXZl cnMvY2xrL21lZGlhdGVrL0tjb25maWcKPj4+IGluZGV4IDcwYTAwNWU3ZTFiMS4uOWUyNzljNzM5 ZjFjIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvS2NvbmZpZwo+Pj4gKysr IGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvS2NvbmZpZwo+Pj4gQEAgLTUwMCw2ICs1MDAsMTUgQEAg Y29uZmlnIENPTU1PTl9DTEtfTVQ4MTczX0lNR1NZUwo+Pj4gICAgICAgIGhlbHAKPj4+ICAgICAg ICAgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1lZGlhVGVrIE1UODE3MyBpbWdzeXMgY2xvY2tzLgo+ Pj4KPj4+ICtjb25maWcgQ09NTU9OX0NMS19NVDgxNzNfTUZHVE9QCj4+PiArICAgICB0cmlzdGF0 ZSAiQ2xvY2sgYW5kIHBvd2VyIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ4MTczIG1mZ3RvcCIKPj4+ ICsgICAgIGRlcGVuZHMgb24gQ09NTU9OX0NMS19NVDgxNzMKPj4+ICsgICAgIGRlZmF1bHQgQ09N TU9OX0NMS19NVDgxNzMKPj4+ICsgICAgIHNlbGVjdCBQTV9HRU5FUklDX0RPTUFJTlMKPj4+ICsg ICAgIHNlbGVjdCBQTV9HRU5FUklDX0RPTUFJTlNfT0YKPj4+ICsgICAgIGhlbHAKPj4+ICsgICAg ICAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWVkaWFUZWsgTVQ4MTczIG1mZ3RvcCBjbG9ja3MgYW5k IHBvd2VyIGRvbWFpbi4KPj4+ICsKPj4+ICAgIGNvbmZpZyBDT01NT05fQ0xLX01UODE3M19NTVNZ Uwo+Pj4gICAgICAgICAgIHRyaXN0YXRlICJDbG9jayBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UODE3 MyBtbXN5cyIKPj4+ICAgICAgICAgICBkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ4MTczCj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay9t ZWRpYXRlay9NYWtlZmlsZQo+Pj4gaW5kZXggZWVjY2ZhMDM5ODk2Li5mZGQzYTc2ZTEyYTEgMTAw NjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9NYWtlZmlsZQo+Pj4gKysrIGIvZHJp dmVycy9jbGsvbWVkaWF0ZWsvTWFrZWZpbGUKPj4+IEBAIC03Nyw2ICs3Nyw3IEBAIG9iai0kKENP TkZJR19DT01NT05fQ0xLX01UODE2N19WREVDU1lTKSArPSBjbGstbXQ4MTY3LXZkZWMubwo+Pj4g ICAgb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ4MTczKSArPSBjbGstbXQ4MTczLWFwbWl4ZWRz eXMubyBjbGstbXQ4MTczLWluZnJhY2ZnLm8gXAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNsay1tdDgxNzMtcGVyaWNmZy5vIGNsay1tdDgxNzMtdG9wY2tnZW4ubwo+Pj4g ICAgb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ4MTczX0lNR1NZUykgKz0gY2xrLW10ODE3My1p bWcubwo+Pj4gK29iai0kKENPTkZJR19DT01NT05fQ0xLX01UODE3M19NRkdUT1ApICs9IGNsay1t dDgxNzMtbWZndG9wLm8KPj4+ICAgIG9iai0kKENPTkZJR19DT01NT05fQ0xLX01UODE3M19NTVNZ UykgKz0gY2xrLW10ODE3My1tbS5vCj4+PiAgICBvYmotJChDT05GSUdfQ09NTU9OX0NMS19NVDgx NzNfVkRFQ1NZUykgKz0gY2xrLW10ODE3My12ZGVjc3lzLm8KPj4+ICAgIG9iai0kKENPTkZJR19D T01NT05fQ0xLX01UODE3M19WRU5DU1lTKSArPSBjbGstbXQ4MTczLXZlbmNzeXMubwo+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDgxNzMtbWZndG9wLmMgYi9kcml2 ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ4MTczLW1mZ3RvcC5jCj4+PiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+Pj4gaW5kZXggMDAwMDAwMDAwMDAwLi44NWZhN2E3NDUzZWQKPj4+IC0tLSAvZGV2L251 bGwKPj4+ICsrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDgxNzMtbWZndG9wLmMKPj4+ IEBAIC0wLDAgKzEsMjQwIEBACj4+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAtb25seQo+Pj4gKy8qCj4+PiArICogQ29weXJpZ2h0IChjKSAyMDI0IEdvb2dsZSBMTEMKPj4+ ICsgKiBBdXRob3I6IENoZW4tWXUgVHNhaSA8d2Vuc3RAY2hyb21pdW0ub3JnPgo+Pj4gKyAqCj4+ PiArICogQmFzZWQgb24gZHJpdmVyIGluIGRvd25zdHJlYW0gQ2hyb21lT1MgdjUuMTUga2VybmVs Lgo+Pj4gKyAqCj4+PiArICogQ29weXJpZ2h0IChjKSAyMDE0IE1lZGlhVGVrIEluYy4KPj4+ICsg KiBBdXRob3I6IENoaWF3ZW4gTGVlIDxjaGlhd2VuLmxlZUBtZWRpYXRlay5jb20+Cj4+PiArICov Cj4+PiArCj4+PiArI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL210ODE3My1jbGsuaD4KPj4+ ICsKPj4+ICsjaW5jbHVkZSA8bGludXgvYml0ZmllbGQuaD4KPj4+ICsjaW5jbHVkZSA8bGludXgv Y2xrLmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KPj4+ICsjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4L29mLmg+Cj4+PiArI2luY2x1ZGUg PGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9wbV9kb21haW4u aD4KPj4+ICsjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51 eC9yZWdtYXAuaD4KPj4+ICsKPj4+ICsjaW5jbHVkZSAiY2xrLWdhdGUuaCIKPj4+ICsjaW5jbHVk ZSAiY2xrLW10ay5oIgo+Pj4gKwo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVn cyBtZmdfY2dfcmVncyA9IHsKPj4+ICsgICAgIC5zdGFfb2ZzID0gMHgwMDAwLAo+Pj4gKyAgICAg LmNscl9vZnMgPSAweDAwMDgsCj4+PiArICAgICAuc2V0X29mcyA9IDB4MDAwNCwKPj4+ICt9Owo+ Pj4gKwo+Pj4gKyNkZWZpbmUgR0FURV9NRkcoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0LCBf ZmxhZ3MpICAgICAgICBcCj4+PiArICAgICAgICAgICAgIEdBVEVfTVRLX0ZMQUdTKF9pZCwgX25h bWUsIF9wYXJlbnQsICZtZmdfY2dfcmVncywgX3NoaWZ0LCAmbXRrX2Nsa19nYXRlX29wc19zZXRj bHIsIF9mbGFncykKPj4KPj4gRXh0cmEgdGFidWxhdGlvbjogcGxlYXNlIGZpeAo+IAo+IE9uZSB0 YWIgaW5zdGVhZCBvZiB0d28/IE9LLgo+IAoKWWVhaC4KCj4+PiArCj4+PiArLyogVE9ETzogVGhl IGJsb2NrIGFjdHVhbGx5IGhhcyBkaXZpZGVycyBmb3IgdGhlIGNvcmUgYW5kIG1lbSBjbG9ja3Mu ICovCj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZSBtZmdfY2xrc1tdID0gewo+Pj4g KyAgICAgR0FURV9NRkcoQ0xLX01GR19BWEksICJtZmdfYXhpIiwgImF4aV9tZmdfaW5fc2VsIiwg MCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCksCj4+PiArICAgICBHQVRFX01GRyhDTEtfTUZHX01FTSwg Im1mZ19tZW0iLCAibWVtX21mZ19pbl9zZWwiLCAxLCBDTEtfU0VUX1JBVEVfUEFSRU5UKSwKPj4+ ICsgICAgIEdBVEVfTUZHKENMS19NRkdfRzNELCAibWZnX2czZCIsICJtZmdfc2VsIiwgMiwgQ0xL X1NFVF9SQVRFX1BBUkVOVCksCj4+PiArICAgICBHQVRFX01GRyhDTEtfTUZHXzI2TSwgIm1mZ18y Nm0iLCAiY2xrMjZtIiwgMywgMCksCj4+PiArfTsKPj4+ICsKPj4+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IG10a19jbGtfZGVzYyBtZmdfZGVzYyA9IHsKPj4+ICsgICAgIC5jbGtzID0gbWZnX2Nsa3Ms Cj4+PiArICAgICAubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG1mZ19jbGtzKSwKPj4+ICt9Owo+Pj4g Kwo+Pj4gK3N0cnVjdCBtdDgxNzNfbWZndG9wX2RhdGEgewo+Pj4gKyAgICAgc3RydWN0IGNsa19o d19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOwo+Pj4gKyAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFw Owo+Pj4gKyAgICAgc3RydWN0IGdlbmVyaWNfcG1fZG9tYWluIGdlbnBkOwo+Pj4gKyAgICAgc3Ry dWN0IG9mX3BoYW5kbGVfYXJncyBwYXJlbnRfcGQsIGNoaWxkX3BkOwo+Pj4gKyAgICAgc3RydWN0 IGNsayAqY2xrXzI2bTsKPj4+ICt9Owo+Pj4gKwo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkIG9mX21hdGNoX2Nsa19tdDgxNzNfbWZndG9wW10gPSB7Cj4+PiArICAgICB7IC5j b21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1tZmd0b3AiLCAuZGF0YSA9ICZtZmdfZGVzYyB9 LAo+Pj4gKyAgICAgeyAvKiBzZW50aW5lbCAqLyB9Cj4+PiArfTsKPj4+ICtNT0RVTEVfREVWSUNF X1RBQkxFKG9mLCBvZl9tYXRjaF9jbGtfbXQ4MTczX21mZ3RvcCk7Cj4+Cj4+IFBsZWFzZSBtb3Zl IG9mX21hdGNoX2Nsa19tdDgxNzNfbWZndG9wIGJlZm9yZSBjbGtfbXQ4MTczX21mZ3RvcF9kcnYg Zm9yIGNvbnNpc3RlbmN5Cj4+IHdpdGggYWxsIHRoZSBvdGhlciBjbG9jayBkcml2ZXJzLgo+IAo+ IEFjay4KPiAKPj4+ICsKPj4+ICsvKiBEZWxheSBjb3VudCBpbiBjbG9jayBjeWNsZXMgKi8KPj4+ ICsjZGVmaW5lIE1GR19BQ1RJVkVfUE9XRVJfQ09OMCAgICAgICAgMHgyNAo+Pj4gKyAjZGVmaW5l IFJTVF9CX0RFTEFZX0NOVCAgICAgR0VOTUFTSyg3LCAwKSAgIC8qIHB3cl9yc3RfYiBkZS1hc3Nl cnQgZGVsYXkgZHVyaW5nIHBvd2VyLXVwICovCj4+PiArICNkZWZpbmUgQ0xLX0VOX0RFTEFZX0NO VCAgICBHRU5NQVNLKDE1LCA4KSAgLyogQ0xLX0RJUyBkZWFzc2VydCBkZWxheSBkdXJpbmcgcG93 ZXItdXAgKi8KPj4+ICsgI2RlZmluZSBDTEtfRElTX0RFTEFZX0NOVCAgIEdFTk1BU0soMjMsIDE2 KSAvKiBDTEtfRElTIGFzc2VydCBkZWxheSBkdXJpbmcgcG93ZXItZG93biAqLwo+Pgo+PiBUaGUg cmVhc29uIHdoeSBJIGhhZCBFVlRfRk9SQ0VfQUJPUlQgYW5kIEFDVElWRV9QV1JDVExfRU4gaW4g bXkgZHJpdmVyIGlzIHRvCj4+IGRvY3VtZW50IHRoYXQgd2UncmUga2VlcGluZyB0aGUgZXZlbnQg Zm9yY2UgYWJvcnQgZGlzYWJsZWQgYW5kLCBtb3JlIGltcG9ydGFudGx5LAo+PiB3ZSBhcmUga2Vl cGluZyB0aGUgImFjdGl2ZSBwb3dlciBjb250cm9sIiBmZWF0dXJlIGRpc2FibGVkLgo+Pgo+PiBQ bGVhc2UsIGFkZCB0aG9zZSB0d28gLSBvciBhdCBsZWFzdCB0aGUgQUNUSVZFX1BXUkNUTF9FTiAt IHRvIGtlZXAgdGhhdCBkb2N1bWVudGVkLAo+PiBvciB0aGlzIGluZm9ybWF0aW9uIHdpbGwgYmUg bG9zdCBmb3Igc3VyZS4KPj4gSWYgaW4gdGhlIGZ1dHVyZSB0aGUgQUNUSVZFX1BXUkNUTCBmZWF0 dXJlIHdpbGwgYmVjb21lIHVzYWJsZSwgaXQncyBnb2luZyB0byBiZQo+PiBqdXN0IGEgMzAgc2Vj b25kcyBjaGFuZ2UsIGFzIHRoZSBpbmZvIGlzIGFscmVhZHkgdGhlcmUuCj4gCj4gT0suCj4gCj4+ PiArCj4+PiArI2RlZmluZSBNRkdfQUNUSVZFX1BPV0VSX0NPTjEgICAgICAgIDB4MjgKPj4+ICsg I2RlZmluZSBQV1JfT05fU19ERUxBWV9DTlQgIEdFTk1BU0soNywgMCkgICAvKiBwd3Jfb25fcyBh c3NlcnQgZGVsYXkgZHVyaW5nIHBvd2VyLXVwICovCj4+PiArICNkZWZpbmUgSVNPX0RFTEFZX0NO VCAgICAgICAgICAgICAgIEdFTk1BU0soMTUsIDgpICAvKiBJU08gYXNzZXJ0IGRlbGF5IGR1cmlu ZyBwb3dlci1kb3duICovCj4+PiArICNkZWZpbmUgSVNPT0ZGX0RFTEFZX0NOVCAgICBHRU5NQVNL KDIzLCAxNikgLyogSVNPIGRlLWFzc2VydCBkZWxheSBkdXJpbmcgcG93ZXItdXAgKi8KPj4+ICsg I2RlZmluZSBSU1RfX0RFTEFZX0NOVCAgICAgICAgICAgICAgR0VOTUFTSygzMSwgMjQpIC8qIHB3 cl9yc2JfYiBhc3NlcnQgZGVsYXkgZHVyaW5nIHBvd2VyLWRvd24gKi8KPj4+ICsKPj4+ICtzdGF0 aWMgaW50IGNsa19tdDgxNzNfbWZndG9wX3Bvd2VyX29uKHN0cnVjdCBnZW5lcmljX3BtX2RvbWFp biAqZG9tYWluKQo+Pj4gK3sKPj4+ICsgICAgIHN0cnVjdCBtdDgxNzNfbWZndG9wX2RhdGEgKmRh dGEgPSBjb250YWluZXJfb2YoZG9tYWluLCBzdHJ1Y3QgbXQ4MTczX21mZ3RvcF9kYXRhLCBnZW5w ZCk7Cj4+PiArCj4+PiArICAgICAvKiBkcml2ZXMgaW50ZXJuYWwgcG93ZXIgbWFuYWdlbWVudCAq Lwo+Pj4gKyAgICAgY2xrX3ByZXBhcmVfZW5hYmxlKGRhdGEtPmNsa18yNm0pOwo+Pj4gKwo+Pj4g KyAgICAgLyogUG93ZXIgb24vb2ZmIGRlbGF5cyBmb3IgdmFyaW91cyBzaWduYWxzICovCj4+PiAr ICAgICByZWdtYXBfd3JpdGUoZGF0YS0+cmVnbWFwLCBNRkdfQUNUSVZFX1BPV0VSX0NPTjAsCj4+ PiArICAgICAgICAgICAgICAgICAgRklFTERfUFJFUChSU1RfQl9ERUxBWV9DTlQsIDc3KSB8Cj4+ PiArICAgICAgICAgICAgICAgICAgRklFTERfUFJFUChDTEtfRU5fREVMQVlfQ05ULCA2MSkgfAo+ Pj4gKyAgICAgICAgICAgICAgICAgIEZJRUxEX1BSRVAoQ0xLX0RJU19ERUxBWV9DTlQsIDYwKSk7 Cj4+Cj4+IEkgZ2V0IHRoYXQgdGhpcyBpcyBraW5kYSBvZGQgdG8gcmVhZCwgYnV0IHN0aWxsLi4u Cj4+Cj4+IEZJRUxEX1BSRVAoQ0xLX0RJU19ERUxBWV9DTlQsIDYwKSB8Cj4+IEZJRUxEX1BSRVAo QUNUSVZFX1BXUkNUTF9FTiwgMCkpOwo+Pgo+PiAuLi5wbGVhc2UgOi0pCj4gCj4gU3VyZS4KPiAK Pj4+ICsgICAgIHJlZ21hcF93cml0ZShkYXRhLT5yZWdtYXAsIE1GR19BQ1RJVkVfUE9XRVJfQ09O MSwKPj4+ICsgICAgICAgICAgICAgICAgICBGSUVMRF9QUkVQKFBXUl9PTl9TX0RFTEFZX0NOVCwg MTEpIHwKPj4+ICsgICAgICAgICAgICAgICAgICBGSUVMRF9QUkVQKElTT19ERUxBWV9DTlQsIDY4 KSB8Cj4+PiArICAgICAgICAgICAgICAgICAgRklFTERfUFJFUChJU09PRkZfREVMQVlfQ05ULCA2 OSkgfAo+Pj4gKyAgICAgICAgICAgICAgICAgIEZJRUxEX1BSRVAoUlNUX19ERUxBWV9DTlQsIDc3 KSk7Cj4+PiArCj4+PiArICAgICAvKiBNYWdpYyBudW1iZXJzIHJlbGF0ZWQgdG8gY29yZSBzd2l0 Y2ggc2VxdWVuY2UgYW5kIGRlbGF5cyAqLwo+Pj4gKyAgICAgcmVnbWFwX3dyaXRlKGRhdGEtPnJl Z21hcCwgMHhlMCwgMHg3YTcxMDE4NCk7Cj4+PiArICAgICByZWdtYXBfd3JpdGUoZGF0YS0+cmVn bWFwLCAweGU0LCAweDgzNWY2ODU2KTsKPj4+ICsgICAgIHJlZ21hcF93cml0ZShkYXRhLT5yZWdt YXAsIDB4ZTgsIDB4MDAyYjAyMzQpOwo+Pj4gKyAgICAgcmVnbWFwX3dyaXRlKGRhdGEtPnJlZ21h cCwgMHhlYywgMHg4MDAwMDAwMCk7Cj4+PiArICAgICByZWdtYXBfd3JpdGUoZGF0YS0+cmVnbWFw LCAweGEwLCAweDA4MDAwMDAwKTsKPj4KPj4gSXMgdGhlcmUgYW55IHdheSB0byByZXRyaWV2ZSBp bmZvcm1hdGlvbiBhYm91dCB3aGF0IHRob3NlIHJlZ2lzdGVycyBhcmU/Cj4gCj4gSSBhc2tlZC4g VGhleSBzYWlkIHRoZSBwcm9qZWN0IHdhcyB0b28gbG9uZyBhZ28sIGFuZCB0aGV5IGNvdWxkIG9u bHkKPiBmaWd1cmUgb3V0IHRoYXQgaXQgaGFkIHNvbWV0aGluZyB0byBkbyB3aXRoIGNvcmUgc3dp dGNoIHNlcXVlbmNpbmcgYW5kCj4gZGVsYXlzIGJldHdlZW4gZWFjaCBjb3JlLCB3aGljaCBpcyB3 aGF0IEkgcHV0IGluIHRoZSBjb21tZW50IHRoZXJlLgo+IAoKVGhhdCdzIGEgYml0IHNhZCB0byBy ZWFkLCBidXQgb2theSwgSSBndWVzcyB3ZSdsbCBjYWxsIGl0IGEgZGF5IGFuZCBrZWVwIHRoZQpt YWdpYyBudW1iZXJzIGFyb3VuZCwgYXMgdGhhdCdzIHRoZSBvbmx5IG9wdGlvbi4gOi0oCgo+Pj4g Kwo+Pj4gKyAgICAgcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgY2xrX210 ODE3M19tZmd0b3BfcG93ZXJfb2ZmKHN0cnVjdCBnZW5lcmljX3BtX2RvbWFpbiAqZG9tYWluKQo+ Pj4gK3sKPj4+ICsgICAgIHN0cnVjdCBtdDgxNzNfbWZndG9wX2RhdGEgKmRhdGEgPSBjb250YWlu ZXJfb2YoZG9tYWluLCBzdHJ1Y3QgbXQ4MTczX21mZ3RvcF9kYXRhLCBnZW5wZCk7Cj4+PiArCj4+ PiArICAgICAvKiBNYWdpYyBudW1iZXJzIHJlbGF0ZWQgdG8gY29yZSBzd2l0Y2ggc2VxdWVuY2Ug YW5kIGRlbGF5cyAqLwo+Pj4gKyAgICAgcmVnbWFwX3dyaXRlKGRhdGEtPnJlZ21hcCwgMHhlYywg MCk7Cj4+PiArCj4+PiArICAgICAvKiBkcml2ZXMgaW50ZXJuYWwgcG93ZXIgbWFuYWdlbWVudCAq Lwo+Pj4gKyAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRhdGEtPmNsa18yNm0pOwo+Pj4gKwo+ Pj4gKyAgICAgcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgY2xrX210ODE3 M19tZmd0b3BfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+ICt7Cj4+PiAr ICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+Pj4gKyAgICAgc3RydWN0IGRl dmljZV9ub2RlICpub2RlID0gZGV2LT5vZl9ub2RlOwo+Pj4gKyAgICAgc3RydWN0IG10ODE3M19t Zmd0b3BfZGF0YSAqZGF0YTsKPj4+ICsgICAgIGludCByZXQ7Cj4+PiArCj4+PiArICAgICBkYXRh ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7Cj4+PiArICAg ICBpZiAoIWRhdGEpCj4+PiArICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+Pj4gKwo+Pj4g KyAgICAgcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGF0YSk7Cj4+PiArCj4+PiArICAgICBk YXRhLT5jbGtfZGF0YSA9IG10a19kZXZtX2FsbG9jX2Nsa19kYXRhKGRldiwgQVJSQVlfU0laRSht ZmdfY2xrcykpOwo+Pj4gKyAgICAgaWYgKCFkYXRhLT5jbGtfZGF0YSkKPj4+ICsgICAgICAgICAg ICAgcmV0dXJuIC1FTk9NRU07Cj4+PiArCj4+PiArICAgICAvKiBNVEsgY2xvY2sgZ2F0ZXMgYWxz byB1c2VzIHJlZ21hcCAqLwo+Pj4gKyAgICAgZGF0YS0+cmVnbWFwID0gZGV2aWNlX25vZGVfdG9f cmVnbWFwKG5vZGUpOwo+Pj4gKyAgICAgaWYgKElTX0VSUihkYXRhLT5yZWdtYXApKQo+Pj4gKyAg ICAgICAgICAgICByZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoZGF0YS0+cmVnbWFw KSwgIkZhaWxlZCB0byBnZXQgcmVnbWFwXG4iKTsKPj4+ICsKPj4+ICsgICAgIGRhdGEtPmNoaWxk X3BkLm5wID0gbm9kZTsKPj4+ICsgICAgIGRhdGEtPmNoaWxkX3BkLmFyZ3NfY291bnQgPSAwOwo+ Pj4gKyAgICAgcmV0ID0gb2ZfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3Mobm9kZSwgInBvd2VyLWRv bWFpbnMiLCAiI3Bvd2VyLWRvbWFpbi1jZWxscyIsIDAsCj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmZGF0YS0+cGFyZW50X3BkKTsKPj4+ICsgICAgIGlmIChyZXQp Cj4+PiArICAgICAgICAgICAgIHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiRmFpbGVk IHRvIHBhcnNlIHBvd2VyIGRvbWFpblxuIik7Cj4+PiArCj4+PiArICAgICBkZXZtX3BtX3J1bnRp bWVfZW5hYmxlKGRldik7Cj4+PiArICAgICAvKgo+Pj4gKyAgICAgICogRG8gYSBwbV9ydW50aW1l X3Jlc3VtZV9hbmRfZ2V0KCkgdG8gd29ya2Fyb3VuZCBhIHBvc3NpYmxlCj4+PiArICAgICAgKiBk ZWFkbG9jayBiZXR3ZWVuIGNsa19yZWdpc3RlcigpIGFuZCB0aGUgZ2VucGQgZnJhbWV3b3JrLgo+ Pj4gKyAgICAgICovCj4+PiArICAgICByZXQgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KGRl dik7Cj4+PiArICAgICBpZiAocmV0KSB7Cj4+PiArICAgICAgICAgICAgIGRldl9lcnJfcHJvYmUo ZGV2LCByZXQsICJGYWlsZWQgdG8gcnVudGltZSByZXN1bWUgZGV2aWNlXG4iKTsKPj4+ICsgICAg ICAgICAgICAgZ290byBwdXRfb2Zfbm9kZTsKPj4+ICsgICAgIH0KPj4+ICsKPj4+ICsgICAgIHJl dCA9IG10a19jbGtfcmVnaXN0ZXJfZ2F0ZXMoZGV2LCBub2RlLCBtZmdfY2xrcywgQVJSQVlfU0la RShtZmdfY2xrcyksCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEt PmNsa19kYXRhKTsKPj4+ICsgICAgIGlmIChyZXQpIHsKPj4+ICsgICAgICAgICAgICAgZGV2X2Vy cl9wcm9iZShkZXYsIHJldCwgIkZhaWxlZCB0byByZWdpc3RlciBjbG9jayBnYXRlc1xuIik7Cj4+ PiArICAgICAgICAgICAgIGdvdG8gcHV0X3BtX3J1bnRpbWU7Cj4+PiArICAgICB9Cj4+PiArCj4+ PiArICAgICBkYXRhLT5jbGtfMjZtID0gY2xrX2h3X2dldF9jbGsoZGF0YS0+Y2xrX2RhdGEtPmh3 c1tDTEtfTUZHXzI2TV0sICIyNm0iKTsKPj4+ICsgICAgIGlmIChJU19FUlIoZGF0YS0+Y2xrXzI2 bSkpIHsKPj4+ICsgICAgICAgICAgICAgZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoZGF0YS0+ Y2xrXzI2bSksICJGYWlsZWQgdG8gZ2V0IDI2IE1IeiBjbG9ja1xuIik7Cj4+PiArICAgICAgICAg ICAgIGdvdG8gdW5yZWdpc3Rlcl9jbGtzOwo+Pj4gKyAgICAgfQo+Pj4gKwo+Pj4gKyAgICAgcmV0 ID0gb2ZfY2xrX2FkZF9od19wcm92aWRlcihub2RlLCBvZl9jbGtfaHdfb25lY2VsbF9nZXQsIGRh dGEtPmNsa19kYXRhKTsKPj4+ICsgICAgIGlmIChyZXQpIHsKPj4+ICsgICAgICAgICAgICAgZGV2 X2Vycl9wcm9iZShkZXYsIHJldCwgIkZhaWxlZCB0byBhZGQgY2xrIE9GIHByb3ZpZGVyXG4iKTsK Pj4+ICsgICAgICAgICAgICAgZ290byBwdXRfMjZtX2NsazsKPj4+ICsgICAgIH0KPj4+ICsKPj4+ ICsgICAgIGRhdGEtPmdlbnBkLm5hbWUgPSAibWZnX2FwbSI7Cj4+Cj4+ICJtZmctYXBtIiBvciAi bWZnLXB3ciIgcGxlYXNlIQo+IAo+IEFjay4KPiAKPj4gRXZlcnl0aGluZyBlbHNlIGxvb2tzIGdv b2QuCj4+Cj4+IFRoYW5rcyBmb3IgdGFraW5nIGNhcmUgb2YgdGhhdCwgSSBzdGFydGVkIHRoaXMg d29yayB3YXkgdG9vIG11Y2ggdGltZSBhZ28gYW5kCj4+IHJlYWxpc3RpY2FsbHkgSSB3b3VsZG4n dCBoYXZlIGJlZW4gYWJsZSB0byBmaW5pc2ggaXQgZHVlIHRvIHRpbWUgY29uc3RyYWludHMuCj4+ Cj4+IEl0J3MgZ3JlYXQgdG8gc2VlIHRoYXQgKmZpbmFsbHkqIHdlIGNhbiBnZXQgc29tZSBHUFUg dXBzdHJlYW0gb24gdGhpcyBvbGQgU29DLgo+PiBBcyBpdHMgQ1BVcyBhcmUgcmVhbGx5IHNsb3cs IExMVk1QaXBlIGlzIHF1aXRlIHVudXNhYmxlIGZyb20gYSBVWCBwZXJzcGVjdGl2ZQo+PiBoZW5j ZSBpdHMgb25seSBiaWcgaXNzdWUgd2FzIHRoZSBsYWNrIG9mIDNEIEhXIGFjY2VsZXJhdGlvbi4K PiAKPiBJIHRoaW5rIHRoZXJlJ3Mgc3RpbGwgbW9yZSB3b3JrIG9uIHRoZSBHUFUgZHJpdmVyIHNp ZGUuIEkgd2FzIGRpZ2dpbmcKPiB0aHJvdWdoIHRoZSBtYWlsaW5nIGxpc3QgdG8gZmluZCB3YXlz IHRvIGdldCBpdCBydW5uaW5nLCBhbmQgZXZpZGVudGx5Cj4gaXQgZG9lc24ndCBmdWxseSBzdXBw b3J0IHppbmsgeWV0Lgo+IAoKVGhlcmUncyBzdGlsbCBtb3JlIHdvcmsgdG8gZG8sIHllcywgYnV0 IGl0J3Mgc3RpbGwgYSBncmVhdCBhZHZhbmNlbWVudC4KCj4+IFRoaXMgbWFrZXMgbWFjaGluZXMg ZW1iZWRkaW5nIHRoaXMgU29DIHVzYWJsZSwgYW5kIHRoYXQncyBzaW1wbHkgYXdlc29tZS4KPiAK PiBJJ2xsIGdpdmUgdGhlIHBhdGNoZXMgYSB3ZWVrIHRvIHNpbW1lciB3aGlsZSBJIGdvIHdvcmsg b24gc29tZQo+IG90aGVyIHN0dWZmLgo+IAoKU3VyZSwgbm8gd29ycmllcy4KCkNoZWVycyEKQW5n ZWxvCgo+IENoZW5ZdQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LWFybS1rZXJuZWwK