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 15237C4332F for ; Fri, 16 Dec 2022 15:27:47 +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:Subject:From:References:Cc:To: 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=fjHCs8p+2yWD1rm1f1tPxKBceX9Fhyfo8XzEorPC+Bc=; b=U/1Y+dcnQ+8+Gu OabV5pfKrTe5n/4oGDYh3vndE9ijKrqNqJOMMsF5c40l650WocYRWAI7Pcl7d8qoN3MiO/lK7NLh0 1yOW/9J/qxMUS91HycZ98PesxaT1D6BLphOocEzIZWx+tEIKSfQ0NCLwmrv/BIRVAzs6iwnaKwbng /1bOnIcidExCfAL7RzVy4T6tevmQOeSeqgImmb+5T40h25wPC5N7emY5X84oPMTjP1MPVKnW8Q1El JS32mbHQcbq/xT+oIzgO16jvRI7wpI6Ny3ErFbI9sRAhA/5N3I9hSGwVRmxJRFmMcN8+m3lvFtGJ9 sCsaroqnCnn3lB82VH8w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p6Cba-00G1RM-FM; Fri, 16 Dec 2022 15:26:34 +0000 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1p6CbW-00G1Pi-C7; Fri, 16 Dec 2022 15:26:32 +0000 Received: by mail-wr1-x42c.google.com with SMTP id w15so2827888wrl.9; Fri, 16 Dec 2022 07:26:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:subject:from:references:cc:to :content-language:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=As1qCdI89s9NSmClbVQa7XOiqHvyhjnR3C/4hX9iEVE=; b=HeExj6/SAWKcRdVCOu08SaVvuf2i25kLIy/BzbSr4gERCj+TCr2b9cKjrSq0hgsLsA 1DMVSuXXRx/EVyNgxQL2UAzxYeh6iBBtehKx4snyT3jUnYzxdwvWB+yuRlaVESd9HUxV M9+qHgNhhpok2GR8yGSf70faq2ElTYqjC+r134vQc3m5wa50HeCegNAplpbo+Q0ZEsmg OiviHRu1cIzM9/fBeMfvAiTaFtWi0mQKPcAf9pQPTq1AsGHo4k3t1GNXW4QX2tqbGpc/ D6x/aeXd3xeIIy3XqSIBbkDeceZ/COLxd/DUEKiou+Ocfi5ZWGQ9eKLd8LnfIzCQaY7P TgCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:subject:from:references:cc:to :content-language:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=As1qCdI89s9NSmClbVQa7XOiqHvyhjnR3C/4hX9iEVE=; b=Nid/hHkfp80aTSIID/cldWxlrtJ8LEw3qCVMNEBQPVjOSiyqt1fbT/yP12Uki6YSb+ lNgNRhU1Ontn5HXV/AKvfPunPkWYvUw/dKKDrM3Y/LAeag0cA8JfZmEIOA+auJ6iOFMB DkDbXp3cb8T7vHr/2ZkCOt3Fs8rdm5iDsh86TKAJv/xNVQhjQUUt2lUa5EUZUrL3Qgeb GyHuSlXjUw2mbrgG2IlKfxdlc2YFYPSQtSNo5GJ6Io35nPJtEG2ofEH7o1sVrhy6Y9LX 8YBAZGPpFvhOXmzYKHcvT52ykuz6r9hO6ozR8Y3n6sFmqbcBsqGOqSYlnNsIENbLcsM/ kXpA== X-Gm-Message-State: ANoB5pnHzNppq4OcjwTFJnuCrl+QYMFTnvr0YLAM25PS5y94t96NFKIE o6whTGLvnXAiL5l+48iN+gg= X-Google-Smtp-Source: AA0mqf6lKWbGgNMPUFgN0v5CgfdekultbncpRAziPr9XZdW0R0boBmjRrKt5gIKdiMoFA1ZndlCnPQ== X-Received: by 2002:a5d:6890:0:b0:242:661b:a20 with SMTP id h16-20020a5d6890000000b00242661b0a20mr26854542wru.20.1671204385535; Fri, 16 Dec 2022 07:26:25 -0800 (PST) Received: from [192.168.1.132] ([207.188.167.132]) by smtp.gmail.com with ESMTPSA id y5-20020a056000108500b0023657e1b980sm2580355wrw.53.2022.12.16.07.26.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 16 Dec 2022 07:26:24 -0800 (PST) Message-ID: <19d04ffd-a79d-06f6-cb0e-fe56bc18615f@gmail.com> Date: Fri, 16 Dec 2022 16:26:23 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Content-Language: en-US To: AngeloGioacchino Del Regno Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, wenst@chromium.org, alyssa.rosenzweig@collabora.com, nfraprado@collabora.com, dmitry.osipenko@collabora.com References: <20221006115816.66853-1-angelogioacchino.delregno@collabora.com> <732e4a1d-8008-072d-cedb-c6859cbfdf98@collabora.com> From: Matthias Brugger Subject: Re: [RESEND PATCH v3] soc: mediatek: Introduce mediatek-regulator-coupler driver In-Reply-To: <732e4a1d-8008-072d-cedb-c6859cbfdf98@collabora.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221216_072630_443793_C8820911 X-CRM114-Status: GOOD ( 39.46 ) 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 SGkgQW5nZWxvLAoKT24gMTYvMTIvMjAyMiAxNDoxNSwgQW5nZWxvR2lvYWNjaGlubyBEZWwgUmVn bm8gd3JvdGU6Cj4gSWwgMjEvMTEvMjIgMTM6MDEsIEFuZ2Vsb0dpb2FjY2hpbm8gRGVsIFJlZ25v IGhhIHNjcml0dG86Cj4+IElsIDIxLzExLzIyIDEyOjQ0LCBNYXR0aGlhcyBCcnVnZ2VyIGhhIHNj cml0dG86Cj4+Pgo+Pj4KPj4+IE9uIDA2LzEwLzIwMjIgMTM6NTgsIEFuZ2Vsb0dpb2FjY2hpbm8g RGVsIFJlZ25vIHdyb3RlOgo+Pj4+IFRoaXMgZHJpdmVyIGN1cnJlbnRseSBkZWFscyB3aXRoIEdQ VS1TUkFNIHJlZ3VsYXRvciBjb3VwbGluZywgZW5zdXJpbmcKPj4+PiB0aGF0IHRoZSBTUkFNIHZv bHRhZ2UgaXMgYWx3YXlzIGJldHdlZW4gYSBzcGVjaWZpYyByYW5nZSBvZiBkaXN0YW5jZSB0bwo+ Pj4+IHRoZSBHUFUgdm9sdGFnZSwgZGVwZW5kaW5nIG9uIHRoZSBTb0MsIG5lY2Vzc2FyeSBpbiBv cmRlciB0byBhY2hpZXZlCj4+Pj4gc3lzdGVtIHN0YWJpbGl0eSBhY3Jvc3MgdGhlIGZ1bGwgcmFu Z2Ugb2Ygc3VwcG9ydGVkIEdQVSBmcmVxdWVuY2llcy4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6 IEFuZ2Vsb0dpb2FjY2hpbm8gRGVsIFJlZ25vIAo+Pj4+IDxhbmdlbG9naW9hY2NoaW5vLmRlbHJl Z25vQGNvbGxhYm9yYS5jb20+Cj4+Pj4gUmV2aWV3ZWQtYnk6IERtaXRyeSBPc2lwZW5rbyA8ZG1p dHJ5Lm9zaXBlbmtvQGNvbGxhYm9yYS5jb20+Cj4+Pj4gLS0tCj4+Pj4KPj4+PiBUaGlzIGRyaXZl ciB3YXMgc3VjY2Vzc2Z1bGx5IHRlc3RlZCBmb3IgbW9yZSB0aGFuIDMgbW9udGhzLgo+Pj4+IEdQ VSBEVkZTIHdvcmtzIGNvcnJlY3RseSB3aXRoIG5vIHN0YWJpbGl0eSBpc3N1ZXMuCj4+Pj4KPj4+ PiBDaGFuZ2VzIGluIFJFU0VORCx2MzoKPj4+PiDCoCBSZWJhc2VkIG92ZXIgbmV4dC0yMDIyMTAw NQo+Pj4+Cj4+Pj4gQ2hhbmdlcyBpbiB2MzoKPj4+PiDCoCAtIEFkZGVkIGJyYWNlcyB0byBlbHNl LWlmIGJyYW5jaAo+Pj4+Cj4+Pj4gQ2hhbmdlcyBpbiB2MjoKPj4+PiDCoCAtIEFkZGVkIGNoZWNr IGZvciBuX2NvdXBsZWQKPj4+PiDCoCAtIEFkZGVkIGNoZWNrIGZvciB2Z3B1IHRvIGVuZm9yY2Ug YXR0YWNoaW5nIHRvIHZncHU8LT5zcmFtIGNvdXBsaW5nIG9ubHkKPj4+Pgo+Pj4+IENvbnRleHQ6 Cj4+Pj4gVGhpcyBkcml2ZXIgaXMgdGhlIGxhc3Qgb2YgdGhlIHBpZWNlcyBvZiBhIGJpZ2dlciBw dXp6bGUsIGFpbWluZyB0byBmaW5hbGx5Cj4+Pj4gZW5hYmxlIER5bmFtaWMgVm9sdGFnZS9GcmVx dWVuY3kgU2NhbGluZyBmb3IgTWFsaSBHUFVzIGZvdW5kIG9uIE1lZGlhVGVrCj4+Pj4gU29DcyBv biB0aGUgZnVsbHkgb3BlbiBzb3VyY2UgZ3JhcGhpY3Mgc3RhY2sgKFBhbmZyb3N0IGRyaXZlciku Cj4+Pj4KPj4+PiBObyBkZXZpY2V0cmVlIGJpbmRpbmdzIGFyZSBwcm92aWRlZCBiZWNhdXNlIHRo aXMgZG9lcyBub3QgcmVxdWlyZSBhbnkKPj4+PiBkcml2ZXItc3BlY2lmaWMgYmluZGluZyBhdCBh bGwuCj4+Pj4KPj4+PiBMYXN0IGJ1dCBub3QgbGVhc3Q6IGl0IHdhcyBjaG9zZW4gdG8gaGF2ZSB0 aGlzIGRyaXZlciBlbmFibGVkIGZvcgo+Pj4+ICggQVJDSF9NRURJQVRFSyAmJiBSRUdVTEFUT1Ig KSB3aXRob3V0IHJlYWxseSBnaXZpbmcgYSBmcmVlIGNvbmZpZ3VyYXRpb24KPj4+PiBjaG9pY2Ug YmVjYXVzZSwgb25jZSB0aGUgRFZGUyBtZWNoYW5pc20gd2lsbCBiZSBmdWxseSB3b3JraW5nLCB1 c2luZyBvbmUKPj4+PiBvZiB0aGUgbGlzdGVkIE1lZGlhVGVrIFNvQ3MgKndpdGhvdXQqIHRoaXMg Y291cGxpbmcgbWVjaGFuaXNtICp3aWxsKiBsZWFkCj4+Pj4gdG8gdW5zdGFiaWxpdGllcyBhbmQg c3lzdGVtIGNyYXNoZXMuCj4+Pj4gRm9yIENPTVBJTEVfVEVTVCwgY2hvaWNlIGlzIGdpdmVuIGZv ciBvYnZpb3VzIHJlYXNvbnMuCj4+Pj4KPj4+PiDCoCBkcml2ZXJzL3NvYy9tZWRpYXRlay9LY29u ZmlnwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgNSArCj4+Pj4gwqAgZHJp dmVycy9zb2MvbWVkaWF0ZWsvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fMKgwqAgMSArCj4+Pj4gwqAgZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXJlZ3VsYXRvci1jb3Vw bGVyLmMgfCAxNTkgKysrKysrKysrKysrKysrKysrKwo+Pj4+IMKgIDMgZmlsZXMgY2hhbmdlZCwg MTY1IGluc2VydGlvbnMoKykKPj4+PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zb2Mv bWVkaWF0ZWsvbXRrLXJlZ3VsYXRvci1jb3VwbGVyLmMKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3NvYy9tZWRpYXRlay9LY29uZmlnIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvS2NvbmZp Zwo+Pj4+IGluZGV4IDQwZDBjYzYwMGNhZS4uMzBiNWFmYzBlNTFkIDEwMDY0NAo+Pj4+IC0tLSBh L2RyaXZlcnMvc29jL21lZGlhdGVrL0tjb25maWcKPj4+PiArKysgYi9kcml2ZXJzL3NvYy9tZWRp YXRlay9LY29uZmlnCj4+Pj4gQEAgLTQ0LDYgKzQ0LDExIEBAIGNvbmZpZyBNVEtfUE1JQ19XUkFQ Cj4+Pj4gwqDCoMKgwqDCoMKgwqAgb24gZGlmZmVyZW50IE1lZGlhVGVrIFNvQ3MuIFRoZSBQTUlD IHdyYXBwZXIgaXMgYSBwcm9wcmlldGFyeQo+Pj4+IMKgwqDCoMKgwqDCoMKgIGhhcmR3YXJlIHRv IGNvbm5lY3QgdGhlIFBNSUMuCj4+Pj4gK2NvbmZpZyBNVEtfUkVHVUxBVE9SX0NPVVBMRVIKPj4+ PiArwqDCoMKgIGJvb2wgIk1lZGlhVGVrIFNvQyBSZWd1bGF0b3IgQ291cGxlciIgaWYgQ09NUElM RV9URVNUCj4+Pj4gK8KgwqDCoCBkZWZhdWx0IEFSQ0hfTUVESUFURUsKPj4+PiArwqDCoMKgIGRl cGVuZHMgb24gUkVHVUxBVE9SCj4+Pj4gKwo+Pj4+IMKgIGNvbmZpZyBNVEtfU0NQU1lTCj4+Pj4g wqDCoMKgwqDCoCBib29sICJNZWRpYVRlayBTQ1BTWVMgU3VwcG9ydCIKPj4+PiDCoMKgwqDCoMKg IGRlZmF1bHQgQVJDSF9NRURJQVRFSwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRp YXRlay9NYWtlZmlsZSBiL2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxlCj4+Pj4gaW5kZXgg MGU5ZTcwM2M5MzFhLi44YzBkZGFjYmNkZTggMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9zb2Mv bWVkaWF0ZWsvTWFrZWZpbGUKPj4+PiArKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmls ZQo+Pj4+IEBAIC0zLDYgKzMsNyBAQCBvYmotJChDT05GSUdfTVRLX0NNRFEpICs9IG10ay1jbWRx LWhlbHBlci5vCj4+Pj4gwqAgb2JqLSQoQ09ORklHX01US19ERVZBUEMpICs9IG10ay1kZXZhcGMu bwo+Pj4+IMKgIG9iai0kKENPTkZJR19NVEtfSU5GUkFDRkcpICs9IG10ay1pbmZyYWNmZy5vCj4+ Pj4gwqAgb2JqLSQoQ09ORklHX01US19QTUlDX1dSQVApICs9IG10ay1wbWljLXdyYXAubwo+Pj4+ ICtvYmotJChDT05GSUdfTVRLX1JFR1VMQVRPUl9DT1VQTEVSKSArPSBtdGstcmVndWxhdG9yLWNv dXBsZXIubwo+Pj4+IMKgIG9iai0kKENPTkZJR19NVEtfU0NQU1lTKSArPSBtdGstc2Nwc3lzLm8K Pj4+PiDCoCBvYmotJChDT05GSUdfTVRLX1NDUFNZU19QTV9ET01BSU5TKSArPSBtdGstcG0tZG9t YWlucy5vCj4+Pj4gwqAgb2JqLSQoQ09ORklHX01US19NTVNZUykgKz0gbXRrLW1tc3lzLm8KPj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXJlZ3VsYXRvci1jb3VwbGVy LmMgCj4+Pj4gYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstcmVndWxhdG9yLWNvdXBsZXIuYwo+ Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAwLi5hZDJlZDQy YWE2OTcKPj4+PiAtLS0gL2Rldi9udWxsCj4+Pj4gKysrIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsv bXRrLXJlZ3VsYXRvci1jb3VwbGVyLmMKPj4+PiBAQCAtMCwwICsxLDE1OSBAQAo+Pj4+ICsvLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Cj4+Pj4gKy8qCj4+Pj4gKyAqIFZv bHRhZ2UgcmVndWxhdG9ycyBjb3VwbGVyIGZvciBNZWRpYVRlayBTb0NzCj4+Pj4gKyAqCj4+Pj4g KyAqIENvcHlyaWdodCAoQykgMjAyMiBDb2xsYWJvcmEsIEx0ZC4KPj4+PiArICogQXV0aG9yOiBB bmdlbG9HaW9hY2NoaW5vIERlbCBSZWdubyAKPj4+PiA8YW5nZWxvZ2lvYWNjaGluby5kZWxyZWdu b0Bjb2xsYWJvcmEuY29tPgo+Pj4+ICsgKi8KPj4+PiArCj4+Pj4gKyNkZWZpbmUgcHJfZm10KGZt dCkgS0JVSUxEX01PRE5BTUUgIjogIiBmbXQKPj4+PiArCj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9p bml0Lmg+Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPj4+PiArI2luY2x1ZGUgPGxp bnV4L29mLmg+Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY291cGxlci5oPgo+Pj4+ ICsjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2RyaXZlci5oPgo+Pj4+ICsjaW5jbHVkZSA8bGlu dXgvcmVndWxhdG9yL21hY2hpbmUuaD4KPj4+PiArI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQuaD4K Pj4+PiArCj4+Pj4gKyNkZWZpbmUgdG9fbWVkaWF0ZWtfY291cGxlcih4KcKgwqDCoCBjb250YWlu ZXJfb2YoeCwgc3RydWN0IAo+Pj4+IG1lZGlhdGVrX3JlZ3VsYXRvcl9jb3VwbGVyLCBjb3VwbGVy KQo+Pj4+ICsKPj4+PiArc3RydWN0IG1lZGlhdGVrX3JlZ3VsYXRvcl9jb3VwbGVyIHsKPj4+PiAr wqDCoMKgIHN0cnVjdCByZWd1bGF0b3JfY291cGxlciBjb3VwbGVyOwo+Pj4+ICvCoMKgwqAgc3Ry dWN0IHJlZ3VsYXRvcl9kZXYgKnZzcmFtX3JkZXY7Cj4+Pj4gK307Cj4+Pj4gKwo+Pj4+ICsvKgo+ Pj4+ICsgKiBXZSBjdXJyZW50bHkgc3VwcG9ydCBvbmx5IGNvdXBsZXMgb2Ygbm90IG1vcmUgdGhh biB0d28gdnJlZ3MgYW5kCj4+Pj4gKyAqIG1vZGlmeSB0aGUgdnNyYW0gdm9sdGFnZSBvbmx5IHdo ZW4gY2hhbmdpbmcgdm9sdGFnZSBvZiB2Z3B1Lgo+Pj4+ICsgKgo+Pj4+ICsgKiBUaGlzIGZ1bmN0 aW9uIGlzIGxpbWl0ZWQgdG8gdGhlIEdQVTwtPlNSQU0gdm9sdGFnZXMgcmVsYXRpb25zaGlwcy4K Pj4+PiArICovCj4+Pj4gK3N0YXRpYyBpbnQgbWVkaWF0ZWtfcmVndWxhdG9yX2JhbGFuY2Vfdm9s dGFnZShzdHJ1Y3QgcmVndWxhdG9yX2NvdXBsZXIgCj4+Pj4gKmNvdXBsZXIsCj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCByZWd1 bGF0b3JfZGV2ICpyZGV2LAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBzdXNwZW5kX3N0YXRlX3Qgc3RhdGUpCj4+Pj4gK3sKPj4+PiArwqDC oMKgIHN0cnVjdCBtZWRpYXRla19yZWd1bGF0b3JfY291cGxlciAqbXJjID0gdG9fbWVkaWF0ZWtf Y291cGxlcihjb3VwbGVyKTsKPj4+PiArwqDCoMKgIGludCBtYXhfc3ByZWFkID0gcmRldi0+Y29u c3RyYWludHMtPm1heF9zcHJlYWRbMF07Cj4+Pj4gK8KgwqDCoCBpbnQgdnNyYW1fbWluX3VWID0g bXJjLT52c3JhbV9yZGV2LT5jb25zdHJhaW50cy0+bWluX3VWOwo+Pj4+ICvCoMKgwqAgaW50IHZz cmFtX21heF91ViA9IG1yYy0+dnNyYW1fcmRldi0+Y29uc3RyYWludHMtPm1heF91VjsKPj4+PiAr wqDCoMKgIGludCB2c3JhbV90YXJnZXRfbWluX3VWLCB2c3JhbV90YXJnZXRfbWF4X3VWOwo+Pj4+ ICvCoMKgwqAgaW50IG1pbl91ViA9IDA7Cj4+Pj4gK8KgwqDCoCBpbnQgbWF4X3VWID0gSU5UX01B WDsKPj4+PiArwqDCoMKgIGludCByZXQ7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgLyoKPj4+PiArwqDC oMKgwqAgKiBJZiB0aGUgdGFyZ2V0IGRldmljZSBpcyBvbiwgc2V0dGluZyB0aGUgU1JBTSB2b2x0 YWdlIGRpcmVjdGx5Cj4+Pj4gK8KgwqDCoMKgICogaXMgbm90IHN1cHBvcnRlZCBhcyBpdCBzY2Fs ZXMgdGhyb3VnaCBpdHMgY291cGxlZCBzdXBwbHkgdm9sdGFnZS4KPj4+PiArwqDCoMKgwqAgKgo+ Pj4+ICvCoMKgwqDCoCAqIEFuIGV4Y2VwdGlvbiBpcyBtYWRlIGluIGNhc2UgdGhlIHVzZV9jb3Vu dCBpcyB6ZXJvOiB0aGlzIG1lYW5zCj4+Pj4gK8KgwqDCoMKgICogdGhhdCB0aGlzIGlzIHRoZSBm aXJzdCB0aW1lIHdlIHBvd2VyIHVwIHRoZSBTUkFNIHJlZ3VsYXRvciwgd2hpY2gKPj4+PiArwqDC oMKgwqAgKiBpbXBsaWVzIHRoYXQgdGhlIHRhcmdldCBkZXZpY2UgaGFzIHlldCB0byBwZXJmb3Jt IGluaXRpYWxpemF0aW9uCj4+Pj4gK8KgwqDCoMKgICogYW5kIHNldHRpbmcgYSB2b2x0YWdlIGF0 IHRoYXQgdGltZSBpcyBoYXJtbGVzcy4KPj4+PiArwqDCoMKgwqAgKi8KPj4+PiArwqDCoMKgIGlm IChyZGV2ID09IG1yYy0+dnNyYW1fcmRldikgewo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAocmRl di0+dXNlX2NvdW50ID09IDApCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJl Z3VsYXRvcl9kb19iYWxhbmNlX3ZvbHRhZ2UocmRldiwgc3RhdGUsIHRydWUpOwo+Pj4+ICsKPj4+ PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FUEVSTTsKPj4+PiArwqDCoMKgIH0KPj4+PiArCj4+ Pj4gK8KgwqDCoCByZXQgPSByZWd1bGF0b3JfY2hlY2tfY29uc3VtZXJzKHJkZXYsICZtaW5fdVYs ICZtYXhfdVYsIHN0YXRlKTsKPj4+PiArwqDCoMKgIGlmIChyZXQgPCAwKQo+Pj4+ICvCoMKgwqDC oMKgwqDCoCByZXR1cm4gcmV0Owo+Pj4+ICsKPj4+PiArwqDCoMKgIGlmIChtaW5fdVYgPT0gMCkg ewo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSByZWd1bGF0b3JfZ2V0X3ZvbHRhZ2VfcmRldihy ZGV2KTsKPj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHJldCA8IDApCj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4+PiArwqDCoMKgwqDCoMKgwqAgbWluX3VWID0gcmV0 Owo+Pj4+ICvCoMKgwqAgfQo+Pj4+ICsKPj4+PiArwqDCoMKgIHJldCA9IHJlZ3VsYXRvcl9jaGVj a192b2x0YWdlKHJkZXYsICZtaW5fdVYsICZtYXhfdVYpOwo+Pj4+ICvCoMKgwqAgaWYgKHJldCA8 IDApCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAg LyoKPj4+PiArwqDCoMKgwqAgKiBJZiB3ZSdyZSBhc2tlZCB0byBzZXQgYSB2b2x0YWdlIGxlc3Mg dGhhbiBWU1JBTSBtaW5fdVYsIHNldAo+Pj4+ICvCoMKgwqDCoCAqIHRoZSBtaW5pbXVtIGFsbG93 ZWQgdm9sdGFnZSBvbiBWU1JBTSwgYXMgaW4gdGhpcyBjYXNlIGl0IGlzCj4+Pj4gK8KgwqDCoMKg ICogc2FmZSB0byBpZ25vcmUgdGhlIG1heF9zcHJlYWQgcGFyYW1ldGVyLgo+Pj4+ICvCoMKgwqDC oCAqLwo+Pj4+ICvCoMKgwqAgdnNyYW1fdGFyZ2V0X21pbl91ViA9IG1heCh2c3JhbV9taW5fdVYs IG1pbl91ViArIG1heF9zcHJlYWQpOwo+Pj4+ICvCoMKgwqAgdnNyYW1fdGFyZ2V0X21heF91ViA9 IG1pbih2c3JhbV9tYXhfdVYsIHZzcmFtX3RhcmdldF9taW5fdVYgKyBtYXhfc3ByZWFkKTsKPj4+ PiArCj4+Pj4gK8KgwqDCoCAvKiBNYWtlIHN1cmUgd2UncmUgbm90IG91dCBvZiByYW5nZSAqLwo+ Pj4+ICvCoMKgwqAgdnNyYW1fdGFyZ2V0X21pbl91ViA9IG1pbih2c3JhbV90YXJnZXRfbWluX3VW LCB2c3JhbV9tYXhfdVYpOwo+Pj4+ICsKPj4+PiArwqDCoMKgIHByX2RlYnVnKCJTZXR0aW5nIHZv bHRhZ2UgJWQtJWR1ViBvbiAlcyAobWludVYgJWQpXG4iLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg IHZzcmFtX3RhcmdldF9taW5fdVYsIHZzcmFtX3RhcmdldF9tYXhfdVYsCj4+Pj4gK8KgwqDCoMKg wqDCoMKgwqAgcmRldl9nZXRfbmFtZShtcmMtPnZzcmFtX3JkZXYpLCBtaW5fdVYpOwo+Pj4+ICsK Pj4+PiArwqDCoMKgIHJldCA9IHJlZ3VsYXRvcl9zZXRfdm9sdGFnZV9yZGV2KG1yYy0+dnNyYW1f cmRldiwgdnNyYW1fdGFyZ2V0X21pbl91ViwKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB2c3JhbV90YXJnZXRfbWF4X3VWLCBzdGF0ZSk7Cj4+Pj4gK8KgwqDC oCBpZiAocmV0KQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+Pj4+ICsKPj4+PiAr wqDCoMKgIC8qIFRoZSBzcmFtIHZvbHRhZ2UgaXMgbm93IGJhbGFuY2VkOiB1cGRhdGUgdGhlIHRh cmdldCB2cmVnIHZvbHRhZ2UgKi8KPj4+PiArwqDCoMKgIHJldHVybiByZWd1bGF0b3JfZG9fYmFs YW5jZV92b2x0YWdlKHJkZXYsIHN0YXRlLCB0cnVlKTsKPj4+PiArfQo+Pj4+ICsKPj4+PiArc3Rh dGljIGludCBtZWRpYXRla19yZWd1bGF0b3JfYXR0YWNoKHN0cnVjdCByZWd1bGF0b3JfY291cGxl ciAqY291cGxlciwKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBzdHJ1Y3QgcmVndWxhdG9yX2RldiAqcmRldikKPj4+PiArewo+Pj4+ICvCoMKgwqAgc3RydWN0 IG1lZGlhdGVrX3JlZ3VsYXRvcl9jb3VwbGVyICptcmMgPSB0b19tZWRpYXRla19jb3VwbGVyKGNv dXBsZXIpOwo+Pj4+ICvCoMKgwqAgY29uc3QgY2hhciAqcmRldl9uYW1lID0gcmRldl9nZXRfbmFt ZShyZGV2KTsKPj4+PiArCj4+Pj4gK8KgwqDCoCAvKgo+Pj4+ICvCoMKgwqDCoCAqIElmIHdlJ3Jl IGdldHRpbmcgYSBjb3VwbGluZyBvZiBtb3JlIHRoYW4gdHdvIHJlZ3VsYXRvcnMgaGVyZSBhbmQK Pj4+PiArwqDCoMKgwqAgKiB0aGlzIG1lYW5zIHRoYXQgdGhpcyBpcyBzdXJlbHkgbm90IGEgR1BV PC0+U1JBTSBjb3VwbGU6IGluIHRoYXQKPj4+PiArwqDCoMKgwqAgKiBjYXNlLCB3ZSBtYXkgd2Fu dCB0byB1c2UgYW5vdGhlciBjb3VwbGVyIGltcGxlbWVudGF0aW9uLCBpZiBhbnksCj4+Pj4gK8Kg wqDCoMKgICogb3IgdGhlIGdlbmVyaWMgb25lOiB0aGUgcmVndWxhdG9yIGNvcmUgd2lsbCBrZWVw IHdhbGtpbmcgdGhyb3VnaAo+Pj4+ICvCoMKgwqDCoCAqIHRoZSBsaXN0IG9mIGNvdXBsZXJzIHdo ZW4gYW55IC5hdHRhY2hfcmVndWxhdG9yKCkgY2IgcmV0dXJucyAxLgo+Pj4+ICvCoMKgwqDCoCAq Lwo+Pj4+ICvCoMKgwqAgaWYgKHJkZXYtPmNvdXBsaW5nX2Rlc2Mubl9jb3VwbGVkID4gMikKPj4+ PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDE7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgaWYgKHN0cnN0 cihyZGV2X25hbWUsICJzcmFtIikpIHsKPj4+Cj4+PiBNeSB1bmRlcnN0YW5kaW5nIGlzLCB0aGF0 IHdlIGhhdmUgdG8gaGF2ZSBlaXRoZXIgYSBEVCBub2RlIHdpdGggCj4+PiByZWd1bGF0b3ItbmFt ZSA9ICJzcmFtIiBwcm9wZXJ0eSB0byBwb2xsdXRlIHJkZXYtPmNvbnN0cmFpbnRzLT5uYW1lIG9y IHNvbWUgCj4+PiByZWd1bGF0b3JfZGVzYy0+bmFtZSBwb3B1bGF0ZWQgaW4gdGhlIGRyaXZlcnMv cmVndWxhdG9yL210Ki5jCj4+Pgo+Pgo+PiBObywgaXQncyBub3QgdHJ5aW5nIHRvIGZpbmQgYSBy ZWd1bGF0b3IgbmFtZWQgInNyYW0iLCBidXQgYW55IHJlZ3VsYXRvciB0aGF0Cj4+ICpjb250YWlu cyogdGhlICJzcmFtIiBzdHJpbmcgaW4gaXRzIG5hbWUsIGJ1dCBjaGVja3Mgb25seSByZWd1bGF0 b3JzIHRoYXQgYXJlCj4+IGNvdXBsZWQgdG8gb3RoZXJzLiBUaGlzIGlzIHRoZSBzYW1lIGZvciB0 aGUgIlZncHUiIC8gInZncHUiLgo+Pgo+PiBFeGFtcGxlOgo+Pgo+PiBSZWd1bGF0b3IgQSwgY291 cGxlZCB0byBSZWd1bGF0b3IgQi4KPj4KPj4gUmVndWxhdG9yIEEgbmFtZSA9ICJWZ3B1IiBvciAi dmdwdSIsIG9yICp2Z3B1Kiwgb3IgKlZncHUqCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChuYW1lIG11c3QgY29udGFpbiBlaXRoZXIgVmdwdSBvciB2Z3B1KQo+Pgo+ PiBSZWd1bGF0b3IgQiBuYW1lID0gInZzcmFtIiBvciAic3JhbV9ncHUiIG9yICpzcmFtKgo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobmFtZSBtdXN0IGNvbnRhaW4g InNyYW0iKS4KPj4KPj4gbXJjLT52c3JhbV9yZGV2ID0gcmRldgo+Pgo+PiByZGV2ID09IG91ciBS ZWd1bGF0b3IgQi4KPj4KPj4gV2UgaGVuY2UgcmV0dXJuIDAgdG8gdGhlIGNvdXBsaW5nIEFQSTog dGhpcyB3aWxsIHByb2R1Y2UgdGhlIGVmZmVjdCBvZiBtYWtpbmcKPj4gaXQgdXNlIHRoaXMgZHJp dmVyJ3MgLmJhbGFuY2Vfdm9sdGFnZSgpIGNhbGxiYWNrIGluc3RlYWQgb2YgdGhlIGdlbmVyaWMg b25lCj4+IG9uIHZncHU8LT52c3JhbS4KPj4KPj4KPj4+IEkgd2Fzbid0IGFibGUgdG8gZmluZCBl aXRoZXIgb2YgdGhpcywgc28gSSB3b25kZXIgaG93IHRoaXMgaXMgc3VwcG9zZWQgdG8gCj4+PiB3 b3JrLiBQbGVhc2UgcHJvdmlkZSBwb2ludGVycyB0byBhIHdvcmtpbmcgYW5kIGNvbXBsZXRlIGlt cGxlbWVudGF0aW9uIG9mIAo+Pj4gdGhpcywgc28gdGhhdCBJJ20gYWJsZSB0byBqdWRnZSB3aGF0 IGlzIGdvaW5nIG9uIGFuZCBpZiB0aGUgYXBwcm9hY2ggaXMgdGhlIAo+Pj4gY29ycmVjdCBvbmUu Cj4+Pgo+Pj4gSSB0cmllZCB0byBmaWd1cmUgb3V0IHVzaW5nIG10ODE5NS10cmFja2luZy1tYXN0 ZXItcm9sbGluZwo+Pgo+PiBUaGF0J3MgdGhlIHJpZ2h0IGJyYW5jaC4KPj4KPj4gTGV0J3MgdGFr ZSBNVDgxOTIgQXN1cmFkYSBhcyBhbiBleGFtcGxlIG9mIGhvdyB0aGlzIHdvcmtzLi4uLgo+Pgo+ PiBgbXQ2MzU5X3ZzcmFtX290aGVyc19sZG9fcmVnwrQgaXMgdGhlIFNSQU0gcmVndWxhdG9yIGZv ciB0aGUgR1BVOgo+PiBodHRwczovL2dpdGxhYi5jb2xsYWJvcmEuY29tL2dvb2dsZS9jaHJvbWVv cy1rZXJuZWwvLS9ibG9iL210ODE5NS10cmFja2luZy1tYXN0ZXItcm9sbGluZy9hcmNoL2FybTY0 L2Jvb3QvZHRzL21lZGlhdGVrL210ODE5Mi1hc3VyYWRhLmR0c2kjTDU1MQo+Pgo+PiBgbXQ2MzU5 X3ZzcmFtX290aGVyc19sZG9fcmVnYCByZWd1bGF0b3ItbmFtZSA9ICJ2c3JhbV9vdGhlcnMiOwo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBeXl5eCj4+IENvbnRh aW5zICJzcmFtIiwgYW5kIHRoaXMgcmVndWxhdG9yIGlzIGFsc28KPj4KPj4gwqDCoMKgwqDCoHJl Z3VsYXRvci1jb3VwbGVkLXdpdGggPSA8Jm10NjMxNV83X3ZidWNrMT47Cj4+Cj4+IGBtdDYzMTVf N192YnVjazFgIHJlZ3VsYXRvci1uYW1lID0gIlZncHUiOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXl5e Xgo+PiBDb250YWlucyAiVmdwdSIsIGFuZCB0aGlzIHJlZ3VsYXRvciBpcyBhbHNvCj4+Cj4+IMKg wqDCoMKgwqByZWd1bGF0b3ItY291cGxlZC13aXRoID0gPCZtdDYzNTlfdnNyYW1fb3RoZXJzX2xk b19yZWc+Owo+Pgo+PiBUaGF0J3MgaG93IHRoZSBjb3VwbGluZyB3b3JrcyBpbiB0aGlzIGNhc2Uu Cj4+Cj4+Cj4+IE5vdywgbG9va2luZyBhdCBjYXNlIGV4Y2x1c2lvbnM6Cj4+IEluIE1UODE5MiBB c3VyYWRhIChvciwgYWN0dWFsbHksIG10NjM1OS5kdHNpKSB3ZSBoYXZlIG90aGVyIHJlZ3VsYXRv cnMgdGhhdCBkbwo+PiBhY3R1YWxseSBjb250YWluICJzcmFtIiBpbiB0aGVpciBuYW1lLCBsaWtl ICJ2c3JhbV9wcm9jMSIgYW5kIAo+PiAidnNyYW1fb3RoZXJzX3NzaHViIi4KPj4KPj4gVGhlc2Ug cmVndWxhdG9ycyB3aWxsIGJlIGlnbm9yZWQsIGFzIHRoZXkgYXJlICpub3QqIGNvdXBsZWQgd2l0 aCBWZ3B1Lgo+Pgo+Pgo+PiBXaGF0IHRoaXMgZHJpdmVyIGN1cnJlbnRseSBkb2VzIGluIHRoaXMg cmVnYXJkIGlzOgo+PiAxLiBSZWd1bGF0b3IgYXR0YWNoIGlzIGNhbGxlZCBvbmx5IG9uICpjb3Vw bGVkKiByZWd1bGF0b3JzLCBub3Qgb24gdGhlIG90aGVycwo+PiAyLiBJZiB0aGUgcmVndWxhdG9y IGNvbnRhaW5zIG5hbWUgInZncHUiIG9yICJWZ3B1IiBvciAic3JhbSIgd2UncmUgZ29vZCwKPj4g wqDCoMKgIG90aGVyd2lzZSB3ZSBkb24ndCBhdHRhY2ggdGhlIGJhbGFuY2Vfdm9sdGFnZSBsb2dp YyBvZiB0aGlzIGRyaXZlciB0bwo+PiDCoMKgwqAgdGhlIHVubWF0Y2hlZCByZWd1bGF0b3JzLgo+ Pgo+Pgo+PiBEb2VzIHRoaXMgZXhwbGFuYXRpb24gY2xhcmlmeSB5b3VyIGRvdWJ0cz8KPj4KPj4g UmVnYXJkcywKPj4gQW5nZWxvCj4+Cj4gCj4gTWF0dGhpYXMsIHBsZWFzZSBkb24ndCBmb3JnZXQg YWJvdXQgdGhpcyBvbmUgOi0pCj4gCgpVbmZvcnR1bmF0ZWx5IEkgaGF2ZSB0byBsZWF2ZSBub3cg YW5kIGRpZG4ndCBoYWQgdGltZSB0byBsb29rIG1vcmUgaW50byBpdC4gU28gCkknbGwgd3JpdGUg anVzdCBteSBzdXNwaWNpb24uIFNvIHBsZWFzZSBmZWVsIGZyZWUgdG8gY29ycmVjdCBtZSBpZiBJ J20gdG90YWxseSAKd3JvbmcgKEkga25vdyB5b3Ugd2lsbCBkbyBhbnl3YXkgOykKCjEpIFdoZW4g dGhlIHJlZ3VsYXRvci1jb3VwbGVyIGRyaXZlciB3YXMgaW50cm9kdWNlZCB0aGUgZHJpdmVyIHdh cyBib3VuZCBieSBhIApjb21wYXRpYmxlLCBidXQgd2UgdXNlIGFyY2hfaW5pdGNhbGwoLi4uKSBm b3IgaXQuCjIpIEkgcmVhbGx5IGRvbid0IGxpa2UgdGhlIGhhcmRjb2RlZCBzZWFyY2ggZm9yIGEg dGhlIHJlZ3VsYXRvciBuYW1lIGluIHRoZSAKbWVkaWF0ZWtfcmVndWxhdG9yX2F0dGFjaCBmdW5j dGlvbi4gSSBoYXZlbid0IHNlZW4gdGhhdCBpbiB0aGUgTnZpZGlhIGRyaXZlciwgCmFsc28gSSBo YWQgbm8gdGltZSB0byB1bmRlcnN0YW5kIGhvdyB0aGV5IGRlY2lkZSB3aGljaCByZWd1bGF0b3Jz IG5lZWQgdG8gYmUgCmNvdXBsZWQuIE15IGluc3RpbmN0IHdvdWxkIHRlbGwgbWUgdGhhdCB0aGlz IHNob3VsZCBiZSBkZXNjcmliZWQgaW4gZGV2aWNlLXRyZWUuCgpIYXZlIGEgbmljZSB3ZWVrZW5k IQpNYXR0aGlhcwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=