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=-8.0 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham 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 D3F8BC43603 for ; Mon, 9 Dec 2019 10:19:10 +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 5E2B8206D5 for ; Mon, 9 Dec 2019 10:19:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="JeTvgZcH"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lZy1jJIu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5E2B8206D5 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 B4F3216D6; Mon, 9 Dec 2019 11:18:18 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz B4F3216D6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1575886748; bh=8pUfA/fmH44qxI1TdgXwwGZMn5EcJ30MJU4FVtCx2oo=; h=To:References:From:Date:In-Reply-To:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=JeTvgZcHvth7LzrjEjYfmk5tcQxWmI5CQyoFML6wiEI1JpFGCsVdY8JqmVAakMOCf dAq4T+Dq9Bs5AuV+8KybML0tM6pVtUMooJ4488oHjev3Rc1JaTC5VAJG1SBppt0bt8 p6HNuDNZM+ywe2bh0F3f0zsDsVaqZjTZgls7/CPg= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 7452FF8046E; Mon, 9 Dec 2019 10:52:10 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 58966F801F7; Sat, 7 Dec 2019 15:28:30 +0100 (CET) Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) (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 DCFACF8010F for ; Sat, 7 Dec 2019 15:28:21 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz DCFACF8010F Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lZy1jJIu" Received: by mail-lf1-x143.google.com with SMTP id l18so7458895lfc.1 for ; Sat, 07 Dec 2019 06:28:21 -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=dTfBkmcIEH47crXgv46iB/gkqLHzmDpFrNYEvJRBxmM=; b=lZy1jJIuat828jG5J9/AqTF/xkBIHxxn2qNTQMbHH9fuS/zppdsMWLCd3u6rSyYtVm tEOzDIOzhDFhyxJd6Xird+rQ8HBqU6eY/Ct1oH3lv2wQtJR4/J/ilQI40mg2V1WqhY+Y CqCSW7KtxgLkayvgt8bXN+a4QeqdQ3z986NC8BRTf/gqFkwO2xmsmc4VC3Cmy8mHdoS2 McpoUJGhXOuqAeINHkkJzvYqoAM3PfBO7WQRd47aXboFRQGayDie8LDiz2if1crFyQ0o dFwD3j5zs9WyDswTMPSK3IOsP1eiCJNt78/l/ZATjefnroJFmqbaivx6n/cjTxkzZi41 6wCA== 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=dTfBkmcIEH47crXgv46iB/gkqLHzmDpFrNYEvJRBxmM=; b=AgUwn4wFcSHVTps0gGORIaYnp1ZTFT2oHADvN0omQC1UTTOT5Ue6LXK6uYkxUvz3uH b9ZctDcumC0t6zXbIzWb4HZaT6RHI/bhFFgEHERF4Tv3j9tNgmtGFim0I5FbtDf2ccGo vJJzLM86+eAOoWaZA5zuDaFVoPSf213Fabfg1Ti1EEW5GPo+7J2an8B00ttoXiZbdc/S CXGoZ3Fkqi4pG+joqQft1cQAWTE+KFhcvgI/BQBmGgvkpklCp5zmMvluV4KHXGO0gUbZ xcNfFQNmqJazsfUmaXLo4kQqOts7GC96J0l967GXmxXd6Sm6q5z7h9D7KkoOVJPivJ1M KA4g== X-Gm-Message-State: APjAAAUznKn2U5pO0Y2e3xxOqtAv8S2gdDGeOTlVvdd1O05WoTSgj9j5 aQo5Vw6dUFaCZWcOedlMs4PR+kdE X-Google-Smtp-Source: APXvYqxBcFlrDWfpnJNgikKy92ksb4fe/ax3vkVXm2zqB4OTyq7c1I+DLqqYydpR1bDvqAs3k7wivw== X-Received: by 2002:a19:ec14:: with SMTP id b20mr6949791lfa.63.1575728899865; Sat, 07 Dec 2019 06:28:19 -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 k23sm6545819ljj.85.2019.12.07.06.28.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 07 Dec 2019 06:28:19 -0800 (PST) To: Sowjanya Komatineni , 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 References: <1575600535-26877-1-git-send-email-skomatineni@nvidia.com> <1575600535-26877-4-git-send-email-skomatineni@nvidia.com> From: Dmitry Osipenko Message-ID: <7cf4ff77-2f33-4ee5-0e09-5aa6aef3e8be@gmail.com> Date: Sat, 7 Dec 2019 17:28:17 +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-4-git-send-email-skomatineni@nvidia.com> Content-Language: en-US X-Mailman-Approved-At: Mon, 09 Dec 2019 10:51:21 +0100 Cc: alsa-devel@alsa-project.org, pgaikwad@nvidia.com, spujar@nvidia.com, linux-kernel@vger.kernel.org, josephl@nvidia.com, linux-clk@vger.kernel.org, arnd@arndb.de, daniel.lezcano@linaro.org, krzk@kernel.org, mturquette@baylibre.com, devicetree@vger.kernel.org, mmaddireddy@nvidia.com, markz@nvidia.com, alexios.zavras@intel.com, broonie@kernel.org, linux-tegra@vger.kernel.org, horms+renesas@verge.net.au, tiwai@suse.com, allison@lohutok.net, pdeschrijver@nvidia.com, lgirdwood@gmail.com, vidyas@nvidia.com, Jisheng.Zhang@synaptics.com Subject: Re: [alsa-devel] [PATCH v3 03/15] soc: tegra: Add Tegra PMC clock registrations into 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 MjEwIGFuZCBwcmlvciBUZWdyYSBQTUMgaGFzIGNsa19vdXRfMSwgY2xrX291dF8yLCBjbGtfb3V0 XzMgd2l0aAo+IG11eCBhbmQgZ2F0ZSBmb3IgZWFjaCBvZiB0aGVzZSBjbG9ja3MuCj4gCj4gQ3Vy cmVudGx5IHRoZXNlIFBNQyBjbG9ja3MgYXJlIHJlZ2lzdGVyZWQgYnkgVGVncmEgY2xvY2sgZHJp dmVyIHVzaW5nCj4gY2xrX3JlZ2lzdGVyX211eCBhbmQgY2xrX3JlZ2lzdGVyX2dhdGUgYnkgcGFz c2luZyBQTUMgYmFzZSBhZGRyZXNzCj4gYW5kIHJlZ2lzdGVyIG9mZnNldHMgYW5kIFBNQyBwcm9n cmFtbWluZyBmb3IgdGhlc2UgY2xvY2tzIGhhcHBlbnMKPiB0aHJvdWdoIGRpcmVjdCBQTUMgYWNj ZXNzIGJ5IHRoZSBjbG9jayBkcml2ZXIuCj4gCj4gV2l0aCB0aGlzLCB3aGVuIFBNQyBpcyBpbiBz ZWN1cmUgbW9kZSBhbnkgZGlyZWN0IFBNQyBhY2Nlc3MgZnJvbSB0aGUKPiBub24tc2VjdXJlIHdv cmxkIGRvZXMgbm90IGdvIHRocm91Z2ggYW5kIHRoZXNlIGNsb2NrcyB3aWxsIG5vdCBiZQo+IGZ1 bmN0aW9uYWwuCj4gCj4gVGhpcyBwYXRjaCBhZGRzIHRoZXNlIGNsb2NrcyByZWdpc3RyYXRpb24g d2l0aCBQTUMgYXMgYSBjbG9jayBwcm92aWRlcgo+IGZvciB0aGVzZSBjbG9ja3MuIGNsa19vcHMg Y2FsbGJhY2sgaW1wbGVtZW50YXRpb25zIGZvciB0aGVzZSBjbG9ja3MKPiB1c2VzIHRlZ3JhX3Bt Y19yZWFkbCBhbmQgdGVncmFfcG1jX3dyaXRlbCB3aGljaCBzdXBwb3J0cyBQTUMgcHJvZ3JhbW1p bmcKPiBpbiBzZWN1cmUgbW9kZSBhbmQgbm9uLXNlY3VyZSBtb2RlLgo+IAo+IFNpZ25lZC1vZmYt Ynk6IFNvd2phbnlhIEtvbWF0aW5lbmkgPHNrb21hdGluZW5pQG52aWRpYS5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvc29jL3RlZ3JhL3BtYy5jIHwgMzA1ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICAxIGZpbGUgY2hhbmdlZCwgMzA1IGluc2VydGlvbnMo KykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvdGVncmEvcG1jLmMgYi9kcml2ZXJzL3Nv Yy90ZWdyYS9wbWMuYwo+IGluZGV4IGVhMGUxMWEwOWMxMi4uYjhmNmViMGVkOGFhIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvc29jL3RlZ3JhL3BtYy5jCj4gKysrIGIvZHJpdmVycy9zb2MvdGVncmEv cG1jLmMKPiBAQCAtMTMsNiArMTMsOSBAQAo+ICAKPiAgI2luY2x1ZGUgPGxpbnV4L2FybS1zbWNj Yy5oPgo+ICAjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9jbGstcHJv dmlkZXIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgo+ICsjaW5jbHVkZSA8bGludXgv Y2xrL2Nsay1jb25mLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jbGsvdGVncmEuaD4KPiAgI2luY2x1 ZGUgPGxpbnV4L2RlYnVnZnMuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gQEAgLTQ4 LDYgKzUxLDcgQEAKPiAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3BpbmN0cmwvcGluY3RybC10ZWdy YS1pby1wYWQuaD4KPiAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2dwaW8vdGVncmExODYtZ3Bpby5o Pgo+ICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvZ3Bpby90ZWdyYTE5NC1ncGlvLmg+Cj4gKyNpbmNs dWRlIDxkdC1iaW5kaW5ncy9zb2MvdGVncmEtcG1jLmg+Cj4gIAo+ICAjZGVmaW5lIFBNQ19DTlRS TAkJCTB4MAo+ICAjZGVmaW5lICBQTUNfQ05UUkxfSU5UUl9QT0xBUklUWQlCSVQoMTcpIC8qIGlu dmVydHMgSU5UUiBwb2xhcml0eSAqLwo+IEBAIC0xMDAsNiArMTA0LDcgQEAKPiAgI2RlZmluZSBQ TUNfV0FLRTJfU1RBVFVTCQkweDE2OAo+ICAjZGVmaW5lIFBNQ19TV19XQUtFMl9TVEFUVVMJCTB4 MTZjCj4gIAo+ICsjZGVmaW5lIFBNQ19DTEtfT1VUX0NOVFJMCQkweDFhOAo+ICAjZGVmaW5lIFBN Q19TRU5TT1JfQ1RSTAkJCTB4MWIwCj4gICNkZWZpbmUgIFBNQ19TRU5TT1JfQ1RSTF9TQ1JBVENI X1dSSVRFCUJJVCgyKQo+ICAjZGVmaW5lICBQTUNfU0VOU09SX0NUUkxfRU5BQkxFX1JTVAlCSVQo MSkKPiBAQCAtMTU1LDYgKzE2MCw4MyBAQAo+ICAjZGVmaW5lICBURUdSQV9TTUNfUE1DX1JFQUQJ MHhhYQo+ICAjZGVmaW5lICBURUdSQV9TTUNfUE1DX1dSSVRFCTB4YmIKPiAgCj4gK3N0cnVjdCBw bWNfY2xrX211eCB7Cj4gKwlzdHJ1Y3QgY2xrX2h3CWh3Owo+ICsJdW5zaWduZWQgbG9uZwlvZmZz Owo+ICsJdTMyCQltYXNrOwo+ICsJdTMyCQlzaGlmdDsKPiArfTsKPiArCj4gKyNkZWZpbmUgdG9f cG1jX2Nsa19tdXgoX2h3KSBjb250YWluZXJfb2YoX2h3LCBzdHJ1Y3QgcG1jX2Nsa19tdXgsIGh3 KQo+ICsKPiArc3RydWN0IHBtY19jbGtfZ2F0ZSB7Cj4gKwlzdHJ1Y3QgY2xrX2h3CWh3Owo+ICsJ dW5zaWduZWQgbG9uZwlvZmZzOwo+ICsJdTMyCQlzaGlmdDsKPiArfTsKPiArCj4gKyNkZWZpbmUg dG9fcG1jX2Nsa19nYXRlKF9odykgY29udGFpbmVyX29mKF9odywgc3RydWN0IHBtY19jbGtfZ2F0 ZSwgaHcpCj4gKwo+ICtzdHJ1Y3QgcG1jX2Nsa19pbml0X2RhdGEgewo+ICsJY2hhciAqbXV4X25h bWU7Cj4gKwljaGFyICpnYXRlX25hbWU7Cj4gKwljb25zdCBjaGFyICoqcGFyZW50czsKPiArCWlu dCBudW1fcGFyZW50czsKPiArCWludCBtdXhfaWQ7Cj4gKwlpbnQgZ2F0ZV9pZDsKPiArCWNoYXIg KmRldl9uYW1lOwo+ICsJdTggbXV4X3NoaWZ0Owo+ICsJdTggZ2F0ZV9zaGlmdDsKPiArfTsKPiAr Cj4gK3N0YXRpYyBjb25zdCBjaGFyICpjbGtfb3V0MV9wYXJlbnRzW10gPSB7ICJjbGtfbSIsICJj bGtfbV9kaXYyIiwKPiArCSJjbGtfbV9kaXY0IiwgImV4dGVybjEiLAo+ICt9Owo+ICsKPiArc3Rh dGljIGNvbnN0IGNoYXIgKmNsa19vdXQyX3BhcmVudHNbXSA9IHsgImNsa19tIiwgImNsa19tX2Rp djIiLAo+ICsJImNsa19tX2RpdjQiLCAiZXh0ZXJuMiIsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29u c3QgY2hhciAqY2xrX291dDNfcGFyZW50c1tdID0geyAiY2xrX20iLCAiY2xrX21fZGl2MiIsCj4g KwkiY2xrX21fZGl2NCIsICJleHRlcm4zIiwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgcG1jX2Nsa19pbml0X2RhdGEgdGVncmFfcG1jX2Nsa3NfZGF0YVtdID0gewo+ICsJewo+ICsJ CS5tdXhfbmFtZSA9ICJjbGtfb3V0XzFfbXV4IiwKPiArCQkuZ2F0ZV9uYW1lID0gImNsa19vdXRf MSIsCj4gKwkJLnBhcmVudHMgPSBjbGtfb3V0MV9wYXJlbnRzLAo+ICsJCS5udW1fcGFyZW50cyA9 IEFSUkFZX1NJWkUoY2xrX291dDFfcGFyZW50cyksCj4gKwkJLm11eF9pZCA9IFRFR1JBX1BNQ19D TEtfT1VUXzFfTVVYLAo+ICsJCS5nYXRlX2lkID0gVEVHUkFfUE1DX0NMS19PVVRfMSwKPiArCQku ZGV2X25hbWUgPSAiZXh0ZXJuMSIsCj4gKwkJLm11eF9zaGlmdCA9IDYsCj4gKwkJLmdhdGVfc2hp ZnQgPSAyLAo+ICsJfSwKPiArCXsKPiArCQkubXV4X25hbWUgPSAiY2xrX291dF8yX211eCIsCj4g KwkJLmdhdGVfbmFtZSA9ICJjbGtfb3V0XzIiLAo+ICsJCS5wYXJlbnRzID0gY2xrX291dDJfcGFy ZW50cywKPiArCQkubnVtX3BhcmVudHMgPSBBUlJBWV9TSVpFKGNsa19vdXQyX3BhcmVudHMpLAo+ ICsJCS5tdXhfaWQgPSBURUdSQV9QTUNfQ0xLX09VVF8yX01VWCwKPiArCQkuZ2F0ZV9pZCA9IFRF R1JBX1BNQ19DTEtfT1VUXzIsCj4gKwkJLmRldl9uYW1lID0gImV4dGVybjIiLAo+ICsJCS5tdXhf c2hpZnQgPSAxNCwKPiArCQkuZ2F0ZV9zaGlmdCA9IDEwLAo+ICsJfSwKPiArCXsKPiArCQkubXV4 X25hbWUgPSAiY2xrX291dF8zX211eCIsCj4gKwkJLmdhdGVfbmFtZSA9ICJjbGtfb3V0XzMiLAo+ ICsJCS5wYXJlbnRzID0gY2xrX291dDNfcGFyZW50cywKPiArCQkubnVtX3BhcmVudHMgPSBBUlJB WV9TSVpFKGNsa19vdXQzX3BhcmVudHMpLAo+ICsJCS5tdXhfaWQgPSBURUdSQV9QTUNfQ0xLX09V VF8zX01VWCwKPiArCQkuZ2F0ZV9pZCA9IFRFR1JBX1BNQ19DTEtfT1VUXzMsCj4gKwkJLmRldl9u YW1lID0gImV4dGVybjMiLAo+ICsJCS5tdXhfc2hpZnQgPSAyMiwKPiArCQkuZ2F0ZV9zaGlmdCA9 IDE4LAo+ICsJfSwKPiArfTsKPiArCj4gIHN0cnVjdCB0ZWdyYV9wb3dlcmdhdGUgewo+ICAJc3Ry dWN0IGdlbmVyaWNfcG1fZG9tYWluIGdlbnBkOwo+ICAJc3RydWN0IHRlZ3JhX3BtYyAqcG1jOwo+ IEBAIC0yNTQsNiArMzM2LDkgQEAgc3RydWN0IHRlZ3JhX3BtY19zb2Mgewo+ICAJICovCj4gIAlj b25zdCBzdHJ1Y3QgdGVncmFfd2FrZV9ldmVudCAqd2FrZV9ldmVudHM7Cj4gIAl1bnNpZ25lZCBp bnQgbnVtX3dha2VfZXZlbnRzOwo+ICsKPiArCWNvbnN0IHN0cnVjdCBwbWNfY2xrX2luaXRfZGF0 YSAqcG1jX2Nsa3NfZGF0YTsKPiArCXVuc2lnbmVkIGludCBudW1fcG1jX2Nsa3M7Cj4gIH07Cj4g IAo+ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRlZ3JhMTg2X3Jlc2V0X3NvdXJjZXNbXSA9 IHsKPiBAQCAtMjE2Myw2ICsyMjQ4LDIxMSBAQCBzdGF0aWMgaW50IHRlZ3JhX3BtY19jbGtfbm90 aWZ5X2NiKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCj4gIAlyZXR1cm4gTk9USUZZX09LOwo+ ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBwbWNfY2xrX2ZlbmNlX3VkZWxheSh1MzIgb2Zmc2V0KQo+ ICt7Cj4gKwl0ZWdyYV9wbWNfcmVhZGwocG1jLCBvZmZzZXQpOwo+ICsJLyogcG1jIGNsayBwcm9w YWdhdGlvbiBkZWxheSAyIHVzICovCj4gKwl1ZGVsYXkoMik7Cj4gK30KPiArCj4gK3N0YXRpYyB1 OCBwbWNfY2xrX211eF9nZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3KQo+ICt7Cj4gKwlzdHJ1 Y3QgcG1jX2Nsa19tdXggKm11eCA9IHRvX3BtY19jbGtfbXV4KGh3KTsKPiArCWludCBudW1fcGFy ZW50cyA9IGNsa19od19nZXRfbnVtX3BhcmVudHMoaHcpOwo+ICsJdTMyIHZhbDsKPiArCj4gKwl2 YWwgPSB0ZWdyYV9wbWNfcmVhZGwocG1jLCBtdXgtPm9mZnMpID4+IG11eC0+c2hpZnQ7Cj4gKwl2 YWwgJj0gbXV4LT5tYXNrOwo+ICsKPiArCWlmICh2YWwgPj0gbnVtX3BhcmVudHMpCj4gKwkJcmV0 dXJuIC1FSU5WQUw7CgpIb3cgdGhpcyBjb3VsZCBldmVyIGhhcHBlbj8KCldoeSBhcmUgeW91IHJl dHVybmluZyBuZWdhdGl2ZSB2YWx1ZSBmb3IgdTg/IEl0IGRvZXNuJ3QgZGlmZmVyZW50IGZyb20K cmV0dXJuaW5nIHZhbCA+PSBudW1fcGFyZW50cy4KCj4gKwlyZXR1cm4gdmFsOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW50IHBtY19jbGtfbXV4X3NldF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHcsIHU4 IGluZGV4KQo+ICt7Cj4gKwlzdHJ1Y3QgcG1jX2Nsa19tdXggKm11eCA9IHRvX3BtY19jbGtfbXV4 KGh3KTsKPiArCXUzMiB2YWw7Cj4gKwo+ICsJdmFsID0gdGVncmFfcG1jX3JlYWRsKHBtYywgbXV4 LT5vZmZzKTsKPiArCXZhbCAmPSB+KG11eC0+bWFzayA8PCBtdXgtPnNoaWZ0KTsKPiArCXZhbCB8 PSBpbmRleCA8PCBtdXgtPnNoaWZ0Owo+ICsJdGVncmFfcG1jX3dyaXRlbChwbWMsIHZhbCwgbXV4 LT5vZmZzKTsKPiArCXBtY19jbGtfZmVuY2VfdWRlbGF5KG11eC0+b2Zmcyk7Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBwbWNfY2xrX211 eF9vcHMgPSB7Cj4gKwkuZ2V0X3BhcmVudCA9IHBtY19jbGtfbXV4X2dldF9wYXJlbnQsCj4gKwku c2V0X3BhcmVudCA9IHBtY19jbGtfbXV4X3NldF9wYXJlbnQsCj4gKwkuZGV0ZXJtaW5lX3JhdGUg PSBfX2Nsa19tdXhfZGV0ZXJtaW5lX3JhdGUsCj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGNs ayAqCj4gK3RlZ3JhX3BtY19jbGtfbXV4X3JlZ2lzdGVyKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IGNoYXIgKiBjb25zdCAqcGFyZW50X25hbWVzLAo+ICsJCQkgICBpbnQgbnVtX3BhcmVudHMsIHVu c2lnbmVkIGxvbmcgZmxhZ3MsCj4gKwkJCSAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1MzIgc2hp ZnQsIHUzMiBtYXNrKQo+ICt7Cj4gKwlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0Owo+ICsJc3Ry dWN0IHBtY19jbGtfbXV4ICptdXg7Cj4gKwo+ICsJbXV4ID0ga3phbGxvYyhzaXplb2YoKm11eCks IEdGUF9LRVJORUwpOwo+ICsJaWYgKCFtdXgpCj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7 Cj4gKwo+ICsJaW5pdC5uYW1lID0gbmFtZTsKPiArCWluaXQub3BzID0gJnBtY19jbGtfbXV4X29w czsKPiArCWluaXQucGFyZW50X25hbWVzID0gcGFyZW50X25hbWVzOwo+ICsJaW5pdC5udW1fcGFy ZW50cyA9IG51bV9wYXJlbnRzOwo+ICsJaW5pdC5mbGFncyA9IGZsYWdzOwo+ICsKPiArCW11eC0+ aHcuaW5pdCA9ICZpbml0Owo+ICsJbXV4LT5vZmZzID0gb2Zmc2V0Owo+ICsJbXV4LT5tYXNrID0g bWFzazsKPiArCW11eC0+c2hpZnQgPSBzaGlmdDsKPiArCj4gKwlyZXR1cm4gY2xrX3JlZ2lzdGVy KE5VTEwsICZtdXgtPmh3KTsKPiArfQo+ICsKPiArc3RhdGljIGludCBwbWNfY2xrX2lzX2VuYWJs ZWQoc3RydWN0IGNsa19odyAqaHcpCj4gK3sKPiArCXN0cnVjdCBwbWNfY2xrX2dhdGUgKmdhdGUg PSB0b19wbWNfY2xrX2dhdGUoaHcpOwo+ICsKPiArCXJldHVybiB0ZWdyYV9wbWNfcmVhZGwocG1j LCBnYXRlLT5vZmZzKSAmIEJJVChnYXRlLT5zaGlmdCkgPyAxIDogMDsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgcG1jX2Nsa19zZXRfc3RhdGUoc3RydWN0IGNsa19odyAqaHcsIGludCBzdGF0ZSkK PiArewo+ICsJc3RydWN0IHBtY19jbGtfZ2F0ZSAqZ2F0ZSA9IHRvX3BtY19jbGtfZ2F0ZShodyk7 Cj4gKwl1MzIgdmFsOwo+ICsKPiArCXZhbCA9IHRlZ3JhX3BtY19yZWFkbChwbWMsIGdhdGUtPm9m ZnMpOwo+ICsJdmFsID0gc3RhdGUgPyAodmFsIHwgQklUKGdhdGUtPnNoaWZ0KSkgOiAodmFsICYg fkJJVChnYXRlLT5zaGlmdCkpOwo+ICsJdGVncmFfcG1jX3dyaXRlbChwbWMsIHZhbCwgZ2F0ZS0+ b2Zmcyk7Cj4gKwlwbWNfY2xrX2ZlbmNlX3VkZWxheShnYXRlLT5vZmZzKTsKPiArfQo+ICsKPiAr c3RhdGljIGludCBwbWNfY2xrX2VuYWJsZShzdHJ1Y3QgY2xrX2h3ICpodykKPiArewo+ICsJcG1j X2Nsa19zZXRfc3RhdGUoaHcsIDEpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgdm9pZCBwbWNfY2xrX2Rpc2FibGUoc3RydWN0IGNsa19odyAqaHcpCj4gK3sKPiArCXBtY19j bGtfc2V0X3N0YXRlKGh3LCAwKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtf b3BzIHBtY19jbGtfZ2F0ZV9vcHMgPSB7Cj4gKwkuaXNfZW5hYmxlZCA9IHBtY19jbGtfaXNfZW5h YmxlZCwKPiArCS5lbmFibGUgPSBwbWNfY2xrX2VuYWJsZSwKPiArCS5kaXNhYmxlID0gcG1jX2Ns a19kaXNhYmxlLAo+ICt9OwoKV2hhdCdzIHRoZSBiZW5lZml0IG9mIHNlcGFyYXRpbmcgR0FURSBm cm9tIHRoZSBNVVg/CgpJIHRoaW5rIGl0IGNvdWxkIGJlIGEgc2luZ2xlIGNsb2NrLgoKPiArc3Rh dGljIHN0cnVjdCBjbGsgKgo+ICt0ZWdyYV9wbWNfY2xrX2dhdGVfcmVnaXN0ZXIoY29uc3QgY2hh ciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCj4gKwkJCSAgICB1bnNpZ25lZCBsb25n IGZsYWdzLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKPiArCQkJICAgIHUzMiBzaGlmdCkKPiArewo+ ICsJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKPiArCXN0cnVjdCBwbWNfY2xrX2dhdGUgKmdh dGU7Cj4gKwo+ICsJZ2F0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpnYXRlKSwgR0ZQX0tFUk5FTCk7Cj4g KwlpZiAoIWdhdGUpCj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gKwo+ICsJaW5pdC5u YW1lID0gbmFtZTsKPiArCWluaXQub3BzID0gJnBtY19jbGtfZ2F0ZV9vcHM7Cj4gKwlpbml0LnBh cmVudF9uYW1lcyA9ICZwYXJlbnRfbmFtZTsKPiArCWluaXQubnVtX3BhcmVudHMgPSAxOwo+ICsJ aW5pdC5mbGFncyA9IGZsYWdzOwo+ICsKPiArCWdhdGUtPmh3LmluaXQgPSAmaW5pdDsKPiArCWdh dGUtPm9mZnMgPSBvZmZzZXQ7Cj4gKwlnYXRlLT5zaGlmdCA9IHNoaWZ0Owo+ICsKPiArCXJldHVy biBjbGtfcmVnaXN0ZXIoTlVMTCwgJmdhdGUtPmh3KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQg dGVncmFfcG1jX2Nsb2NrX3JlZ2lzdGVyKHN0cnVjdCB0ZWdyYV9wbWMgKnBtYywKPiArCQkJCSAg ICAgc3RydWN0IGRldmljZV9ub2RlICpucCkKPiArewo+ICsJc3RydWN0IGNsayAqY2xrbXV4LCAq Y2xrOwo+ICsJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOwo+ICsJdW5zaWduZWQg aW50IG51bV9jbGtzOwo+ICsJaW50IGksIHJldDsKPiArCj4gKwkvKiBlYWNoIHBtYyBjbG9jayBv dXRwdXQgaGFzIGEgbXV4IGFuZCBhIGdhdGUgKi8KPiArCW51bV9jbGtzID0gcG1jLT5zb2MtPm51 bV9wbWNfY2xrcyAqIDI7Cj4gKwo+ICsJaWYgKCFudW1fY2xrcykKPiArCQlyZXR1cm47Cj4gKwo+ ICsJY2xrX2RhdGEgPSBrbWFsbG9jKHNpemVvZigqY2xrX2RhdGEpLCBHRlBfS0VSTkVMKTsKPiAr CWlmICghY2xrX2RhdGEpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWNsa19kYXRhLT5jbGtzID0ga2Nh bGxvYyhURUdSQV9QTUNfQ0xLX01BWCwgc2l6ZW9mKCpjbGtfZGF0YS0+Y2xrcyksCj4gKwkJCQkg R0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWNsa19kYXRhLT5jbGtzKQo+ICsJCWdvdG8gZnJlZV9jbGtk YXRhOwo+ICsKPiArCWNsa19kYXRhLT5jbGtfbnVtID0gVEVHUkFfUE1DX0NMS19NQVg7Cj4gKwo+ ICsJZm9yIChpID0gMDsgaSA8IFRFR1JBX1BNQ19DTEtfTUFYOyBpKyspCj4gKwkJY2xrX2RhdGEt PmNsa3NbaV0gPSBFUlJfUFRSKC1FTk9FTlQpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBwbWMt PnNvYy0+bnVtX3BtY19jbGtzOyBpKyspIHsKPiArCQljb25zdCBzdHJ1Y3QgcG1jX2Nsa19pbml0 X2RhdGEgKmRhdGE7Cj4gKwo+ICsJCWRhdGEgPSBwbWMtPnNvYy0+cG1jX2Nsa3NfZGF0YSArIGk7 Cj4gKwo+ICsJCWNsa211eCA9IHRlZ3JhX3BtY19jbGtfbXV4X3JlZ2lzdGVyKGRhdGEtPm11eF9u YW1lLAo+ICsJCQkJCQkgICAgZGF0YS0+cGFyZW50cywKPiArCQkJCQkJICAgIGRhdGEtPm51bV9w YXJlbnRzLAo+ICsJCQkJCQkgICAgQ0xLX1NFVF9SQVRFX05PX1JFUEFSRU5UIHwKPiArCQkJCQkJ ICAgIENMS19TRVRfUkFURV9QQVJFTlQsCj4gKwkJCQkJCSAgICBQTUNfQ0xLX09VVF9DTlRSTCwK PiArCQkJCQkJICAgIGRhdGEtPm11eF9zaGlmdCwgMyk7Cj4gKwkJaWYgKElTX0VSUihjbGttdXgp KQo+ICsJCQlnb3RvIGZyZWVfY2xrczsKPiArCj4gKwkJY2xrX2RhdGEtPmNsa3NbZGF0YS0+bXV4 X2lkXSA9IGNsa211eDsKPiArCj4gKwkJY2xrID0gdGVncmFfcG1jX2Nsa19nYXRlX3JlZ2lzdGVy KGRhdGEtPmdhdGVfbmFtZSwKPiArCQkJCQkJICBkYXRhLT5tdXhfbmFtZSwKPiArCQkJCQkJICBD TEtfU0VUX1JBVEVfUEFSRU5ULAo+ICsJCQkJCQkgIFBNQ19DTEtfT1VUX0NOVFJMLAo+ICsJCQkJ CQkgIGRhdGEtPmdhdGVfc2hpZnQpOwo+ICsJCWlmIChJU19FUlIoY2xrKSkKPiArCQkJZ290byBm cmVlX2Nsa3M7Cj4gKwo+ICsJCWNsa19kYXRhLT5jbGtzW2RhdGEtPmdhdGVfaWRdID0gY2xrOwo+ ICsKPiArCQlyZXQgPSBjbGtfc2V0X3BhcmVudChjbGssIGNsa211eCk7Cj4gKwkJaWYgKHJldCA8 IDApIHsKPiArCQkJcHJfZXJyKCJmYWlsZWQgdG8gc2V0IHBhcmVudCBvZiAlcyB0byAlczogJWRc biIsCj4gKwkJCSAgICAgICBfX2Nsa19nZXRfbmFtZShjbGspLAo+ICsJCQkgICAgICAgX19jbGtf Z2V0X25hbWUoY2xrbXV4KSwgcmV0KTsKPiArCQl9CgppcyB0aGlzIHJlYWxseSBuZWVkZWQ/IEdB VEUgY2xvY2sgaGFzIGEgc2luZ2xlIHBhcmVudCwgdGhlIE1VWC4KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWxzYS1kZXZlbCBtYWlsaW5nIGxpc3QKQWxz YS1kZXZlbEBhbHNhLXByb2plY3Qub3JnCmh0dHBzOi8vbWFpbG1hbi5hbHNhLXByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8vYWxzYS1kZXZlbAo=