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 B51CCC43603 for ; Thu, 5 Dec 2019 14:15:25 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 874AA21823 for ; Thu, 5 Dec 2019 14:15:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="rq0YxgDl"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eKN1cSEh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 874AA21823 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=n1qe3cDGwVvd9vN5fP4DX0WLiwagTq+iGuB7emJ0uHw=; b=rq0YxgDlhP8piR C8Wcf9R2HX0ccW5RHL8iE2dMBbfRnBDbcvne8zeZ+cBz9ft0sxnt80yHIVdhL7i91islpzhh4snGB aQ76Q8Sm6AZ9bwBQTWYbOafnwOtVgqIkiW70AlNfs9OBtL34NF1LLARPDOeECmmlWDl/uQtWAPGuX hrkgx5RCl1hY1LwRnY3NFZCbAe3gf3KskYh3GQHs762EEsZ0uNhSl4gAM8x1Pvt5sXWm0QXelQ69W TVDpsK0Xr543NR8ltbS3W/NqB5zHa2xIotby+9RdN5VMLqCQB11G9SR/UsLpGmZjc7jMRly2C53mC PlaFDd6hplkOOtFIfQIQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1icrue-0008O6-Qf; Thu, 05 Dec 2019 14:15:24 +0000 Received: from mail-lf1-x141.google.com ([2a00:1450:4864:20::141]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1icrub-0008N8-6T for linux-arm-kernel@lists.infradead.org; Thu, 05 Dec 2019 14:15:22 +0000 Received: by mail-lf1-x141.google.com with SMTP id n25so2651385lfl.0 for ; Thu, 05 Dec 2019 06:15: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=Wzep174WCTcC1ylDAnxlMqZM1R1EhRXQds7swrstswI=; b=eKN1cSEh0kd1WE7WXm3PmvW+zXtWnPq+tMxGojEk6pDa+uT8NehzL6Jehm6RSKxU1D bJeruxzSsmoe4Zob+mCQbqLTadh4qBX2dDbdxDuUs9ifbwFV+wRo8U7Wes22mvsKEChd dMwRAc+IKgdWva1j7jYXPnerw2g7qlnjDXgK3SWU8f1p5H62F/M1y1xs1Snqpy1IiIcQ 7dSbBkZ6+SWcdImMUnu7i+vHdrYobbJzFIipc4veha56Jh7qWCbS4iyAoN//BKJGdRZx 5Q7qqqDE0jDbrJu6f2WQkDgO1+n+FkiA1mq4F2xBSOL3nLbTLwvupluWaAWlpiAFrdoT 6JZA== 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=Wzep174WCTcC1ylDAnxlMqZM1R1EhRXQds7swrstswI=; b=a9MGqgGeP9CGt3hWnV0+v6F58iBiP7ObdzKnzVeFY3y4EUh2giv8zWMzmNNwktm9vq 7KmDbC0JANxPghfbuhMRkn5M5GV7S6AqVquzf7iSEW6fzzaAjFcERBoZV+3++ne2POly oq8a2GbrToHEvKH0qgNhP1XM5ae7ivArlCcXDEroKvVcPqugbfNB+oxnKkEun2yE3+sK tX4qCqBvZTfTdNxOMmD19Jxcu2lyqIjDVl19uBZpoNgTS88KBZLs2nOrGFvBNnfHEy69 KdMwehh1Yf54RDDWg8/w7VlVjkeOFDv6u4Kc4XqRyAmvAptQFxqtPGytdAfOx0xVJsyC aq+g== X-Gm-Message-State: APjAAAWurmNGXnhIxZNeWLILUaiJB3E8B1THct4ZzMBsk61x8+sByFHW a/1l8iPba/rVT6rvpdoj+/c= X-Google-Smtp-Source: APXvYqxDsjhSKWK+uSVzdnXGuwNFxGT3Omee51LOWQUVpNA82oYyAbz8BSHfqBLZ/hseHq/ttcy9vg== X-Received: by 2002:a19:c84:: with SMTP id 126mr5414925lfm.5.1575555317304; Thu, 05 Dec 2019 06:15: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 s22sm5158466ljm.41.2019.12.05.06.15.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 05 Dec 2019 06:15:16 -0800 (PST) Subject: Re: [TEGRA194_CPUFREQ Patch 2/3] cpufreq: Add Tegra194 cpufreq driver To: Sumit Gupta , rjw@rjwysocki.net, viresh.kumar@linaro.org, catalin.marinas@arm.com, will@kernel.org, thierry.reding@gmail.com, jonathanh@nvidia.com, talho@nvidia.com, linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <1575394348-17649-1-git-send-email-sumitg@nvidia.com> <1575394348-17649-2-git-send-email-sumitg@nvidia.com> From: Dmitry Osipenko Message-ID: <9b9eb84d-2d9a-8dbd-cbe6-1595ed1e7f4e@gmail.com> Date: Thu, 5 Dec 2019 17:15: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: <1575394348-17649-2-git-send-email-sumitg@nvidia.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191205_061521_242570_A625C414 X-CRM114-Status: GOOD ( 25.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: bbasu@nvidia.com, mperttunen@nvidia.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org MDMuMTIuMjAxOSAyMDozMiwgU3VtaXQgR3VwdGEg0L/QuNGI0LXRgjoKPiBBZGQgc3VwcG9ydCBm b3IgQ1BVIGZyZXF1ZW5jeSBzY2FsaW5nIG9uIFRlZ3JhMTk0LiBUaGUgZnJlcXVlbmN5Cj4gb2Yg ZWFjaCBjb3JlIGNhbiBiZSBhZGp1c3RlZCBieSB3cml0aW5nIGEgY2xvY2sgZGl2aXNvciB2YWx1 ZSB0bwo+IGFuIE1TUiBvbiB0aGUgY29yZS4gVGhlIHJhbmdlIG9mIHZhbGlkIGRpdmlzb3JzIGlz IHF1ZXJpZWQgZnJvbQo+IHRoZSBCUE1QLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1pa2tvIFBlcnR0 dW5lbiA8bXBlcnR0dW5lbkBudmlkaWEuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFN1bWl0IEd1cHRh IDxzdW1pdGdAbnZpZGlhLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9jcHVmcmVxL0tjb25maWcuYXJt ICAgICAgICB8ICAgNiArCj4gIGRyaXZlcnMvY3B1ZnJlcS9NYWtlZmlsZSAgICAgICAgICAgfCAg IDEgKwo+ICBkcml2ZXJzL2NwdWZyZXEvdGVncmExOTQtY3B1ZnJlcS5jIHwgNDIzICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCA0MzAgaW5z ZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9jcHVmcmVxL3RlZ3JhMTk0 LWNwdWZyZXEuYwo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NwdWZyZXEvS2NvbmZpZy5hcm0g Yi9kcml2ZXJzL2NwdWZyZXEvS2NvbmZpZy5hcm0KPiBpbmRleCBhOTA1Nzk2Li40YmNkNDdjIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvY3B1ZnJlcS9LY29uZmlnLmFybQo+ICsrKyBiL2RyaXZlcnMv Y3B1ZnJlcS9LY29uZmlnLmFybQo+IEBAIC0zMjAsNiArMzIwLDEyIEBAIGNvbmZpZyBBUk1fVEVH UkExODZfQ1BVRlJFUQo+ICAJaGVscAo+ICAJICBUaGlzIGFkZHMgdGhlIENQVUZyZXEgZHJpdmVy IHN1cHBvcnQgZm9yIFRlZ3JhMTg2IFNPQ3MuCj4gIAo+ICtjb25maWcgQVJNX1RFR1JBMTk0X0NQ VUZSRVEKPiArCXRyaXN0YXRlICJUZWdyYTE5NCBDUFVGcmVxIHN1cHBvcnQiCj4gKwlkZXBlbmRz IG9uIEFSQ0hfVEVHUkEgJiYgVEVHUkFfQlBNUAo+ICsJaGVscAo+ICsJICBUaGlzIGFkZHMgQ1BV IGZyZXF1ZW5jeSBkcml2ZXIgc3VwcG9ydCBmb3IgVGVncmExOTQgU09Dcy4KPiArCj4gIGNvbmZp ZyBBUk1fVElfQ1BVRlJFUQo+ICAJYm9vbCAiVGV4YXMgSW5zdHJ1bWVudHMgQ1BVRnJlcSBzdXBw b3J0Igo+ICAJZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2NwdWZyZXEvTWFrZWZpbGUgYi9kcml2ZXJzL2NwdWZyZXEvTWFrZWZpbGUKPiBpbmRleCA5YTlm NWNjLi40MzNkNDkyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvY3B1ZnJlcS9NYWtlZmlsZQo+ICsr KyBiL2RyaXZlcnMvY3B1ZnJlcS9NYWtlZmlsZQo+IEBAIC04NSw2ICs4NSw3IEBAIG9iai0kKENP TkZJR19BUk1fVEFOR09fQ1BVRlJFUSkJCSs9IHRhbmdvLWNwdWZyZXEubwo+ICBvYmotJChDT05G SUdfQVJNX1RFR1JBMjBfQ1BVRlJFUSkJKz0gdGVncmEyMC1jcHVmcmVxLm8KPiAgb2JqLSQoQ09O RklHX0FSTV9URUdSQTEyNF9DUFVGUkVRKQkrPSB0ZWdyYTEyNC1jcHVmcmVxLm8KPiAgb2JqLSQo Q09ORklHX0FSTV9URUdSQTE4Nl9DUFVGUkVRKQkrPSB0ZWdyYTE4Ni1jcHVmcmVxLm8KPiArb2Jq LSQoQ09ORklHX0FSTV9URUdSQTE5NF9DUFVGUkVRKQkrPSB0ZWdyYTE5NC1jcHVmcmVxLm8KPiAg b2JqLSQoQ09ORklHX0FSTV9USV9DUFVGUkVRKQkJKz0gdGktY3B1ZnJlcS5vCj4gIG9iai0kKENP TkZJR19BUk1fVkVYUFJFU1NfU1BDX0NQVUZSRVEpCSs9IHZleHByZXNzLXNwYy1jcHVmcmVxLm8K PiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3B1ZnJlcS90ZWdyYTE5NC1jcHVmcmVxLmMgYi9k cml2ZXJzL2NwdWZyZXEvdGVncmExOTQtY3B1ZnJlcS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCAwMDAwMDAwLi45ZGYxMmY0Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMv Y3B1ZnJlcS90ZWdyYTE5NC1jcHVmcmVxLmMKPiBAQCAtMCwwICsxLDQyMyBAQAo+ICsvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIw MTksIE5WSURJQSBDT1JQT1JBVElPTi4gQWxsIHJpZ2h0cyByZXNlcnZlZAo+ICsgKi8KPiArCj4g KyNpbmNsdWRlIDxsaW51eC9jcHUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2NwdWZyZXEuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5o Pgo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZi5oPgo+ ICsjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRm b3JtX2RldmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICsKPiArI2luY2x1ZGUg PGFzbS9zbXBfcGxhdC5oPgo+ICsKPiArI2luY2x1ZGUgPHNvYy90ZWdyYS9icG1wLmg+Cj4gKyNp bmNsdWRlIDxzb2MvdGVncmEvYnBtcC1hYmkuaD4KPiArCj4gKyNkZWZpbmUgS0haICAgICAgICAg ICAgICAgICAgICAgMTAwMAo+ICsjZGVmaW5lIFJFRl9DTEtfTUhaICAgICAgICAgICAgIDQwOCAv KiA0MDggTUh6ICovCj4gKyNkZWZpbmUgVVNfREVMQVkgICAgICAgICAgICAgICAgMjAwMAo+ICsj ZGVmaW5lIFVTX0RFTEFZX01JTiAgICAgICAgICAgIDIKPiArI2RlZmluZSBDUFVGUkVRX1RCTF9T VEVQX0haICAgICAoNTAgKiBLSFogKiBLSFopCj4gKyNkZWZpbmUgTUFYX0NOVCAgICAgICAgICAg ICAgICAgfjBVCj4gKwo+ICsvKiBjcHVmcmVxIHRyYW5zaXNpdGlvbiBsYXRlbmN5ICovCj4gKyNk ZWZpbmUgVEVHUkFfQ1BVRlJFUV9UUkFOU0lUSU9OX0xBVEVOQ1kgKDMwMCAqIDEwMDApIC8qIHVu aXQgaW4gbmFub3NlY29uZHMgKi8KPiArCj4gK2VudW0gY2x1c3RlciB7Cj4gKwlDTFVTVEVSMCwK PiArCUNMVVNURVIxLAo+ICsJQ0xVU1RFUjIsCj4gKwlDTFVTVEVSMywKPiArCU1BWF9DTFVTVEVS UywKPiArfTsKPiArCj4gK3N0cnVjdCB0ZWdyYTE5NF9jcHVmcmVxX2RhdGEgewo+ICsJdm9pZCBf X2lvbWVtICpyZWdzOwo+ICsJc2l6ZV90IG51bV9jbHVzdGVyczsKPiArCXN0cnVjdCBjcHVmcmVx X2ZyZXF1ZW5jeV90YWJsZSAqKnRhYmxlczsKPiArfTsKPiArCj4gK3N0YXRpYyBERUZJTkVfTVVU RVgoY3B1ZnJlcV9sb2NrKTsKPiArCj4gK3N0cnVjdCB0ZWdyYV9jcHVfY3RyIHsKPiArCXUzMiBj cHU7Cj4gKwl1MzIgZGVsYXk7Cj4gKwl1MzIgY29yZWNsa19jbnQsIGxhc3RfY29yZWNsa19jbnQ7 Cj4gKwl1MzIgcmVmY2xrX2NudCwgbGFzdF9yZWZjbGtfY250Owo+ICt9Owo+ICsKPiArc3RhdGlj IHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpyZWFkX2NvdW50ZXJzX3dxOwo+ICtzdHJ1Y3QgcmVh ZF9jb3VudGVyc193b3JrIHsKPiArCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwo+ICsJc3RydWN0 IHRlZ3JhX2NwdV9jdHIgYzsKPiArfTsKPiArCj4gK3N0YXRpYyBlbnVtIGNsdXN0ZXIgZ2V0X2Nw dV9jbHVzdGVyKHU4IGNwdSkKPiArewo+ICsJcmV0dXJuIE1QSURSX0FGRklOSVRZX0xFVkVMKGNw dV9sb2dpY2FsX21hcChjcHUpLCAxKTsKPiArfQo+ICsKPiArLyoKPiArICogUmVhZCBwZXItY29y ZSBSZWFkLW9ubHkgc3lzdGVtIHJlZ2lzdGVyIE5WRlJFUV9GRUVEQkFDS19FTDEuCj4gKyAqIFRo ZSByZWdpc3RlciBwcm92aWRlcyBmcmVxdWVuY3kgZmVlZGJhY2sgaW5mb3JtYXRpb24gdG8KPiAr ICogZGV0ZXJtaW5lIHRoZSBhdmVyYWdlIGFjdHVhbCBmcmVxdWVuY3kgYSBjb3JlIGhhcyBydW4g YXQgb3Zlcgo+ICsgKiBhIHBlcmlvZCBvZiB0aW1lLgo+ICsgKglbMzE6MF0gUExMUCBjb3VudGVy OiBDb3VudHMgYXQgZml4ZWQgZnJlcXVlbmN5ICg0MDggTUh6KQo+ICsgKglbNjM6MzJdIENvcmUg Y2xvY2sgY291bnRlcjogY291bnRzIG9uIGV2ZXJ5IGNvcmUgY2xvY2sgY3ljbGUKPiArICoJCQl3 aGVyZSB0aGUgY29yZSBpcyBhcmNoaXRlY3R1cmFsbHkgY2xvY2tpbmcKPiArICovCj4gK3N0YXRp YyB1NjQgcmVhZF9mcmVxX2ZlZWRiYWNrKHZvaWQpCj4gK3sKPiArCXU2NCB2YWwgPSAwOwo+ICsK PiArCWFzbSB2b2xhdGlsZSgibXJzICUwLCBzM18wX2MxNV9jMF81IiA6ICI9ciIgKHZhbCkgOiAp Owo+ICsKPiArCXJldHVybiB2YWw7Cj4gK30KPiArCj4gK3UxNiBtYXBfZnJlcV90b19uZGl2KHN0 cnVjdCBtcnFfY3B1X25kaXZfbGltaXRzX3Jlc3BvbnNlICpubHRibCwgdTMyIGZyZXEpCj4gK3sK PiArCXJldHVybiBESVZfUk9VTkRfVVAoZnJlcSAqIG5sdGJsLT5wZGl2ICogbmx0YmwtPm1kaXYs Cj4gKwkJCSAgICBubHRibC0+cmVmX2Nsa19oeiAvIEtIWik7Cj4gK30KPiArCj4gK3N0YXRpYyBp bmxpbmUgdTMyIG1hcF9uZGl2X3RvX2ZyZXEoc3RydWN0IG1ycV9jcHVfbmRpdl9saW1pdHNfcmVz cG9uc2UKPiArCQkJCSAgICpubHRibCwgdTE2IG5kaXYpCj4gK3sKPiArCXJldHVybiBubHRibC0+ cmVmX2Nsa19oeiAvIEtIWiAqIG5kaXYgLyAobmx0YmwtPnBkaXYgKiBubHRibC0+bWRpdik7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3JlYWRfY291bnRlcnMoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQo+ICt7Cj4gKwlzdHJ1Y3QgcmVhZF9jb3VudGVyc193b3JrICpyZWFkX2NvdW50 ZXJzX3dvcms7Cj4gKwlzdHJ1Y3QgdGVncmFfY3B1X2N0ciAqYzsKPiArCXU2NCB2YWw7Cj4gKwo+ ICsJLyoKPiArCSAqIHJlZl9jbGtfY291bnRlcigzMiBiaXQgY291bnRlcikgcnVucyBvbiBjb25z dGFudCBjbGssCj4gKwkgKiBwbGxfcCg0MDhNSHopLgo+ICsJICogSXQgd2lsbCB0YWtlID0gMiBe IDMyIC8gNDA4IE1IeiB0byBvdmVyZmxvdyByZWYgY2xrIGNvdW50ZXIKPiArCSAqICAgICAgICAg ICAgICA9IDEwNTI2ODgwIHVzZWMgPSAxMC41Mjcgc2VjIHRvIG92ZXJmbG93Cj4gKwkgKgo+ICsJ ICogTGlrZSB3aXNlIGNvcmVfY2xrX2NvdW50ZXIoMzIgYml0IGNvdW50ZXIpIHJ1bnMgb24gY29y ZSBjbG9jay4KPiArCSAqIEl0J3Mgc3luY2hyb25pemVkIHRvIGNyYWJfY2xrIChjcHVfY3JhYl9j bGspIHdoaWNoIHJ1bnMgYXQKPiArCSAqIGZyZXEgb2YgY2x1c3Rlci4gQXNzdW1pbmcgbWF4IGNs dXN0ZXIgY2xvY2sgfjIwMDBNSHosCj4gKwkgKiBJdCB3aWxsIHRha2UgPSAyIF4gMzIgLyAyMDAw IE1IeiB0byBvdmVyZmxvdyBjb3JlIGNsayBjb3VudGVyCj4gKwkgKiAgICAgICAgICAgICAgPSB+ Mi4xNDcgc2VjIHRvIG92ZXJmbG93Cj4gKwkgKi8KPiArCXJlYWRfY291bnRlcnNfd29yayA9IGNv bnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcmVhZF9jb3VudGVyc193b3JrLAo+ICsJCQkJCSAgd29y ayk7Cj4gKwljID0gJnJlYWRfY291bnRlcnNfd29yay0+YzsKPiArCj4gKwl2YWwgPSByZWFkX2Zy ZXFfZmVlZGJhY2soKTsKPiArCWMtPmxhc3RfcmVmY2xrX2NudCA9IGxvd2VyXzMyX2JpdHModmFs KTsKPiArCWMtPmxhc3RfY29yZWNsa19jbnQgPSB1cHBlcl8zMl9iaXRzKHZhbCk7Cj4gKwl1ZGVs YXkoYy0+ZGVsYXkpOwo+ICsJdmFsID0gcmVhZF9mcmVxX2ZlZWRiYWNrKCk7Cj4gKwljLT5yZWZj bGtfY250ID0gbG93ZXJfMzJfYml0cyh2YWwpOwo+ICsJYy0+Y29yZWNsa19jbnQgPSB1cHBlcl8z Ml9iaXRzKHZhbCk7Cj4gK30KPiArCj4gKy8qCj4gKyAqIFJldHVybiBpbnN0YW50YW5lb3VzIGNw dSBzcGVlZAo+ICsgKiBJbnN0YW50YW5lb3VzIGZyZXEgaXMgY2FsY3VsYXRlZCBhcyAtCj4gKyAq IC1UYWtlcyBzYW1wbGUgb24gZXZlcnkgcXVlcnkgb2YgZ2V0dGluZyB0aGUgZnJlcS4KPiArICoJ LSBSZWFkIGNvcmUgYW5kIHJlZiBjbG9jayBjb3VudGVyczsKPiArICoJLSBEZWxheSBmb3IgWCB1 cwo+ICsgKgktIFJlYWQgYWJvdmUgY3ljbGUgY291bnRlcnMgYWdhaW4KPiArICoJLSBDYWxjdWxh dGVzIGZyZXEgYnkgc3VidHJhY3RpbmcgY3VycmVudCBhbmQgcHJldmlvdXMgY291bnRlcnMKPiAr ICoJICBkaXZpZGVkIGJ5IHRoZSBkZWxheSB0aW1lIG9yIGVxdi4gb2YgcmVmX2Nsa19jb3VudGVy IGluIGRlbHRhIHRpbWUKPiArICoJLSBSZXR1cm4gS2N5Y2xlcy9zZWNvbmQsIGZyZXEgaW4gS0h6 Cj4gKyAqCj4gKyAqCWRlbHRhIHRpbWUgcGVyaW9kID0geCBzZWMKPiArICoJCQkgID0gZGVsdGEg cmVmX2Nsa19jb3VudGVyIC8gKDQwOCAqIDEwXjYpIHNlYwo+ICsgKglmcmVxIGluIEh6ID0gY3lj bGVzL3NlYwo+ICsgKgkJICAgPSAoZGVsdGEgY3ljbGVzIC8geCBzZWMKPiArICoJCSAgID0gKGRl bHRhIGN5Y2xlcyAqIDQwOCAqIDEwXjYpIC8gZGVsdGEgcmVmX2Nsa19jb3VudGVyCj4gKyAqCWlu IEtIegkgICA9IChkZWx0YSBjeWNsZXMgKiA0MDggKiAxMF4zKSAvIGRlbHRhIHJlZl9jbGtfY291 bnRlcgo+ICsgKgo+ICsgKiBAY3B1IC0gbG9naWNhbCBjcHUgd2hvc2UgZnJlcSB0byBiZSB1cGRh dGVkCj4gKyAqIFJldHVybnMgZnJlcSBpbiBLSHogb24gc3VjY2VzcywgMCBpZiBjcHUgaXMgb2Zm bGluZQo+ICsgKi8KPiArc3RhdGljIHVuc2lnbmVkIGludCB0ZWdyYTE5NF9nZXRfc3BlZWRfY29t bW9uKHUzMiBjcHUsIHUzMiBkZWxheSkKPiArewo+ICsJc3RydWN0IHJlYWRfY291bnRlcnNfd29y ayByZWFkX2NvdW50ZXJzX3dvcms7Cj4gKwlzdHJ1Y3QgdGVncmFfY3B1X2N0ciBjOwo+ICsJdTMy IGRlbHRhX3JlZmNudDsKPiArCXUzMiBkZWx0YV9jY250Owo+ICsJdTMyIHJhdGVfbWh6Owo+ICsK PiArCXJlYWRfY291bnRlcnNfd29yay5jLmNwdSA9IGNwdTsKPiArCXJlYWRfY291bnRlcnNfd29y ay5jLmRlbGF5ID0gZGVsYXk7Cj4gKwlJTklUX1dPUktfT05TVEFDSygmcmVhZF9jb3VudGVyc193 b3JrLndvcmssIHRlZ3JhX3JlYWRfY291bnRlcnMpOwo+ICsJcXVldWVfd29ya19vbihjcHUsIHJl YWRfY291bnRlcnNfd3EsICZyZWFkX2NvdW50ZXJzX3dvcmsud29yayk7Cj4gKwlmbHVzaF93b3Jr KCZyZWFkX2NvdW50ZXJzX3dvcmsud29yayk7CgpXaGF0IHdpbGwgaGFwcGVuIGlmIENQVSBpcyBv ZmZsaW5lPwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=