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 545C0C25B76 for ; Wed, 5 Jun 2024 11:27:17 +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=EIPGY4MxPDsBizvNthBUeL40cWMA+nz5JJalq3CqAzo=; b=WTo/jnsyXV6Gq+ Cv5RB+x6dOT17pcza2AT9zWX3BK4YtbqBghrrwFJW5MDRZMHKXvI+aADYs24cL0pWVTNB8d6lKjr/ VN1bIBD21E1qr6YxGsZ+pp40MPZAmzNKT8YMRE8uNpILaY8lWE4v7mEanWYtg2i6A0BTE4no2h+uC m9E7BGqgQVc6XQ7pfZxrJR9DwTdlkRvpV3R/ln0TcCxGPC6WkaPQsUurO1GRjjDkdFmhZR5CqtXVG lQ3v4WCn0JzMDeeCCkOXOAxGEcerEypc18QJm5BKlfTG2jjKM/4AxmtbTidSDlQikf5O99/lpdYqp BExy4Pb+heWQVwPrEkOw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sEonI-00000005i41-41fW; Wed, 05 Jun 2024 11:27:04 +0000 Received: from madrid.collaboradmins.com ([2a00:1098:ed:100::25]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sEonG-00000005i3T-0xC4; Wed, 05 Jun 2024 11:27:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1717586820; bh=skiWVXg+Okzk4A++N93qbkjreN4bf9JsKHGqSNOzYYA=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=VP6LUCe5bRNTMWZTwBbHPGfmabEr81OCRyal/+/LVhjloEOiQULYH4uuaeyLCKQ7w INX/R4MPDqGFqn6WO1JT2fGrQ0fLY0nhRsHE8YdQ9Qy9ajQCp2x+DvYQkb6rvbKFyl OwlzXnx1EqMyb7SGduqbpVMPv+0idfhEfb1S2nwIgKpmrxdM0AmgBz8fxQTLaLs/sz v0Lkxvx8PjubMwqRf+Oa+4gxqOT2enromTv6b+rgR9OI6Ci4FctfJyGoGX0K1bx+RY GLVryRRg1ytYNefulUSXrB4lsociMsW1/ST4bbr6wn9ZQCRT9jnQCGAzVQkOd21lGE IKVy19/KVL7YA== 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 B5B403781139; Wed, 5 Jun 2024 11:26:59 +0000 (UTC) Message-ID: <042a11f9-0c96-4aa8-8f52-6edf4c949497@collabora.com> Date: Wed, 5 Jun 2024 13:26:59 +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-20240605_042702_741732_226E5709 X-CRM114-Status: GOOD ( 30.42 ) 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 SWwgMDUvMDYvMjQgMTA6MzksIENoZW4tWXUgVHNhaSBoYSBzY3JpdHRvOgo+IE9uIFRodSwgTWF5 IDMwLCAyMDI0IGF0IDY6MTbigK9QTSBDaGVuLVl1IFRzYWkgPHdlbnN0QGNocm9taXVtLm9yZz4g d3JvdGU6Cj4+Cj4+IE9uIFRodSwgTWF5IDMwLCAyMDI0IGF0IDU6NTnigK9QTSBBbmdlbG9HaW9h Y2NoaW5vIERlbCBSZWdubwo+PiA8YW5nZWxvZ2lvYWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEu Y29tPiB3cm90ZToKPj4+Cj4+PiBJbCAzMC8wNS8yNCAxMDozNSwgQ2hlbi1ZdSBUc2FpIGhhIHNj cml0dG86Cj4+Pj4gVGhlIE1GRyAoR1BVKSBibG9jayBvbiB0aGUgTVQ4MTczIGhhcyBhIHNtYWxs IGdsdWUgbGF5ZXIsIG5hbWVkIE1GR19UT1AKPj4+PiBpbiB0aGUgZGF0YXNoZWV0LCB0aGF0IGNv bnRhaW5zIGNsb2NrIGdhdGVzLCBzb21lIHBvd2VyIHNlcXVlbmNlIHNpZ25hbAo+Pj4+IGRlbGF5 cywgYW5kIG90aGVyIHVua25vd24gcmVnaXN0ZXJzIHRoYXQgZ2V0IHRvZ2dsZWQgd2hlbiB0aGUg R1BVIGlzCj4+Pj4gcG93ZXJlZCBvbi4KPj4+Pgo+Pj4+IFRoZSBjbG9jayBnYXRlcyBhcmUgZXhw b3NlZCBhcyBjbG9ja3MgcHJvdmlkZWQgYnkgYSBjbG9jayBjb250cm9sbGVyLAo+Pj4+IHdoaWxl IHRoZSBwb3dlciBzZXF1ZW5jaW5nIGJpdHMgYXJlIGV4cG9zZWQgYXMgb25lIHNpbmd1bGFyIHBv d2VyIGRvbWFpbi4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IENoZW4tWXUgVHNhaSA8d2Vuc3RA Y2hyb21pdW0ub3JnPgo+Pj4+IC0tLQo+Pj4+ICAgIGRyaXZlcnMvY2xrL21lZGlhdGVrL0tjb25m aWcgICAgICAgICAgICAgfCAgIDkgKwo+Pj4+ICAgIGRyaXZlcnMvY2xrL21lZGlhdGVrL01ha2Vm aWxlICAgICAgICAgICAgfCAgIDEgKwo+Pj4+ICAgIGRyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1t dDgxNzMtbWZndG9wLmMgfCAyNDAgKysrKysrKysrKysrKysrKysrKysrKysKPj4+PiAgICAzIGZp bGVzIGNoYW5nZWQsIDI1MCBpbnNlcnRpb25zKCspCj4+Pj4gICAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDgxNzMtbWZndG9wLmMKPj4+Pgo+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9LY29uZmlnIGIvZHJpdmVycy9jbGsvbWVkaWF0 ZWsvS2NvbmZpZwo+Pj4+IGluZGV4IDcwYTAwNWU3ZTFiMS4uOWUyNzljNzM5ZjFjIDEwMDY0NAo+ Pj4+IC0tLSBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL0tjb25maWcKPj4+PiArKysgYi9kcml2ZXJz L2Nsay9tZWRpYXRlay9LY29uZmlnCj4+Pj4gQEAgLTUwMCw2ICs1MDAsMTUgQEAgY29uZmlnIENP TU1PTl9DTEtfTVQ4MTczX0lNR1NZUwo+Pj4+ICAgICAgICBoZWxwCj4+Pj4gICAgICAgICAgVGhp cyBkcml2ZXIgc3VwcG9ydHMgTWVkaWFUZWsgTVQ4MTczIGltZ3N5cyBjbG9ja3MuCj4+Pj4KPj4+ PiArY29uZmlnIENPTU1PTl9DTEtfTVQ4MTczX01GR1RPUAo+Pj4+ICsgICAgIHRyaXN0YXRlICJD bG9jayBhbmQgcG93ZXIgZHJpdmVyIGZvciBNZWRpYVRlayBNVDgxNzMgbWZndG9wIgo+Pj4+ICsg ICAgIGRlcGVuZHMgb24gQ09NTU9OX0NMS19NVDgxNzMKPj4+PiArICAgICBkZWZhdWx0IENPTU1P Tl9DTEtfTVQ4MTczCj4+Pj4gKyAgICAgc2VsZWN0IFBNX0dFTkVSSUNfRE9NQUlOUwo+Pj4+ICsg ICAgIHNlbGVjdCBQTV9HRU5FUklDX0RPTUFJTlNfT0YKPj4+PiArICAgICBoZWxwCj4+Pj4gKyAg ICAgICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDgxNzMgbWZndG9wIGNsb2NrcyBh bmQgcG93ZXIgZG9tYWluLgo+Pj4+ICsKPj4+PiAgICBjb25maWcgQ09NTU9OX0NMS19NVDgxNzNf TU1TWVMKPj4+PiAgICAgICAgICAgdHJpc3RhdGUgIkNsb2NrIGRyaXZlciBmb3IgTWVkaWFUZWsg TVQ4MTczIG1tc3lzIgo+Pj4+ICAgICAgICAgICBkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ4MTcz Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL01ha2VmaWxlIGIvZHJpdmVy cy9jbGsvbWVkaWF0ZWsvTWFrZWZpbGUKPj4+PiBpbmRleCBlZWNjZmEwMzk4OTYuLmZkZDNhNzZl MTJhMSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9NYWtlZmlsZQo+Pj4+ ICsrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL01ha2VmaWxlCj4+Pj4gQEAgLTc3LDYgKzc3LDcg QEAgb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ4MTY3X1ZERUNTWVMpICs9IGNsay1tdDgxNjct dmRlYy5vCj4+Pj4gICAgb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ4MTczKSArPSBjbGstbXQ4 MTczLWFwbWl4ZWRzeXMubyBjbGstbXQ4MTczLWluZnJhY2ZnLm8gXAo+Pj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbGstbXQ4MTczLXBlcmljZmcubyBjbGstbXQ4MTczLXRv cGNrZ2VuLm8KPj4+PiAgICBvYmotJChDT05GSUdfQ09NTU9OX0NMS19NVDgxNzNfSU1HU1lTKSAr PSBjbGstbXQ4MTczLWltZy5vCj4+Pj4gK29iai0kKENPTkZJR19DT01NT05fQ0xLX01UODE3M19N RkdUT1ApICs9IGNsay1tdDgxNzMtbWZndG9wLm8KPj4+PiAgICBvYmotJChDT05GSUdfQ09NTU9O X0NMS19NVDgxNzNfTU1TWVMpICs9IGNsay1tdDgxNzMtbW0ubwo+Pj4+ICAgIG9iai0kKENPTkZJ R19DT01NT05fQ0xLX01UODE3M19WREVDU1lTKSArPSBjbGstbXQ4MTczLXZkZWNzeXMubwo+Pj4+ ICAgIG9iai0kKENPTkZJR19DT01NT05fQ0xLX01UODE3M19WRU5DU1lTKSArPSBjbGstbXQ4MTcz LXZlbmNzeXMubwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ4 MTczLW1mZ3RvcC5jIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10ODE3My1tZmd0b3AuYwo+ Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAwLi44NWZhN2E3 NDUzZWQKPj4+PiAtLS0gL2Rldi9udWxsCj4+Pj4gKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsv Y2xrLW10ODE3My1tZmd0b3AuYwo+Pj4+IEBAIC0wLDAgKzEsMjQwIEBACj4+Pj4gKy8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKPj4+PiArLyoKPj4+PiArICogQ29weXJp Z2h0IChjKSAyMDI0IEdvb2dsZSBMTEMKPj4+PiArICogQXV0aG9yOiBDaGVuLVl1IFRzYWkgPHdl bnN0QGNocm9taXVtLm9yZz4KPj4+PiArICoKPj4+PiArICogQmFzZWQgb24gZHJpdmVyIGluIGRv d25zdHJlYW0gQ2hyb21lT1MgdjUuMTUga2VybmVsLgo+Pj4+ICsgKgo+Pj4+ICsgKiBDb3B5cmln aHQgKGMpIDIwMTQgTWVkaWFUZWsgSW5jLgo+Pj4+ICsgKiBBdXRob3I6IENoaWF3ZW4gTGVlIDxj aGlhd2VuLmxlZUBtZWRpYXRlay5jb20+Cj4+Pj4gKyAqLwo+Pj4+ICsKPj4+PiArI2luY2x1ZGUg PGR0LWJpbmRpbmdzL2Nsb2NrL210ODE3My1jbGsuaD4KPj4+PiArCj4+Pj4gKyNpbmNsdWRlIDxs aW51eC9iaXRmaWVsZC5oPgo+Pj4+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4+Pj4gKyNpbmNs dWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4K Pj4+PiArI2luY2x1ZGUgPGxpbnV4L29mLmg+Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kZXZpY2UuaD4KPj4+PiArI2luY2x1ZGUgPGxpbnV4L3BtX2RvbWFpbi5oPgo+Pj4+ICsjaW5j bHVkZSA8bGludXgvcG1fcnVudGltZS5oPgo+Pj4+ICsjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+ Cj4+Pj4gKwo+Pj4+ICsjaW5jbHVkZSAiY2xrLWdhdGUuaCIKPj4+PiArI2luY2x1ZGUgImNsay1t dGsuaCIKPj4+PiArCj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBtZmdf Y2dfcmVncyA9IHsKPj4+PiArICAgICAuc3RhX29mcyA9IDB4MDAwMCwKPj4+PiArICAgICAuY2xy X29mcyA9IDB4MDAwOCwKPj4+PiArICAgICAuc2V0X29mcyA9IDB4MDAwNCwKPj4+PiArfTsKPj4+ PiArCj4+Pj4gKyNkZWZpbmUgR0FURV9NRkcoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0LCBf ZmxhZ3MpICAgICAgICBcCj4+Pj4gKyAgICAgICAgICAgICBHQVRFX01US19GTEFHUyhfaWQsIF9u YW1lLCBfcGFyZW50LCAmbWZnX2NnX3JlZ3MsIF9zaGlmdCwgJm10a19jbGtfZ2F0ZV9vcHNfc2V0 Y2xyLCBfZmxhZ3MpCj4+Pgo+Pj4gRXh0cmEgdGFidWxhdGlvbjogcGxlYXNlIGZpeAo+Pgo+PiBP bmUgdGFiIGluc3RlYWQgb2YgdHdvPyBPSy4KPj4KPj4+PiArCj4+Pj4gKy8qIFRPRE86IFRoZSBi bG9jayBhY3R1YWxseSBoYXMgZGl2aWRlcnMgZm9yIHRoZSBjb3JlIGFuZCBtZW0gY2xvY2tzLiAq Lwo+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlIG1mZ19jbGtzW10gPSB7Cj4+Pj4g KyAgICAgR0FURV9NRkcoQ0xLX01GR19BWEksICJtZmdfYXhpIiwgImF4aV9tZmdfaW5fc2VsIiwg MCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCksCj4+Pj4gKyAgICAgR0FURV9NRkcoQ0xLX01GR19NRU0s ICJtZmdfbWVtIiwgIm1lbV9tZmdfaW5fc2VsIiwgMSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCksCj4+ Pj4gKyAgICAgR0FURV9NRkcoQ0xLX01GR19HM0QsICJtZmdfZzNkIiwgIm1mZ19zZWwiLCAyLCBD TEtfU0VUX1JBVEVfUEFSRU5UKSwKPj4+PiArICAgICBHQVRFX01GRyhDTEtfTUZHXzI2TSwgIm1m Z18yNm0iLCAiY2xrMjZtIiwgMywgMCksCj4+Pj4gK307Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgY29u c3Qgc3RydWN0IG10a19jbGtfZGVzYyBtZmdfZGVzYyA9IHsKPj4+PiArICAgICAuY2xrcyA9IG1m Z19jbGtzLAo+Pj4+ICsgICAgIC5udW1fY2xrcyA9IEFSUkFZX1NJWkUobWZnX2Nsa3MpLAo+Pj4+ ICt9Owo+Pj4+ICsKPj4+PiArc3RydWN0IG10ODE3M19tZmd0b3BfZGF0YSB7Cj4+Pj4gKyAgICAg c3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOwo+Pj4+ICsgICAgIHN0cnVjdCBy ZWdtYXAgKnJlZ21hcDsKPj4+PiArICAgICBzdHJ1Y3QgZ2VuZXJpY19wbV9kb21haW4gZ2VucGQ7 Cj4+Pj4gKyAgICAgc3RydWN0IG9mX3BoYW5kbGVfYXJncyBwYXJlbnRfcGQsIGNoaWxkX3BkOwo+ Pj4+ICsgICAgIHN0cnVjdCBjbGsgKmNsa18yNm07Cj4+Pj4gK307Cj4+Pj4gKwo+Pj4+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tYXRjaF9jbGtfbXQ4MTczX21mZ3RvcFtd ID0gewo+Pj4+ICsgICAgIHsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLW1mZ3RvcCIs IC5kYXRhID0gJm1mZ19kZXNjIH0sCj4+Pj4gKyAgICAgeyAvKiBzZW50aW5lbCAqLyB9Cj4+Pj4g K307Cj4+Pj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG9mX21hdGNoX2Nsa19tdDgxNzNfbWZn dG9wKTsKPj4+Cj4+PiBQbGVhc2UgbW92ZSBvZl9tYXRjaF9jbGtfbXQ4MTczX21mZ3RvcCBiZWZv cmUgY2xrX210ODE3M19tZmd0b3BfZHJ2IGZvciBjb25zaXN0ZW5jeQo+Pj4gd2l0aCBhbGwgdGhl IG90aGVyIGNsb2NrIGRyaXZlcnMuCj4+Cj4+IEFjay4KPj4KPj4+PiArCj4+Pj4gKy8qIERlbGF5 IGNvdW50IGluIGNsb2NrIGN5Y2xlcyAqLwo+Pj4+ICsjZGVmaW5lIE1GR19BQ1RJVkVfUE9XRVJf Q09OMCAgICAgICAgMHgyNAo+Pj4+ICsgI2RlZmluZSBSU1RfQl9ERUxBWV9DTlQgICAgIEdFTk1B U0soNywgMCkgICAvKiBwd3JfcnN0X2IgZGUtYXNzZXJ0IGRlbGF5IGR1cmluZyBwb3dlci11cCAq Lwo+Pj4+ICsgI2RlZmluZSBDTEtfRU5fREVMQVlfQ05UICAgIEdFTk1BU0soMTUsIDgpICAvKiBD TEtfRElTIGRlYXNzZXJ0IGRlbGF5IGR1cmluZyBwb3dlci11cCAqLwo+Pj4+ICsgI2RlZmluZSBD TEtfRElTX0RFTEFZX0NOVCAgIEdFTk1BU0soMjMsIDE2KSAvKiBDTEtfRElTIGFzc2VydCBkZWxh eSBkdXJpbmcgcG93ZXItZG93biAqLwo+Pj4KPj4+IFRoZSByZWFzb24gd2h5IEkgaGFkIEVWVF9G T1JDRV9BQk9SVCBhbmQgQUNUSVZFX1BXUkNUTF9FTiBpbiBteSBkcml2ZXIgaXMgdG8KPj4+IGRv Y3VtZW50IHRoYXQgd2UncmUga2VlcGluZyB0aGUgZXZlbnQgZm9yY2UgYWJvcnQgZGlzYWJsZWQg YW5kLCBtb3JlIGltcG9ydGFudGx5LAo+Pj4gd2UgYXJlIGtlZXBpbmcgdGhlICJhY3RpdmUgcG93 ZXIgY29udHJvbCIgZmVhdHVyZSBkaXNhYmxlZC4KPj4+Cj4+PiBQbGVhc2UsIGFkZCB0aG9zZSB0 d28gLSBvciBhdCBsZWFzdCB0aGUgQUNUSVZFX1BXUkNUTF9FTiAtIHRvIGtlZXAgdGhhdCBkb2N1 bWVudGVkLAo+Pj4gb3IgdGhpcyBpbmZvcm1hdGlvbiB3aWxsIGJlIGxvc3QgZm9yIHN1cmUuCj4+ PiBJZiBpbiB0aGUgZnV0dXJlIHRoZSBBQ1RJVkVfUFdSQ1RMIGZlYXR1cmUgd2lsbCBiZWNvbWUg dXNhYmxlLCBpdCdzIGdvaW5nIHRvIGJlCj4+PiBqdXN0IGEgMzAgc2Vjb25kcyBjaGFuZ2UsIGFz IHRoZSBpbmZvIGlzIGFscmVhZHkgdGhlcmUuCj4+Cj4+IE9LLgo+Pgo+Pj4+ICsKPj4+PiArI2Rl ZmluZSBNRkdfQUNUSVZFX1BPV0VSX0NPTjEgICAgICAgIDB4MjgKPj4+PiArICNkZWZpbmUgUFdS X09OX1NfREVMQVlfQ05UICBHRU5NQVNLKDcsIDApICAgLyogcHdyX29uX3MgYXNzZXJ0IGRlbGF5 IGR1cmluZyBwb3dlci11cCAqLwo+Pj4+ICsgI2RlZmluZSBJU09fREVMQVlfQ05UICAgICAgICAg ICAgICAgR0VOTUFTSygxNSwgOCkgIC8qIElTTyBhc3NlcnQgZGVsYXkgZHVyaW5nIHBvd2VyLWRv d24gKi8KPj4+PiArICNkZWZpbmUgSVNPT0ZGX0RFTEFZX0NOVCAgICBHRU5NQVNLKDIzLCAxNikg LyogSVNPIGRlLWFzc2VydCBkZWxheSBkdXJpbmcgcG93ZXItdXAgKi8KPj4+PiArICNkZWZpbmUg UlNUX19ERUxBWV9DTlQgICAgICAgICAgICAgIEdFTk1BU0soMzEsIDI0KSAvKiBwd3JfcnNiX2Ig YXNzZXJ0IGRlbGF5IGR1cmluZyBwb3dlci1kb3duICovCj4+Pj4gKwo+Pj4+ICtzdGF0aWMgaW50 IGNsa19tdDgxNzNfbWZndG9wX3Bvd2VyX29uKHN0cnVjdCBnZW5lcmljX3BtX2RvbWFpbiAqZG9t YWluKQo+Pj4+ICt7Cj4+Pj4gKyAgICAgc3RydWN0IG10ODE3M19tZmd0b3BfZGF0YSAqZGF0YSA9 IGNvbnRhaW5lcl9vZihkb21haW4sIHN0cnVjdCBtdDgxNzNfbWZndG9wX2RhdGEsIGdlbnBkKTsK Pj4+PiArCj4+Pj4gKyAgICAgLyogZHJpdmVzIGludGVybmFsIHBvd2VyIG1hbmFnZW1lbnQgKi8K Pj4+PiArICAgICBjbGtfcHJlcGFyZV9lbmFibGUoZGF0YS0+Y2xrXzI2bSk7Cj4+Pj4gKwo+Pj4+ ICsgICAgIC8qIFBvd2VyIG9uL29mZiBkZWxheXMgZm9yIHZhcmlvdXMgc2lnbmFscyAqLwo+Pj4+ ICsgICAgIHJlZ21hcF93cml0ZShkYXRhLT5yZWdtYXAsIE1GR19BQ1RJVkVfUE9XRVJfQ09OMCwK Pj4+PiArICAgICAgICAgICAgICAgICAgRklFTERfUFJFUChSU1RfQl9ERUxBWV9DTlQsIDc3KSB8 Cj4+Pj4gKyAgICAgICAgICAgICAgICAgIEZJRUxEX1BSRVAoQ0xLX0VOX0RFTEFZX0NOVCwgNjEp IHwKPj4+PiArICAgICAgICAgICAgICAgICAgRklFTERfUFJFUChDTEtfRElTX0RFTEFZX0NOVCwg NjApKTsKPj4+Cj4+PiBJIGdldCB0aGF0IHRoaXMgaXMga2luZGEgb2RkIHRvIHJlYWQsIGJ1dCBz dGlsbC4uLgo+Pj4KPj4+IEZJRUxEX1BSRVAoQ0xLX0RJU19ERUxBWV9DTlQsIDYwKSB8Cj4+PiBG SUVMRF9QUkVQKEFDVElWRV9QV1JDVExfRU4sIDApKTsKPj4+Cj4+PiAuLi5wbGVhc2UgOi0pCj4+ Cj4+IFN1cmUuCj4+Cj4+Pj4gKyAgICAgcmVnbWFwX3dyaXRlKGRhdGEtPnJlZ21hcCwgTUZHX0FD VElWRV9QT1dFUl9DT04xLAo+Pj4+ICsgICAgICAgICAgICAgICAgICBGSUVMRF9QUkVQKFBXUl9P Tl9TX0RFTEFZX0NOVCwgMTEpIHwKPj4+PiArICAgICAgICAgICAgICAgICAgRklFTERfUFJFUChJ U09fREVMQVlfQ05ULCA2OCkgfAo+Pj4+ICsgICAgICAgICAgICAgICAgICBGSUVMRF9QUkVQKElT T09GRl9ERUxBWV9DTlQsIDY5KSB8Cj4+Pj4gKyAgICAgICAgICAgICAgICAgIEZJRUxEX1BSRVAo UlNUX19ERUxBWV9DTlQsIDc3KSk7Cj4+Pj4gKwo+Pj4+ICsgICAgIC8qIE1hZ2ljIG51bWJlcnMg cmVsYXRlZCB0byBjb3JlIHN3aXRjaCBzZXF1ZW5jZSBhbmQgZGVsYXlzICovCj4+Pj4gKyAgICAg cmVnbWFwX3dyaXRlKGRhdGEtPnJlZ21hcCwgMHhlMCwgMHg3YTcxMDE4NCk7Cj4+Pj4gKyAgICAg cmVnbWFwX3dyaXRlKGRhdGEtPnJlZ21hcCwgMHhlNCwgMHg4MzVmNjg1Nik7Cj4+Pj4gKyAgICAg cmVnbWFwX3dyaXRlKGRhdGEtPnJlZ21hcCwgMHhlOCwgMHgwMDJiMDIzNCk7Cj4+Pj4gKyAgICAg cmVnbWFwX3dyaXRlKGRhdGEtPnJlZ21hcCwgMHhlYywgMHg4MDAwMDAwMCk7Cj4+Pj4gKyAgICAg cmVnbWFwX3dyaXRlKGRhdGEtPnJlZ21hcCwgMHhhMCwgMHgwODAwMDAwMCk7Cj4+Pgo+Pj4gSXMg dGhlcmUgYW55IHdheSB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHRob3NlIHJl Z2lzdGVycyBhcmU/Cj4+Cj4+IEkgYXNrZWQuIFRoZXkgc2FpZCB0aGUgcHJvamVjdCB3YXMgdG9v IGxvbmcgYWdvLCBhbmQgdGhleSBjb3VsZCBvbmx5Cj4+IGZpZ3VyZSBvdXQgdGhhdCBpdCBoYWQg c29tZXRoaW5nIHRvIGRvIHdpdGggY29yZSBzd2l0Y2ggc2VxdWVuY2luZyBhbmQKPj4gZGVsYXlz IGJldHdlZW4gZWFjaCBjb3JlLCB3aGljaCBpcyB3aGF0IEkgcHV0IGluIHRoZSBjb21tZW50IHRo ZXJlLgo+Pgo+Pj4+ICsKPj4+PiArICAgICByZXR1cm4gMDsKPj4+PiArfQo+Pj4+ICsKPj4+PiAr c3RhdGljIGludCBjbGtfbXQ4MTczX21mZ3RvcF9wb3dlcl9vZmYoc3RydWN0IGdlbmVyaWNfcG1f ZG9tYWluICpkb21haW4pCj4+Pj4gK3sKPj4+PiArICAgICBzdHJ1Y3QgbXQ4MTczX21mZ3RvcF9k YXRhICpkYXRhID0gY29udGFpbmVyX29mKGRvbWFpbiwgc3RydWN0IG10ODE3M19tZmd0b3BfZGF0 YSwgZ2VucGQpOwo+Pj4+ICsKPj4+PiArICAgICAvKiBNYWdpYyBudW1iZXJzIHJlbGF0ZWQgdG8g Y29yZSBzd2l0Y2ggc2VxdWVuY2UgYW5kIGRlbGF5cyAqLwo+Pj4+ICsgICAgIHJlZ21hcF93cml0 ZShkYXRhLT5yZWdtYXAsIDB4ZWMsIDApOwo+Pj4+ICsKPj4+PiArICAgICAvKiBkcml2ZXMgaW50 ZXJuYWwgcG93ZXIgbWFuYWdlbWVudCAqLwo+Pj4+ICsgICAgIGNsa19kaXNhYmxlX3VucHJlcGFy ZShkYXRhLT5jbGtfMjZtKTsKPj4+PiArCj4+Pj4gKyAgICAgcmV0dXJuIDA7Cj4+Pj4gK30KPj4+ PiArCj4+Pj4gK3N0YXRpYyBpbnQgY2xrX210ODE3M19tZmd0b3BfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPj4+PiArewo+Pj4+ICsgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9 ICZwZGV2LT5kZXY7Cj4+Pj4gKyAgICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gZGV2LT5v Zl9ub2RlOwo+Pj4+ICsgICAgIHN0cnVjdCBtdDgxNzNfbWZndG9wX2RhdGEgKmRhdGE7Cj4+Pj4g KyAgICAgaW50IHJldDsKPj4+PiArCj4+Pj4gKyAgICAgZGF0YSA9IGRldm1fa3phbGxvYyhkZXYs IHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwpOwo+Pj4+ICsgICAgIGlmICghZGF0YSkKPj4+PiAr ICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+Pj4+ICsKPj4+PiArICAgICBwbGF0Zm9ybV9z ZXRfZHJ2ZGF0YShwZGV2LCBkYXRhKTsKPj4+PiArCj4+Pj4gKyAgICAgZGF0YS0+Y2xrX2RhdGEg PSBtdGtfZGV2bV9hbGxvY19jbGtfZGF0YShkZXYsIEFSUkFZX1NJWkUobWZnX2Nsa3MpKTsKPj4+ PiArICAgICBpZiAoIWRhdGEtPmNsa19kYXRhKQo+Pj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1F Tk9NRU07Cj4+Pj4gKwo+Pj4+ICsgICAgIC8qIE1USyBjbG9jayBnYXRlcyBhbHNvIHVzZXMgcmVn bWFwICovCj4+Pj4gKyAgICAgZGF0YS0+cmVnbWFwID0gZGV2aWNlX25vZGVfdG9fcmVnbWFwKG5v ZGUpOwo+Pj4+ICsgICAgIGlmIChJU19FUlIoZGF0YS0+cmVnbWFwKSkKPj4+PiArICAgICAgICAg ICAgIHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihkYXRhLT5yZWdtYXApLCAiRmFp bGVkIHRvIGdldCByZWdtYXBcbiIpOwo+Pj4+ICsKPj4+PiArICAgICBkYXRhLT5jaGlsZF9wZC5u cCA9IG5vZGU7Cj4+Pj4gKyAgICAgZGF0YS0+Y2hpbGRfcGQuYXJnc19jb3VudCA9IDA7Cj4+Pj4g KyAgICAgcmV0ID0gb2ZfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3Mobm9kZSwgInBvd2VyLWRvbWFp bnMiLCAiI3Bvd2VyLWRvbWFpbi1jZWxscyIsIDAsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmRhdGEtPnBhcmVudF9wZCk7Cj4+Pj4gKyAgICAgaWYgKHJldCkK Pj4+PiArICAgICAgICAgICAgIHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiRmFpbGVk IHRvIHBhcnNlIHBvd2VyIGRvbWFpblxuIik7Cj4+Pj4gKwo+Pj4+ICsgICAgIGRldm1fcG1fcnVu dGltZV9lbmFibGUoZGV2KTsKPj4+PiArICAgICAvKgo+Pj4+ICsgICAgICAqIERvIGEgcG1fcnVu dGltZV9yZXN1bWVfYW5kX2dldCgpIHRvIHdvcmthcm91bmQgYSBwb3NzaWJsZQo+Pj4+ICsgICAg ICAqIGRlYWRsb2NrIGJldHdlZW4gY2xrX3JlZ2lzdGVyKCkgYW5kIHRoZSBnZW5wZCBmcmFtZXdv cmsuCj4+Pj4gKyAgICAgICovCj4+Pj4gKyAgICAgcmV0ID0gcG1fcnVudGltZV9yZXN1bWVfYW5k X2dldChkZXYpOwo+Pj4+ICsgICAgIGlmIChyZXQpIHsKPj4+PiArICAgICAgICAgICAgIGRldl9l cnJfcHJvYmUoZGV2LCByZXQsICJGYWlsZWQgdG8gcnVudGltZSByZXN1bWUgZGV2aWNlXG4iKTsK Pj4+PiArICAgICAgICAgICAgIGdvdG8gcHV0X29mX25vZGU7Cj4+Pj4gKyAgICAgfQo+Pj4+ICsK Pj4+PiArICAgICByZXQgPSBtdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKGRldiwgbm9kZSwgbWZnX2Ns a3MsIEFSUkFZX1NJWkUobWZnX2Nsa3MpLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YS0+Y2xrX2RhdGEpOwo+Pj4+ICsgICAgIGlmIChyZXQpIHsKPj4+PiArICAg ICAgICAgICAgIGRldl9lcnJfcHJvYmUoZGV2LCByZXQsICJGYWlsZWQgdG8gcmVnaXN0ZXIgY2xv Y2sgZ2F0ZXNcbiIpOwo+Pj4+ICsgICAgICAgICAgICAgZ290byBwdXRfcG1fcnVudGltZTsKPj4+ PiArICAgICB9Cj4+Pj4gKwo+Pj4+ICsgICAgIGRhdGEtPmNsa18yNm0gPSBjbGtfaHdfZ2V0X2Ns ayhkYXRhLT5jbGtfZGF0YS0+aHdzW0NMS19NRkdfMjZNXSwgIjI2bSIpOwo+Pj4+ICsgICAgIGlm IChJU19FUlIoZGF0YS0+Y2xrXzI2bSkpIHsKPj4+PiArICAgICAgICAgICAgIGRldl9lcnJfcHJv YmUoZGV2LCBQVFJfRVJSKGRhdGEtPmNsa18yNm0pLCAiRmFpbGVkIHRvIGdldCAyNiBNSHogY2xv Y2tcbiIpOwo+Pj4+ICsgICAgICAgICAgICAgZ290byB1bnJlZ2lzdGVyX2Nsa3M7Cj4+Pj4gKyAg ICAgfQo+Pj4+ICsKPj4+PiArICAgICByZXQgPSBvZl9jbGtfYWRkX2h3X3Byb3ZpZGVyKG5vZGUs IG9mX2Nsa19od19vbmVjZWxsX2dldCwgZGF0YS0+Y2xrX2RhdGEpOwo+Pj4+ICsgICAgIGlmIChy ZXQpIHsKPj4+PiArICAgICAgICAgICAgIGRldl9lcnJfcHJvYmUoZGV2LCByZXQsICJGYWlsZWQg dG8gYWRkIGNsayBPRiBwcm92aWRlclxuIik7Cj4+Pj4gKyAgICAgICAgICAgICBnb3RvIHB1dF8y Nm1fY2xrOwo+Pj4+ICsgICAgIH0KPj4+PiArCj4+Pj4gKyAgICAgZGF0YS0+Z2VucGQubmFtZSA9 ICJtZmdfYXBtIjsKPj4+Cj4+PiAibWZnLWFwbSIgb3IgIm1mZy1wd3IiIHBsZWFzZSEKPj4KPj4g QWNrLgo+IAo+IE9uIHNlY29uZCB0aG91Z2h0LCBtZmctdG9wIHNlZW1zIGxpa2UgYSBiZXR0ZXIg bmFtZSwgc2luY2UgaXQgbWF0Y2hlcwo+IHRoZSBkYXRhc2hlZXQuCj4gCgpZZXMsIEkgZGVmaW5p dGVseSBhZ3JlZS4gTGV0J3MgZ28gZm9yIG1mZy10b3AuCgpDaGVlcnMhCgo+IENoZW5ZdQo+IAo+ Pj4gRXZlcnl0aGluZyBlbHNlIGxvb2tzIGdvb2QuCj4+Pgo+Pj4gVGhhbmtzIGZvciB0YWtpbmcg Y2FyZSBvZiB0aGF0LCBJIHN0YXJ0ZWQgdGhpcyB3b3JrIHdheSB0b28gbXVjaCB0aW1lIGFnbyBh bmQKPj4+IHJlYWxpc3RpY2FsbHkgSSB3b3VsZG4ndCBoYXZlIGJlZW4gYWJsZSB0byBmaW5pc2gg aXQgZHVlIHRvIHRpbWUgY29uc3RyYWludHMuCj4+Pgo+Pj4gSXQncyBncmVhdCB0byBzZWUgdGhh dCAqZmluYWxseSogd2UgY2FuIGdldCBzb21lIEdQVSB1cHN0cmVhbSBvbiB0aGlzIG9sZCBTb0Mu Cj4+PiBBcyBpdHMgQ1BVcyBhcmUgcmVhbGx5IHNsb3csIExMVk1QaXBlIGlzIHF1aXRlIHVudXNh YmxlIGZyb20gYSBVWCBwZXJzcGVjdGl2ZQo+Pj4gaGVuY2UgaXRzIG9ubHkgYmlnIGlzc3VlIHdh cyB0aGUgbGFjayBvZiAzRCBIVyBhY2NlbGVyYXRpb24uCj4+Cj4+IEkgdGhpbmsgdGhlcmUncyBz dGlsbCBtb3JlIHdvcmsgb24gdGhlIEdQVSBkcml2ZXIgc2lkZS4gSSB3YXMgZGlnZ2luZwo+PiB0 aHJvdWdoIHRoZSBtYWlsaW5nIGxpc3QgdG8gZmluZCB3YXlzIHRvIGdldCBpdCBydW5uaW5nLCBh bmQgZXZpZGVudGx5Cj4+IGl0IGRvZXNuJ3QgZnVsbHkgc3VwcG9ydCB6aW5rIHlldC4KPj4KPj4+ IFRoaXMgbWFrZXMgbWFjaGluZXMgZW1iZWRkaW5nIHRoaXMgU29DIHVzYWJsZSwgYW5kIHRoYXQn cyBzaW1wbHkgYXdlc29tZS4KPj4KPj4gSSdsbCBnaXZlIHRoZSBwYXRjaGVzIGEgd2VlayB0byBz aW1tZXIgd2hpbGUgSSBnbyB3b3JrIG9uIHNvbWUKPj4gb3RoZXIgc3R1ZmYuCj4+Cj4+IENoZW5Z dQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK