From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: Re: [PATCH v3 00/15] Move PMC clocks into Tegra PMC driver Date: Sat, 7 Dec 2019 17:26:15 +0300 Message-ID: References: <1575600535-26877-1-git-send-email-skomatineni@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <1575600535-26877-1-git-send-email-skomatineni@nvidia.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: Sowjanya Komatineni Cc: thierry.reding@gmail.com, jonathanh@nvidia.com, mperttunen@nvidia.com, gregkh@linuxfoundation.org, sboyd@kernel.org, tglx@linutronix.de, robh+dt@kernel.org, mark.rutland@arm.com, allison@lohutok.net, pdeschrijver@nvidia.com, pgaikwad@nvidia.com, mturquette@baylibre.com, horms+renesas@verge.net.au, Jisheng.Zhang@synaptics.com, krzk@kernel.org, arnd@arndb.de, spujar@nvidia.com, josephl@nvidia.com, vidyas@nvidia.com, daniel.lezcano@linaro.org, mmaddireddy@nvidia.com, markz@nvidia.com, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com, alexios.zavras@intel.com, alsa-devel@alsa-project.org List-Id: linux-tegra@vger.kernel.org 06.12.2019 05:48, Sowjanya Komatineni пишет: > Tegra PMC has clk_out_1, clk_out_2, clk_out_3 and blink controls which > are currently registered by Tegra clock driver using clk_regiser_mux and > clk_register_gate which performs direct Tegra PMC register access. > > When Tegra PMC is in secure mode, any access from non-secure world will > not go through. > > This patch series adds these Tegra PMC clocks and blink controls to Tegra > PMC driver with PMC as clock provider and removed them from Tegra clock > driver. This also adds PMC specific clock id's to use in device tree and > removed clock ids of PMC clock from Tegra clock driver. > > clk_out_1 is dedicated for audio mclk and current ASoC driver does not > setting extern1 as parent for clk_out_1 and enabling clk_out_1 and > currently this is taken care by Tegra clock driver during clock inits > and there is no need to enable this during clock init. > > So, this series also includes patch that updates ASoC driver to take > care of configuring parent of mclk and enabling mclk using both extern1 > and clk_out_1 and updates all device trees to use clk_out_1 from pmc as > mclk incase if device tree don't specify assigned-clock-parents. > > This series also includes a patch for mclk fallback to use extern1 > when retrieving mclk fails with new device tree which uses pmc provider > to have this backward compatible of new DT with old kernels. > > This series also includes a patch to remove clock ids for these clocks > from clock dt-binding as these clocks are not used in any of the existing > device tree except in tegra210-smaug.dts and this series includes a patch > to update clock provider from tegra_car to pmc in tegra210-smaug.dts for > clk_out_2. > > [v3]: Changes between v2 and v3 are > - Removes set parent of clk_out_1_mux to extern1 and enabling > extern1 from the clock driver. > - Doesn't enable clk_out_1 and blink by default in pmc driver > - Updates ASoC driver to take care of audio mclk parent > configuration incase if device tree don't specify assigned > clock parent properties and enables mclk using both clk_out_1 > and extern1. > - updates all device trees using extern1 as mclk in sound node > to use clk_out_1 from pmc. > - patch for YAML format pmc dt-binding > - Includes v2 feedback > > [v2]: Changes between v1 and v2 are > - v2 includes patches for adding clk_out_1, clk_out_2, clk_out_3, > blink controls to Tegra PMC driver and removing clk-tegra-pmc. > - feedback related to pmc clocks in Tegra PMC driver from v1 > - Removed patches for WB0 PLLM overrides and PLLE IDDQ PMC programming > by the clock driver using helper functions from Tegra PMC. > > Note: > To use helper functions from PMC driver, PMC early init need to > happen prior to using helper functions and these helper functions are > for PLLM Override and PLLE IDDQ programming in PMC during PLLM/PLLE > clock registration which happen in clock_init prior to Tegra PMC > probe. > Moving PLLM/PLLE clocks registration to happen after Tegra PMC > impacts other clocks EMC, MC and corresponding tegra_emc_init and > tegra_mc_init. > This implementation of configuring PMC registers thru helper > functions in clock driver needs proper changes across PMC, Clock, > EMC and MC inits to have it work across all Tegra platforms. > > Currently PLLM Override is not enabled in the bootloader so proper > patches for this fix will be taken care separately. > > [v1]: v1 includes patches for below fixes. > - adding clk_out_1, clk_out_2, clk_out_3, blink controls to Tegra PMC > driver and removing clk-tegra-pmc. > - updated clock provider from tegra_car to pmc in the device tree > tegra210-smaug.dts that uses clk_out_2. > - Added helper functions in PMC driver for WB0 PLLM overrides and PLLE > IDDQ programming to use by clock driver and updated clock driver to > use these helper functions and removed direct PMC access from clock > driver and all pmc base address references in clock driver. > > > Sowjanya Komatineni (15): > dt-bindings: soc: tegra-pmc: Add Tegra PMC clock bindings > dt-bindings: tegra: Convert Tegra PMC bindings to YAML > soc: tegra: Add Tegra PMC clock registrations into PMC driver > dt-bindings: soc: tegra-pmc: Add id for Tegra PMC blink control > soc: pmc: Add blink output clock registration to Tegra PMC > clk: tegra: Remove tegra_pmc_clk_init along with clk ids > dt-bindings: clock: tegra: Remove pmc clock ids from clock dt-bindings > ASoC: tegra: Add audio mclk control through clk_out_1 and extern1 > ASoC: tegra: Add fallback for audio mclk > clk: tegra: Remove extern1 and cdev1 from clocks inittable > ARM: dts: tegra: Add clock-cells property to pmc > arm64: tegra: Add clock-cells property to Tegra PMC node > ARM: tegra: Update sound node clocks in device tree > arm64: tegra: smaug: Change clk_out_2 provider to pmc > ASoC: nau8825: change Tegra clk_out_2 provider from tegra_car to pmc Hello Sowjanya, Something gone wrong with these patches because I didn't receive them and don't see them on the ML either. Also, the list of email correspondents looks a bit too larger. I'm pretty sure some of the people do not care much about this series. I tend to use script/get_maintainer.pl and then manually pick the relevant people for patches. 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 X-Spam-Level: X-Spam-Status: No, score=-2.0 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3E92CC43603 for ; Mon, 9 Dec 2019 10:18:32 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B88C220726 for ; Mon, 9 Dec 2019 10:18:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="NP4QnuMK"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qIF9CxEQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B88C220726 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 0826916C8; Mon, 9 Dec 2019 11:17:40 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 0826916C8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1575886710; bh=eQR73q7P63Jk60Dm3ZBO3wgpU+swVGkc7AX2NZYUfoI=; h=To:References:From:Date:In-Reply-To:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=NP4QnuMKk8GydGtEHSyiifQ7wkitFVb9KMD6Ix8wabA8CT+BNmRG0p6vq/Wil4OFO QoPryDMYTKh0Lu80g1JOEsmRC9ExKFhHPYP0KKuTp4RHfqIw5v4Yn8l6AfNnAtY1ZB /jdx+GpWmQBzvmOwznPv1Nfls7M/cvUU+CVBT+ws= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id A8363F8045F; Mon, 9 Dec 2019 10:52:08 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 72D6DF801F7; Sat, 7 Dec 2019 15:26:22 +0100 (CET) Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 45721F8010F for ; Sat, 7 Dec 2019 15:26:18 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 45721F8010F Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qIF9CxEQ" Received: by mail-lj1-x241.google.com with SMTP id c19so10685020lji.11 for ; Sat, 07 Dec 2019 06:26:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=y2jLemfM6NAa2htdvtNYO/Blymq/6is+o20B/osA9Ro=; b=qIF9CxEQ6k1EF/wqZtxvEai9mTLlsDwyNz++ooTbsAS9QwTtkSqRAk+YvNmtXp9QPe k/4V29MeSX3PW7cKFz65qoEa3W9fgRweWAYOFYYc3WpCESIC9euKFqMe1lVW2EOievFt 3/h1JzjIiU5M1miTi/jx+eUuQ/seDVanFdxnI0cxiEDdSutLkFFP/cCVb8Er3+3eEmaX dztGrSqarJD18XnypryEKxayizmfQISw/uRsHZk89Hoj9j8aOXNNOogX3tpCbVqBLtXt Eya6SEryR9plGqUKupDB8B3lHDzo2dO4p6ZAphHrhZWb58dO2mbfMR5jJRPBX60n/2Gc KtaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=y2jLemfM6NAa2htdvtNYO/Blymq/6is+o20B/osA9Ro=; b=nbEbzdqbnho/HSP5Jezvw8dcbvg4eDzIjRN2z0taXfBqlvld7gz1Kkb5pBQl0eeMic SRtXaejS40N0pDGg/jcvBOamWFTJc/xYZe0GRAyy42PxBPPxL5m7czd4PvlW3O22IiY0 SPP52KPwqLJC8EePyJjrmoTyfbzmE4LGEfH921z0byQbX11Vg59cm85T3ylM98Sislt6 WOrlhxpFldKhM9qOlbfRbWa65kUKlUwC/GzKzTCdHYZE2Qx/sIxtol1+EbA0VQUy7o4U 98YIGfXWPDh9xRE6b59RQnevaIsQf0/a4uWZj5jpTV0PJbPY7JLcRwHYcr3FUubOI58D FZvw== X-Gm-Message-State: APjAAAU/WUUJSCz1bjVtdqc1oZ+bah0/F30RoUQCcp696mjxHvaAeY5a ep7avScoD2dlywnlRAmsFqCBA7VU X-Google-Smtp-Source: APXvYqz1YRFRFNxLt0h0j6p1bp3b8kcTYDbdTpKf1RHHQ0N+EIL0IYrF/JF8vAisr83u1gPfUooNgg== X-Received: by 2002:a05:651c:1139:: with SMTP id e25mr11792174ljo.200.1575728777693; Sat, 07 Dec 2019 06:26:17 -0800 (PST) Received: from [192.168.2.145] (79-139-233-37.dynamic.spd-mgts.ru. [79.139.233.37]) by smtp.googlemail.com with ESMTPSA id d16sm8147955lfa.16.2019.12.07.06.26.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 07 Dec 2019 06:26:16 -0800 (PST) To: Sowjanya Komatineni References: <1575600535-26877-1-git-send-email-skomatineni@nvidia.com> From: Dmitry Osipenko Message-ID: Date: Sat, 7 Dec 2019 17:26:15 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 In-Reply-To: <1575600535-26877-1-git-send-email-skomatineni@nvidia.com> Content-Language: en-US X-Mailman-Approved-At: Mon, 09 Dec 2019 10:51:21 +0100 Cc: mark.rutland@arm.com, alsa-devel@alsa-project.org, pgaikwad@nvidia.com, lgirdwood@gmail.com, spujar@nvidia.com, mperttunen@nvidia.com, thierry.reding@gmail.com, josephl@nvidia.com, linux-clk@vger.kernel.org, mmaddireddy@nvidia.com, daniel.lezcano@linaro.org, krzk@kernel.org, jonathanh@nvidia.com, mturquette@baylibre.com, devicetree@vger.kernel.org, arnd@arndb.de, markz@nvidia.com, alexios.zavras@intel.com, robh+dt@kernel.org, tiwai@suse.com, linux-tegra@vger.kernel.org, horms+renesas@verge.net.au, tglx@linutronix.de, allison@lohutok.net, sboyd@kernel.org, gregkh@linuxfoundation.org, pdeschrijver@nvidia.com, linux-kernel@vger.kernel.org, vidyas@nvidia.com, Jisheng.Zhang@synaptics.com, broonie@kernel.org Subject: Re: [alsa-devel] [PATCH v3 00/15] Move PMC clocks into Tegra PMC driver X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" MDYuMTIuMjAxOSAwNTo0OCwgU293amFueWEgS29tYXRpbmVuaSDQv9C40YjQtdGCOgo+IFRlZ3Jh IFBNQyBoYXMgY2xrX291dF8xLCBjbGtfb3V0XzIsIGNsa19vdXRfMyBhbmQgYmxpbmsgY29udHJv bHMgd2hpY2gKPiBhcmUgY3VycmVudGx5IHJlZ2lzdGVyZWQgYnkgVGVncmEgY2xvY2sgZHJpdmVy IHVzaW5nIGNsa19yZWdpc2VyX211eCBhbmQKPiBjbGtfcmVnaXN0ZXJfZ2F0ZSB3aGljaCBwZXJm b3JtcyBkaXJlY3QgVGVncmEgUE1DIHJlZ2lzdGVyIGFjY2Vzcy4KPiAKPiBXaGVuIFRlZ3JhIFBN QyBpcyBpbiBzZWN1cmUgbW9kZSwgYW55IGFjY2VzcyBmcm9tIG5vbi1zZWN1cmUgd29ybGQgd2ls bAo+IG5vdCBnbyB0aHJvdWdoLgo+IAo+IFRoaXMgcGF0Y2ggc2VyaWVzIGFkZHMgdGhlc2UgVGVn cmEgUE1DIGNsb2NrcyBhbmQgYmxpbmsgY29udHJvbHMgdG8gVGVncmEKPiBQTUMgZHJpdmVyIHdp dGggUE1DIGFzIGNsb2NrIHByb3ZpZGVyIGFuZCByZW1vdmVkIHRoZW0gZnJvbSBUZWdyYSBjbG9j awo+IGRyaXZlci4gVGhpcyBhbHNvIGFkZHMgUE1DIHNwZWNpZmljIGNsb2NrIGlkJ3MgdG8gdXNl IGluIGRldmljZSB0cmVlIGFuZAo+IHJlbW92ZWQgY2xvY2sgaWRzIG9mIFBNQyBjbG9jayBmcm9t IFRlZ3JhIGNsb2NrIGRyaXZlci4KPiAKPiBjbGtfb3V0XzEgaXMgZGVkaWNhdGVkIGZvciBhdWRp byBtY2xrIGFuZCBjdXJyZW50IEFTb0MgZHJpdmVyIGRvZXMgbm90Cj4gc2V0dGluZyBleHRlcm4x IGFzIHBhcmVudCBmb3IgY2xrX291dF8xIGFuZCBlbmFibGluZyBjbGtfb3V0XzEgYW5kCj4gY3Vy cmVudGx5IHRoaXMgaXMgdGFrZW4gY2FyZSBieSBUZWdyYSBjbG9jayBkcml2ZXIgZHVyaW5nIGNs b2NrIGluaXRzCj4gYW5kIHRoZXJlIGlzIG5vIG5lZWQgdG8gZW5hYmxlIHRoaXMgZHVyaW5nIGNs b2NrIGluaXQuCj4gCj4gU28sIHRoaXMgc2VyaWVzIGFsc28gaW5jbHVkZXMgcGF0Y2ggdGhhdCB1 cGRhdGVzIEFTb0MgZHJpdmVyIHRvIHRha2UKPiBjYXJlIG9mIGNvbmZpZ3VyaW5nIHBhcmVudCBv ZiBtY2xrIGFuZCBlbmFibGluZyBtY2xrIHVzaW5nIGJvdGggZXh0ZXJuMQo+IGFuZCBjbGtfb3V0 XzEgYW5kIHVwZGF0ZXMgYWxsIGRldmljZSB0cmVlcyB0byB1c2UgY2xrX291dF8xIGZyb20gcG1j IGFzCj4gbWNsayBpbmNhc2UgaWYgZGV2aWNlIHRyZWUgZG9uJ3Qgc3BlY2lmeSBhc3NpZ25lZC1j bG9jay1wYXJlbnRzLgo+IAo+IFRoaXMgc2VyaWVzIGFsc28gaW5jbHVkZXMgYSBwYXRjaCBmb3Ig bWNsayBmYWxsYmFjayB0byB1c2UgZXh0ZXJuMQo+IHdoZW4gcmV0cmlldmluZyBtY2xrIGZhaWxz IHdpdGggbmV3IGRldmljZSB0cmVlIHdoaWNoIHVzZXMgcG1jIHByb3ZpZGVyCj4gdG8gaGF2ZSB0 aGlzIGJhY2t3YXJkIGNvbXBhdGlibGUgb2YgbmV3IERUIHdpdGggb2xkIGtlcm5lbHMuCj4gCj4g VGhpcyBzZXJpZXMgYWxzbyBpbmNsdWRlcyBhIHBhdGNoIHRvIHJlbW92ZSBjbG9jayBpZHMgZm9y IHRoZXNlIGNsb2Nrcwo+IGZyb20gY2xvY2sgZHQtYmluZGluZyBhcyB0aGVzZSBjbG9ja3MgYXJl IG5vdCB1c2VkIGluIGFueSBvZiB0aGUgZXhpc3RpbmcKPiBkZXZpY2UgdHJlZSBleGNlcHQgaW4g dGVncmEyMTAtc21hdWcuZHRzIGFuZCB0aGlzIHNlcmllcyBpbmNsdWRlcyBhIHBhdGNoCj4gdG8g dXBkYXRlIGNsb2NrIHByb3ZpZGVyIGZyb20gdGVncmFfY2FyIHRvIHBtYyBpbiB0ZWdyYTIxMC1z bWF1Zy5kdHMgZm9yCj4gY2xrX291dF8yLgo+IAo+IFt2M106CUNoYW5nZXMgYmV0d2VlbiB2MiBh bmQgdjMgYXJlCj4gCS0gUmVtb3ZlcyBzZXQgcGFyZW50IG9mIGNsa19vdXRfMV9tdXggdG8gZXh0 ZXJuMSBhbmQgZW5hYmxpbmcKPiAJICBleHRlcm4xIGZyb20gdGhlIGNsb2NrIGRyaXZlci4KPiAJ LSBEb2Vzbid0IGVuYWJsZSBjbGtfb3V0XzEgYW5kIGJsaW5rIGJ5IGRlZmF1bHQgaW4gcG1jIGRy aXZlcgo+IAktIFVwZGF0ZXMgQVNvQyBkcml2ZXIgdG8gdGFrZSBjYXJlIG9mIGF1ZGlvIG1jbGsg cGFyZW50Cj4gCSAgY29uZmlndXJhdGlvbiBpbmNhc2UgaWYgZGV2aWNlIHRyZWUgZG9uJ3Qgc3Bl Y2lmeSBhc3NpZ25lZAo+IAkgIGNsb2NrIHBhcmVudCBwcm9wZXJ0aWVzIGFuZCBlbmFibGVzIG1j bGsgdXNpbmcgYm90aCBjbGtfb3V0XzEKPiAJICBhbmQgZXh0ZXJuMS4KPiAJLSB1cGRhdGVzIGFs bCBkZXZpY2UgdHJlZXMgdXNpbmcgZXh0ZXJuMSBhcyBtY2xrIGluIHNvdW5kIG5vZGUKPiAJICB0 byB1c2UgY2xrX291dF8xIGZyb20gcG1jLgo+IAktIHBhdGNoIGZvciBZQU1MIGZvcm1hdCBwbWMg ZHQtYmluZGluZwo+IAktIEluY2x1ZGVzIHYyIGZlZWRiYWNrCj4gCj4gW3YyXToJQ2hhbmdlcyBi ZXR3ZWVuIHYxIGFuZCB2MiBhcmUKPiAJLSB2MiBpbmNsdWRlcyBwYXRjaGVzIGZvciBhZGRpbmcg Y2xrX291dF8xLCBjbGtfb3V0XzIsIGNsa19vdXRfMywKPiAJICBibGluayBjb250cm9scyB0byBU ZWdyYSBQTUMgZHJpdmVyIGFuZCByZW1vdmluZyBjbGstdGVncmEtcG1jLgo+IAktIGZlZWRiYWNr IHJlbGF0ZWQgdG8gcG1jIGNsb2NrcyBpbiBUZWdyYSBQTUMgZHJpdmVyIGZyb20gdjEKPiAJLSBS ZW1vdmVkIHBhdGNoZXMgZm9yIFdCMCBQTExNIG92ZXJyaWRlcyBhbmQgUExMRSBJRERRIFBNQyBw cm9ncmFtbWluZwo+IAkgIGJ5IHRoZSBjbG9jayBkcml2ZXIgdXNpbmcgaGVscGVyIGZ1bmN0aW9u cyBmcm9tIFRlZ3JhIFBNQy4KPiAKPiAgCSAgTm90ZToKPiAJICBUbyB1c2UgaGVscGVyIGZ1bmN0 aW9ucyBmcm9tIFBNQyBkcml2ZXIsIFBNQyBlYXJseSBpbml0IG5lZWQgdG8KPiAJICBoYXBwZW4g cHJpb3IgdG8gdXNpbmcgaGVscGVyIGZ1bmN0aW9ucyBhbmQgdGhlc2UgaGVscGVyIGZ1bmN0aW9u cyBhcmUKPiAJICBmb3IgUExMTSBPdmVycmlkZSBhbmQgUExMRSBJRERRIHByb2dyYW1taW5nIGlu IFBNQyBkdXJpbmcgUExMTS9QTExFCj4gCSAgY2xvY2sgcmVnaXN0cmF0aW9uIHdoaWNoIGhhcHBl biBpbiBjbG9ja19pbml0IHByaW9yIHRvIFRlZ3JhIFBNQwo+IAkgIHByb2JlLgo+IAkgIE1vdmlu ZyBQTExNL1BMTEUgY2xvY2tzIHJlZ2lzdHJhdGlvbiB0byBoYXBwZW4gYWZ0ZXIgVGVncmEgUE1D Cj4gCSAgaW1wYWN0cyBvdGhlciBjbG9ja3MgRU1DLCBNQyBhbmQgY29ycmVzcG9uZGluZyB0ZWdy YV9lbWNfaW5pdCBhbmQKPiAJICB0ZWdyYV9tY19pbml0Lgo+IAkgIFRoaXMgaW1wbGVtZW50YXRp b24gb2YgY29uZmlndXJpbmcgUE1DIHJlZ2lzdGVycyB0aHJ1IGhlbHBlcgo+IAkgIGZ1bmN0aW9u cyBpbiBjbG9jayBkcml2ZXIgbmVlZHMgcHJvcGVyIGNoYW5nZXMgYWNyb3NzIFBNQywgQ2xvY2ss Cj4gCSAgRU1DIGFuZCBNQyBpbml0cyB0byBoYXZlIGl0IHdvcmsgYWNyb3NzIGFsbCBUZWdyYSBw bGF0Zm9ybXMuCj4gCj4gCSAgQ3VycmVudGx5IFBMTE0gT3ZlcnJpZGUgaXMgbm90IGVuYWJsZWQg aW4gdGhlIGJvb3Rsb2FkZXIgc28gcHJvcGVyCj4gCSAgcGF0Y2hlcyBmb3IgdGhpcyBmaXggd2ls bCBiZSB0YWtlbiBjYXJlIHNlcGFyYXRlbHkuCj4gCj4gW3YxXToJdjEgaW5jbHVkZXMgcGF0Y2hl cyBmb3IgYmVsb3cgZml4ZXMuCj4gCS0gYWRkaW5nIGNsa19vdXRfMSwgY2xrX291dF8yLCBjbGtf b3V0XzMsIGJsaW5rIGNvbnRyb2xzIHRvIFRlZ3JhIFBNQwo+IAkgIGRyaXZlciBhbmQgcmVtb3Zp bmcgY2xrLXRlZ3JhLXBtYy4KPiAJLSB1cGRhdGVkIGNsb2NrIHByb3ZpZGVyIGZyb20gdGVncmFf Y2FyIHRvIHBtYyBpbiB0aGUgZGV2aWNlIHRyZWUKPiAJICB0ZWdyYTIxMC1zbWF1Zy5kdHMgdGhh dCB1c2VzIGNsa19vdXRfMi4KPiAJLSBBZGRlZCBoZWxwZXIgZnVuY3Rpb25zIGluIFBNQyBkcml2 ZXIgZm9yIFdCMCBQTExNIG92ZXJyaWRlcyBhbmQgUExMRQo+IAkgIElERFEgcHJvZ3JhbW1pbmcg dG8gdXNlIGJ5IGNsb2NrIGRyaXZlciBhbmQgdXBkYXRlZCBjbG9jayBkcml2ZXIgdG8KPiAJICB1 c2UgdGhlc2UgaGVscGVyIGZ1bmN0aW9ucyBhbmQgcmVtb3ZlZCBkaXJlY3QgUE1DIGFjY2VzcyBm cm9tIGNsb2NrCj4gCSAgZHJpdmVyIGFuZCBhbGwgcG1jIGJhc2UgYWRkcmVzcyByZWZlcmVuY2Vz IGluIGNsb2NrIGRyaXZlci4KPiAKPiAKPiBTb3dqYW55YSBLb21hdGluZW5pICgxNSk6Cj4gICBk dC1iaW5kaW5nczogc29jOiB0ZWdyYS1wbWM6IEFkZCBUZWdyYSBQTUMgY2xvY2sgYmluZGluZ3MK PiAgIGR0LWJpbmRpbmdzOiB0ZWdyYTogQ29udmVydCBUZWdyYSBQTUMgYmluZGluZ3MgdG8gWUFN TAo+ICAgc29jOiB0ZWdyYTogQWRkIFRlZ3JhIFBNQyBjbG9jayByZWdpc3RyYXRpb25zIGludG8g UE1DIGRyaXZlcgo+ICAgZHQtYmluZGluZ3M6IHNvYzogdGVncmEtcG1jOiBBZGQgaWQgZm9yIFRl Z3JhIFBNQyBibGluayBjb250cm9sCj4gICBzb2M6IHBtYzogQWRkIGJsaW5rIG91dHB1dCBjbG9j ayByZWdpc3RyYXRpb24gdG8gVGVncmEgUE1DCj4gICBjbGs6IHRlZ3JhOiBSZW1vdmUgdGVncmFf cG1jX2Nsa19pbml0IGFsb25nIHdpdGggY2xrIGlkcwo+ICAgZHQtYmluZGluZ3M6IGNsb2NrOiB0 ZWdyYTogUmVtb3ZlIHBtYyBjbG9jayBpZHMgZnJvbSBjbG9jayBkdC1iaW5kaW5ncwo+ICAgQVNv QzogdGVncmE6IEFkZCBhdWRpbyBtY2xrIGNvbnRyb2wgdGhyb3VnaCBjbGtfb3V0XzEgYW5kIGV4 dGVybjEKPiAgIEFTb0M6IHRlZ3JhOiBBZGQgZmFsbGJhY2sgZm9yIGF1ZGlvIG1jbGsKPiAgIGNs azogdGVncmE6IFJlbW92ZSBleHRlcm4xIGFuZCBjZGV2MSBmcm9tIGNsb2NrcyBpbml0dGFibGUK PiAgIEFSTTogZHRzOiB0ZWdyYTogQWRkIGNsb2NrLWNlbGxzIHByb3BlcnR5IHRvIHBtYwoKCj4g ICBhcm02NDogdGVncmE6IEFkZCBjbG9jay1jZWxscyBwcm9wZXJ0eSB0byBUZWdyYSBQTUMgbm9k ZQo+ICAgQVJNOiB0ZWdyYTogVXBkYXRlIHNvdW5kIG5vZGUgY2xvY2tzIGluIGRldmljZSB0cmVl Cj4gICBhcm02NDogdGVncmE6IHNtYXVnOiBDaGFuZ2UgY2xrX291dF8yIHByb3ZpZGVyIHRvIHBt Ywo+ICAgQVNvQzogbmF1ODgyNTogY2hhbmdlIFRlZ3JhIGNsa19vdXRfMiBwcm92aWRlciBmcm9t IHRlZ3JhX2NhciB0byBwbWMKCkhlbGxvIFNvd2phbnlhLAoKU29tZXRoaW5nIGdvbmUgd3Jvbmcg d2l0aCB0aGVzZSBwYXRjaGVzIGJlY2F1c2UgSSBkaWRuJ3QgcmVjZWl2ZSB0aGVtCmFuZCBkb24n dCBzZWUgdGhlbSBvbiB0aGUgTUwgZWl0aGVyLgoKQWxzbywgdGhlIGxpc3Qgb2YgZW1haWwgY29y cmVzcG9uZGVudHMgbG9va3MgYSBiaXQgdG9vIGxhcmdlci4gSSdtCnByZXR0eSBzdXJlIHNvbWUg b2YgdGhlIHBlb3BsZSBkbyBub3QgY2FyZSBtdWNoIGFib3V0IHRoaXMgc2VyaWVzLiBJCnRlbmQg dG8gdXNlIHNjcmlwdC9nZXRfbWFpbnRhaW5lci5wbCBhbmQgdGhlbiBtYW51YWxseSBwaWNrIHRo ZSByZWxldmFudApwZW9wbGUgZm9yIHBhdGNoZXMuCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkFsc2EtZGV2ZWwgbWFpbGluZyBsaXN0CkFsc2EtZGV2ZWxA YWxzYS1wcm9qZWN0Lm9yZwpodHRwczovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL2Fsc2EtZGV2ZWwK